s目录
CAN(controller Area Network) 控制器局域网
CAN通讯
CAN总线的数据帧
解析
CAN(controller Area Network) 控制器局域网
CAN总线应用最多的是汽车领域,这里的控制器在汽车领域的专业术语是ECU.(electronic control unit)电子控制单元。可以看成一个超小型的计算机,内部集成了供电系统,单片机,驱动系统,是汽车领域里最小的控制模块。为了能让ECU之间进行通信,人们设计了CAN协议。这就是CAN的由来。
(ECU挂在CAN总线上,组成局域网通讯)
CAN通讯
通讯需要专门的CAN收发器,经过CAN收发器,普通信号变成差分信号.2根差分线表示一个信号,
当收到低电平时,两根差分线的电压差位2V(一个3.5,一个1.5)当收到高电平时,两个差分线的压差为0V. CAN收发器也可以把差分信号转换为普通信号(高低电平发送给单片机)
CAN通讯采样差分通讯的好处:两根线组成双绞线,受到干扰也是同时受到干扰,压差保持不变。通讯距离可以达到1000m。
CAN总线的数据帧
图1(标准帧而非拓展帧)
解析
- 起始位必须是0
- 11位识别码,用来区分ECU,同时也代表发送数据的优先级。
- RTR位(一位)用来区分数据帧(0),或者远程请求帧(1)
- 6位控制码,第一位IDE用来区分标准格式和拓展格式。(在标准格式中有11位识别码,而在拓展帧中有29位识别码。所以图1为标准帧,IDE位0.第二位为空闲位为0,后四位为DLC位(Data Link Control)数据长度代码.它的二进制编码位0-8 即为0000-1000,为n则后面的数据位只有n个字节(8*n位),
- 16位CRC码,循环冗余检测码.(16位的前15位)15位CRC校验码,根据数据计算的CRC码,设备接收端以此来判断数据是否正确。16位的最后一位为CRC界定符,为1.把后面信息隔开。
- 2位ACK码,第一位是ack确认槽,发送端发送1,接受端发送0表示确认。第二位为1,与后面数据隔开.
- 7位逻辑1结束位。
参考
爱上半导体