首页 理论教育现场总线与工业以太网:报文传送与帧结构

现场总线与工业以太网:报文传送与帧结构

【摘要】:对于报文发送器和接收器,报文的实际有效时刻是不同的。图7-24 位填充报文传送由4种不同类型的帧表示和控制:数据帧携带数据由发送器至接收器;远程帧通过总线单元发送,以请求发送具有相同标识符的数据帧;出错帧由检测出总线错误的任何单元发送;超载帧用于提供当前的和后续的数据帧的附加延迟。标准格式和扩展格式的数据帧结构如图7-26所示。帧结束每个数据帧和远程帧均由7个隐性位组成的标志序列界定。

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

对于报文发送器和接收器,报文的实际有效时刻是不同的。对于发送器而言,如果直到帧结束末尾一直未出错,则对于发送器报文有效。如果报文受损,将允许按照优先权顺序自动重发。为了能同其他报文进行总线访问竞争,总线一旦空闲,重发送立即开始。对于接收器而言,如果直到帧结束的最后一位一直未出错,则对于接收器报文有效。

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

报文中的位流按照非归零码方法编码,这意味着一个完整位的位电平要么是显性,要么是隐性。

978-7-111-35607-3-Chapter07-43.jpg

图7-24 位填充

报文传送由4种不同类型的帧表示和控制:数据帧携带数据由发送器至接收器;远程帧通过总线单元发送,以请求发送具有相同标识符的数据帧;出错帧由检测出总线错误的任何单元发送;超载帧用于提供当前的和后续的数据帧的附加延迟。

数据帧和远程帧借助帧间空间与当前帧分开。

1.数据帧

数据帧由7个不同的位场组成,即帧起始(SOF)、仲裁场、控制场、数据场、CRC场、应答(ACK)场和帧结束。数据场长度可为0。CAN 2.0A数据帧的组成如图7-25所示。

978-7-111-35607-3-Chapter07-44.jpg

图7-25 CAN2.0A数据帧组成

在CAN 2.0B中存在两种不同的帧格式,其主要区别在于标识符的长度,具有11位标识符的帧称为标准帧,而包括29位标识符的帧称为扩展帧。标准格式和扩展格式的数据帧结构如图7-26所示。

978-7-111-35607-3-Chapter07-45.jpg

图7-26 标准格式和扩展格式数据帧

为使控制器设计相对简单,并不要求执行完全的扩展格式(例如,以扩展格式发送报文或由报文接收数据),但必须执行标准格式。如新型控制器至少具有下列特性,则可被认为同CAN技术规范兼容:每个控制器均支持标准格式;每个控制器均接收扩展格式报文,即不至于因为它们的格式而破坏扩展帧。

CAN 2.0B对报文滤波特别加以描述,报文滤波以整个标识符为基准。屏蔽寄存器可用于选择一组标识符,以便映像至接收缓存器中。屏蔽寄存器每一位都必须是可编程的,它的长度可以是整个标识符,也可以仅是其中一部分。

(1)帧起始

标志数据帧和远程帧的起始,仅由一个显性位构成。只有在总线处于空闲状态时,才允许站开始发送。所有站都必须同步于首先开始发送的那个站的帧起始前沿。

(2)仲裁场

由标识符和远程发送请求(RTR)组成。仲裁场如图7-27所示。

978-7-111-35607-3-Chapter07-46.jpg

图7-27 仲裁场组成

对于CAN 2.0B标准,标识符的长度为11位,这些位以从高位到低位的顺序发送,最低位为ID.0,其中最高7位(ID.10~ID.4)不能全为隐性位。

RTR位在数据帧中必须是显性位,而在远程帧中必须为隐性位。

对于CAN 2.0B标准格式和扩展格式的仲裁场格式不同。在标准格式中,仲裁场由11位标识符和远程发送请求位组成,标识符位为ID.28~ID.18;而在扩展格式中,仲裁场由29位标识符和替代远程请求(SRR)位、标识位和远程发送请求位组成,标识符位为ID.28~ID.0。

为区别标准格式和扩展格式,将CAN 2.0B标准中的r1改记为IDE位。在扩展格式中,先发送基本ID,其后是IDE位和SRR位。扩展ID在SRR位后发送。

SRR位为隐性位,在扩展格式中,它在标准格式的RTR位上被发送,并替代标准格式中的RTR位。这样,标准格式和扩展格式的冲突由于扩展格式的基本ID与标准格式的ID相同而宣告解决。

IDE位对于扩展格式属于仲裁场,对于标准格式属于控制场。IDE在标准格式中为显性电平,在扩展格式中为隐性电平。

(3)控制场

控制场由6位组成,如图7-28所示。

978-7-111-35607-3-Chapter07-47.jpg

图7-28 控制场组成

由图7-28可以看出,控制场包括数据长度码(DLC)和两个保留位,这两个保留位必须发送显性位,但接收器认可显性位与隐性位的全部组合。

数据长度码指出数据场的字节数目。数据长度码为4位,在控制场中被发送。数据长度码中数据字节数目编码见表7-18。其中,d表示显性位,r表示隐性位。数据字节的允许使用数目为0~8,不能使用其他数值。

表7-18 数据长度码中数据字节数目编码

978-7-111-35607-3-Chapter07-48.jpg

(4)数据场

由数据帧中被发送的数据组成,它可包括0~8个字节,每个字节8位。首先发送的是最高有效位。

(5)CRC场

CRC场包括CRC序列和CRC界定符。CRC场结构如图7-29所示。(www.chuimin.cn)

978-7-111-35607-3-Chapter07-49.jpg

图7-29 CRC场结构

CRC序列由循环冗余码求得的帧检查序列组成,最适用于位数小于127(BCH码)的帧。为实现CRC计算,被除的多项式系数由包括帧起始、仲裁场、控制场、数据场(若存在的话)在内的无填充的位流给出,其15个最低位的系数为0,此多项式被发生器产生的下列多项式除(系数为模2运算):

X15+X14+X10+X8+X7+X4+X3+1

发送/接收数据场的最后一位是CRC序列,CRC序列后面是CRC界定符,它只包括一个隐性位。

(6)应答场

应答场为两位,包括应答间隙和应答界定符,如图7-30所示。

978-7-111-35607-3-Chapter07-50.jpg

图7-30 应答场组成

在应答场中,发送器送出两个隐性位。一个正确地接收到有效报文的接收器,在应答间隙将此信息通过发送一个显性位报告给发送器。所有接收到匹配CRC序列的站,通过在应答间隙内把显性位写入发送器的隐性位来报告。

应答界定符是应答场的第二位,并且必须是隐性位。因此,应答间隙被两个隐性位(CRC界定符和应答界定符)包围。

(7)帧结束

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

2.远程帧

激活为数据接收器的站可以借助于传送一个远程帧初始化各自源节点数据的发送。远程帧由6个不同分位场组成:帧起始、仲裁场、控制场、CRC场、应答场和帧结束。

同数据帧相反,远程帧的RTR位是隐性位。远程帧不存在数据场。DLC的数据值是没有意义的,它可以是0~8中的任何数值。远程帧的组成如图7-31所示。

978-7-111-35607-3-Chapter07-51.jpg

图7-31 远程帧组成

3.出错帧

出错帧由两个不同场组成,第一个场由来自各帧的错误标志叠加得到,第二个场是错误界定符。出错帧的组成如图7-32所示。

978-7-111-35607-3-Chapter07-52.jpg

图7-32 出错帧组成

为了正确地终止出错帧,一种“错误认可”节点可以使总线处于空闲状态至少3个位时间(如果错误认可接收器存在本地错误),因而总线不允许被加载至100%。

错误标志具有两种形式,一种是活动错误标志(Active Error Flag);另一种是认可错误标志(Passive Error Flag)。活动错误标志由6个连续的显性位组成;而认可错误标志由6个连续的隐性位组成,除非被来自其他节点的显性位冲掉重写。

4.超载帧

超载帧包括两个位场:超载标志和超载界定符,如图7-33所示。

存在两种导致发送超载标志的超载条件:一个是要求延迟下一个数据帧或远程帧的接收器的内部条件;另一个是在间歇场检测到显性位。由前一个超载条件引起的超载帧起点,仅允许在期望间歇场的第一位时间开始,而由后一个超载条件引起的超载帧在检测到显性位的后一位开始。在大多数情况下,为延迟下一个数据帧或远程帧,两种超载帧均可产生。

978-7-111-35607-3-Chapter07-53.jpg

图7-33 超载帧组成

超载标志由6个显性位组成。全部形式对应于活动错误标志形式。超载标志形式破坏了间歇场的固定格式,因此,所有其他站都将检测到一个超载条件,并且由它们开始发送超载标志(在间歇场第三位期间检测到显性位的情况下,节点将不能正确理解超载标志,而将6个显性位的第一位理解为帧起始)。第6个显性位违背了引起出错条件的位填充规则。

超载界定符由8个隐性位组成。超载界定符与错误界定符具有相同的形式。发送超载标志后,站监视总线直到检测到由显性位到隐性位的发送。在此站点上,总线上的每一个站均完成送出其超载标志,并且所有站一致地开始发送剩余的7个隐性位。

5.帧间空间

数据帧和远程帧同前面的帧相同,不管是何种帧(数据帧、远程帧、出错帧或超载帧)均以称之为帧间空间的位场分开。相反,在超载帧和出错帧前面没有帧间空间,并且多个超载帧前面也不被帧间空间分隔。

帧间空间包括间歇场和总线空闲场,对于前面已经发送报文的“错误认可”站还有暂停发送场。对于非“错误认可”或已经完成前面报文的接收器,其帧间空间如图7-34所示;对于已经完成前面报文发送的“错误认可”站,其帧间空间如图7-35所示。

978-7-111-35607-3-Chapter07-54.jpg

图7-35 “错误认可”帧间空间

间歇场由3个隐性位组成。间歇期间,不允许启动发送数据帧或远程帧,它仅起标注超载条件的作用。

总线空闲周期可以是任意长度。此时,总线是开放的,因此任何需要发送的站均可访问总线。在其他报文发送期间,暂时被挂起的待发报文紧随间歇场从第一位开始发送。此时总线上的显性位被理解为帧起始。

暂停发送场是指错误认可站发完一个报文后,在开始下一次报文发送或认可总线空闲之前,它紧随间歇场后送出8个隐性位。如果其间开始一次发送(由其他站引起),本站将变为报文接收器。