当前位置:首页 期刊杂志

基于总线占用率的FlexRay消息时隙分配方法研究

时间:2024-07-28

张 利 张本宏 王跃飞 刁新超 刘征宇

合肥工业大学安全关键工业测控技术教育部工程研究中心,合肥,230009

0 引言

F1exRay总线是新一代汽车内部网络通信协议,它为车内控制系统提供所需的速度和可靠性。F1exRay与CAN、LIN等已成为现代汽车网络总线的关键技术,它们根据传输带宽和价格比的要求被应用在汽车不同的领域,相互补充、相互支撑,组合成多种总线混合的汽车网络[1-2]。

FlexRay总线系统将事件触发和时间触发两种方式相结合,具有高速可确定性和故障容错等特点。随着FlexRay重要性的日益显现,对其研究也越来越多,然而对FlexRay网络带宽利用率的研究很少。文献[3]分析了通信周期中静态部分和动态部分的时间特性,计算了消息和任务在最坏情况下的响应时间,但没有进行时序性能验证。文献[4]计算了FlexRay消息帧的传输时间,在考虑有效FlexRay帧长度情况下,分析静态部分的网络带宽丢失率,进一步得到了静态部分的网络利用率计算公式,但没有考虑FlexRay动态部分消息传输时间。文献[5]提出一种消息的调度算法来减小总线占用率,但总线占用率计算方法中没有考虑动态消息的总线占用率。

1 FlexRay消息传输方式

1.1 FlexRay消息帧格式

FlexRay消息帧[6-7]由帧头、有效数据和帧尾三部分组成。FlexRay帧格式如图1所示。帧头部分共由5个字节组成(共40位),包括保留位、有效数据指示位、空帧指示位、同步帧指示位、启动帧指示位、帧ID、有效数据长度、头部循环校验CRC和周期计数。有效数据部分可由0~254个字节组成。帧尾部分只含有单个的数据域,即一个24位的CRC。

1.2 FlexRay媒体访问方式

FlexRay提供两种媒体接入时序的选择,一种是静态的分时多址接入时序(TDMA),一种是动态的基于最小时间片的柔性时分多址接入时序(FTDMA)[2,6]。在一个通信周期内,有4个时间等级,从最低层到最高层分别是最小时间节拍层、最大时间节拍层、仲裁网格层和通信周期层[6-7],如图2所示。

图1 FlexRay帧格式

图2 通信周期时间分层

最高层即通信周期层,由静态段、动态段、特征窗和网络闲置时间四部分组成。静态段由若干个长度相等的静态时间片(static slot)组成,采用的是TDMA方式;动态段由若干个长度相等的最小时间片(minislot)组成,采用的是基于最小时间片的FTDMA方式。静态时间片和最小时间片均由若干个最大时间节拍(Macrotick,MT)组成,1个MT的时长通常被配置为1~6μs,本文用gdMacrotick表示1个MT的时长。

2 总线占用率计算方法

2.1 时间片长度

时间片长度是指消息传输使用的时间长度,这里用MT的数量表示。消息在传输过程中被分成独立的字节进行传输,为保证消息的正常传输,还需使用更多的空间,包括传输起始序列(3~15位)、帧起始序列(1位)、字节起始序列(2位)、帧结束序列(2位)、通信空闲分隔符(11位)和帧前与帧尾的触发点偏移量。FlexRay的传输序列如图3所示。

如果消息帧在动态段进行传输,则还要在帧结束序列后附加动态尾部序列。动态尾部序列时间值是变化的,最小值为2gdBit(gdBit指传输1位所需的时间)。

图3 FlexRay帧物理层传输规则

当消息i放在静态段传输时,假设其长度为k个字节,则传输该消息所需的静态时间片长度Ti(单位为MT的个数)为

其中,29为15位传输起始序列、1位帧起始序列、11位通道空闲分隔符和2位帧结束序列的位数之和;10为字节前的2位字节起始序列与字节的位数之和;TAPO1为静态段触发点偏移量(gdAction-PointOffset)。由于静态段的静态时间片长度由最长的消息决定,因此静态时间片长度为所有时间片长度的最大值,即

当消息i放在动态段传输时,其最小时间片长度Ti为

式中,TAPO2为最小时间片触发点偏移量;2gdBit为动态尾部序列时间。

2.2 总线占用率分析

假设系统中消息总数为N,其中有m条静态消息和n条动态消息,则总线占用率U计算公式为

式中,Tc为FlexRay总线的通信周期;fi为第i个消息的传输频率;Tpi为i个消息的传输周期。

由式(4)可知,在帧数目、帧传输周期、帧长度一定的情况下,FlexRay总线占用率由静态时间片长度、最小时间片长度以及消息被分配到动态段还是静态段的分配方法决定。

3 消息分配方法设计

3.1 消息分配方法分析

在图4a中,静态时间片长度由最长的静态消息决定,因此,FlexRay总线占用率为

式中,TM2为消息M2对应的静态时间片长度。

由图4a可以看出,静态段传输的消息长度是变化的,但静态段的静态时间片长度是相等的,由此导致总线占用率较大,带宽利用率不是很高,特别是最长静态消息和最短静态消息长度差值很大的情况。本文提出一种消息分配规则,即将最长的静态消息分配到动态段进行传输,如图4b所示,以降低总线占用率,提高带宽利用率。

图4 最长静态消息分配到动态段

3.2 消息分配算法

本算法以获得最小总线占用率为目标,依据分配规则不断重复运行分配过程以获得最小总线占用率。令Uk为k(k=0,1,…,N)个消息被分配到动态段的总线占用率,则最小总线占用率可表示为

其中,总线占用率Uk的计算依据式(4),计算时需要同时考虑静态消息和动态消息的总线占用率。

该分配算法以式(4)、式(5)为基础,在计算最小总线占用率Umin时,除了不考虑消息传输失败及其处理的情况以外,还必须保证所有的FlexRay消息的传输时间都在最坏情况下的响应时间之内。

图5为算法的流程图[8-11]。FlexRay网络参数值必须提前给出,参数包括系统配置信息,如节点参数、网络带宽和消息参数等。

图5 算法规则流程图

获取输入参数值后进行网络初始化配置,该过程包括消息分配与设定及计算时序值和占用率。消息分配包括将FlexRay消息分配到节点和根据性质不同分配到静态段或者动态段。通常情况下,周期发送的消息分配到静态段,随机发生的消息分配到动态段。在运行分配规则过程中,当消息重新分配后,需要重新计算静态段中静态时间片大小与数目,同时,需要依照所给出的消息优先级次序重新设定消息传输次序,以保证消息传输的实时性。时序值是指消息实际传输时间与所规定传输时间的比较值。通过时序值判断消息是否在响应时间内传输完,若所有消息在最坏情况下的响应时间内传送,则时序值为1,否则为0。

在进行消息分配时,必须保证每个消息在截止时间前传输完毕。当分配方法改变时,如果U*<U(U和U*分别为分配方法改变前后的总线占用率),即总线占用率降低,则该消息将被分配到动态段;否则该消息被分配到静态段。在初始化网络配置完成后,分配过程被重复执行以得到总线占用率的最小值,该分配过程在没有静态消息被分配到动态段时结束。

4 实验验证

本文引用文献[5]中所用的美国汽车工程学会(SAE)的基准数据(表1)对消息分配算法进行验证。由于不同传输速率下,传输一帧要求的时间不一样,而在gdMacrotick值一定的情况下,所需MT数目也不同,为了表述方便,表1中将帧的长度用不同传输速率下所需时间片长度即MT的数目来表示。进行验证的FlexRay通信参数在表2中定义。

表1 FlexRay消息帧

表2 FlexRay通信参数

由表1可知,为了保证所有的消息在截止时间前传输完毕,FlexRay通信周期不能超过5ms。如果将传输周期为1000ms的帧放在静态段中传输,则200个通信周期才能传输一次,这不符合FlexRay协议中通信周期计数器不能超过63的规定。因此,消息帧16、17和18首先被分配在动态段中传输。

由表1可看出,消息12所需的时间片最多,当传输速率为5Mbit/s时,初始阶段静态时间片长度为60MT。在算法的初始阶段,静态时间片长度由最长消息12所需的MT数目决定。根据分配规则,静态段最长的消息帧被分配到动态段传输。表3显示了5Mbit/s速率下静态段参数值的变化及总线占用率的变化。在分配算法的初始化阶段,消息16、17、18被分配到动态段,其他消息被分配到静态段。通过运行分配算法,最终8个消息被分配到动态段,此时,静态段时间片长度为40MT,总线占用率减小到最小值4.8176%。

表3 参数变化及网络利用率(传输速率5Mbit/s)

不同传输速率下,使用该消息分配算法后得到的总线占用率数据如表4所示,由表4可知,传输速率越低,该消息分配算法使总线占用率下降得越多,网络利用率越高。

表4 网络利用率前后对照表

5 结语

本文基于FlexRay帧格式和物理层传输规则分析FlexRay消息帧的长度,得到消息长度计算方法。通过对FlexRay消息帧在静态段和动态段传输时间的分析,计算总线带宽利用率,最终得到总线占用率的计算公式。实例验证表明,将静态段最长的消息帧放在动态段进行传输,在不同传输速率下,总线占用率都得到了降低。下一步工作将对动态段消息传输的时间性能和调度规则进行研究。

[1]王跃飞,王子涵,张利,等.基于改进调度算法的新一代汽车总线及其网关[J].电子测量与仪器学报,2011,25(10):289-295.

[2]顾嫣,张凤登.FlexRay动态段优化调度算法研究[J].自动化仪表,2009,30(12):25-29.

[3]Kang Minkoo,Park Kiejin,Kim Bongjun.Determining the Size of a Static Segment and Analyzing the Utilization of In-Vehicle FlexRay Network[C]//Third International Conference on Convergence and Hybrid Information Technology.Daejeon,Korea,2008:50-53.

[4]Kang Minkoo,Park Kiejin,Kim Bongjun.A Static Message Scheduling Algorithm for Reducing FlexRay Network Utilization[C]//IEEE International Symposium on Industrial Electronics.Lisbon,Portugal,2009:1287-1291.

[5]Matthias H,Höss V,Müller-Glaser V.Physical Layer Extraction of FlexRay Configuration Parameters[C]//IEEE International Symposium on Rapid System Prototyping.Paris,2009:173-180.

[6]罗峰,陈智琦,刘矗,等.基于FlexRay的车载网络系统开发[J].电子测量与仪器学报,2009,23(增刊):289-295.

[7]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.

[8]赵欢,熊振华,丁汉.基于IEEE1394的运动控制系统总线协议与同步机制研究[J].中国机械工程,2009,20(23):2850-2855.

[9]张利,李县军,王跃飞.汽车CAN网络时钟同步方法研究[J].电子测量与仪器学报,2011,25(2):147-152.

[10]张利,王跃飞,严刚,等.混合动力汽车CAN网络优先级的动态分配方法[J].农业机械学报,2011,42(5):22-26.

[11]李传斌,严刚,刘梦阳.FlexRay-CAN网关中的多队列消息处理方法[J].合肥工业大学学报,2011,34(1):28-33.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!