张凤登,陈兴隆
(上海理工大学光电信息与计算机工程学院,上海 200093)
2016016
FlexRay总线静态段的负载率优化研究*
张凤登,陈兴隆
(上海理工大学光电信息与计算机工程学院,上海 200093)
为了避免传输消息长度悬殊较大时造成带宽的严重浪费和降低FlexRay总线的负载,本文中对消息传输规则进行了研究。提出了将较长静态消息分割后继续在静态段传输的方法,研究了总线负载率与消息长度和帧ID数目之间的关系以及负载率的优化方法。实验结果表明,所提出的方法可有效地降低总线负载率。
FlexRay总线;负载率;静态段;帧ID
随着汽车电子技术的不断发展,汽车上的电子控制单元不断增加,人们对汽车的安全性、操作性和舒适性的要求也越来越高。传统的CAN总线已经不能满足实时性和安全性的进一步需求,FlexRay总线具有非常好的实时性、安全性和确定性等特点,是未来汽车电子技术的发展方向。
目前已有很多文献对FlexRay总线进行了研究,但是有关降低FlexRay总线负载率的文献却不多。文献[1]中对FlexRay静态时隙长度进行了优化,提出了一种FlexRay总线网络时间参数优化模型,但是该模型需要通过数值计算方法才能够得到最优静态时隙长度。文献[2]在文献[1]的基础上推导出了最优静态帧负载长度的解析表达式。数值实验验证了解析表达式的准确性,并证明所得解析公式能够适用于大多数应用场合。文献[3]中提出了一种允许将周期不同的信号封装成一个消息帧来传输的帧封装算法,该算法减少静态段带宽消耗的效果比较明显。文献[4]~文献[6]中研究了利用动态段传输静态段长数据帧的调度方法来减少FlexRay总线负载率,但是动态段将使消息发送的时间带有不确定性,进而造成抖动而影响整个通信系统的性能。文献[7]~文献[9]中主要研究了FlexRay的消息调度策略并对延迟时间进行了分析,用以提高FlexRay响应速度。文献[10]中分析了静态段和动态段时间特性,提出了一种总线优化配置的方法。文献[11]中通过基于动态规划的优化调度算法,使用多阶段决策,使系统中所有动态消息的整体最坏响应时间之和达到最小值,从而提高FlexRay动态段的带宽利用率。本文中提出一种消息分割法,即将静态段相对较长的消息分割成适当长度的短消息后仍在静态段传输,并在此基础上进一步研究了总线负载率与消息长度和帧ID数目之间的关系,并给出了负载率优化方法。
1.1 FlexRay通信周期
FlexRay通信周期内有两种媒体接入访问机制:一种是静态段内使用的时分多址访问机制(TDMA);另外一种就是动态段使用的基于最小时隙的柔性时分多址接入方式(FTDMA)。FlexRay通信族群的时间等级划分从低到高如图1所示,其中最高层即通信周期层,由静态段(SS)、动态段(DS)、符号窗口(SW)和网络空闲时间(NIT)4部分组成,构成它们的最小时间单位是宏节拍(macrotick,MT),每个时隙(slot)均由数个MT构成,DS内的最小时隙是微时隙(MS)。FlexRay通信周期中的slot均由若干个MT构成,MT本身又由若干个微节拍(microtick)组成,而微节拍的大小则是由通信控制器的外部晶振或锁相环决定的。静态段由一些固定大小的静态时隙组成。动态段由一些时长可变的微时隙组成。静态时隙和微时隙的时间长度都是宏节拍的整数倍,宏节拍是网络级别的最小时间单位,即所有节点中宏节拍的大小均相同。宏节拍的长度又是微节拍的整数倍。微节拍是节点级别的最小时间单位,不同节点的微节拍长度可能不同。
图1 FlexRay通信周期时间层次
1.2 FlexRay消息帧格式与编码
FlexRay帧格式如图2所示,包含3部分,分别是头段(head segment)、负载段(payload segment)和尾段(trailer segment)。
图2 FlexRay帧格式
消息在总线上传输,要经过编码,即给消息附加一些必要的位。静态数据帧编码如图3所示,传输起始序列(transmission start sequence,TSS)5-15bit,帧起始序列(frame start sequence,FSS)1bit,帧结束序列(frame end sequence,FES)2bit。在每个字节前面都需要添加字节起始序列(byte start sequence,BSS)2bit,所以每个字节实际占10bit。当消息帧在静态段传输时,其传输时间还需要添加11bit的通信空闲间隔(communication idle delimiter,CID)时间和触发点偏移量(action point offset,APO)时间TAPO。TAPO长度为1~63个宏节拍时间。
图3 静态数据帧编码
FlexRay总线负载是指消息传输要占用的总的静态时隙(static slot)数与所用FlexRay通信周期数的比值。FlexRay静态时隙长度由最长的静态消息帧决定。静态段消息的长度悬殊越大,网络带宽浪费就越严重。如图4所示,只有d消息充分利用了带宽,浪费带宽最严重的就是消息e。为了方便地引出负载率公式,这里假设图4中的所有消息周期与总线周期相同。提出一种分割消息长度的方法以降低总线的负载。FlexRay总线负载率U可表示为
(1)
式中:Ld表示消息d的长度;LC表示一个总线周期的长度。
图4 静态段总线负载率
本方法的思想是将长度较长的数据分割为多段,仍然通过静态段传输,而不是放到动态段来传输。消息放到动态段传输虽然可以降低静态段的负载率进而提高静态段的有效利用率,但是时间的确定性无法保证。研究本方法之前做如下假设:
(1) 所有消息在最坏响应时间下均可调度;
(2) 通信中不存在消息发送失败,发送错误;
(3) 消息的长度、周期和截止时间已知;
(4)FlexRay静态段长度不变。
3.1 静态时隙长度的计算
根据FlexRay协议,对于一个负载长度为i个字长的静态数据帧,其最小长度的静态时隙为
Ti=(C+29+20×i)×Tbit+2×TAPO
(2)
式中:TAPO表示触发点偏移时间长度;Tbit表示1个位长度的传输时间;C表示帧头、帧尾的位数之和;29为TSS(这里取15bit),FSS,FES和CID之和。FlexRay通信周期的时间单位是宏节拍。因此,以MT为单位的静态时隙长度为
(3)
式中:Tmt为1个宏节拍的时间,取值为1~6μs。
3.2 消息分割后的总线负载率
将长度为L个字的消息,分割成长度为i个字的消息进行传输,分割后的长度可以通过式(4)进行计算。
(4)
假设一个消息集包含n个消息,这些消息的长度分别为l1,l2,l3,…,ln。其发送周期分别为T1,T2,T3,…,Tn。若将这些消息分割成长度为i的数据进行传输,则总线的负载率为
(5)
从式中可以看出,当i增大时,分割出的帧ID会减少,但静态时隙长度会变大,当i减小时,分割出的帧ID会增加,但静态时隙长度会减小。如果单纯的考虑降低负载率,可以得到最低负载率的值。
分割后的消息所占用的帧ID个数用FID来表示:
(6)
如果要求FID最小,则静态时隙的长度由最长的消息决定,这样会导致负载率U较高,如果仅仅追求网络负载率的降低,就会使得FID数目增加,因为静态段FID最大为1 023,FID太大对未来总线的扩展有阻力。所以这两个参数要综合考虑。
如果上一次分割为j个字节的消息进行传输,则平均每个周期所有消息浪费的MT总数为
(7)
下一次分割为i(j>i)个字之后所有消息浪费的MT总数为
(8)
分割之后多出的每一段消息因为编码需要增加的MT数为
(9)
分割长度由j变为i之后,因为编码增加的MT总数为
(10)
随着消息的分割,静态时隙不断减小,则短消息造成的带宽浪费必然就会随之减少,但消息分割的段数会增多,则编码附加的比特位数就会增加。当编码增加的MT数N3小于带宽浪费降低的MT数(N1-N2),则网络负载率就会降低;当N3等于(N1-N2)时,则网络负载率不变;当多附加的MT数N3大于因为消息分割而使得带宽浪费的减小时,网络负载率反而就会增加。
(11)
通过以上推导出的计算公式,可知网络负载率与消息传输周期、帧长度和帧数目之间的关系,消息的时隙长度分配对网络负载率的影响最大,从而也是影响整体FlexRay网络性能的主要因素之一。
3.3 负载率优化方法描述
为了最大程度地降低网络负载率U,可通过下面描述的方法进行消息的优化分割:
(1) 给定通信参数和消息参数;
(2) 循环求解:for(i=lmax;i≥lmin;i--);
(3) 根据分割后的负载长度i计算对应的U和FID;
(4) 若帧ID<1 023,则保存i对应的U和FID;否则不保存,并跳出循环;
(5) 比较并记录最小值U′;
(6)循环结束:end;
(7)此时帧ID大于1 023或者i≤lmin;
(8) 得到所有可行i对应的U,FID。
这里,lmax表示所有消息的最长值,lmin表示所有消息的最短值,通过以上步骤就可以得出消息不同的分割长度i所对应的网络负载率U和FID并确定最优网络负载率。
为了验证本文中提出的方法在降低网络负载率、改善网络性能方面的效果,采用汽车工程师协会(SAE)提供的基准数据进行验证,如表1所示,通信参数如表2所示。在数值计算过程中参数取值为:TAPO=1MT;Tmt=1μs。
表1和表2分别提供了消息帧参数和通信参数,根据本文给出的消息分割法的描述,以及分析得出的网络负载率U和FID公式,观察消息集合,算法初始由最长的消息lmax=6Byte决定静态时隙的长度,不同传输速率下占用的MT数如表1所示。lmin=1Byte,可以根据式(5)和式(6)得出以不同长度i对消息进行分割之后对应的U和FID数目,如表3所示。不同传输速率下网络负载率的最大降低幅度如表4所示。
表2中通信同期为5ms,则表1中周期为1 000 ms的消息需要2 00个通信循环,但是协议中规定通信循环计数器最大值为63,所以本实验暂不考虑消息16,17和18。
通过表3和表4可以看出,负载率刚开始都是随着分割后消息长度的减小而降低,而帧ID的个数不断增加,但并不是静态时隙长度越小越好,小到一定程度反而负载率会增加,比如在10Mbit/s情况下,当消息由6分割为4并继续分割为2Byte时,网络负载率和时隙数目均在不断增加。所以负载率与分割后消息长度开始成呈正比例关系,当分割后的消息长度小到一定程度就会呈反比例关系;帧ID数目与消息长度一直是反比例关系。表3说明,经过长消息的分割,适当减小静态时隙长度,可以达到降低网络负载率的目的,但并不是静态时隙长度越小越好。追求网络负载率降低的同时,必然会使得帧ID数目的增加。如果帧ID数目远小于1 023,那么就可以单一地追求网络负载率的最低,这样并不妨碍网络的扩展。由表4可知,传输速率越低,本文中的消息分割法效果越明显,即网络负载率降低的幅度越大,而且传输速率较低时,各消息之间的长度悬殊较大,分割后的消息数目也就相对较多,即帧ID数目较多。
表1 FlexRay消息帧
表2 通信参数
表3 分割前后网络负载率变化
表4 最低负载率降低幅度
本文中分析了FlexRay帧格式和物理层传输规则,得到消息传输所需要的时间。通过将长消息分割为短消息进行传输,并得出网络负载率计算公式。分析了分割后网络负载率与消息长度和帧ID数目之间的关系。最后通过实验证明:消息分割法在不同传输速率的情况下,均可以降低网络负载率,且传输速率越低,效果越明显。
(1) FlexRay通信协议规定静态时隙的长度固定并一致,由最长的静态消息决定。消息长度悬殊较大,短消息会造成带宽的浪费,通过消息分割法可以减少带宽负载率。
(2) 消息并不是分割得越小越好,达到一定程度,网络负载率反而会增加。
(3) 实验证实,传输速率越低,消息分割法就越有效,网络负载率降低的幅度就越大,同时分割后消息的数目就越大,即帧ID数目越大。
今后的工作将是研究动态段消息传输的时间性能和调度规则。
[1] PARK I,SUNWOO M.FlexRay Network Parameter Optimization Method for Automotive Applications [J]. IEEE Transactions on Industrial Electronics,2011,58(4):1449-1459.
[2] 王刚,荣健,丁天宝.FlexRay网络静态段时间参数优化[J].西南交通大学学报,2012,47(2):318-324.
[3] KANG M,PARK K,JEONG M.Frame Packing for Minimizing the Bandwidth Consumption of the FlexRay Static Segment[J].IEEE Transactions on Industrial Electronics,2013,60(9):4001-4008.
[4] KANG M,PARK K,KIM B.A Static Message Scheduling Algorithm for Reducing FlexRay Network Utilization[C].IEEE International Symposium on Industrial Electronics,ISIE 2009,2009:1287-1291.
[5] SCHMIDT K,SCHMIDT E G.Message Scheduling for the FlexRay Protocol:The Static Segment[J].IEEE Transactions on Vehicular Technology,2009,58(5):2170-2179.
[6] 张利,张本宏,王跃飞.基于总线占用率的FlexRay消息时隙分配方法研究[J].中国机械工程,2011,23(6):699-702.
[7] SHAW R,JACKMAN B.An Introduction to FlexRay as an Industrial Network[C].Proc of IEEE International Symposium on Industrial Electronics,2008:1849-1854.
[8] KLAUS S,ECE G S.Message Scheduling for the FlexRay Protocol:Dynamic Segment[J].IEEE Trams on Vehicular Technology,2009,58(5):2160-2169.
[9] 李佳,田光宇,钮翔,等.FlexRay网络通信延迟时间分析[J].清华大学学报:自然科学版,2007,47(8):1343-1346.
[10] 赵睿,秦贵和,范铁虎.FlexRay通信协议的总线周期优化[J].计算机应用研究,2010,27(10):3847-3850.
[11] 顾嫣,张凤登.FlexRay动态段优化调度算法研究[J].自动化仪表,2009,30(12):25-29.
Research on Load Rate of Static Segment of FlexRay
Zhang Fengdeng & Chen Xinglong
SchoolofOptical-ElectricalandComputerEngineering,UniversityofShanghaiforScienceandTechnology,Shanghai200093
For avoiding the serious waste of band width caused by the significant difference in the lengths of messages and reducing the load of FlexRay bus, the rules of message transmission are studied in this paper. A method is proposed that splits the long static message into shorter one and transmitted in static segment. The relationship between the loading rate of FlexRay bus and the number of frame ID and the length of message as well as the optimization method of loading rate of FlexRay bus are studied. The results of experiments show that the method proposed can effectively reduce the loading rate of FlexRay bus.
FlexRay bus; loading rate; static segment; frame ID
*国家自然科学基金(61170277)、上海市教委科研创新重点项目(12zz137)、上海市一流学科建设项目(S1201YLXK)和上海市自然科学基金项目(15ZR1429300)资助。
原稿收到日期为2014年5月19日,修改稿收到日期为2014年7月2日。