OSEK网络管理规范在FlexRay总线中的研究与实现

2012-07-19 07:13谷建伟蔡云辉
汽车科技 2012年5期
关键词:时隙网络管理总线

谷建伟 ,蔡云辉

(1.安全关键工业测控技术教育部工程研究中心,合肥 230009;2.合肥工业大学 机械与汽车工程学院,合肥230009)

FlexRay是继CAN和LIN之后的最新研发的汽车总线,将会在未来数年内,引领整个汽车电子产品控制结构的发展方向[1]。目前,FlexRay联盟推进了FlexRay的标准化,使之成为了新一代汽车内部网络通讯协议,FlexRay总线具有传输速率高、硬实时、安全性和灵活性等特点。但FlexRay协议只规定了物理层协议和数据链路层协议,没有制定网络管理方面的标准。随着FlexRay总线在汽车电控领域中越来越广泛的应用,对适用于FlexRay总线的网络管理策略的研究也变得愈加重要。

对于车载网络管理而言,OSEK/VDX NM是通用的、公认的标准,因此各厂家在制定网络管理规范时,应尽量遵循这个标准[2]。目前,国内外相关研究单位已经对OSEK/VDX NM规范的研究作了大量的工作。在国外,法国的电子工程学院、CEA、卡内基梅隆大学以及美国著名的嵌入式系统厂商WindRiver公司、Metroworks公司等都对OSEK标准进行了深入的研究[3-5]。在国内,清华大学、哈尔滨工业大学和同济大学等高校均开展了对OSEK规范的学习与研究[6-9]。分析当前各大研究机构的研究成果可以知道,对OSEK网络管理的研究主要是针对CAN网络的,对于Flexray总线的网络管理的研究几乎处于初级阶段,只有个别研究单位进行了零星的研究,如在文献[10]中提出了基于OSEK的FlexRay总线网络管理协议单元的定义,文献[11]介绍了AutoSAR规范中FlexRay总线网络管理的方法。本文分析了FlexRay总线协议和OSEK/VDX网络管理的特点,提出了在FlexRay通信周期动态段中实现OSEK网络管理的方案,并在自行设计的实验平台上进行了实验,验证了本方案的可行性。

1 FlexRay协议及OSEK直接网络管理

1.1 FlexRay通信协议

FlexRay总线是一种高速串行通信网络,具有高带宽、支持双通道、可灵活配置多种网络拓扑结等特点。FlexRay的一个通信周期分为静态段、动态段、标识窗和网络空闲时间,其中,静态段和动态段用来传输总线数据,即FlexRay报文。FlexRay的静态段采用的TDMA方式,静态段被划分为若干个时间宽度相等的静态时隙(Static Slot),每个时隙被分配给某个特定节点,在该时隙内,此节点唯一占有总线控制权,向总线发送数据,即使该节点此时没有数据需要向总线上发送,它所占用的时隙也不会被其它节点所占用。静态时隙的时间宽度以及节点访问总线的顺序在系统配置时被确定,系统运行中是固定的。与静态段不同,动态段采用的是可伸缩时分多路(FTDMA)方式,节点访问总线的顺序是按优先级确定的,但时隙长度是动态调整的,当节点没有数据需要向总线发送时,经过一个微时隙(Minislot)后,总线控制权立即交给下级节点。FlexRay总线的静态段是时间触发方式,动态段本质上是事件触发方式。时间触发方式具有确定性,但实时性较差,而事件触发方式的实时性较好,但确定性差。

1.2 OSEK直接网络管理

OSEK网络管理可以监控网络中各节点的状态,并使网络中的节点能够协商进入睡眠状态。OSEK网络管理提供两种可供选择的实现机制:直接网络管理和间接网络管理。直接网络管理是使用逻辑环并通过主动广播专门的网络管理消息来实现的。在直接网络管理中,节点进行复杂的状态转换,并组成逻辑环;通过在逻辑环中发送网络管理消息来主动监控和报告网络中其他节点的状态,使得每个节点都能在一定的时间内获得整个网络的状态消息。

对于直接网络管理,首先是要建立逻辑环。逻辑环的通信独立于网络的物理结构,每个节点都具有一个自己的逻辑后继节点。当逻辑环稳定后,每个节点依次用网络管理信息报告自己的当前网络状态信息,并接收其他节点的网络管理信息,从而监控它们的状态。OSEK网络管理把直接网络管理信息定义为网络管理协议数据单元 (Network Management Protocol Data Unit,NMPDU)。 NMPDU 的格式见表 1。

表1 NMPDU的格式

表1中,地址域包含源节点地址和目标节点地址。控制域包含消息类型的信息,即Ring消息(正常工作的逻辑环消息)、Alive消息 (Alive消息用于表明加入了新节点)和LimpHome消息(功能异常的节点将周期性地传输LimpHome消息)。数据域是可选的,可根据具体情况自行定义。

2 FlexRay总线网络管理的研究

2.1 NMPDU到FlexRay动态段数据帧的映射

通过研究OSEK网络管理规范和FlexRay通信周期中静态段和动态段的特点,可知OSEK网络管理虽然没有指定具体的总线类型,但是其特性决定了其只适合于事件触发方式的总线协议,如CAN总线。FlexRay通信周期动态段也是基于事件触发方式,这与CAN总线类似。因此,可以将OSEK网络管理消息放置在FlexRay通信周期动态段中发送。

OSEK网络管理规范采用网络管理协议数据单元(NMPDU)来表示一个节点的网络管理信息。网络管理消息要通过FlexRay总线进行传输,需要将其映射成FlexRay总线的数据帧格式。在FlexRay通信周期动态段数据帧中将有效数据部分的头两个字节设置成消息标识(Message ID),作为NMPDU的源节点标识符,用于表明接收的消息来自哪个节点;将有效数据的第3和第4个字节作为NMPDU的目的节点标识符,用于确定本消息的接收节点;第5个字节作为NMPDU的操作码,包含了直接网络管理的三类消息,即Ring消息、Alive消息和LimpHome消息;第6到11个字节作为NMPDU的可选数据部分,映射格式如表2所示。

表2 NMPDU到FlexRay动态段数据帧的映射

2.2 网络管理消息在动态段延迟时间分析

与CAN总线不同,由于FlexRay总线动态段特殊的通信机理,动态帧消息不能实时发送。因此,在动态段中发送的网络管理消息会出现延迟的情况,从而造成网络管理系统误判当前网络状态和节点状态。网络管理消息在最坏情况下延迟时 间 Tdelay[12]为:

式中:Tt为发送网络管理消息所需要的时间,可用式(2)表示:

式中:FrameSize为报文长度;BusSleep为总线速率。

Te表示在给定时间内,由于静态段内的消息和更高优先级动态段消息的发送所消耗的时间,可用式(3)表示:

式中:TCycle为一个通信周期的时间长度;DelayCycles(t)为由于出现更高优先级和由于网络管理消息使用更低帧标识而导致网络管理消息无法发送的周期数;Te′为某消息发送的周期内,从该周期开始到该消息被发送之间的时间长度。

Tc表示网络管理消息在属于它的微时隙之后产生,从而引起在这个周期内的时间延迟,可以用式(4)来表示[13]:

式中:TST为静态段传输时间;FrameID为帧ID的值;gdMinislot为微时隙的时间。

2.3 网络管理过程分析

直接网络管理是通过在逻辑环上网络管理消息的传递来实现对整个网络和节点的监控,因此,逻辑环的可靠运行是直接网络管理的重要内容。下面就通过分析逻辑环的建立、逻辑环的稳定运行、节点增加和节点离线及网络故障处理来说明FlexRay的OSEK网络管理的过程,并研究逻辑环运行过程中网络管理消息可能出现的最坏情况下的延迟时间Tdelay问题。

2.3.1逻辑环的建立

FlexRay网络中各节点启动网络管理服务时,首先发送Alive消息成功的节点将成为逻辑环中的第一个节点。如果多个节点同时发送Alive消息时,在动态段中每个时刻,都是通过节点消息的优先级来竞争总线的,即通过每个节点发送消息的Frame ID值,并且只有当消息的Frame ID值与动态时慒相等时,才允许发送Alive消息,成为第一个发送的节点。收到第一个发送节点发送的Alive消息后,其他节点按相同的方式继续竞争发送自己的Alive消息,最后按消息的Message ID的大小顺序形成逻辑环。

2.3.2 逻辑环的稳定运行

Ring消息是网络管理的主要消息,它采用令牌环机制在逻辑环中被依次传递,在逻辑环中,各节点按Message ID的大小依次连接,Message ID值小的节点是Message ID大的节点的逻辑前驱节点,最大Message ID的节点的逻辑后继节点是最小Message ID的节点。

当FlexRay网络中某节点接收到Ring消息后,此节点会判断Ring消息的NMPDU中的目的节点地址,如果Ring消息的目的地址不是此节点,则取消TTyp定时器,启动TMax定时器(如果定时器TMax没有运行则启动,如果定时器TMax正在运行则重启);如果Ring消息的目的地址是此节点,则取消TMax定时器,启动TTyp定时器(如果定时器TTyp没有运行则启动,如果定时器TTyp正在运行则重启),TTyp定时器到时后,发送Ring消息到自己的后继节点,其实现过程如图2所示。

在图1中,节点在t2时刻向其后继节点发送Ring消息,由于存在最坏情况下的延迟时间Tdelay可能出现在TMax定时器到时(t3时刻)时,Ring消息还未发送出去,这就造成网络上其他节点误认为A节点已经掉线,从而将节点A从逻辑环中排除掉,造成网络管理系统无法正常工作。

所以,必须保证t2到t3时间段的长度大于最坏情况下的延迟时间Tdelay,即:

2.3.3节点增加

如果FlexRay网络中有新的节点加入,那么该节点将向网络中发送一条将其后继节点设置为自身地址的Alive消息。逻辑环中已有的节点在接收到Alive消息后,认为有新节点加入网络并判断新节点是否为自己逻辑后继节点。之后新节点将监听网络中的Ring消息,当接收到Ring消息时,便将自己的后继节点更新为Ring消息的源节点地址。此时,网络中其他的节点将会判断自己是否被跳过,如果某节点发现自己被跳过,将向网络中发送一条Alive消息表明自己还在网络中。新节点收到Alive消息后,便将自己的后继节点更新为Alive消息的源节点地址,此时,新节点便加入逻辑环中。

2.3.4节点离线及网络故障处理

OSEK网络管理规范提供了检测节点离线的机制,如果TMax定时器到时,表明在此期间逻辑环中没有消息,一定有节点离线,此时,网络管理系统将重新建立逻辑环并将离线节点排除在外。如果某节点的网络管理消息传输失败,则启动TTx计数器并增加计数器TTx的值。如果计数器TTx值超过一定的次数,则该节点将进人LimpHome状态,表明该节点存在故障。当节点因故障进人LimpHome状态后,由其TError定时器控制周期性地发送LimpHome消息,表示自己处于网络故障状态。

在OSEK网络管理系统中,定时器TError的值一般远大于TMax和TTyp定时器的值,也满足式(5)。因此,LimpHome消息能成功发送,而不受最坏响应时间Tdelay的影响。

3 实验方案验证

本方案使用自行设计的三个FlexRay节点构建逻辑环,各节点采用Freescale公司生产的MC9S12XF512单片机作为中央控制单元,TJA1080T作为FlexRay节点的收发器并将Vector公司开发的Davinci软件接入网络来观察逻辑环运行过程[14]。限于篇幅,只给出了逻辑环建立过程的实验结果,如表3所示。

从表3实验结果可知,节点1首先发送Alive消息,之后,节点2也发送Alive消息。节点1根据更新的网络配置发送Ring消息到它的逻辑后继节点2,TTyp定时器到时后,节点2也更新自己的网络配置,并发送Ring消息到它的逻辑后继节点1。节点4启动网络管理,并向网络中发送Alive消息。节点1仍会按当前网络配置将Ring消息发送给节点2,而节点2则会把Ring消息发送给节点4。节点4会根据网络上当前最小的节点地址,将Ring消息发送给节点1。由此可以看出,这个实验结果实现了逻辑环建立的功能。

表3 方案实验结果

4 结束语

车载网络管理的主要作用是保障车载网络通信的安全性与可靠性,并能协调网络中的各节点同步进入睡眠状态。OSEK网络管理可以很好的保障FlexRay网络在高带宽和高灵活性的情况下,可靠安全地进行网络通信。通过分析OSEK网络管理规范和FlexRay总线协议,提出在FlexRay通信周期动态段中实现OSEK网络管理,并定义了网络管理数据协议单元 (NMPDU),分析和研究了FlexRay的OSEK网络管理的具体过程以及网络管理消息在动态段延迟时间问题。本文为国内研究OSEK网络管理的FlexRay网络实现提供了一个初步方案,为进一步研究FlexRay总线的网络管理做些铺垫。

[1]FlexRay Consortium.FlexRay Communications System Protocol Specification [S].December 2005.Version 2.1 Revision A.

[2]OSEK/VDX Group.OSEK/VDX Network Management Concept and Application Programming Interface [S].2008.Version 2.5.3.

[3]B.Frank,L.George.FP/FIFO Feasibility Conditionswith Kernel Overheads for Periodic Tasks on an Event Driven OSEK System [J].The IEEE International Conference on Industtrial,2006,7:1-8.

[4]F.Laqarde,A.Radermacher,S.Robert,S.Gerard,D.Servat.Issues in mapping CORBA component model to OSEK [J].Communication of the ACM,2005,8:434-437.

[5]P.H.Feiler.Real-Time Application Development with OSEK A Review of the OSEK Standards[J].CMU/SEI,2003,5:7-46.

[6]栾鑫颖,孙晓民.车用嵌入式开发系统的软构件研究[J].计算机应用研究,2006,4:57-59.

[7]张宝民,孙晓民.基于OSEK规范的嵌入式实时操作系统研究[J].计算机应用研究,2004,4:32-35.

[8]梁金祥,吴翔虎.OSEK/VDX嵌入式操作系统的设计与实现[J].2007,7:38-41.

[9]袁铭蔚,孙泽昌.陈觉晓.一种嵌入式实时操作系统[J].测控技术,2003,22:45-47.

[10]陈觉晓,袁昊昀.基于OSEK NM的Flexray网络管理协议数据定义[J].机电一体化,2009,1:70-72.

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

[12]KLAUS S,ECE G S.Message scheduling for the FlexRay protocol:the static segment[J].IEEE Trans Actions on Vehicular Technology,2009,58(5):2170-2179.

[13]ECE G S.Message scheduling for the FlexRay protocol:dynamic segment [J].IEEE Trans on Vehicular Technology,2009,58( 5):2160-2169.

[14]李定根,曹晶,张杰.基于CANoe-MATLAB的车辆CAN总线的联合仿真[J].汽车科技,2009,11:57-61.

猜你喜欢
时隙网络管理总线
基于阵列天线的数据时隙资源比例公平动态分配方案设计
时间触发通信总线监控技术研究
数控机床DNC网络管理平台在智能制造中的应用
基于时分多址的网络时隙资源分配研究
基于OpenStack虚拟化网络管理平台的设计与实现
Link—16中继时隙自适应调整分配技术研究
基于CAN/LIN总线的LED车灯控制研究
网络管理技术的应用分析
一种车载网络中基于簇的时隙碰撞解决方法
流量分析在网络管理中的应用探析