刘雅旎,张凤登
(上海理工大学 光电信息与计算机工程学院,上海200093)
FlexRay是汽车应用中的一种高速通信协议,主要遵循冲突避免时间触发通信模式,兼顾了时间触发报文和事件触发报文的传输,具有高吞吐量、确定性、容错性和灵活性等特点,能够满足未来汽车高速实时控制的需要,FlexRay[1]将成为继CAN之后未来车载网络发展的主流[2]。
尽管FlexRay具有满足各类先进汽车应用的特点,在应用FlexRay配置实际的总线网络时,需考虑最大限度地利用网络中的带宽资源来配置各个参数。本文主要对静态段时隙长度这一时间参数进行优化,在FlexRay总线网络时间优化模型的基础上,推导出最优的静态时隙长度,然后在参数设定的基础上,进行静态段的调度方案优化,并通过实例分析验证了结果的合理性。
FlexRay为车内提供了高级通信技术,其最大数据速率可达10 Mbit·s-1,当采用冗余通道通信时,提供了传输容错,当采用非冗余通道通信时,提高了带宽,整个协议是基于时间触发架构的,实现了确定性通信。
FlexRay帧格式如图1所示,主要由头段、负载段和尾端组成,节点按从左到右的顺序传送帧。
图1 FlexRay帧格式
头段的前5位依次为保留位、负载段前沿指示位、空帧指示位、同步帧指示位和启动帧指示位。静态帧负载段的前12 Byte可作为网络管理向量NM0~NM11,动态帧负载段的前两Byte可作为报文ID,用于接收节点过滤数据。
FlexRay协议的媒体访问控制是以反复出现的通信循环为基础,循环编号是0~63,以循环计数器计数。每个通信循环由静态段(ST),动态段(DYN)、符号窗(SW)和网络空闲时间(NIT)组成,由于本文主要研究静态段,所以对静态段作详细介绍。
静态段采用的媒体访问技术是时分多路访问(Time Division Multiple Access,TDMA),在网络配置阶段,静态帧特定地分配到静态段的节点和时隙,每个静态时隙的时间长度相等,且具有唯一的帧ID,在任意一个静态时隙中,仅允许一个节点在通道上发送帧,节点的每个通道上都有一个时隙计数器,在一个新的循环开始时,节点将每个时隙计数器的初始值都设置为1,并在每个时隙的结束处递增,当时隙计数器的值与帧ID相等时,相应的节点发送相应的帧[3]。
本文的研究对象是针对单通道异步系统进行的,即应用层和通信层之间是相互独立的,不存在同步操作。假设每个节点仅产生一个静态帧,每个静态时隙仅发送一个静态帧,一个静态帧的负载段可由一个或多个信号数据组合而成,本文仅考虑静态帧的负载段长度对静态时隙的影响,而不考虑如何将信号封装成帧[4]。
由帧格式可知,每个负载段数据都需要进行相应地添加头段和尾端,进行编码后,在总线上实时传输数据。编码就是对静态帧前加入一定的起始标识符和静态帧后加入一定的结束标识符,以及帧内每个字节前均会加入一个字节起始符。静态时隙的长度会受到上述编码过程中的各个因素的影响,本文提出通过最小化未被有效利用的带宽资源为优化目标,求解最优静态段的时隙长度,分析优化后静态段的带宽利用率[5-6]。
假设已知网络内的所有静态帧长度以及个数,静态段的负载段长度x为因变量,则存在静态时隙的个数N为
协议头段占用的位长度公式如下
其中,协议头段主要包括传输起始符TSS、帧起始符FSS、帧结束符FES、帧的头段Hd、尾端Tr、以及发送节点和接收节点的传播延迟时间Td,ceil()表示向上取整,Cpro=TSS+FSS+FES+Hd+Tr+Td。
在一个周期内未被用于传输数据所占用的时间长度之和为
因此,未被有效利用的带宽表示为Pst=Ph+Pu。上述时间参数模型的参数定义如表1所示。
表1 静态段参数表
则静态段时间参数优化问题可转化为以面的公式
即优化负载段长度必须小于静态帧中的最大值,且为偶数个字节。
根据(5)得到静态帧负载段的最优长度xp,则可得到静态段的最优时隙长度LSTslot为
进行参数优化后的静态段带宽利用率U可表示为
FlexRay静态段基于TDMA,采用表调度算法[7],该段的优化调度可以离线生成,各静态帧的调度具有确定性,在求得最优时隙长度的基础上,为了尽可能地减少对动态段的延迟,本文仅考虑每个节点只分配一个静态时隙编号,分析节点的发送序列对应的总响应时间[8-9]。假设动态段、符号窗和网络空闲时间的长度为一常数s,则FlexRay的周期长度Tbus为
每个静态帧都具有周期和截止时间两个属性,表示为li(pi,di),在进行了静态帧的分割后,每个节点可能包含多个静态帧,并且所有静态帧均要在截止期限内完成发送,即存在
其中,Ri为每个静态帧的响应时间,被分割的静态帧具有相同的周期和截止时间,取其中的最大响应时间来与截止时间比较。分析各个静态帧的响应时间为
静态段的优化调度目标就是使静态报文的总响应时间最小化,即。
采用实例来验证前文推导的解析表达式的正确性,其中BSS=2 bit,Cprotocol=131 bit,s=15 Mt,位时间τt=0.1μs。FlexRay中有4个节点共4个周期性的静态帧在静态段中传输,其各参数如表2所示。
表2 静态帧参数表
依据3中的时间优化方式可得出在不同x的不同Pst值,对应的图如图2所示。
图2 静态帧负载段与未有效利用的带宽的关系
由上图可知,最优的负载段长度是8 Byte,最优时隙长度为211 MT,表示宏节拍的时间。则对应的静态段的带宽利用率为92.27%,与未进行优化前静态帧的利用率提高了81.96%。通过上述调度方案可得到调度结果如图3所示。
图3 静态段优化调度方案的结果
为了提高静态段的带宽利用率,通过静态帧最优时间模型,得出最优的静态时隙的长度参数值,使得未被利用的带宽尽可能少,在静态参数配置完成的基础上,为了降低FlexRay网络协议调度的复杂性,本文提出了一种带有一定前提条件的静态段优化调度方案,使所有静态帧的总响应时间最小。
[1]FlexRay Consortium.FlexRay Protocol Specification 2.1 Rev.A[EB/OL].(2005-05-02)[2015-02-01]http://www.flexray.com.
[2] 郭雪剑.现代汽车车载网络技术应用[J].电子技术与软件工程,2014(18):41-44.
[3] 张凤登.分布式实时系统[M].北京:科学出版社,2014.
[4]Kang M,Park K,Kib B.Determining the size of a static segment and analyzing the utilization of in-vehicle FlexRay network[J].IEEE Computer Society,2008,31(7):50-53.
[5]Park I,Sunwoo M.FlexRay network parameter optimization method for automotive applications[J].IEEE Transactions on Industrial Electronics,2011,7(1):1-17.
[6] 郑文学.车载网络FlexRay调度方案优化设计研究[D].杭州:浙江大学,2013.
[7] 顾嫣,张凤登.FlexRay动态段优化调度算法研究[J].自动化仪表,2009,30(12):25-29.
[8] 夏凤仙.FlexRay车载网络调度算法研究[D].合肥:合肥工业大学,2011.
[9]Schmidt E G,Schmidt K.Message scheduling for the flexray protocol:The dynamic segment[J].IEEE Transactions on Vehicular Technology,2009,58(5):2160-2169.