找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4099|回复: 6
收起左侧

STM32 CAN实现与汽车CAN接收与控制

[复制链接]
ID:65937 发表于 2018-12-19 21:35 | 显示全部楼层 |阅读模式
    凭借一身技术,想通过汽车CAN OBD接口与STM32 实现CAN通信来拓展汽车的一些功能,例如:
1. 夏天开启空调,空调压缩机工作,汽车在等红灯后起步动力就会显得很肉很吃力,想通过STM32检测起步动作,然后自动关闭压缩机,等发动机转速升到1800后或者车速稳定后再次开启压缩机。
2.........

  目前我已经检测到汽车CAN的数据,通过反复的实验,也能够区分出小部分数据代表什么,
          1.png
  我现在遇到的问题是,貌似这些数据都是周期性发送到CAN总线的状态数据,即使我找到某个数据与压缩机启停有关,但我发送启停数据后压缩机却没有任何反应。

请大侠们帮帮忙,怎样才能拿到压缩机的控制数据,不是状态数据。
回复

使用道具 举报

ID:65937 发表于 2018-12-19 22:05 | 显示全部楼层
补充我收到的汽车CAN数据。
回复

使用道具 举报

ID:65937 发表于 2018-12-19 22:06 | 显示全部楼层

CAN data.jpg

补充我收到的汽车CAN部分数据。
回复

使用道具 举报

ID:169944 发表于 2018-12-20 15:12 | 显示全部楼层
把其他功能都关掉,只开启和关闭压缩机,然后接收can发送的数据,控制台对压缩机的控制指令和压缩机发出的状态指令的id是不同的,不同接收器的id号不一样,一般对一个设备的开启关闭的data0是相同的。这是我对can的一点浅显的认识
回复

使用道具 举报

ID:65937 发表于 2018-12-20 20:15 | 显示全部楼层
zha 发表于 2018-12-20 15:12
把其他功能都关掉,只开启和关闭压缩机,然后接收can发送的数据,控制台对压缩机的控制指令和压缩机发出的 ...

     多谢大侠的指点迷津,我同意你的观点"控制台对压缩机的控制指令和压缩机发出的状态指令的id是不同的,不同接收器的id号不一样"。
     我现在就是通过反复的开关压缩机,然后观察CAN上的数据,只看到一个ID的D0.3有变化,所以我就试图以这个ID的D0.3往里面写0或者1,可压缩机就是没有反应,后来我就想我观察到的是个状态数据。
      我试想过往每一个ID里面写数据然后观察CAN,可又担心万一写错了汽车会瘫痪或者误写到安全气囊控制就糟了。
回复

使用道具 举报

ID:403024 发表于 2018-12-21 09:11 | 显示全部楼层
    查下车载压缩机的型号,或者拆开来看下。找到厂家然后一个电话去咨询一下就行了。ID/各个数据位代表啥。自己就看数据摸索是比较麻烦的,拿到通信协议一下就简单了。
回复

使用道具 举报

ID:509104 发表于 2021-1-4 10:48 | 显示全部楼层
can总线分网段的,例如我的车,can分舒适网1,舒适网2,启动子网,ecm网等其他网段,我找到了开启空调的指令,发送到舒适网1,车辆空调无反应,发送到在舒适网2,空调启动了。
另外不同网段通信速率不同,我的车,舒适网1,舒适网2都是125k,启动网却是500k
所以首先你要搞清楚你的车空调can控制是放在哪个网段
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表