-
CAN
报文的传送和帧结构
p>
在进行数据传送时,发出报文的节点为该报文的发送器。该节点在总线空闲
< br>或丢失仲裁前恒为发送器,
如果一个节点不是报文发送器,
并且总线不处于空闲
状态,则该节点为接收器。
构成一帧的帧起始、仲裁场、控制场、数据场和
CRC
序列均借助位填充规
则进行编码。
当发送器在发送的位流中
检测到
5
位连续的相同数值时,
将自动
在
实际发送的位流中插入一个补码位。
而数据帧和远程帧的其余
位场则采用固定格
式,
不进行填充,
出
错帧和超载帧同样是固定格式。
报文中的位流是按照非归零
(<
/p>
NZR
)码方法编码的,因此一个完整的位电平要么是显性,要么
是隐性。
在“隐性”状态下,
CAN
总线输出差分电压
=
—
近似为零,
在“显性”状态下,以大于最小阈值的差分电压表示,如图
9.2
所示。在总
线空闲或“隐性”位期间,发送“隐性”状态。在“显性”位期间,“隐
性”状
态改写为“显性”状态。
图<
/p>
9.2
总线上的位电平表示
p>
CAN
有两种不同的帧格式,不同之处为识别符场的长度不同:具有
11
位识
别符的帧称之为标准帧;而含
有
29
位识别符的帧为扩展帧。
CAN
报文有以下
4
个不同的帧类型:
?
数据帧:数据帧将数据从发送器传输到接收器。
?
远程帧:总线节点发出远程帧,请
求发送具有同一识别符的数据帧。
?
错误帧:任何节点检测到总线错误就发出错误帧。
?
过载帧:过载帧用以在先行的和后
续的数据帧(或远程帧)之间提供一
附加的延时。
数据帧和远程帧可以使用标准帧及扩展帧两种格式。
它们用一个帧间空间与
前面的帧分隔。
1.
数据帧
数据帧由
7
个不同的位场组成:
帧起始
(<
/p>
Start of Frame
)
、
p>
仲裁场
(
Arbitration
Frame
)
、
控制
场
(
Control Frame
)<
/p>
、
数据场
(
Da
ta Frame
)
、
CRC
场
(
CRC Frame
)
、
应答场(
ACK
Frame
)、帧结尾(
End of Frame
)。数据场的长度为
0
到
8
位。
报文的数据帧一般结构如图
9.
3
所示。
图
9.3
报文的数据帧结构
在
CAN2.0B
中存在两种不同的帧格式,其主要区别在标识符的长度,在标<
/p>
准帧格式里,仲裁场由
11
位识别符和远
程请求位(
RTR
)组成。如图
9.4
所示。
在扩展帧格式里,仲裁场包括
2
9
位识别符、替代远程请求位(
SRR
)、识别符
扩展位(
IDE
)和
RTR
位。如图
9.5
所示。
图
9.4
标准格式中的数据帧
图
9.5
扩展格式中的数据帧
扩展格式是
p>
CAN
协议的一个新特色。为了使控制器的设计相对地简单,不
p>
要求执行完全的扩展格式,
但必须完全支持标准格式。
新的控制器至少应具有以
下属性,才被认为是符合
C
AN
规范:
每一新的控制器支持标准格式;
每一新
的控制器可以接收扩展格式的报文,
不能因为格式差别而破坏扩展帧
格式。
下面具体分析数据帧的每一个位场。
(
1
)帧起始
帧起始(
SOF
)标志数据帧或远程帧
的开始,仅由一个
“
显性
”
位组成。只有
在总线空闲时才允许节点开始发送
(
信号)
。
所有节点必须同步于首先开始发送
报文的节点的帧起始前沿,如图
9.3
所示。
(
2
)仲裁场
仲裁场由标识符和远程发送请求位(
RTR
位)组成。
RTR
位在数据帧中为
显性,在远程帧中为隐性。
对于
CA
N2.0A
标准,
标识符长度为
11<
/p>
位,
这些位按
ID.10
到
ID.0
的顺序发
送
,
最低位是
ID0
,
7
个最高位(
ID.10-ID.4<
/p>
)必须不能全是“隐性”,如图
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<
/p>
位(
ID.28…ID.18
)基本
p>
ID
、
18
位(<
/p>
ID.17…ID.0
)扩
展
ID
。如图
9.5
所示,
扩展格式里,基本
ID
首先发送,其次是
SRR
位和
IDE
位。扩展
ID
的发送位于
SRR
位和
IDE
位之后。
SRR
的全称是“替代远程请求位(
Substitu
te Remote Request BIT
)”,
SRR<
/p>
是一隐性位。
它在扩展格式的标准帧
RT
R
位上被发送,
并代替标准帧的
RTR
位。
因此,如果扩展帧的基本
ID
p>
和标准帧的识别符相同,标准帧与扩展帧的冲突是
通过标准帧优先于
扩展帧这一途径得以解决的。
IDE
的全称是“识别符扩展位(
Identifier Extension Bit
)”,对于扩展格式,
IDE
位属于仲裁场;
对于标准格式,
IDE
位属于控制场。
标准格式的
IDE
位为
“显
性”,而扩展格式的
IDE
位为“隐性”。
(
3
)控制场
控制场由
6
个位组成,其结构如图
p>
9.7
所示。标准格式和扩展格式的控制场
格式不同。标准格式里的帧包括数据长度代码、
IDE
位(为显
性位,见上文)及
保留位
r0
。扩展格
式里的帧包括数据长度代码和两个保留位:
r1
和
r0
。其保留
位必须发送为显性,但是接收器认可“
显性”和“隐性”位的任何组合。
数据长度代码(标准格式以
及扩展格式)
DLC
,如表
9.1
p>
所示。
图
9.7
控制场结构
表
9.1
数据帧长度代码
DLC
数据字节的数目
0
1
2
3
4
5
6
7
8
数据长度代码
DLC3
d
d
d
d
d
d
d
d
r
DLC2
d
d
d
d
r
r
r
r
d
DLC1
d
d
r
r
d
d
r
r
d
DLC0
d
r
d
r
d
r
d
r
d
数据长度代码指示了数据场里的字节数量。
其中:
d
—
“显性”
,
r
—
“隐性”
,
数据帧允许的数据字节数为
{0
,
1
,
…7
,
8}
。其他的数值不允许使用。
(4)
数据场
数据场由数据帧里的发送数据组成。它可以为
0~8
个字节
,每字节包含了
8
个位,首先发送最高有效位。
(5)
循环冗余码
CRC
场
CRC
场
包括
CRC
序列
(
CRC Sequence
)
,
其
后是
CRC
界定符
(
< br>CRC Delimiter
)
,
如图
9.8
所示。
图
9.8
循环冗余码
CRC
场
< br>
①
CRC
序列(适合标准格式和扩展格式)
CRC
序列由循环冗余码求得的帧检查序列组成,最适用于位数低于
127
的
帧。为进行
CRC<
/p>
计算,被除的多项式系数由无填充位流给定。组成这些位流的
成分
是:帧起始、仲裁场、控制场、数据场(假如有的话),而
15
个最低位的
系数是
0
。将此多项式被下
列多项式发生器除(其系数以
2
为模):
-
-
-
-
-
-
-
-
-
上一篇:20172018七年级上册生物复习提纲
下一篇:JAZZ音阶和术语表