CAN采用的是差分信号:由两根线组成CANH和CANL。
按照定义:CANH-CANL
CANL-CANH>0.9v时为显性,逻辑电平为低。

CAN总线与IIC一样采用线与,在总线上显性电平具有优先权,当同时出现显性信号和隐性信号时,总线上为显性数据即0。
通信过程:
由于CAN通信只有两根数据线,没有时钟线所以并不知道数据
是什么时候开始发送什么时候开始接收,不像IIC有SCL时钟线,SPI有CS片选信号,那么每个ECU是怎么知道CAN总线上的数据是发给自己呢,CAN有一套复杂的协议。
空闲状态:在CAN协议中,在总线上出现连续的11位隐性电平(电压差
像前面说的CAN采用的是线与通信,当所有总线上的单元都发送隐性信号,才说明总线是空闲的。
开始数据传输:
每次数据传输前,节点都会监听总线的状态,如果说总线为空闲状态,那么就会发送自己的数据包,数据包包括本身的ID信息或者其他控制指令,也称之报文。当报文传输到其他节点时,其他节点就得按照固定格式去解读数据包。这里固定格式即整车厂会定义好CAN Communication Matrix(后续有时间会单独出一篇关于通信矩阵的应用)。
其实可以简单的理解CAN Communication Matrix就是定义报文标识符和信号值描述对每一帧数据的解析。
报文格式:起始标签、识别标签、控制标签、数据段、CRC校验标签、应答标签、结束标签。
标准帧的报文由:起始位、识别码、控制码、数据码、CRC、ACK、结束位
CAN2.0B

最低0.47元/天 解锁文章
7452

被折叠的 条评论
为什么被折叠?



