APP下载

CAN网络实时性分析及改进

2010-08-18袁远李红信

电子设计工程 2010年6期
关键词:延迟时间消息总线

袁远,李红信

(兰州大学 甘肃 兰州 730000)

CAN(Controller Area Network)即控制局域网,由于本身所具有高性能、高可靠性等特点,被认为是几种最有前途的现场总线之一[1]。CAN总线网络是基于事件触发机制的多主系统,其MAC层协议采用非破坏性逐位仲裁(CSMA/CA)技术[2],网络上的各个节点通过标识符域中的优先级大小竞争总线的使用权[3]。本文从分析CAN总线标准协议入手,通过研究共享访问控制原理及TTCAN协议,提出了一种动态优先级调度算法,构建了网络延时分析平台,并与标准CAN网络时延及采用TTCAN协议网络时延进行比较,验证了此算法的有效性。

1 CAN实时性研究及改进

衡量通信实时性的指标是通信的延迟时间,即从消息产生时刻到将消息帧中的有效数据提供给目标任务的时刻[4]。

1.1 动态优先级算法

动态优先级是基于原有CAN事件触发协议的基础上,随着时间的推移动态调整各个站点的优先级的一类算法,相对于原有的固定优先级,它使每个站点都有相同的权力来享受总线的带宽,避免优先级较低的站点得不到总线占有权,保证网络数据传输的实时性。方法如下:初始情况下,每个站点均有各自不同的优先级,在没有发生冲突的情况下,各个站点按初始固定优先级完成数据的发送。当发生冲突后,优先级高的站点在竞争胜出发送数据,为了能让失败的站点在下次的竞争中有更大的概率胜出,可以把竞争失败站点的优先级提高一个等级来参加下一次的竞争。如果仍然失败再进一步提高优先级等级。即使失败了若干次,但这时候该站点的优先级已经相当高了,竞争胜出的概率也会很大。当优先级低的站点在优先级提高的情况下获得数据发送权并发送完数据后,必须把升级的优先级降低为初始优先级,以保证网络的正常运行。但是,在站点优先级提高的情况下,可能会出现网络中有两个或者两个以上的站点具有相同的优先级,而如果具有相同优先级的站点同时竞争总线,会造成冲突,产生错误。因此,必须选择一种较好算法,保证在站点优先级提升时避免相同优先级情况的发生。经研究采用“取模增加”的方法可解决这一问题。方法描述如下:假设在帧格式中,表示站点优先级的位数为N,可以表示的最大数为2N-1。网络中的最大站点数为L,每个站点的初始固定优先级为2N-1-P,P为[0,L-1]区间的一个值。当站点竞争失败后,优先级的增加算法:新优先级=原站点优先级-L。

因为优先级必须大于零(取值越低,优先级越高),所以当新优先级将要小于0的时候,优先级就不能继续改变了,保持大于等于0的优先级参与竞争。

例如,在某个网络中,N=5,L=4,25=32,则各站点初始及升级优先级如表1所示。

表1 站点动态优先级升级表

可见在竞争失败的情况下增加站点优先级后,各个站点的优先级都不会有相同的情况发生,因此也不会产生相应的错误。这里把最大站点数当作模数,第1个站点可以取的优先级值用L取模后余数均为3,第2个站点可以取的优先级值用L取模后余数均为2,第3个站点可以取的优先级值用L取模后余数均为1,第4个站点可以取的优先级值用L取模后余数均为0。所以,在竞争失败后,对原有的优先级值减去模数L,保证其模运算结果不变。因为是通过减的方法来实现优先级的增加,所以把这种方法称为“取模增加法”。此算法可通过软件进行实现,具体流程如图1所示。

图1 优先级升级算法流程

1.2TTCAN协议

TTCAN是一个在不改变C AN标准协议的基础上的高层协议,是建立在时间触发机制上的CAN协议的扩展。它能够同步同一网络中所有CAN节点的通信时序并提供一个全局系统时间,当节点同步后,报文可以在一个特定的时间隙内发送,而不用与其他报文竞争总线访问权,因而得以避免报文仲裁失败,并且报文的延迟时间也可以预测。它在TTCAN的数据链路层和物理层上都与CAN兼容。在TTCAN中,一个特殊的节点即时间主节点用来周期性的发送使各个节点同步的消息,即同步消息。同步消息是TTCAN协议实现同步机制的基础,它的格式就是CAN的数据帧格式,各个节点通过标识符来识别它。各个节点在接收到参考消息后,启动本地定时器,每一个网络时间单元计数器加1。在TTCAN的Levell级别中,只占用一个字节来传输控制信息比如当前所处的基本周期数。TTCAN的实现方式是在底层仍采用CAN自身的仲裁机制,而在会话层中定义了系统矩阵SM(System Matrix),如图2所示。将系统矩阵的周期称为矩阵周期MC(Matrix cycle),每个矩阵周期由多个基本周期 BC(Basic cycle)组成,每个基本周期开始于一个参考消息,并且以下一个参考消息的开始作为结束。每个基本周期由若干个时间窗口组成,时间窗口的类型为独占窗口、仲裁窗口和自由窗口。只有在这些时间窗口里才可以进行消息交换。每个基本周期的窗口类型可以不同,并且根据TTCAN协议规定窗口之间有一定的时间间隙a,其中a的取值为1~16个网络时间单元。在TTCAN网络中除了参考消息和仲裁窗口的消息外,其他消息是不允许重发的。

图2 TTCAN系统矩阵

TTCAN系统矩阵是静态的,周期重复的,需要在系统运行前就进行定义,且所有的节点中已经存储了相关的信息。因此对TTCAN协议的研究其焦点凝聚于对系统矩阵的合理调度[5-6]。

2 实验及结果分析

为了检测CAN网络及TTCAN协议时延,研究动态优先级算法网络延时特性,设计模拟试验平台,分析网络时延数据,并进行动态优先级和TTCAN两种调度算法的性能分析。

2.1 试验平台功能分析与设计方案

试验平台的具体功能包括:模拟网络的拓扑结构;模拟总线参数;记录消息帧的发送和接收时刻。整个仿真平台由3大系统组成,即:网络环境模拟系统、网络错误产生系统、网络监控系统。实验网络平台结构如图3所示。

图3 实验网络平台结构

仿真系统设8个节点,节点采用Microchip公司dsPIC33FJ256GP710型微控制器实现,该器件内置2个CAN控制器接口,方便实现CAN通信。向每个节点分别发送周期型和事件型消息帧,在改变网络的负载率的情况下,分别在CAN和TTCAN两种调度算法下进行实验,比较分析两种算法下网络节点的时间延迟特性。

2.2 实验结果及分析

通过发送周期型消息和事件型消息,各节点发送200帧消息,得到各帧消息的延迟时间。以其中一节点为例,实验统计结果如表2所示。

表2 实验结果

网络负载是衡量网络性能的一个重要指标,也是影响网络时延的一个重要因素。网络负载是单位时间内成功发送到总线上的信息量,信息量的增加势必会造成多个报文的冲突,增加了报文仲裁的额外开销,尤其是对优先级较低的报文有较大的影响。通过实验,设置波特率为250 kbps的条件下,根据在不同网络负载情况下的延时特性,得出CAN与TTCAN网络延时与负载率的关系曲线,如图4所示。

图4 网络延时与负载率关系

通过分析上面的实验结果看出,动态优先级算法相对与标准CAN总线,在网络实时性方面有了一定的进步,提高在高负载情况下,低优先级消息帧获取仲裁胜出的几率,降低网络时延。

TTCAN协议虽然可以保证周期型消息帧的延迟时间,但是事件型消息帧延迟时间比CAN协议大。负载较低时,消息帧的优先级对消息的延迟时间影响有限。但在网络负载非常大的情况下,高优先级消息帧的优势能体现出来,低优先级消息可能有很大的延迟。CAN网络协议中低优先级消息在网络负载较高时,延迟时间的数学期望及最大值均较高;而TTCAN中周期型消息的延迟时间基本不变,事件型消息帧随负载的增加延迟时间明显增加。

静态调度算法(TTCAN协议)的优点是适合调度强实时系统中的周期性消息,只要消息的产生时刻、传输周期、截止期都已知,就无需进行带宽的动态请求和分配,并且能够对系统进行可调度性分析。缺点是其对非周期性消息调度效率低,由于必须进行离线调度算法设计,不能灵活适应系统变化,如节点的增减等情况,且网络资源利用率低。

动态调度算法(例如动态优先级提升)其优点是灵活性强,可以实时适应系统结构和性能的变化,充分利用系统资源;缺点是很难对系统进行有效的可调度分析,同时需要大量系统资源来动态计算网络中消息的优先级。

网络控制系统中静态调度算法适合于确定性硬实时系统中的消息调度,但是具有灵活性差等缺点,即只适用于时间特性固定不变的系统,如果网络某个节点传输消息的时间特性发生变化,则会造成整个静态调度的重新构建。采用动态调度算法时,网络中传输消息的优先级是根据消息的时间特性动态构建的,因此可以灵活适应系统的变化,同时可以充分利用系统资源。

3 结束语

通过研究CAN网络协议,分析标识符仲裁机制,研究CAN网络时延模型,在标准CAN总线协议的基础上,提出了动态优先级仲裁算法,解决了高负载下,低优先级消息帧仲裁胜出的问题,有效的降低了网络时延,提高了CAN网络实时性。并在此基础上,构建仿真时延平台,与TTCAN协议进行比较,分析了周期型消息与事件型消息发送延时特征,得出延时与负载率之间的关系,为CAN总线在实际应用中的协议选择提供了参考依据。

[1]饶运涛.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2007.

[2]吴军,李晓龙.CAN控制网络实时性能分析与测量[J].工业控制计算机,2004,17(10):21-23.

[3]牛德青.CAN总线的实时性和可靠性研究[D].北京:中国兵器科学研究院,2005.

[4]Almeida L.The FTT-CAN protocol:why and how[J].IEEE Transparent on International Electronics,2002,49(6):52-57.

[5]李佳,朱元,田光宇.CAN与TTCAN通信延迟时间的分析[J].清华大学学报,2006,46(2):261-265.

[6]王庆祥,陈家琪.TTCAN网络的响应分析及系统矩阵的优化[J].上海理工大学学报,2005,27(1):32-36.

猜你喜欢

延迟时间消息总线
二氧化碳对乙烷燃烧着火延迟时间的影响
LTE 系统下行链路FDRX 节能机制研究
基于分层COX模型的跟驰反应延迟时间生存分析
一张图看5G消息
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
延迟时间对气辅注射成型气体穿透行为影响的数值模拟和实验研究
多通道ARINC429总线检查仪
消息
消息