历史上的今天
今天是:2025年08月13日(星期三)
2019年08月13日 | STM32-(37):CAN总线(协议帧)
2019-08-13 来源:eefocus
CAN协议帧的概念
另外,数据帧和遥控帧有标准格式和扩展格式两种格式。标准格式有11个位的标识符(Identifier:以下称ID),扩展格式有29个位的ID。
数据帧的组成

SOF(start of frame):帧的起始位
数据帧详解:
(1)帧起始(标准、扩展格式相同)
表示帧开始的段。1个位的显性位。
显性电平和隐形电平
总线上的电平有显性电平和隐形电平两种。
总线上执行逻辑上的线“与”时,显性电平的逻辑值位“0”,隐形电平为“1”。
“显性”具有“优势”的意味,只要有一个单元输出显性电平,总线上即为显性电平。并且,“隐形”具有“包容”的意味,只有所有的单元都输出隐形电平,总线上才位隐形电平。(显性电平比隐形电平更强。)
(2)仲裁段
表示数据的优先级的段。
标准格式和扩展格式在此的构成有所不同。
ID
标准格式的 ID 有11位,从 ID28 到 ID18 被依次发送。禁止高7位都为隐形。(禁止设定:ID = 1111111XXXX)
扩展格式的 ID 有29位。基本ID 从 ID28 到 ID18,扩展ID 由 ID17 到 ID0 表示。基本ID和标准格式的ID相同。禁止高7位都为隐形。(禁止设定:基本ID = 1111111XXXX)
标准格式与扩展格式区分:在基本ID之后判断后一位电平(若为“0”,则是RTR,表示标准格式,若为“1”,则是SRR,表示扩展格式)
(3)控制段
控制段由6个位构成,表示数据段的字节数
前两个位为保留位,后四位(DLC)表示数据段的字节数。
(4)数据段(标准、扩展格式相同)
数据段可包含0-8个字节的数据。从MSB(最高位)开始输出。
CRC段(标准、扩展格式相同)
CRC段是检查帧传输错误的帧。由15个位的CRC顺序和1个位的CRC界定符(用于分隔的位)构成。
CRC顺序
CRC顺序是根据多项式生产的CRC值,CRC的计算范围包括帧起始、仲裁段、控制段、数据段。
接收方以同样的算法计算CRC值并进行比较,不一致时会通报错误。
(6)ACK段
ACK段用来确认是否正常接收。由ACK槽(ACK Slot)和ACK界定符2个位构成。
1.发送单元的ACK段
发送单元在ACK段发送2个位的隐性位。
2.接收单元的ACK段
接收到正确消息的单元在ACK槽(ACK Slot)发送显性位,通知发送单元正常接收结束。这称作“发送ACK”或者“返回ACK”
(7)帧结束
帧结束是表示该帧的结束的段。由7个位的隐性位构成。
遥控帧

数据帧和遥控帧的不同
–遥控帧的RTR位为隐性位,没有数据段。
–没有数据段的数据帧和遥控帧可通过 RTR位区别开来。遥控帧没有数据段,数据长度码该如何表示?
–遥控帧的数据长度码以所请求数据帧的数据长度码表示。没有数据段的数据帧有何用途?
–例如,可用于个单元的定期连接确认/应答、或仲裁段本身带有实质性信息的情况下。
错误帧

用于在接收和发送消息时检测出错误通知错误的帧。错误帧由错误标志和错误界定符构成。
(1)错误标志
错误标志包括主动错误标志和被动错误标志两种。
主动错误标志:6个位的显性位。
被动错误标志:6个位的隐性位。
(2)错误界定符
错误界定符由8个位的隐性位构成。
过载帧

过载帧是用于接收单元通知其尚未完成接收准备的帧。过载帧由过载标志和过载界定符构成。
(1)过载标志
6个位的显性位。
过载标志的构成与主动错误标志的构成相同。
(2)过载界定符
8个位的隐性位。
过载界定符的构成与错误界定符的构成相同。
帧间隔

帧间隔是用于分隔数据帧和遥控帧的帧。数据帧和遥控帧可通过插入帧间隔将本帧与前面的任何帧(数据帧、遥控帧、错误帧、过载帧)分开。
过载帧和错误帧前不能插入帧间隔。
(1)间隔
3个位的隐性位
(2)总线空闲
隐性电平,无长度限制(0亦可)
(3)延时传送(发送暂时停止)
8个位的隐性位
只在处于被动错误状态的单元刚发送一个消息后的帧间隔中包含的段。
优先级
在总线空闲态,最先开始发送消息的单元获得发送权。
多个单元同时开始发送时,各发送时单元从仲裁段的第一位开始进行仲裁。连续输出显性电平最多的单元可继续发送。
(1)数据帧和遥控帧的优先级(数据帧优先级高)
具有相同ID的数据帧和遥控帧在总线上竞争时,仲裁段的最后一位(RTR)为显性位的数据帧具有优先权。可继续发送。
(2)标准格式和扩展格式的优先级(标准格式的优先级高)
标准格式ID与具有相同ID的遥控帧或者扩展格式的数据帧在总线上竞争时,标准格式的RTR位为显性位的具有优先权,可继续发送。
错误
错误共有5种。多种错误可能同时发生。
位错误
填充错误
CRC错误
格式错误
ACK错误

史海拾趣
|
一直想通过wince上的程序连接pc上的数据库如sql server,mysql等,一直没搞定。不知有没有大侠能够指导一下啊? 这几天看了下sqlite数据库的东西,简单小程序能写了,但是发现sqlite有个问题就是好像不支持c/s结构,只能在本地进行sq ...… 查看全部问答> |
|
终于收到力源申请的套件了,哈哈哈哈还以为与她无缘,现在开始,晚上的"夜生活"开始丰富了也开始倒塌STM32~~~~~~~~~~~~~~~~~~~… 查看全部问答> |
|
(写得很认真,先留着,等板子来了就可以耍了!感谢作者) 故事的起因是这样滴。。。LaunchPad包装盒中并没有附带资料光盘(至少我收到的是这样的),只有一张纸的简单介绍,即TI网站上的文档MSP-EXP430G2 LaunchPa ...… 查看全部问答> |
|
转自:deyisupport 前面有两篇关于仪表放大器 (INA) 电源及共模抑制比 (PSRR & CMRR) 的极好博客文章。(参见“处理抑制问题:仪表放大器 PSRR 与 CMRR”第 I 部分 和 第 II 部分)。 准确指出了大多数 INA 器件的 CMRR 与 PSRR 性能会随增益变化 ...… 查看全部问答> |
|
转自deyisupport 你看没看到过汽车向前行驶,而车的轮子实际上是向后转呢?如果不是在表演高难度特技的话,我打赌你一定在汽车广告中看到过。你想没想过这是为什么呢?真实的生活如流水般不可中断,而视频摄像头每秒钟只记录了有限数量的画面。每 ...… 查看全部问答> |




