陶震宇,夏继强,满庆丰
(北京航空航天大学机械工程及自动化学院,北京 100191)
CAN(Controller Area Network) 即控制器局域网,采用非破坏性的总线仲裁技术,保证了高优先级节点信息的实时性,但在多节点系统中,低优先级节点信息的实时性较差。TTCAN(Time-Triggered Controller Area Network)在CAN协议栈的会话层中加入时间控制器局域网协议,通过设计合理的调度矩阵保证了所有节点周期信息的实时性,对于非周期信息只提供了一个自由仲裁时间窗。由于增加了独占窗,因此,与CAN在同样的负载下,TTCAN的非周期信息延时将增大[1]。
文献[2]针对TTCAN协议周期性和非周期性通讯任务的特点,建立了TTCAN静态调度算法的仿真模型,仿真结果说明周期消息实时性与矩阵周期一致,而非周期信息在负载率较高时可能出现“死锁”现象。
文献[3]研究了TTCAN非周期信息的延时,并对非周期信息超过其最坏延迟的概率分布进行了深入探讨,提出了信息超出截止期的概率分布的计算方法,从多角度分析了信息参数的选择对系统实时性能的影响。
对于TTCAN调度矩阵的不足,很多研究者提出了改进方法。动态调度是常见的一种方法,这类调度算法主要有最小裕度最优先LLF(least-laxity first)、最早截止期最优先EDF等[4]。文献[5]针对系统节点数增加、减少和网络传输波特率发生变化时的情况提出了一种动态调度算法,并仿真说明了其传输的实时性和灵活性。文献[6]分析了事件触发和时间触发的各自特点,提出了FTTCAN(Flexible Time-Triggered communication on Controller Area Network),即在时间触发和事件触发之间插入隔离时间来将两者结合到一起,以获得两者的优点。
现有TTCAN的改进方法依旧严格遵守调度矩阵中时间窗的周期性,而TTCAN中独占窗是增加非周期信息延迟的主要因素。文中先从概率的角度分析了TTCAN非周期信息的概率延时,然后提出在TTCAN两相邻独占窗之间插入非周期信息仲裁时隙来提高非周期信息实时性的改进方法,并给出实时性分析。
TTCAN的时间触发机制是指将时间域分成大量的离散时间间隔(可称为时间窗口),通过同步机制将消息的传输分配在一定的时间窗口内完成。时间触发系统通常由信息窗口、基本周期以及矩阵周期3部分组成。基本周期由发送周期消息的独占窗、发送非周期消息的仲裁窗以及用于网络扩展的自由窗三类固定的时间窗组成。矩阵周期由多个基本周期构成,网络中的节点按照矩阵周期循环传输,在指定的窗口提出发送请求。图1为系统调度矩阵示意图,其中包括4个周期信息。
图1 矩阵周期
由于TTCAN是在标准CAN协议基础上建立的一个高层协议,CAN的数据链路层和物理层并没有改变,因此,TTCAN的通信延迟时间可分成与CAN相同的4个部分,即生成延迟、队列延时、传输延时和接收延时。其中,生成延时和接收延时可以忽略不计。所以,TTCAN信息的延迟时间(Rm)主要由队列延迟(tm)和传输延迟(Cm)构成。
Rm=tm+Cm
(1)
队列延时由仲裁延时和非仲裁延时2部分组成。仲裁延时是指两信息同时发送时,高优先级信息对低优先级信息造成的延时。非仲裁延时是指总线被其他正在传输的信息占用而造成的延时。
由TTCAN的协议可知,当非周期信息在独占窗时间段内产生时需要等到仲裁窗口才能申请发送,而在仲裁窗产生非周期信息时能立刻申请发送。因此,在分析TTCAN非周期信息延时时需要对独占窗时间段和仲裁窗时间段分别探讨。
对于节点i(i=0,1,2,…,Z),在独占窗时间段内产生非周期信息m时的非仲裁延时由基本周期中未轮循到的独占窗构成。某段时间内,从非周期信息产生,到该时间段结束的时间为Tab(x),其概率值计算为:
(2)
式中ρ(x)为非周期信息在一段时间Xab内产生的概率密度函数,满足平均分布:
(3)
假设基本周期内独占窗个数为L,一个独占窗口时间为w0(w0=Cm),那么,非周期信息m的非仲裁延时为:
(4)
非周期信息m的仲裁延时tarb:
tarb=R(N,Ap)×Cm+D(N,Ap)×Tbc
(5)
式中:Ap为基本周期内能发送的非周期信息个数;R(N,Ap)为求N/Ap的余数;D(N,Ap)为求N/Ap的整数;N为信息m仲裁时,优先级比m高的信息的集合,节点序号越小优先级越高;Tbc为系统调度矩阵的基本周期时间。
由式(4)和式(5)可得到在独占窗时间段内产生的非周期信息m的队列延时tm1为:
tml=Tab(w0L)+R(N,Ap)×Cm+D(N,Ap)×Tbc
(6)
(7)
式中λ为系统在单位时间内非周期信息的到达率,即认为非周期信息的产生满足泊松分布。
(8)
式中Ti为i节点非周期信息产生的最小时间间隔。
对于节点i(i=0,1,2,…,Z),在仲裁窗内产生非周期信息m′,总线被占用的概率为:
(9)
(10)
非周期信息m′产生时,基本周期内已经发送的非周期信息的最大个数Npd为:
Npd=t1/Cm
(11)
式中t1为m′在仲裁窗内产生时距仲裁窗开始时刻的概率时间,计算为:
(12)
(13)
由式(10)和式(13)可得到在仲裁窗时间段内产生的非周期信息m′的队列延时tm2为:
(14)
(15)
式中Pos(x)为取正数函数,定义如下:
(16)
根据式(6)、式(7)和式(14)、式(15)可得到节点i(i=0,1,2,…,Z)非周期信息产生后概率队列延时tm为:
tm=[w0L×tm1+(Tbc-w0L)×tm2]/Tbc
(17)
计算TTCAN最坏延时时,假设在周期开始时每个节点同时产生一个非周期信息,对于节点i(i=0,1,2,…,Z)的最坏队列延迟计算如下。
tm=w0L+R(N,Ap)×Cm+D(N,Ap)×Tbc
(18)
(19)
式中:τbit为CAN总线传输一个数据位的时间;Ji为信息的抖动,一般取Ji=0.2 ms[7]。
高实时性系统中,非周期信息往往是系统运行时的重要信息,因此,非周期信息响应时间是评价系统实时性的一个重要指标。一个高实时性系统的总线资源是固定且宝贵的,TTCAN协议用独占窗严格保证了周期信息的实时性,而这牺牲了非周期信息的部分实时性。文中提出的TTCAN信息发送时间窗改进是在满足周期信息实时性要求的情况下,降低部分周期信息的实时性,以提高非周期信息的实时性。
TTCAN信息发送时间窗改进主要是在每个独占窗信息发送完成之后,插入仲裁时隙tk供非周期信息仲裁。若有非周期信息,那么,通过仲裁可发送一个非周期信息,此时,仲裁时隙tk延长至Cm;若没有非周期信息,那么,经过仲裁时隙tk后进入下一个独占窗。为保证基本周期时间不变,改进后的仲裁窗时间将随前面非周期信息发送的个数而改变,即每个基本周期内发送的非周期信息个数不变。图2为改进后一个基本周期内时间片示意图。
图2 改进后基本周期
对于节点i(i=0,1,2,…,Z),在独占窗时间段产生非周期信息m时的队列延时进行分析。仲裁时隙tk被认为是刚好等于信息仲裁时间,当m在tk时间段产生时,不能立即进行发送仲裁,需要等到下一个tk,因此,在延时计算时将tk和独占窗w0作为一个整体分析。
在独占窗时间段插入非周期信息仲裁时隙tk后,基本周期内的独占窗时间点、仲裁窗时间长度都会动态调整,使得无法用概率直接计算m在不同独占窗列时的队列延时。文中在计算中采用随机函数random(0,L)取(0,L)内的正整数当作m产生的位置,算出在该位置的概率队列延时,然后,取大量的计算样本求平均值。
jra=random(0,L)
(20)
当m在第jra列产生时,若在前jra-1个tk有非周期信息发送,那么,实际到达jra列的时间Tpd(j)将会相应延长,其概率计算为:
(21)
参照第3节中的计算方法,m在第jra列的概率队列延时计算为:
如果N≤Ap-Npd
(22)
如果N>Ap-Npd,则
(23)
(24)
(25)
设计算tm1的样本容量为S,则:
(26)
对于节点i(i=0,1,2,…,Z),在仲裁窗口产生非周期信息m′时的概率队列延时计算为:
(27)
(28)
(29)
(30)
根据式(20)~式(26)和式(27)~式(30)可得到改进后TTCAN节点i(i=0,1,2,…,Z)非周期信息产生后概率队列延时tm为:
tm=[Tpd(L+1)×tm1+(Tbc-Tpd(L+1))×tm2]/Tbc
(31)
计算改进TTCAN最坏延时时,假设在周期开始时每个节点同时产生一个非周期信息,对于节点i(i=0,1,2,…,Z)的最坏队列延时计算如下。
如果N≤Ap,则
(32)
如果N>Ap,则
(33)
(34)
改进后TTCAN总线在运行时相邻独占窗间插入了仲裁时隙或者非周期信息,因此,TTCAN原有的严格的独占窗周期将被破坏,周期信息必然产生一定的时延。所以,有必要给出基本周期中独占窗所在列j(j=1,2,3,…,L)时延的评估值,其概率延时计算如下:
tm=Tpd(j)-(j-1)×(Cm+tk)
(35)
计算时取系统节点数Z=55,每个节点具有1个周期信息,周期信息的周期为10 ms,20 ms,30 ms,40 ms,60 ms,传输波特率为1 Mbit/s.依据TTCAN静态调度算法[2-3],取最小信息周期作为基本周期,即Tbc=10 ms.矩阵周期为周期信息的最小公倍数或者最小公倍数的整数倍,在此取矩阵周期为120 ms.采用11 位CAN 标准帧信息,数据长度为8 bit时,信息的传输时间Cm=0.125 ms.此时,仲裁时隙tk=11τbit,取tk=0.012 ms.基本周期内独占窗个数取L=35,那么,基本周期内非周期信息最多能发送的个数Ap=45。
当非周期信息产生时间间隔取平均Ti=20 ms时,计算可得TTCAN和改进TTCAN的非周期信息概率延时如图3所示。从图3可知,TTCAN非周期信息的概率延时随优先级下降而增加,最小延时为1.090 6 ms,最大延时为3.114 ms.改进TTCAN各节点非周期信息延时相同,都为0.177 3 ms,此时非周期信息不因优先级而受时延,且能实时、有效处理。改进TTCAN的这一特点是缘于独占窗间插入的仲裁时隙提高了非周期信息的响应速度。
图3 非周期信息概率延时Ti=20 ms
对式(21)进一步分析可知,当λ(w0+Cm)≥1,即平均Ti<13.75 ms时,独占窗时间段的仲裁时隙不能全部处理非周期信息,部分非周期信息被推延至仲裁窗进行处理。图4为平均Ti=13 ms时TTCAN和改进TTCAN的非周期信息概率延时。从图4可知,TTCAN低优先级非周期信息出现严重时延,而改进TTCAN最低优先级非周期信息时延只有1.818 2 ms.
图4 周期信息概率延时Ti=13 ms
当平均Ti=20 ms时,TTCAN和改进TTCAN的非周期信息最坏概率延时如图5所示。图中两条曲线具有相同的变化趋势,非周期信息延时都是随着优先级降低而增大。不同的是改进TTCAN的0号到34号节点、45号到55号节点非周期信息延时比TTCAN小,而35号到44号节点具有相同延时。出现这种现象的原因是改进TTCAN具有35个仲裁时隙,提高了非周期信息响应速度,而基本周期中仲裁时隙未处理完的非周期信息推延至仲裁窗处理,此时与TTCAN具有相同特性。
图5 非周期信息最坏概率延时
图6为改进TTCAN在平均Ti=20 ms时基本周期内独占窗的概率延时,由图6可知独占窗延时与其所在列数值正相关,每个基本周期内,越靠前的独占窗延时越小,最小延时为0 ms,最大延时为2.100 1 ms.因此,在实际应用时把实时性要求高的周期信息安放在靠前的独占窗位置,而将靠后的独占窗设置为自由窗。
图6 独占窗概率延时
文中首先分析了TTCAN非周期信息的概率延时,并给出了详细的计算方法。针对TTCAN中独占窗影响非周期信息实时性的问题,提出了在相邻独占窗间插入非周期信息仲裁时隙的改进方法,通过分析和仿真计算证明该方法在满足周期信息实时性要求的情况下,能有效提高非周期信息的响应速度。
参考文献:
[1] 李佳,朱元,田光宇.CAN与TTCAN通信延迟时间分析,清华大学学报(自然科学版)2006,46(2):261-265.
[2] 冯晓东,果艳红.TTCAN协议静态调度算法研究与仿真.计算机仿真,2008,25(6):108-112.
[3] 夏继强,薛利强,满庆丰.时间触发CAN总线实时性分析及评估方法.北京航空航天大学学报,2012,38(2):222-227.
[4] 冯治宝,萧伟,周美娇,等.在实时通信中对TTCAN的改进.自动化
仪表,2009,30(2):21-23.
[5] 冯晓东,果艳红.TTCAN动态调度算法实现与仿真.电子测量与仪器学报,2008,22(2):81-85.
[6] ALMEIDA L,PEDREIRAS P,FONSECA J A G.The FTT-CAN protocol:why and how.IEEE Transactions on industrial electronics,2002,49(6):1189-1201.
[7] TINDELL K,BUMS A.Guaranteeing message latencies on controller area network (CAN).Proceedings of the First International CAN Conference.Mainz:CiA,1994:1.2-1.11