收藏 分享(赏)

CAN报文的传送和帧结构.doc

上传人:cjc2202537 文档编号:8039329 上传时间:2019-06-05 格式:DOC 页数:8 大小:291.28KB
下载 相关 举报
CAN报文的传送和帧结构.doc_第1页
第1页 / 共8页
CAN报文的传送和帧结构.doc_第2页
第2页 / 共8页
CAN报文的传送和帧结构.doc_第3页
第3页 / 共8页
CAN报文的传送和帧结构.doc_第4页
第4页 / 共8页
CAN报文的传送和帧结构.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、CAN 报文的传送和帧结构9.2.2 CAN 报文的传送和帧结构 在进行数据传送时,发出报文的节点为该报文的发送器。该节点在总线空闲或丢失仲裁前恒为发送器,如果一个节点不是报文发送器,并且总线不处于空闲状态,则该节点为接收器。构成一帧的帧起始、仲裁场、控制场、数据场和 CRC 序列均借助位填充规则进行编码。当发送器在发送的位流中检测到 5 位连续的相同数值时,将自动在实际发送的位流中插入一个补码位。而数据帧和远程帧的其余位场则采用固定格式,不进行填充,出错帧和超载帧同样是固定格式。报文中的位流是按照非归零(NZR)码方法编码的,因此一个完整的位电平要么是显性,要么是隐性。在“隐性”状态下, C

2、AN 总线输出差分电压difV= CANH L 近似为零,在“显性”状态下,以大于最小阈值的差分电压表示,如图 9.2 所示。在总线空闲或“隐性”位期间,发送“隐性”状态。在“显性”位期间, “隐性”状态改写为“显性”状态。 图 9.2 总线上的位电平表示CAN 有两种不同的帧格式,不同之处为识别符场的长度不同:具有 11 位识别符的帧称之为标准帧;而含有 29 位识别符的帧为扩展帧。CAN 报文有以下 4 个不同的帧类型: 数据帧:数据帧将数据从发送器传输到接收器。 远程帧:总线节点发出远程帧,请求发送具有同一识别符的数据帧。 错误帧:任何节点检测到总线错误就发出错误帧。 过载帧:过载帧用以

3、在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。数据帧和远程帧可以使用标准帧及扩展帧两种格式。它们用一个帧间空间与前面的帧分隔。1. 数据帧数据帧由 7 个不同的位场组成:帧起始(Start of Frame) 、仲裁场( Arbitration Frame) 、控制场(Control Frame) 、数据场(Data Frame) 、CRC 场(CRC Frame) 、应答场(ACK Frame) 、帧结尾( End of Frame) 。数据场的长度为 0 到 8 位。报文的数据帧一般结构如图9.3 所示。 图 9.3 报文的数据帧结构在 CAN2.0B 中存在两种不同的帧格式,其

4、主要区别在标识符的长度,在标准帧格式里,仲裁场由 11 位识别符和远程请求位(RTR)组成。如图 9.4 所示。在扩展帧格式里,仲裁场包括 29 位识别符、替代远程请求位(SRR ) 、识别符扩展位(IDE )和 RTR 位。如图 9.5所示。图 9.4 标准格式中的数据帧图 9.5 扩展格式中的数据帧扩展格式是 CAN 协议的一个新特色。为了使控制器的设计相对地简单,不要求执行完全的扩展格式,但必须完全支持标准格式。新的控制器至少应具有以下属性,才被认为是符合 CAN 规范: 每一新的控制器支持标准格式; 每一新的控制器可以接收扩展格式的报文,不能因为格式差别而破坏扩展帧格式。下面具体分析数

5、据帧的每一个位场。(1)帧起始帧起始(SOF)标志数据帧或远程帧的开始,仅由一个“显性”位组成。只有在总线空闲时才允许节点开始发送(信号) 。所有节点必须同步于首先开始发送报文的节点的帧起始前沿,如图 9.3 所示。(2)仲裁场仲裁场由标识符和远程发送请求位(RTR 位)组成。RTR 位在数据帧中为显性,在远程帧中为隐性。对于 CAN2.0A 标准,标识符长度为 11 位,这些位按 ID.10 到 ID.0 的顺序发送,最低位是 ID0, 7 个最高位( ID.10-ID.4)必须不能全是“隐性” ,如图 9.6 所示。图 9.6 CAN2.0A 的仲裁场的组成对于 CAN2.0B 标准,标准

6、格式帧与扩展格式帧的仲裁场标识符格式不同。标准格式里,仲裁场由 11 位识别符和 RTR 位组成。识别符位由 ID.28ID.18 组成。如图 9.4 所示。而在扩展格式里,仲裁场包括 29 位识别符、替代远程请求位 SRR、标识位 IDE、远程发送请求位 RTR。其识别符由 ID-28ID-0 组成,其格式包含两个部分:11 位(ID.28 ID.18)基本 ID、18 位(ID.17ID.0 )扩展 ID。如图 9.5 所示,扩展格式里,基本 ID 首先发送,其次是 SRR 位和 IDE 位。扩展 ID 的发送位于 SRR 位和 IDE 位之后。SRR 的全称是“替代远程请求位( Subs

7、titute Remote Request BIT) ”,SRR 是一隐性位。它在扩展格式的标准帧 RTR 位上被发送,并代替标准帧的 RTR 位。因此,如果扩展帧的基本 ID 和标准帧的识别符相同,标准帧与扩展帧的冲突是通过标准帧优先于扩展帧这一途径得以解决的。IDE 的全称是“识别符扩展位(Identifier Extension Bit) ”,对于扩展格式,IDE 位属于仲裁场;对于标准格式,IDE 位属于控制场。标准格式的 IDE 位为“显性” ,而扩展格式的 IDE 位为“ 隐性” 。(3)控制场控制场由 6 个位组成,其结构如图 9.7 所示。标准格式和扩展格式的控制场格式不同。标

8、准格式里的帧包括数据长度代码、IDE 位(为显性位,见上文)及保留位 r0。扩展格式里的帧包括数据长度代码和两个保留位:r1 和 r0。其保留位必须发送为显性,但是接收器认可“显性”和“隐性”位的任何组合。数据长度代码(标准格式以及扩展格式)DLC,如表 9.1 所示。 I D E / r 1图 9.7 控制场结构表 9.1 数据帧长度代码 DLC数据长度代码数据字节的数目DLC3 DLC2 DLC1 DLC00 d d d d12345678dddddddrdddrrrrddrrddrrdrdrdrdrd数据长度代码指示了数据场里的字节数量。其中:d“显性” , r“隐性” ,数据帧允许的数

9、据字节数为0,1, 7,8 。其他的数值不允许使用。(4) 数据场数据场由数据帧里的发送数据组成。它可以为 08 个字节,每字节包含了 8 个位,首先发送最高有效位。(5) 循环冗余码 CRC 场CRC 场包括 CRC 序列(CRC Sequence) ,其后是 CRC 界定符(CRC Delimiter) ,如图9.8 所示。图 9.8 循环冗余码 CRC 场 CRC 序列(适合标准格式和扩展格式)CRC 序列由循环冗余码求得的帧检查序列组成,最适用于位数低于 127 的帧。为进行CRC 计算,被除的多项式系数由无填充位流给定。组成这些位流的成分是:帧起始、仲裁场、控制场、数据场(假如有的话

10、) ,而 15 个最低位的系数是 0。将此多项式被下列多项式发生器除(其系数以 2 为模):X15+X14+X10+X8+X7+X4+X3+1这个多项式除法的余数就是发送到总线上的 CRC 序列。为了实现这个功能,可以使用15 位的位移寄存器CRC_RG(14:0)。如果 NXTBIT 指示位流的下一位,那么从帧的起始到数据场末尾都由没有填充的位顺序给定。CRC 序列的计算如下:CRC_RG=0; /初始化移位寄存器REPEATCRCNXT=NXTBIT EXOR CRC_RG(14) ;CRC_RG(14:1)=CRC_RG (13:0) ; /寄存器左移一位CRC_RG(0)=0;IF C

11、RCNXT THENCRC_RG(14:0)CRC_RG (14:0)EXOR(4599H);END IFUNTIL( CRC 序列起始或有一错误条件) CRC 界定符(标准格式以及扩展格式)CRC 序列之后是 CRC 界定符,它包含一个单独的 “隐性 ”位。(6)应答场(ACK Field)应答场长度为 2 个位,包含应答间隙(ACK Slot)和应答界定符( ACK Delimiter) ,如图 9.9 所示。在 ACK 场(应答场)里,发送节点发送两个“隐性”位。当接收器正确地接收到有效的报文,接收器就会在应答间隙(ACK Slot)期间向发送器发送一“显性”位以示应答。 应答间隙所有接

12、收到匹配 CRC 序列( CRC Sequence)的节点会在应答间隙(ACK Slot)期间用一“显性”的位写入发送器的“隐性”位来做出回答。 应答界定符应答界定符是应答场的第二个位,并且是一个必须为“隐性”的位。因此,应答间隙(ACK Slot)被两个“隐性 ”的位所包围,也就是 CRC 界定符(CRC Delimiter)和应答界定符(ACK Delimiter) 。图 9.9 应答场(7)帧结尾(标准格式以及扩展格式)每一个数据帧和远程帧均由一标志序列界定。这个标志序列由 7 个“隐性”位组成。2. 远程帧作为接收器的节点,可以通过向相应的数据源节点发送远程帧激活该源节点,让该源节点把

13、数据发送给接收器。远程帧也有标准格式和扩展格式,而且都由 6 个不同的位场组成:帧起始、仲裁场、控制场、CRC 场、应答场、帧结尾。与数据帧相反,远程帧的 RTR 位是“隐性”的。它没有数据场,数据长度代码 DLC的数值是不受制约的(可以标注为容许范围8 里的任何数值) ,此数值是相应于数据帧的数据长度代码。远程帧结构如图 9.10 所示。图 9.10 远程帧结构3. 错误帧错误帧由两个不同的场组成,如图 9.11 所示。第一个场是不同节点提供的错误标志(Error Flag)的叠加,第二个场是错误界定符。为了能正确地终止错误帧, “错误认可”的节点要求总线至少有长度为 3 个位时间的总线空闲

14、(如果“错误认可”的接收器有局部错误的话) 。因此,总线的载荷不应为100%。 错 误 帧图 9.11 错误帧结构(图中统一起见出错帧改为错误帧)(1) 错误标志有两种形式的错误标志:激活错误标志和认可错误标志(有的文献译为:“主动”和“被动”错误标志或“活动”和“认可” 错误标志) 。 “激活错误”标志由 6 个连续的“显性”位组成。 “认可错误”标志由 6 个连续的“隐性”的位组成,除非被其他节点的“显性”位重写。检测到错误条件的“错误激活”的节点通过发送“激活错误”标志指示错误。错误标志的格式破坏了从帧起始到 CRC 界定符的位填充规则(参见 “编码” ) ,或者破坏了 ACK场或帧结尾

15、场的固定格式。所有其他的节点由此检测到错误条件,并与此同时开始发送错误标志。所形成的“显性”位序列就是把各个节点发送的不同的错误标志叠加在一起的结果,这个序列的总长度最小为 6 个位,最大为 12 个位。检测到错误条件的“错误认可”的节点通过发送“认可错误”标志指示错误, “错误认可”的节点等待 6 个相同极性的连续位,当这 6 个相同的位被检测到时, “认可错误”标志的发送就完成。(2) 错误界定符错误界定符包括 8 个“隐性”的位。错误标志传送了以后,每一个节点就发送一个“隐性”的位,并一直监视总线直到检测出一个“隐性”的位为止,然后就开始发送其余 7 个“隐性”位。4. 过载帧过载帧(O

16、verload Frame)包括两个位场:过载标志和过载界定符,其结构如图 9.12所示。图 9.12 过载帧结构有三种过载的情况会引发过载标志的传送: 接收器的内部情况,需要延迟下一个数据帧和远程帧。 在间歇(Intermission )的第一和第二字节检测到一个“显性”位。 如果 CAN 节点在错误界定符或过载界定符的第 8 位(最后一位)采样到一个显性位,节点会发送一个过载帧。该帧不是错误帧,错误计数器不会增加。根据过载情况 1 而引发的过载帧只允许起始于所期望的间歇的第一个位时间,而根据情况 2 和情况 3 引发的过载帧应起始于所检测到“显性”位之后的位。通常为了延时下一个数据帧或远程

17、帧,两种过载帧均可产生。(1)过载标志(Overload Flag )过载标志由 6 个“显性”的位组成。过载标志的所有形式和“激活错误”标志的一样。过载标志的格式破坏了间歇场的固定格式。因此,所有其他的节点都检测到过载条件并与此同时发出过载标志。如果有的节点在间歇的第 3 个位期间检测到“显性”位,则这个位将解释为帧的起始。(2)过载界定符(Overload Delimiter )过载界定符包括 8 个“隐性”的位。过载界定符的形式和错误界定符的形式一样。过载标志被传送后,节点就一直监视总线直到检测到一个从“显性”位到“隐性”位的跳变。此时,总线上的每一个节点完成了过载标志的发送,并开始同时

18、发送其余 7 个“隐性”位。5. 帧间空间数据帧(或远程帧)与先行帧的隔离是通过帧间空间实现的,无论此先行帧类型如何(数据帧、远程帧、错误帧、过载帧) 。所不同的是,过载帧与错误帧之前没有帧间空间,多个过载帧之间也不是由帧间空间隔离的。帧间空间包括间歇、总线空闲的位场。如果“错误认可”的节点已作为前一报文的发送器,则其帧间空间除了间歇、总线空闲外,还包括称作“挂起传送” (暂停发送)(Suspend Transmission)的位场。对于不是“错误认可”的节点,或作为前一报文的接收器的节点,其帧间空间如图9.13 所示:图 9.13 非 “错误认可”帧间空间对于作为前一报文发送器的“错误认可”

19、的节点,其帧间空间如图 9.14 所示:帧 帧帧间空间总线空闲间歇场帧 帧帧间空间暂停发送场间歇场 总线空闲图 9.14 “错误激活” 帧间空间(1)间歇(Intermission )间歇包括 3 个“隐性”的位。间歇期间,所有的节点均不允许传送数据帧或远程帧,唯一要做的是标示一个过载条件。如果 CAN 节点有一报文等待发送并且节点在间歇的第三位采集到一显性位,则此位被解释为帧的起始位,并从下一位开始发送报文的标识符首位,而不用首先发送帧的起始位或成为一接收器。(2)总线空闲(Bus Idle )总线空闲的时间是任意的。只要总线被认定为空闲,任何等待发送报文的节点就会访问总线。在发送其他报文期间,有报文被挂起,对于这样的报文,其传送起始于间歇之后的第一个位。总线上检测到的“显性”的位可被解释为帧的起始。(3)挂起传送(Suspend Transmission )“错误认可”的节点发送报文后,节点就在下一报文开始传送之前或总线空闲之前发出 8个“隐性”的位跟随在间歇的后面。如果与此同时另一节点开始发送报文(由另一节点引起) ,则此节点就作为这个报文的接收器。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报