欢迎来到专业的尚善文档网平台! 工作总结 工作计划 读后感 发言稿 心得体会 申请书大全 思想汇报 述职报告
当前位置:尚善文档网>作文大全 > CAN总线网络的实时性研究和改进

CAN总线网络的实时性研究和改进

时间:2022-03-16 08:19:25 浏览量:

摘要:由于CAN总线的独特优势,CAN已成为工业数据通信的主流技术之一,这就要求它具有良好的实时性和可靠性。但是随着CAN总线控制网络复杂化,控制节点的增多,带宽分配不均问题也随之凸显,使得总线上低优先级的站点数据传输延时增加。提出了动态优先级算法,它能够动态改变站点优先级,解决带宽分配不均问题,实现数据实时传输;简要介绍时间触发CAN(TTCAN)协议,并通过实验与动态优先级算法和标准CAN协议进行比较,得出网络延时特征。

关键词: 实时性; 动态优先级; TTCAN; 网络延时

中图分类号:TN91134文献标识码:A文章编号:1004373X(2011)22004604

Research and Improvement of Realtime Performance of CAN Bit Network

LIU Xiangming, FANG Jianan

(Donghua University College of Information Science and Technology,Shanghai 201620,China)

Abstract: Due to the unique advantage of CAN bus, CAN has become one of the mainstream technologies for the industrial data communication, which requires good realtime performance and reliability. With the complexity of CANNCS and the increase of control nodes, the unequal distribution of the bandwidth highlights, which makes the data transmission delay of low priority nodes in the bus more serious. The dynamic priority algorithm is put forward. It can change the priority level of the nodes dynamically, solve the problem of unequal bandwidth distribution and realize the realtime data transmission. The time trigger CAN (TTCAN) protocol is introduced. The dynamic priority algorithm and the standard CAN protocol were compared, and the delay characteristics of networks were obtained in the experiment.

Keywords: CAN; realtime performance; dynamic priority; TTCAN; network delay

收稿日期:201107260引言

控制局域网(Controner Aera Net,CAN)是德国Boasch公司于1983年为汽车应用而开发的一种有效支持分布式控制的串行控制网络。尽管CAN最初是为汽车电子系统设计的,但由于它在开放性和技术方面的独特优势,在航天、电力、石化等领域都得到了广泛应用。在火车、轮船、楼宇自动化、过程自动化仪表中,都有CAN技术的身影。CAN已成为工业数据通信的主流技术之一[1]。

CAN总线具有多主发送、采用确定性的优先级仲裁机制等特点,保证了CAN总线数据通信的可靠性、实时性和灵活性。在数据通信过程中,如果出现碰撞,低优先级的节点会主动退出,而最高优先级的节点可以不受影响继续传输数据,从而大大节省了总线冲突仲裁时间,保证了传输数据的实时性。但是这种静态优先级机制的一个缺点就是不能均等地为高优先级和低优先级站点分配带宽,在网络负载很大时,低优先级站点会在多次竞争总线使用权时失败,从而导致低优先级站点消息传输产生不确定的延时,甚至无法发送。本文针对CAN的这个问题,在参考文献的基础上,结合消息型和事件型消息,提出了动态优先级算法和基于时间触发的TTCAN静态调度算法。通过仿真实验,将动态优先级算法、静态优先级调度算法和标准CAN进行比较,得到网络延时特性。

1CAN协议帧及仲裁机制

为了提高CAN总线传输数据的可靠性和传输距离,CAN采用差分方式输出。双绞线的一根为CANH,另外一根为CANL。CAN总线具有两种逻辑电平:显性电平和隐性电平。在传输一个显性位时,总线呈现显性状态;在传输一个隐性位时,总线呈现隐性状态。隐性状态时,CANH和CANL两条线之间的差分电压Vdiff近似为0;显性状态时,CANH和CANL两条线之间的差分电压Vdiff的幅值一般为2~3 V,明显高于隐性状态时的差分电压值。CAN总线上的位电平如图1所示。

图1CAN总线上的位电平在CAN总线上,显性位可以改写隐性位。当总线上2个不同节点在同一位时间分别强加显性和隐性时,总线上呈现显性位,即显性位可以覆盖修改隐性位。显性位一般表示逻辑0,隐性位一般表示逻辑1[2]。

CAN采用载波监听多路访问、逐位仲裁的非破坏性总线仲裁技术。按CAN总线上节点对实时性要求的紧急程度,可预先将节点分成不同的优先级。优先级编号越大,其站点的优先级越低。优先级编号作为标识符的组成部分被置于报文仲裁场。在总线仲裁期间,优先级较低的节点会主动退出发送,而优先级可不受影响继续传输数据,简化了总线的冲突仲裁过程,在一定程度上提高了通信的确定性和实时性。其仲裁规则[3]为:

(1) 预发帧的字节,当总线在空闲时同时发送帧且同步于SOF的上升沿;

(2) 各帧的标识符字段在总线同时相遇,借助总线使标识字段逐位“线与”,根据其结果进行冲突仲裁;

(3) 如果发送节点没有检测到冲突,则继续发送下一位;

(4) 如果发送节点检测到冲突,则立即中断,不再继续后面位的发送;

(5) 各标识字段逐位“线与”结束后,未监测到冲突的字节便获得优先发送权,可以发送数据帧后边的字段;如检测到冲突的节点,则不能发送后边的数据字段,而等待下一次发送。

CAN数据帧由7个不同的位场组成,即帧起始、仲裁场、控制场、数据场、CRC场、应答场和帧尾。数据帧中数据场的长度可以为0。数据帧的位场排列如图2所示。数据帧的结构有两种格式,即标准格式和扩展格式。这两种帧格式的主要区别在于标识符的长度,标准格式数据帧具有11位标识符,扩展格式数据帧具有29位标识符。本文以扩展格式为例进行论述。帧的开始有起始标志位表示,它仅由一个显位组成;接下来是仲裁场,当发生冲突时,两个不同优先级站点同时竞争总线的使用权,并且由高位开始,逐位比较下去,当出现优先级不同位时,标识符位为0的胜出,获得总线使用权,所以标识符数值越小,优先级越高[4]。

图2数据帧的位场排列目前有很多文献关于CAN协议的改进,基本都是局限于周期型消息的处理,但是在实际工业现场有很多诸如报警、故障等突发型消息,这些都是事件型消息,都未能有效处理。基于此,本文兼顾周期型和事件型消息,以CAN 2.0B扩展帧格式为例,通过重新定义ID字段的含义来解决带宽分配不均的问题。这种重新定义的帧并未改变扩展帧的格式,所以能与其他CAN系统兼容,如图3所示。扩展格式帧的ID字段被重新定义为3个部分:类间优先级域(1 b)、类内优先级域(8 b)、内容标示域(20 b)[5]。

图3改进后CAN协议帧格式图3中,类间优先级域为1 b,在实际应用中将0分给事件型消息,使其具有最高优先级,将1分给周期型消息;类内优先级域为8 b,用于标示同种类型消息的优先级大小,数值越小,优先级越高;内容标识符域为20 b,可以根据实际的需要对其进行定义,在类间优先级和类内优先级大小都一样的情况少,也可进一步起到辅助仲裁的作用。

2动态优先级调度算法

CAN总线的特点之一就是多主发送,各个站点在任何时候都可以随机发送数据,如果在某一个时刻有2个或都2个以上的站点要发送数据,就要通过非破坏性仲裁机制进行仲裁来竞争总线的使用权,标识符数值小的站点即优先级较高的站点可以获得总线使用权,竞争失败的站点则需等待下次重新竞争,当网络负载较大时,优先级较低的站点很可能在多次竞争中失败,从而数据不能及时发送,或有时发送产生冲突有时顺利发送,造成发送延时的不确定性,这就是带宽分配不均所造成的。为了解决随着网络负载增加所造成的带宽分配不均,本文提出了动态优先级算法[6]。动态优先级算法是一种随着时间推移动态改变各个站点优先级的算法,与原有的静态分配优先级算法相比,该算法可使每个站点均等地竞争总线的使用权,即能够均等地分配带宽,从而保证消息的实时传输。方法如下:初始情况下各个站点均有事先分配好的优先级,在不发生冲突的情况下,按原有优先级来完成数据的传送。当发生冲突之后,高优先级站点可以顺利完成数据发送,为了能让竞争失败的站点在下次竞争中成功的概率变大,可以将竞争失败的站点提高一个优先等级参加下次竞争,即使失败了若干次,这时该站点的优先级也很高了,竞争胜出的概率会很大。但是需要注意的是优先级较低的站点在提高优先级的情况下获得总线使用权并顺利完成数据发送之后,需要将优先级降低为初始优先级,以保证网络的正常运行。

如果把CAN总线上要发送数据的站点看成一个队列,某个节点j在队列的位置可表示为:Pj=P0-f(n)式中:Pj为节点j某时刻在队列中的位置,即节点在此时刻的优先级;P0为节点j在队列中的初始位置,即初始优先级。图3中类内优先级分配了8位,当优先级最低时,P0=28-1=255;f(n)为优先级晋升项,为关于竞争失败次数n的函数,可取正比例函数、指数函数等。在本文中取的为正比例函数,即f(n)=kn,k为系数项,决定着晋升优先级的快慢程度 ,一般取为CAN系统中节点的个数。由此可得:Pj=28-1-kn=255-kn采用该算法还可以避免当节点优先级提高之后出现2个或2个以上优先级相同的情况,例如,在某个网络中节点个数为5,即k=5,所以Pj=255-5n,则各站点初始及晋升之后优先级如表1所示。

表1各站点优先级晋升表

竞争失败次数站点1站点2站点3站点4站点502552542532522511250249248247246224524424324224132402392382372364235234233232231 5054321

可见,在竞争失败提升优先级的情况下,不会出现优先级相同的情况,因此不会产生相应的错误。该算法的实现流程图如图4所示。

CAN网络已经有很多控制芯片。控制芯片可以完成CAN协议转换。要想通过动态优先级来改进CAN实时性,就要针对不同芯片的应用特性来实现。本文的仿真是利用Philips公司的SJA1000来实现的。

3TTCAN协议

TTCAN(时间触发CAN)是CAN协议的另外一种扩展,它依赖一个静态的TDMA时间表来保证确定的响应时间。将系统中所有发送周期型数据的节点至少发送1次的时间称为系统周期,系统周期又由n个基本周期组成[8]。TTCAN中一个特殊的节点即时间主控节点周期性地发送使各个节点同步的消息,并且将CAN的通信分割在基本周期内[9]。每个基本周期开始于一个参考消息,并且由下一个参考消息的开始作为结束。在每个基本周期内,主定时器又将每个基本周期的信道使用时间分为一个个的时间窗口,分给不同的信号,特定的信号只能在特定的时间窗口内进行传输,避免了信号之间的干扰,其结构如图5所示。参考信息是由主定时器发送的,控制基本周期的时态,它的发送表明一个基本周期的开始;独占窗口是为特定信号预留的特定时间窗口,只有特定的信号才能在该时间窗口内传输,为了使系统具有一定的灵活性,独占窗口在一个基本周期内可以重复出现,但是为了保证数据传输的确定性,CAN帧的自动重发功能在独占窗口内被禁止。分配给随机发送信息的时间窗口叫竞争窗口,一个竞争时窗可以分配给多个信息帧,竞争时窗的数据碰撞采用CAN的位仲裁机制,在这里发送的每个信息帧都具有固定的优先级,位仲裁机制决定网络中哪个信息帧取得总线的访问权。基于和独占窗口相同的原因,CAN的自动重发机制也被禁止。自由窗口是为网络的进一步扩展预留的窗口[10]。

图4算法流程图图5TTCAN的基本周期4仿真实验及结果分析

为了验证动态优先级算法和TTCAN算法在提高CAN总线实时性方面的性能,设计了如图6所示的实验平台。分析网络延时时间,并进行两种算法的性能分析。仿真系统设计8个节点,每个节点由AT89S52单片机、SJA1000和PCA82C250组成,通过向每个节点发送消息型和时间型消息,在改变网络负载率的情况下,分别在标准CAN,TTCAN、动态优先级算法3种调度算法下进行实验,比较节点的延迟时间。

图6仿真平台结构向各个节点发送消息型和事件型信息帧各200帧,得到各帧的延迟时间,以其中一个节点为例,统计结果如表2所示。

表2仿真实验结果

调度算法负载率

/%周期型信息平均延迟

时间 /ms最大延迟

时间 /ms事件型信息平均延迟

时间 /ms最大延迟

时间 /ms标准CAN200.6181.1830.6311.274300.6231.1960.6401.560400.6341.2280.6512.155动态优先级200.6151.0620.6231.263300.6341.0760.6301.338400.6401.0670.6322.067TTCAN200.6030.6110.8032.242300.6060.6200.8352.450400.6100.6340.8422.550

通过实验数据可以看出,随着负载率的升高,动态优先级下周期型消息的延时时间也随之增加,TTCAN下周期型消息的延迟时间很稳定;随着负载率的升高,动态优先级下事件型消息的延迟时间增加较小,TTCAN下事件型消息的延迟时间明显增加。动态优先级调度算法相对于标准CAN调度算法,在网络实时性方面有了一定的提高,随着网络负载率的增加,低优先级节点获得总线使用权的几率增加。TTCAN调度算法能明显降低周期型信息的延迟时间。

5结语

本文通过分析CAN协议、分析CAN总裁机制,提出了动态优先级调度算法和TTCAN调度算法。通过搭建仿真平台,比较数据帧在标准CAN、动态优先级调度算法、TTCAN调度算法3种算法下的传输延迟时间得出如下结论:相同负载率下,TTCAN调度算法下周期型消息的传输延迟时间要比动态优先级调度算法下周期型消息的延迟时间小;相同负载率下,动态优先级调度算法下事件型消息的传输延迟时间要比TTCAN调度算法下事件型消息的传输延迟时间小。TTCAN调度算法适合于确定性硬实时系统的消息调度;动态优先级算法可以灵活适应系统的变化,提高CAN网络实时性的要求,减小优先级较低站点的数据传输延迟。

参考文献

[1]阳宪惠.网络化控制系统:现场总线技术[M].北京:清华大学出版社,2009.

[2]王泓.CAN总线的消息机制[J].中国测量技术,2006,32(1):7576.

[3]王黎明,邵英,单勇.CAN总线动态调度算法改进研究[J].计算机技术与自动化,2008,27(1):6667.

[4]杨丽军.CAN现场总线实时性研究[J].航空计算技术,2006,36(3):6667.

[5]孙鹏,沈显庆,周杰.CAN总线协议的改进及性能验证[J].现代科学技术,2010(5):3537.

[6]ALMEIDA L. The FTTCAN protocol: why and how [J]. IEEE Transactions on Industrial Electronics, 2002, 49 (6): 11901201.

[7]史久根,刘蓬,张培仁.CAN数据传送的实时性研究及其应用[J].信息与控制,2004,33(3):343345.

[8]CENA G, VALENZANO A. An improved CAN fieldbus for industrial applications [J]. IEEE Transactions on Industrial Electronics, 1997, 44 (4): 512576.

[9]肖存龙,卜乐平,王黎明,等.CAN总线实时性分析[J].微计算机技术,2009,25(2):6566.

[10]李聪玲.液氧/煤油发动机试验控制系统软件架构与设计[J].火箭推进,2009,35(2):4653.

作者简介: 刘向明男,1987年出生,河南周口人,硕士研究生。主要研究方向为应用电子技术与装置。

推荐访问: 总线 实时 改进 研究 网络