can总线协议完全解析
Abstract:Thedevelopment andapplicationoffieldbuscausedthechangesforthetraditional control system.
Control LAN(CAN)busarewidelyusedinthefieldofautomaticcontrol .becauseoftheirowncharacteristicsThis
显显显)。通常“显性”表示传输0,“隐性”表示传输
1,则最大数据为1000H,即8。
4.数据场
数据场即为被发送的数据,长度为0~8个字节,
取决于控制场中数据长度DL3~DL0。首先发送的
最高有效位。
5.CRC场
CRC场结构如图5所示。
图5 CRC场结构
CRC场由CRC序列和CRC界定符组成,CRC
序列为16位CRC检验码,CRC界定符用于标注
CRC序列的结束,为一位隐形位。CRC检验范围从
帧起始位开始直到数据场结束。其生成多项式为
15
+
14
+
10
+
8
+
7
+
4
+
3
+1。
6.应答场(ACK)
应答场为两位,如图6所示。
图6应答场组成
在应答场中发送节点送出2个隐性位,所有接
收到匹配CRC序列的节点,在应答间隙发送一个显
示位,以报告发送器接收无误。应答界定符为一个
节点都是三层结构。数据发送节点数据流为LLC→
MA C→P LS,然后将数据发送到总线上;而对于挂在
总线上的所有节点(包括发送节点)的接收的数据流
为PL S→MA C→LLC。
这种分层结构的规范保证了CAN总线的多主
方式工作模式,即不分主从,非破坏性的仲裁工作模
式。而LLC层的报文滤波功能可实现点到点、一点
CAN总线协议解析
李玉丽
(吉林建筑工程学院电气与电子信息工程学院,吉林长春,130021)
摘要:现场总线的发展与应用引起了传统控制系统结构的改变。控制局域网(C AN)总线因其自身的特点被广泛应用于
自动控制领域。本文对C AN总线协议作了详尽解析。
关键词:C AN总线;隐性位;显性位;节点
中图分类号:T U 85文献标识码:A
(1)仲裁场的组成
仲裁场如图3所示。
图3仲裁场的组成
标识符为11位,远程发送请求RTR为一个显性
位。
(2)仲裁与优先级
CAN总线的通讯模式为:载波监测、多主掌控/
冲突(CSMA/CA)。这就使得总线上任一个节点向
总线发送信息的机会是均等的。只要总线空闲,谁
都可以发送。但如果在同一时刻有两上或两个以上
应答错误:在应答间隙,发送节点未检测到显性
位。
当一个节点检测到一个CRC错误时,标识在应
答界定符之后发送,而其它错误在检测出错误的下
一位发送错误标识。
3.CAN总线故障界定及处理
每个CAN总线节点都设有发送出错记数器和
接收出错计数器。发送器送出一个错误标识时,发
送错误计数器加8,接收器检测出一个错误,接收错
CAN(Cont roll e r A rea N et work)是分布式实时控
制系统的串行通信局域网,称谓CAN总线。在数据
实时传输中,设计独特、低成本,具有高可靠性,得到
广泛应用。
本文着重解析C AN技术规范2.0B版的CAN
的分层结构规范和CAN报文结构规范。重点在于
充分理解CAN总线协议精髓,有助于CAN总线的
局网设计、软件编程、局网维护。
一、C AN的分层结构
CAN遵从O SI
( Ope n Syste m I nte rc onnec ti on
Re fe re nce Mode l
)模型,其分层结构由高到低如图1
所示。
图1 C AN的分层结构
对应OSI模型为两层,实际为三层,即LLC、
MA C、PL S。由此而知,对应于CAN总线系统每个
据场;③控制场中的PLC可为0~8的任意数值,但无
意义。
说明:对于仲裁场、控制场、数据场、CRC场、帧
间空间使用填充技术进行编码,即每5个同状态电
平插入一位与它相补的电平,还原时再予以删除。
(三)出错帧
1.出错帧格式
出错帧由2场组成,如图7所示。
图7出错帧结构
长春理工大学学报(高教版)182第3卷
错误标志具有两种形式:活动错误标识(由6个
节点同时发送信息,这就发生冲突,这就需要仲裁,
而且获得仲裁的信息不受破坏。
CAN是按位进行仲裁。当节点向总线发送信息
同时,也在读取总线的电平。如果发送的电平与读
取的电平相同,则继续发送下一位,若不同则停止发
送,退出竞争。余下的节点继续重复上述过程,直到
总线上只剩下一个节点发送的电平。而在冲突中被
仲裁下的节点,待下一个总线空闲期再次尝试发送。
第3卷第3期
2008年9月
长春理工大学学报(高教版)
J ourn a l o f C h a ngc hun U ni v e r s it y of S c i e n ce a ndT ec hno l ogy(H i ghe r E duca ti onE d iti on)
Vol. 3 No. 3
人民邮电出版社,2006.
[2]史久根,张培仁,陈真勇.CAN现场总线系统设计技术
[M].国防工业出版社,2004.
[3]求是科技.单片机通讯技术与工程实践[M].人民邮电出
版社,2005.
TheAnalysisofCANProtocol
Li Yuli
(ElectronicSchool ofJilinArchitectural andCivil EngineeringInstitute,Changchun130021,China)
误记数器加1或加8,报文成功发送后,发送错误计
数器减1,接报文成功接收后,接收错误计数器减1,
有了如上规定之后,即可定义故障界定:一个节点如
果其错误计数值在1~127(含1、127)则为错误激活
节点;在128~255(含128、255)则为错误认可节点。
错误激活节点检测出错误时,发送活动错误标识。错
对多点、全局广播、多点对一点,多点对多点等数据
传递方式。
各分层主要功能如下:
LLC层:接收滤波、超载通知、恢复管理;
MAC层:控制帧结构、执行仲裁、错误检测、出
错标定、故障界定。该层是CAN的核心;
PL S层:位编码/解码、位定时。
二、CAN总线的报文规范
CAN报文的传送有4种不同类型的帧结构,数
据帧、远程帧、出错帧、超载帧。CA B2.0B有4种帧
Sep. 2008
*收稿日期:2008 05 14
作者简介:李玉丽(1973),女,本科,实验师,研究方向为智能建筑电气设备远程监控。
标准帧进行解析。
1.帧起始标志位(SOF)
由一个显性位构成,表明某个节点开始发送信
息,所有其它节点必须与此同步(硬同步),但只有在
总线空闲时才允许起始位的发送。
2.仲裁场
这种总裁技术明显可以看出,在仲裁帧中,标识
符的二进制数值小者有较高优先级。换句话在诸多
竞争节点中,如果报文标识符的值最小,则此报文的
优先级最高。
3.控制场
控制场如图4所示。
图4控制场组成
IDE:在CAN2.0B标准格式IDE应为显性(隐性
用r表示)。
r0:保留位。
DLC3~DLC0:数据长度,最大数值为rddd(即隐
隐性位。
7.帧结束
由7个隐性位构成,表示一帧内容结束。
(二)远程帧
节点A如果索取B节点的数据时,则由A发送
远程帧,其A节点在仲裁场的标识符应为B节点的
标识符相同。
远程帧由帧起始位、仲裁场、控制场、CRC场、应
答场、帧结束6个场组成。它与数据帧的区别有:①
仲裁场的RTR位为隐性,标识此帧为远程帧;②无数
格式。
(一)数据帧
数据帧携带由发送节点到接收节点(或发送器
到接收器),由7个不同的位场组成:帧起始位、仲裁
场、控制场、数据场、CRC场、应答场、帧结束。如图
2所示。
图2数据帧结构
CAN2.0B中存在两种不同的帧格式。主要区别
在于标识符的长度。具有11位标识符的帧称为标
准帧,具有29位标识符的帧称为扩展帧。本文只对Leabharlann Baidu
papergivesadetailedexplanationtoCANbusprotocol works.
Keywords:CANbus;recessivebit;dominant bit;node
183李玉丽:CAN总线协议解析第3期
后,都在监视总线,当检测到一个隐性位后,再发送7
个隐性位,故错误界定符为8个隐性位。
2.CAN总线的错误类型
CAN总线有5种错误类型、它们互不排斥。
位错误:总线检测出某一位出错。
填充错误:使用填充方法进行编码为报文中,出
现6个连续相同的电平。
CRC错误:CRC值不匹配。
形式错误:固定的位场中出现非法位。
图8超载帧结构
超载标志及超载界定符与出错帧标识相同,其
引发和处理过程也是一样的。
(五)帧间空间
不管何种帧,均以称之为帧间空间的位场分开,
但超载帧、出错帧之前无帧间空间,如图9所示。
图9帧间空间结构
间歇场为3个隐位,在此期间不允许启动数据
帧和远程帧。总线空闲周期可以任意长。
参考文献:
[1]李正军.现场总线与工业以太网及其应用系统设计[M].
误认可节点检测出错误时,发送认可错误标识;当错
误读数值大于或等于256时,总线关闭。错误计数
值大于96时,说明总线被严重干扰。
对于总线关闭的节点,在监测总线上11个连续
隐性位发生128次,则此节点总线启动,成为错误计
数器为零值的错误激活节点。
(四)超载帧
超载帧用于在接收节点未准备好的情况下请求
对数据帧或远程帧延时,由2个位场组成,见图8。
显位组成)、认可错误标识(由6个隐位组成)。
当一个节点发出错误帧时,其出错标识为连续6
个显性位或连续6个隐性位。CAN总线规定使用填
充技术的编码不允许连续出现6个同状态电平,某
一节点标识传送后,其它节点由于总线上的连续电
平的出现,破坏帧格式,补发送错误标识,因此错误
标识叠加后占6~12位。各节点在发出错误标识之