CAN通讯常用于汽车领域。
ECU是汽车种最小的控制模块,内部集成了供电系统,驱动系统,单片机。CAN总线就是为了服务于ECU之间的相互通讯而存在的。
下面是CAN通讯高低电平的逻辑表示:在单片机将普通的高低电平传输给CAN收发器之后,普通的信号会变成差分信号。
数据帧:
识别码:(11位识别码)判断和哪一设备ECU进行通讯。
RTR位:区分是数据帧(0)还是远程请求帧(1)。
控制码:用于控制数据长度。IDE位用于区分是标准帧还是拓展帧,空闲位固定为0。
DLC位是数据长度位:0-8的二进制表示后面数据的字节数(一个字节相当于八位,最多八个字节也就是64位。)。
CRC校验位:若CRC的值不一致,则重新发送一遍数据帧。
ACK码(两位):ACK确认槽1由发送端发送,0由接收端回复表示应答。ACK界定位(1)。
结束位(7位逻辑1)。
优先级:由识别码上在高低电平不一致时,低电平的优先级更高。