CAN报文的传送和帧结构

发布 2019-07-11 08:58:17 阅读 5874

9.2.2 can报文的传送和帧结构

在进行数据传送时,发出报文的节点为该报文的发送器。该节点在总线空闲或丢失仲裁前恒为发送器,如果一个节点不是报文发送器,并且总线不处于空闲状态,则该节点为接收器。

构成一帧的帧起始、仲裁场、控制场、数据场和crc序列均借助位填充规则进行编码。当发送器在发送的位流中检测到5位连续的相同数值时,将自动在实际发送的位流中插入一个补码位。而数据帧和远程帧的其余位场则采用固定格式,不进行填充,出错帧和超载帧同样是固定格式。

报文中的位流是按照非归零(nzr)码方法编码的,因此一个完整的位电平要么是显性,要么是隐性。

在“隐性”状态下, can总线输出差分电压。

— 近似为零,在“显性”状态下,以大于最小阈值的差分电压表示,如图9.2所示。在总线空闲或“隐性”位期间,发送“隐性”状态。在“显性”位期间,“隐性”状态改写为“显性”状态。

图9.2总线上的位电平表示。

can有两种不同的帧格式,不同之处为识别符场的长度不同:具有11位识别符的帧称之为标准帧;而含有29位识别符的帧为扩展帧。can报文有以下4个不同的帧类型:

数据帧:数据帧将数据从发送器传输到接收器。

远程帧:总线节点发出远程帧,请求发送具有同一识别符的数据帧。

错误帧:任何节点检测到总线错误就发出错误帧。

过载帧:过载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。

数据帧和远程帧可以使用标准帧及扩展帧两种格式。它们用一个帧间空间与前面的帧分隔。

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中存在两种不同的帧格式,其主要区别在标识符的长度,在标准帧格式里,仲裁场由11位识别符和远程请求位(rtr)组成。如图9.

4所示。在扩展帧格式里,仲裁场包括29位识别符、替代远程请求位(srr)、识别符扩展位(ide)和rtr位。如图9.

5所示。

图9.4 标准格式中的数据帧。

图9.5 扩展格式中的数据帧。

扩展格式是can协议的一个新特色。为了使控制器的设计相对地简单,不要求执行完全的扩展格式,但必须完全支持标准格式。新的控制器至少应具有以下属性,才被认为是符合can规范:

每一新的控制器支持标准格式;

每一新的控制器可以接收扩展格式的报文,不能因为格式差别而破坏扩展帧格式。

下面具体分析数据帧的每一个位场。

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标准,标准格式帧与扩展格式帧的仲裁场标识符格式不同。标准格式里,仲裁场由11位识别符和rtr位组成。

识别符位由id.28…id.18组成。

如图9.4所示。而在扩展格式里,仲裁场包括29位识别符、替代远程请求位srr、标识位ide、远程发送请求位rtr。

其识别符由id-28…id-0组成,其格式包含两个部分:11位(id.28…id.

18)基本id、18位(id.17…id.0)扩展id。

如图9.5所示,扩展格式里,基本id首先发送,其次是srr位和ide位。扩展id的发送位于srr位和ide位之后。

srr的全称是“替代远程请求位(substitute remote request bit)”,srr是一隐性位。它在扩展格式的标准帧rtr位上被发送,并代替标准帧的rtr位。因此,如果扩展帧的基本id和标准帧的识别符相同,标准帧与扩展帧的冲突是通过标准帧优先于扩展帧这一途径得以解决的。

ide的全称是“识别符扩展位(identifier extension bit)”,对于扩展格式,ide位属于仲裁场;对于标准格式,ide位属于控制场。标准格式的ide位为“显性”,而扩展格式的ide位为“隐性”。

3)控制场。

控制场由6个位组成,其结构如图9.7所示。标准格式和扩展格式的控制场格式不同。

标准格式里的帧包括数据长度**、ide位(为显性位,见上文)及保留位r0。扩展格式里的帧包括数据长度**和两个保留位:r1和r0。

其保留位必须发送为显性,但是接收器认可“显性”和“隐性”位的任何组合。

数据长度**(标准格式以及扩展格式)dlc,如表9.1所示。

图9.7 控制场结构。

表9.1 数据帧长度**dlc

数据长度**指示了数据场里的字节数量。其中:d—“显性”, r—“隐性”,数据帧允许的数据字节数为。其他的数值不允许使用。

4) 数据场。

数据场由数据帧里的发送数据组成。它可以为0~8个字节,每字节包含了8个位,首先发送最高有效位。

5) 循环冗余码crc场。

crc场包括crc序列(crc sequence),其后是crc界定符(crc delimiter),如图9.8所示。

图9.8 循环冗余码crc场。

crc序列(适合标准格式和扩展格式)

crc序列由循环冗余码求得的帧检查序列组成,最适用于位数低于127的帧。为进行crc计算,被除的多项式系数由无填充位流给定。组成这些位流的成分是:

帧起始、仲裁场、控制场、数据场(假如有的话),而15个最低位的系数是0。将此多项式被下列多项式发生器除(其系数以2为模):

x15+x14+x10+x8+x7+x4+x3+1

这个多项式除法的余数就是发送到总线上的crc序列。为了实现这个功能,可以使用15位的位移寄存器—crc_rg(14:0)。

如果nxtbit指示位流的下一位,那么从帧的起始到数据场末尾都由没有填充的位顺序给定。crc序列的计算如下:

crc_rg=0初始化移位寄存器。

repeat

crcnxt=nxtbit exor crc_rg(14);

crc_rg(14:1)=crc_rg(13:0); 寄存器左移一位。

crc_rg(0)=0;

if crcnxt then

crc_rg(14:0)=crc_rg(14:0)exor(4599h);

end if

until(crc序列起始或有一错误条件)

crc界定符(标准格式以及扩展格式)

crc序列之后是crc界定符,它包含一个单独的“隐性”位。

6)应答场(ack field)

应答场长度为2个位,包含应答间隙(ack slot)和应答界定符(ack delimiter),如图9.9所示。在ack场(应答场)里,发送节点发送两个“隐性”位。

当接收器正确地接收到有效的报文,接收器就会在应答间隙(ack slot)期间向发送器发送一“显性”位以示应答。

应答间隙。

所有接收到匹配crc序列(crc sequence)的节点会在应答间隙(ack slot)期间用一“显性”的位写入发送器的“隐性”位来做出回答。

应答界定符。

应答界定符是应答场的第二个位,并且是一个必须为“隐性”的位。因此,应答间隙(ack slot)被两个“隐性”的位所包围,也就是crc界定符(crc delimiter)和应答界定符(ack delimiter)。

图9.9 应答场。

7)帧结尾(标准格式以及扩展格式)

每一个数据帧和远程帧均由一标志序列界定。这个标志序列由7个“隐性”位组成。

2. 远程帧。

作为接收器的节点,可以通过向相应的数据源节点发送远程帧激活该源节点,让该源节点把数据发送给接收器。远程帧也有标准格式和扩展格式,而且都由6个不同的位场组成:帧起始、仲裁场、控制场、crc场、应答场、帧结尾。

与数据帧相反,远程帧的rtr位是“隐性”的。它没有数据场,数据长度**dlc的数值是不受制约的(可以标注为容许范围0~8里的任何数值),此数值是相应于数据帧的数据长度**。远程帧结构如图9.

10所示。

图9.10远程帧结构。

3. 错误帧。

错误帧由两个不同的场组成,如图9.11所示。第一个场是不同节点提供的错误标志(error flag)的叠加,第二个场是错误界定符。

为了能正确地终止错误帧,“错误认可”的节点要求总线至少有长度为3个位时间的总线空闲(如果“错误认可”的接收器有局部错误的话)。因此,总线的载荷不应为100%。

图9.11 错误帧结构(图中统一起见出错帧改为错误帧)

1) 错误标志。

有两种形式的错误标志:激活错误标志和认可错误标志(有的文献译为:“主动”和“被动”错误标志或“活动”和“认可” 错误标志)。

“激活错误”标志由6个连续的“显性”位组成。

“认可错误”标志由6个连续的“隐性”的位组成,除非被其他节点的“显性”位重写。

检测到错误条件的“错误激活”的节点通过发送“激活错误”标志指示错误。错误标志的格式破坏了从帧起始到crc界定符的位填充规则(参见“编码”),或者破坏了ack场或帧结尾场的固定格式。所有其他的节点由此检测到错误条件,并与此同时开始发送错误标志。

所形成的“显性”位序列就是把各个节点发送的不同的错误标志叠加在一起的结果,这个序列的总长度最小为6个位,最大为12个位。

检测到错误条件的“错误认可”的节点通过发送“认可错误”标志指示错误,“错误认可”的节点等待6个相同极性的连续位,当这6个相同的位被检测到时,“认可错误”标志的发送就完成。

2) 错误界定符。

聚丙烯的结构和性能

课题 聚丙烯的结构和性能。2.中国纺机网。聚丙烯纤维。一。聚丙烯纤维的及纺丝 聚丙烯的生产过程包括四个主要工序,及丙烯的制备 催化剂的制备 丙烯聚合 聚丙烯的提纯和精处理。二。聚丙烯纤维形态结构和聚集态结构。分子式 聚丙烯纤维由熔体纺丝发制得,一般情况下,纤维截面呈圆形,纵向光滑无条纹。聚丙烯的机构...

人工薄壳结构和天然薄壳结构的区别

建筑结构选型。自然界中有十分丰富的天然壳体结构实例,如蛋壳 贝壳 脑壳 植物种子的外壳等,日常生活中也有许多人工壳体结构的实例,比如碗 罐 安全帽,还有许多建筑的外壳也是模仿了这种结构。他们都是以最少的材料构成特定的使用空间,并具有一定的刚度和强度。薄壳结构建筑属于仿生建筑,他将自然界中的薄壳结构运...

电冰箱的结构和工作原理

一 电冰箱的结构。外形。组成部件。电冰箱由箱体 制冷系统 控制系统和附件构成。在制冷系统中,主要组成有压缩机 冷凝器 蒸发器和毛细管节流器四部分,自成一个封闭的循环系统。控制系统中主要有温控器 热继电器 过载保护器 门碰开关等。二 工作原理。系统里充灌了一种叫 氟里昂12 cf2cl2,国际符号r1...