简介:CAN是控制器局域网(Controller Area Network)的简称,CAN属于总线式串行通信网络。
分类:can协议分为标准can和扩展can。标准can用于家用汽车,扩展can协议用于公交车,卡车。
Can总线特点:
一个时刻只能有一个ECU/DCU发出信号,其他控制设备接受信号;
一个设备发出信号所有在总线上的设备都能收到信号(具体是否接收,取决于设备的can信号过滤设置);
总线中所有设备地位相同,没有主控设备,设备之间按照规则自发竞争发送信号
Can物理层要求:
1.由两根线构成,两根线配合传输信号。分别为CAN高和CAN低。CAN_L和CAN_H
2.两根信号线发出电压的规则
标准规则:
当CAN高发出3.5伏电压时 CAN低只能发出1.5伏电压
此时CAN高和CAN低两根线之间的电压差为2伏(差分信号)
这个2伏的信号差表示二进制的0,也称为“显性信号”
当CAN高发出2.5伏电压时,CAN低只能发出2.5伏电压
此时CAN高和CAN低两根线之间的电压差为0伏
这个0伏的电压差表示二进制1,也称为“隐性信号”
3.Can总线分高度/低俗两种标准
高速CAN500k~1m bps
低速CAN125k 200kbs左右
Can数据链路层--帧结构
什么是帧:can总线传输数据的最小单位
标准can协议中,典型的帧类型为数据帧和远程帧
数据帧结构图:
假装这里有个帧结构图
后面补上
标准can数据帧中,各重要字段(域)含义:
1.标识符(或称can帧/报文的id,或称一帧can报文的仲裁场):用于唯一标识一个canzhen。11位二进制数据,理论上表达2的11次方种不同的can帧。
2.DLC:数据长度,表达数据域中实际数据的 字节数。录入数据中存放了2个字节的有效数据,dlc应该表达2这个数值的2进制,即“0010”
3.数据域:64位二进制数据(8个字节),作用是存储一帧can报文实际要发送的数据
4.ACK应答位:接收can报文的节点,通过在应答位上发送一个“1”给发送端,反馈已经正确接收数据。作用是接收方告诉发送方是否正确接收到数据。如果未正确接收,发送方应该重新传输这一真信息。
5.crc:校验字段,用于接收方计算接收的数据是否错误
和小杨同学聊了一晚上,没写完。回家吃饭先。