APP下载

FlexRay-CAN网关中的多队列消息处理方法

2011-01-16李传斌刘梦阳王跃飞王子涵

关键词:合肥工业大学实时性队列

李传斌, 严 刚, 刘梦阳, 王跃飞, 王子涵

(1.安徽江淮汽车股份有限公司,安徽合肥 230601;2.合肥工业大学 计算机与信息学院,安徽 合肥 230009;3.合肥工业大学安全关键工业测控技术教育部工程研究中心,安徽合肥 230009;4.合肥工业大学 机械与汽车工程学院,安徽 合肥 230009)

FlexRay-CAN网关中的多队列消息处理方法

李传斌1, 严 刚1, 刘梦阳2,3, 王跃飞3,4, 王子涵4

(1.安徽江淮汽车股份有限公司,安徽合肥 230601;2.合肥工业大学 计算机与信息学院,安徽 合肥 230009;3.合肥工业大学安全关键工业测控技术教育部工程研究中心,安徽合肥 230009;4.合肥工业大学 机械与汽车工程学院,安徽 合肥 230009)

随着FlexRay总线在汽车动力等安全关键实时系统中的应用,车内FlexRay与CAN网络之间的信息交互成为迫切需要解决的问题。文章从FlexRay-CAN网关通讯需求出发,提出了基于多队列分时轮转混合式消息调度方法,并给出了实现算法;利用排队理论对该方法进行建模的基础上,对该方法的性能进行了分析;T rueTime的仿真结果表明,此方法可以有效地保证网关内实时消息传输的实时性,非实时消息也能得到良好的响应时间。

汽车;CAN总线;FlexRay总线;网关;多队列混合调度

随着汽车电子技术的不断发展,现场总线技术被越来越广泛地应用于汽车网络,但是,至今仍没有一个通信网络可以完全满足未来汽车的所有成本和性能要求,因此,汽车上仍是多协议并存的混合汽车网络。CAN总线是当前汽车网络主流的协议,被广泛应用于汽车中所使用的电子控制系统中[1-3]。

新一代总线FlexRay是高速串行通信的车载网络,它具有带宽高、可靠性高、灵活和实时性强的特点,能够满足现代车载控制系统的强实时需求[4],主要运用在汽车中高可靠性和安全性部分,如动力、底盘系统。在汽车车载网络中,CAN与FlexRay混合网络的使用将会越来越广泛,不同网络间信息的交互要靠FlexRay网关来实现。目前,CAN与FlexRay网关的研究尚处于初始阶段,文献[5]提出了CAN与LIN、FlexRay网关的框架设计,文献[6]提出了CAN与FlexRay网关的框架与软硬件设计,但两者尚未对网关中关键问题之一的数据帧转发进行介绍。

本文提出了一种基于多队列混合调度的FlexRay-CAN网关数据帧转发方法,可以有效地降低系统的服务时间和服务强度以及保证网关内消息的实时性和公平性。

1 CAN与FlexRay的帧结构

CAN是一种采用多主工作方式、非破坏仲裁技术和接收滤波工作方法的数据通信协议[7]。它的数据帧包括标准帧和扩展帧,均由7个不同的位场组成:帧起始、仲裁场、控制场、数据场和CRC场,如图 1所示。

图1 CAN 2.0B标准数据帧格式

标准帧的仲裁场包括11位的标识符和远程发送请求(RTR),其中,标识符用于标识消息和仲裁优先级。

控制场由6个位组成,包括数据长度和2个保留位。数据场由数据帧的发送数据组成,可以为0~8个字节。

FlexRay采用 FTDM(Flexible Time Division M ultip le Access,简称FTDM)的确定性访问方式,具有容错功能和确定的消息传输时间,能够满足汽车控制系统的高速率通信要求[8]。

FlexRay的通信周期由静态段、动态段、符号窗和空闲时间4个部分组成。其中,静态段和动态段是通信周期所必需的主要部分[9]。静态分段提供通信周期的固定延迟部分,而动态分段则允许带宽要求各不相同的随机通信。

FlexRay的数据帧由帧头、有效数据和帧尾3个部分组成,该数据帧格式如图2所示。其中,有效数据部分可由0~254个字节组成。在帧的CRC校验中,有效数据部分的前6个字节设为海明距离,当数据超过248字节时,海明距离为4个字节。

2 FlexRay-CAN网关数据帧调度

FlexRay-CAN网关需要处理的数据帧有2种,分别为“上行数据”和“下行数据”。“上行数据”指CAN对FlexRay发送的数据帧,“下行数据”指FlexRay对CAN发送的数据帧。上、下行数据转换方法基本相同,本文重点研究上行数据的转发方法,数据转发需要解决帧格式的转换和消息调度的问题。

帧格式的转换如图3所示,本文采用多消息帧打包的方法。根据上述对CAN与FlexRay帧结构的分析,为了提高发送效率,选取CAN发送队列的前K个消息帧合并存储在FlexRay帧有效数据部分,打包成 FlexRay数据帧的形式发送。CAN的消息帧包括CAN数据帧的仲裁场、控制场和数据场信息,最多不超过13个字节,FlexRay的有效数据最多为254个字节,所以K的取值在1~19之间。

图3 上行数据转发Flex Ray帧格式

对于消息调度,本文采用多队列混合优先级调度,如图4所示。在队列内部采用最早截止期优先(Earliest Deadline First,简称EDF)算法,队列之间采用改进加权轮转调度(Weighted Round Robin,简称 WRR)算法。

图4 消息调度示意图

CAN总线消息从实时角度考虑,可以划分为3类:硬实时消息、软实时消息和非实时消息[10],据此设置3个队列。为了保证消息传输的实时性,本文采用最早截止期优先算法(EDF)分别对3个发送队列内部的CAN消息进行优先级调度排序。3个队列之间的调度采用WRR算法[11],该算法给各队列赋予不同的权值(weight),轮巡处理各队列的数据。但是,权值对队列消息发送顺序影响很大,可能会造成低权值队列数据短时间内聚集过多,影响实时性,本文采用基于阀值的动态权值改进WRR算法。

在一个循环周期内,对队列服务的次数与权值相对应。设硬实时队列的权值为W1,软实时队列为W2,非实时队列为W 3(W 1>W2>W 3)。轮转次数为i,非实时数据所占非实时队列缓冲区比例为Q,阀值X为小于1的固定百分数,具体算法表达如下:

初始化时,为保证实时消息的发送,W 1与W2应尽可能地比W 3大。轮巡的周期依据硬实时队列的权值而定,故每次轮巡硬实时消息都能发送,保证了硬实时消息的实时性。但由于非实时消息的权值W 3较小,某一时刻如果非实时消息来的较多,就会造成非实时消息的阻塞延迟较大。在这里依照当前非实时队列中的消息比例,对非实时队列采用动态权值,超出一定比例就动态加1,可以改善非实时消息阻塞的情况,兼顾公平性。

如果每一个队列都有需要服务的数据帧,则选取队列的前K个组包成转发数据帧的格式并发送。如果队列的数据帧不足K个,则不必补足K个;如果队列为空,则不处理此队列,转而处理下一个队列。

3 队列转发效率分析

将CAN消息帧的仲裁场部分分为2段,前段是消息帧的队列间优先级,后段是队列内部优先级。CAN消息帧的队列间优先级设为主优先级,队列内部优先级为次优先级。设队列中有 N个待发送的信息帧,不妨设这些信息帧的优先级标识符为1,…,N。按照从大到小标识符1优先级最高。对信息帧优先级比较,先比较主优先级,如主优先级相同再比较次优先级。按照CAN总线发送消息的机制,可以假设发送到FlexRay的信息帧的到来行为符合Poisson分布[12],这样就可以把转发过程看成是一个关于N个优先级类的顾客排队过程,信息帧如果获得了仲裁,它将一直传完该组的所有数据位,在传送非仲裁域数据的过程中,不会被更高优先级的信息帧组所中断,因此排队过程又是非抢占的。若一次性对K个数据进行打包,缓冲区的CAN信息帧的传输过程就可以看成是一个M/G/K队列。

令:λi=优先级为i的信息帧的到达率,在这里为单位时间内信息帧到达的数目,i=1,…,N;μi=优先级为i的信息帧的服务率,这里为单位时间打包发送成功的信息帧数目,i=1,…,N;ρi=优先级为i的信息帧的使用率,这里为此信息帧服务时,网关被占用的概率等于λ/kμi,i=1,…,N;Wi=优先级为i的信息帧在网关中的等待时间,i=1,…,N;Xi=优先级为i的信息帧占用服务台的时间,本文为信息帧打包发送到FlexRay总线的时间。

对于优先级为i的信息帧的排队时间分为3个部分:①先于i到达但仍未获得服务的信息帧的服务时间;②后于i到达,但在它之前得到服务的信息帧组的服务时间;③正在传送的信息帧的剩余传送时间,即阻塞时间。

FlexRay有静态和动态2种格式的时间段,静态时间段发送时间固定,此种状况的发送延时可以不予考虑,本文主要考虑动态时间段发送的延时。FlexRay在动态时间段的延时RD可以分为2部分:一部分是FlexRay网络中在网关ID前的动态帧传输时间T1;另一部分是没有动态帧传输的空闲等候时间 T2。设每Q个通信周期内产生一个动态帧,且生成的时刻是均匀分布的,则动态帧的生成密度表示为1/QT,T为FlexRay的通信周期。可以得到:

其中,p为一个动态信息帧发送所造成的延迟;p′为无动态帧发送空闲等待时间的延迟。因此有:

根据(3)式,由文献[7]推得的结论如下:FlexRay消息帧队列延迟的均方差为由此可知通信性能相关。

由(1)式和(2)式可以看出:①采用数据帧转发方法与采用FCFS单队列调度相比较,系统的平均服务时间由1/μ缩短为1/kμ;②服务强度为单帧发送的1/k,提高了系统的稳定性;③缩短了后续帧的等待时间、网络阻塞时间和高优先级CAN消息的传输延迟。

4 仿真与结果分析

采用M atlab的TrueTime工具箱进行仿真,如图5所示。

图5 网络系统仿真模型

网络系统由2个网络模块和6个内核模块构成,内核模块作为网络的节点使用,每个网络节点均维护一个T ruetim e kernel,内核中的任务调度优先级策略均与其它节点无关。

网络1运用CSMA/AMP网络模块模拟CAN总线,网络2运用RoundRobin网络模块模拟FlexRay总线,网速分别为 500 kb/s和10 Mb/s。CAN总线上有5个节点,其中5号节点为网关节点,同时隶属于2个网络,因此具有2个网络接口。其余网络1中的节点任务周期为0.01~0.08 s之间,随机性地发送3种类型的消息,网关节点将从网络1接收到的消息按照数据帧转换方法处理后转发到网络2,本文只仿真上行的发送情况。

在仿真结果中,选取10个消息帧在网关转发的延迟时间,其中列出K=10,K=25及不运用本文方法(收到即打包发送)时消息帧延迟时间。帧类型1、2、3分别为硬实时数据、软实时数据和非实时数据,具体数据见表1所列。

表1 消息延迟时间 m s

通过表1可以看出,采用数据帧转换算法后有如下性能变化:

(1)可以有效减小后续消息帧的传输延迟,在实时数据的传输、实时性均能得到保证的同时,非实时消息也得到了良好的响应时间,更具有公平性。

(2)发送效率较直接发送的方法要高,平均延迟时间可以得到有效地缩短,当K值较大时,效果不是很明显。

(3)当K值较大时,网络利用率较高,但同时造成服务等待时间较长,实时性较差;K值较小时,网络效率变差,服务等待时间变短。

以上结论和本文所做的分析基本相符合。

由于不同的消息对实时性的要求不同,在汽车网络中安全和可靠性又是十分重要的,所以可以选取不同的K值,在允许的范围内保障实时数据传播的同时,也能达到较好的带宽利用率。

由于汽车网络的CAN与FlexRay网络的规模是一定的,且发送数据帧的数量和频率可以经过服务器来控制,因此K值可以根据网络规模和应用环境通过相应的分析来确定,在此本文不做讨论。

5 结束语

本文对FlexRay-CAN网关的数据转换问题进行研究。为提高发送效率,数据帧格式转换采用多消息帧打包的方法。从实时性考虑将CAN消息划分优先级,采用了基于多队列的轮转调度。根据排队理论对此方法数据转发的效率进行了分析,并采用TrueTime进行仿真试验。分析结果和仿真数据表明,与直接组包发送的方式相比,所提出的方法可以更好地兼顾消息的实时性和公平性,有效地降低消息的平均延迟。

[1] 罗 峰,苏 剑.汽车网络与总线标准[J].汽车工程,2003,25(4):372-376.

[2] 王跃飞,张伟伟,严 刚,等.CAN消息的动态调度截止期选取研究[J].合肥工业大学学报:自然科学版,2010,33(5):644-646,651.

[3] 韩江洪,唐 璐,王跃飞,等.基于DSPN的CAN/LIN网络建模及性能分析[J].合肥工业大学学报:自然科学版,2010,33(3):350-353.

[4] 袁昊昀,陈觉晓.车载 Flex Ray网络管理策略的初步研究[J].单片机与嵌入式应用,2008,(5):20-28.

[5] Li Hui,Zhang Hao.Design and application of communication gateway based on FlexRay and CAN[C]//2009 International Conference on E lectronic Compu ter Technology-Proceedings,2009:664-668.

[6] K im S H,Seo S H.A gatew ay system for an au tom otive system:LIN,CAN,and FlexRay[C]//The IEEE In ternationalConference on Industrial Informatics(INDIN 2008),2008:967-972.

[7] 邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1996:65-79.

[8] Ding S,Murakam i N,Tom iyama H,et al.A GA-based scheduling method for FlexRay system[C]//P roceedingsof EMSOFT.Jersey City,USA:IEEE Press,2005:110-113.

[9] 李 佳,田光宇.FlexRay网络通信延迟时间分析[J].清华大学学报:自然科学版,2007,47(8):1343-1346.

[10] Scheen JB,Letein tu rier P.Twin CAN:a new m ilestone for inter-network communication[C]//Proceedings of Society of Automotive Engineerings,2000:102-106.

[11] 肖 钧,庞丽萍.LINUX虚拟服务器中WRR调度算法的优化[J].华中科技大学学报:自然科学版,2001,29(2):46-52.

[12] 王松桂,陈 敏,陈立萍.线性统计模型[M].北京:高等教育出版社,2002:60-75.

A solution based onmulti-queue scheduling for p rocessingmessages in FlexRay-CAN gateway

LIChuan-bin1, YAN Gang1, LIU Meng-yang2,3, WANG Yue-fei3,4, WANG Zi-han4

(1.Anhui JAC Autom obile Co.,Ltd.,H efei 230601,China;2.School of Computer and Information,Hefei University of Technology,Hefei230009,China;3.Engineering Research Cen ter of Safety Critical Industrial M easuremen t and Control Technology of M inistry of Education,Hefei University of Technology,Hefei230009,China;4.Schoolof Machinery and Automobile Engineering,H efei University of Technology,H efei 230009,China)

As the FlexRay bus has been used in the safety-critical real-time system s,such as power train system s,themessage exchange between FlexRay and CAN network hasbecome an exigentproblem to be so lved.In order tomeet the requiremento f the FlexRay-CAN gateway,this paper proposes amessage processingmethod based on multi-queue hybrid scheduling and then gives its imp lementation algorithm.Based on them odeling of thism ethod with queuing theory,the perform ance of the method is also analyzed.Finally,the sim ulation resu lt gained by TrueTime indicates that the method can guarantee the real-time propertiesof real-timemessages aswell as the response time of non-realtime messages.

automobile;CAN bus;FlexRay bus;gateway;multi-queue hybrid scheduling

TP273.5;U 463.061

A

1003-5060(2011)01-0028-05

10.3969/j.issn.1003-5060.2011.01.007

2010-01-12;

2010-04-28

国家自然科学基金资助项目(60873003);高等学校博士学科点专项科研基金资助项目(20070359028);广东省教育部产

学研结合资助项目(2008B090500226)和合肥工业大学2009年国家大学生创新实验计划资助项目(091035905)

李传斌(1972-),男,安徽合肥人,安徽江淮汽车股份有限公司工程师;

王跃飞(1977-),男,内蒙古奈曼旗人,博士,合肥工业大学副教授,硕士生导师.

(责任编辑 张秋娟)

猜你喜欢

合肥工业大学实时性队列
一类分数阶非线性时滞系统的稳定性与镇定
队列里的小秘密
合肥工业大学学报(社会科学版)投稿须知
基于多队列切换的SDN拥塞控制*
《合肥工业大学学报》(自然科学版)征稿简则
在队列里
丰田加速驶入自动驾驶队列
航空电子AFDX与AVB传输实时性抗干扰对比
计算机控制系统实时性的提高策略
《合肥工业大学学报(自然科学版)》重要启事