乱七八糟风暴收藏can

CAN总线

2018-01-04  本文已影响14人  XKMar

CAN是Controller Area Network 的缩写,是ISO国际标准化的串行通信协议。


CAN协议

CAN的通信是通过下列5种类型的帧进行的:

数据帧


用于发送单元向接受单元传送数据的帧。

数据帧的构成

帧起始:表示帧开始的段,由1个位的显性电平构成;

仲裁段:表示数据的优先级的段,扩展格式和标准格式在此构成不同;

控制段:由6位构成,表示数据段的字节数。保留位(r0,r1)必须全部以显性电平发送,接收方可以接收显性,隐形及其任意组合的电平。数据长度码(DLC)表示数据字节数(0~8),但是接收方对DLC = (9~15)的情况不视为错误;

数据段:数据段可包含(0~8)字节的数据,从MSB(最高位)开始输出;

CRC段:检查帧传输错误的帧,由15个位CRC顺序和1个位的CRC界定符构成。CRC顺序是指根据多项式生成的CRC值,计算范围包括帧起始、仲裁段、控制段、数据段;

ACK段:用来确认是否正常接收,由ACK槽和ACK界定符两个位构成。发送单元的ACK段发送2个位的隐形位,接收单元接收到正确数据时在ACK槽发送显性位;

帧结束:表示该帧的结束的段,由7个位的隐性位构成;

遥控帧


接收单元向发送单元请求发送数据所用的帧,遥控帧由6个段构成,没有数据帧的数据段。遥控帧的RTR位为隐性位

遥控帧的构成

帧起始:表示帧开始的段,由1个位的显性电平构成;

仲裁段:表示数据的优先级的段,可请求具有相同ID的数据帧;

控制段:由6位构成,表示数据段的字节数。保留位(r0,r1)必须全部以显性电平发送,接收方可以接收显性,隐形及其任意组合的电平。数据长度码(DLC)表示数据字节数(0~8),但是接收方对DLC = (9~15)的情况不视为错误;

CRC段:检查帧传输错误的帧,由15个位CRC顺序和1个位的CRC界定符构成。CRC顺序是指根据多项式生成的CRC值,计算范围包括帧起始、仲裁段、控制段、数据段;

ACK段:用来确认是否正常接收,由ACK槽和ACK界定符两个位构成。发送单元的ACK段发送2个位的隐形位,接收单元接收到正确数据时在ACK槽发送显性位;

帧结束:表示该帧的结束的段,由7个位的隐性位构成;

错误帧


用于接收和发送消息时检测出错误,并通知错误的帧,错误帧由错误标志和错误界定符构成。

错误帧

错误标志:包括主动错误标志和被动错误标志,主动错误标志是6个位的显性位,被动错误标志是6个位的隐性位;

错误界定符:由8个位的隐性位构成;

过载帧


用于接收单元通知其尚未完成接收准备的帧,过载帧由过载标志和过载界定符组成。

过载帧

过载标志:6个位的显性位,与主动错误标志的构成相同;

过载界定符:8个位的隐性位;

帧间隔


用来分离数据帧和遥控帧的帧,数据帧和遥控帧可以通过插入帧间隔将本帧和前面的任何帧分开。过载帧和错误帧前不能插入帧间隔。

帧间隔

间隔:3个位的隐性位;

总线空闲:隐性位,无长度限制,本状态下可视为总线空闲;

延迟传送:8个位的隐性位,只在被动错误状态的单元刚发送一个消息后,帧间隔中包含的段;


优先级的确定

在总线空闲阶段,最先开始发送消息的单元获得发送权;

在多个单元同时发送时,各发送单元从仲裁段的第一位开始仲裁,连续输出显性电平最多的单元可继续发送。

优先级的确定

1. 具有相同ID的数据帧和遥控帧在总线上竞争时,仲裁段的最后一位(RTR)为显性位的数据帧具有优先权。

2. 标准格式ID和具有扩展格式的ID的遥控帧或者扩展格式的数据帧在总线上竞争时,标准格式的RTR位为显性位的具有优先权。


位填充

是为了防止突发错误而设定的功能,当同样的功能电平持续5位时,则添加一个位的反型数据。

位填充

发送单元的工作:在发送数据帧和遥控帧时,SOF~CRC段间的数据,相同的电平如果持续5位,则在在第6位插入与前5位相反的电平;

接收单元的工作:在发送数据帧和遥控帧时,SOF~CRC段间的数据,相同的电平如果持续5位,需要删除第6位数据。若第6位数据电平与前5位相同,则发出错误帧;


位时序

由发送单元在非同步的情况下发送的每秒中的位数称为位速率,一个位可以分为4段。这些段又由的最小时间单位构成。

段及其作用 1个位的构成

采样点是指读取总线电平,将读到的电平作为位值的点。

上一篇下一篇

猜你喜欢

热点阅读