[求助] 有懂汽车电子的吗,想读取汽车CAN总线上的数据

littleshrimp   2016-5-25 13:03 楼主
最近想通过支持CAN总线的单片机(例如STM32)+CAN收发器(例如TI的TCAN1042)读取汽车OBD总线上的数据分析后实现远程控制
车是日产轩逸
淘宝上有卖ODB报警器和自动上锁设备的说明这个接口可以用

第一次接触CAN总线
白纸一张
有些问题想请教做过汽车电子的朋友

1、硬件方面是不是把电路搭好以后将GND和CAN收发器的CANH和CANL接到OBD对应的引脚上就可以?
2、CAN有波特率的说法吗?如果有的话,我应该怎么测量波特率或者日产车有固定的波特率吗?是多少?
3、看网上说OBD有很多数据是厂商私有的,不对外公开,假如我能监听ODB数据了,按一下锁门键CAN总线上是不是就会多出一条锁门的指令?用单片机重发这条指令是否可以实现锁门呢?
4、怎么知道哪些系统可以通过CAN总线监听和控制?

虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复评论 (17)

图只供参照。具体车型,请自己确认。 1、硬件方面是不是把电路搭好以后将GND和CAN收发器的CANH和CANL接到OBD对应的引脚上就可以? OBD还能供电,你的设备自己有电的话可以不要 2、CAN有波特率的说法吗?如果有的话,我应该怎么测量波特率或者日产车有固定的波特率吗?是多少? 这个要看具体车型,自己可以量。 物理层的采样点,最好做成可调。 3、看网上说OBD有很多数据是厂商私有的,不对外公开,假如我能监听ODB数据了,按一下锁门键CAN总线上是不是就会多出一条锁门的指令? 一个操作有的时候回对应到个指令,多操作几次,报文都拿下来,看看ID就知道了。 用单片机重发这条指令是否可以实现锁门呢? 简单理解是这样,不过会有时间上面的现在。 还有这个控制里面可能报文里面会加密。 4、怎么知道哪些系统可以通过CAN总线监听和控制? 德国的工具多谢,不过国内也有做的 本帖最后由 5525 于 2016-5-28 21:39 编辑
MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-5-25 21:25

最近想通过支持CAN总线的单片机(例如STM32)+CAN收发器(例如TI的TCAN1042)读取汽车OBD总线上的数据分析后实现远程控制

回复:首先,你要明白CAN总线报文一般分为周期性报文和事件触发型报文,如果你要实现的功能是周期性报文发送,这时车上的ECU和你通过单片机发送的报文同时发,执行器就会一会儿听你的一会听车上真实ECU,比如单片机发送的报文命令是让灯亮,真实ECU实际状态时灯灭,同一个ID的报文同时出现在总线上,就会造成灯一会亮一会灭。要是触发性报文控制,你就完全可以进行控制(一般这种功能还会伴随着checksum验证,这么看来,还是无法进行控制)
你要实现控制门上锁,这个功能应该不会实现,一般ECU只会通过CAN总线采集门锁状态,不会进行实际控制。要实现这个功能,建议找到中控锁哪个引脚跟车身控制器(一般都是这个控制器控制门锁状态)相连,看是高触发还是低触发,然后进行远程控制
个人见解,仅供参考
点赞  2016-5-28 09:19
这个要分析仪的,要有很大的数据量,有公开的,比如给维修工作用的的。。有保密的协议,几百万你都有可能买不到,泄密还可能负法律责任,不然4S店靠什么吃饭?个个都搞汽配去了。。
点赞  2016-5-28 17:55
引用: dzy93 发表于 2016-5-28 17:55
这个要分析仪的,要有很大的数据量,有公开的,比如给维修工作用的的。。有保密的协议,几百万你都有可能买 ...

dzy93说的没错,有些整车厂商想的就是 封堵这块,不让随便搞。
可有些人说,车是我的,你管的着吗,我就要弄,就要弄吗。
这个时候市场有了需求,之后你懂得,卖你的时候,还不忘说声“后果自负” 叻。

MicroPython中文社区https://micropython.org.cn/forum/  
点赞  2016-5-28 21:34
引用: 5525 发表于 2016-5-25 21:25
图只供参照。具体车型,请自己确认。
1、硬件方面是不是把电路搭好以后将GND和CAN收发器的CANH和CANL接 ...

如果加密数据里边有时间戳,那就不好办了
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2016-6-1 09:20
引用: sun20031543 发表于 2016-5-28 09:19 最近想通过支持CAN总线的单片机(例如STM32)+CAN收发器(例如TI的TCAN1042)读取汽车OBD总线上的数据分 ...
“你要实现控制门上锁,这个功能应该不会实现,一般ECU只会通过CAN总线采集门锁状态,不会进行实际控制。” 一搬情像锁门按键和锁门装置这样的电路 是通过几根普通的线路直接连到ECU 还是所有的装置都有自身的控制器 然后通过CAN总线连接呢 本帖最后由 littleshrimp 于 2016-6-1 09:25 编辑
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2016-6-1 09:21
行业内有一款叫做EST580的能实现很多车型的控制和状态查看,包涵现代、宝马、通用、丰田、沃尔沃、陆风、比亚迪
点赞  2016-10-25 17:27
请问版主你读到数据了没?我直接使用工具读取ODB接口上,没有数据得到,请问你是用什么方法的到数据的
点赞  2017-3-9 12:45
引用: blza3127672 发表于 2017-3-9 12:45
请问版主你读到数据了没?我直接使用工具读取ODB接口上,没有数据得到,请问你是用什么方法的到数据的

没再继续弄这个

根据我了解的资料,可以通过单片机连接CAN收发器,再通过收发器接到ODB上读取CAN总线上的数据
这种方式会对汽车原有总线上的数据造成影响,因为读取的同时会发送数据(控制总线上的电平)
还有一种方式是通过CAN收发器采集波形,然后根据CAN协议分析并提取出数据,这种方式更灵活,实现起来会比较复杂
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2017-3-9 14:21
引用: littleshrimp 发表于 2017-3-9 14:21
没再继续弄这个

根据我了解的资料,可以通过单片机连接CAN收发器,再通过收发器接到ODB上读取CAN总线 ...

根据你的第一种方式没错,发送数据过去,我接收到数据了,我成功, 现在我要我在汽车CAN总线接上CAN分析仪,没有一点数据被我捕获到..什么情况?说好的会有数据的呢?....我想捕获方向盘的CAN ID和数据帧 就一脸懵逼了,因为总线上没有数据被我捕获到,都不知道下一步怎么办了,能再来一个提示办法吗,还是因为什么情况导致失败了? 有些人和我说ODB上的CAN总线一直存在数据,接上CAN分析仪,转动方向盘就能捕获到数据,可是我失败了...
点赞  2017-3-10 13:54
引用: blza3127672 发表于 2017-3-10 13:54
根据你的第一种方式没错,发送数据过去,我接收到数据了,我成功, 现在我要我在汽车CAN总线接上CAN分析仪,没 ...

你用示波器或逻辑分析仪看一下ODB的波形,再看一下你CAN收发器输出TTL的数据,再近一步分析试试
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2017-3-10 17:33
本身OBD就可以读取电脑里边的数据,只需要下载软件就可以,一般的OBD都有软件包,也可网上下载,蓝牙连接或直接USB连接。
点赞  2017-3-17 18:48
一般都可以通过CANTEST读取出来,淘宝直接买个USBCAN分析仪,波特率多设置几次就可以监控出报文了吧
点赞  2017-5-7 22:21
引用: 石晓一格莱 发表于 2017-5-7 22:21
一般都可以通过CANTEST读取出来,淘宝直接买个USBCAN分析仪,波特率多设置几次就可以监控出报文了吧

开始是想自己做一个ODB控制器玩玩
后来有事在忙别的,就不弄了
谢谢支持
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2017-5-8 12:57
楼主你好,我是刚接触到汽车电子控这方面的东西!对汽车维修诊断这方面研究的比较多,根据我所了解到的知识来看,你想通过单片机来实现远程解锁这门这个功能的话,按照正规程序来走的话就必须先解除车辆的防盗系统,然后你所发送的CAN信息要与车内的CAN协议相同,车载电脑所发送的信息应该是会加密的,还需要解密。车载网络系统的网关和每个CAN用户电脑也会对总线信息进行验证与效验CAN信息是否可信。我们来实现这个功能的时候,一般都是通过厂家的诊断电脑对主控模块进行功能触动,就可以完成这个操作了。如果CAN总线的数据不对,其他模块也会报故障,否认某一个CAN用户的信息,严重的会导致整条CAN总线关闭。
点赞  2017-5-31 17:16
没有通讯协议,你看到的就是一堆数字
点赞  2018-9-20 17:21
我只是路过打酱油的
点赞  2018-9-20 18:46
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复