FlexRay总线网络管理策略
点的总线时间,从而破坏总线通信。所以,FlexRay总线不支持事件触发的非确定性报文,NMPDU必须通过周期性报文在确定的时间发送。根据实际网络要求,网络管理周期可以设为FlexRay通信周期的整数倍,每个节点在一个网络管理周期内发送其NMPDU一次。
(3)节点的网络管理状态转换和NM-Task必须与FlexRay通信周期配合执行。
由于FlexRay总线采用周期通信的方式,FlexRay节点的网络管理状态转换必须在FlexRay通信周期的间隔处执行,NM-Task的执行需要在上一周期所有其它节点的NMPDU接收完成和下一周期发送本节点NMPDU之前完成。然而,FlexRay总线的全局时间每两个通信周期调整一次,所以上述二者不能采用定时器方式执行,必须与FlexRay通信周期配合执行,以实现网络范围的同步执行。
(4)根据两种接入时序的特点,灵活使用静态帧与动态帧。
FlexRay静态帧严格按照报文周期发送,但是静态帧会占用一个静态时隙。如果所有NMPDU均占用一个静态时隙并且其发送周期远大于通信周期,则造成了带宽的浪费。而一个动态帧ID可以分配给多个节点,不同节点的NMPDU可以通过设定相同的帧ID,不同的循环计数值(Cycle Counter)在多个通信周期的相同动态时隙发送,有效的提高了带宽利用率。实际上,帧ID最小的动态帧同样可以满足严格周期性发送。所以,静态帧和动态帧均可以用来发送NMPDU,需考虑网络和节点通信的实际情况灵活使用。
(5)合理利用静态帧的NM Vector。
在FlexRay静态帧中使用NM Vector可以显著的提高网络管理信息的更新速率,但是NM Vector的长度为0-12字节,且要求所有节点长度相同。如果NM Vector长度较短,如1-2字节,则可以同应用报文合并一起发送,以避免带宽的浪费。所以,可在NM Vector中只发送关于节点地址、网络请求状态的信息,使用动态帧发送NMPDU中可选的用户数据(User Data)。
OSEK网络管理协议
OSEK网络管理可以监控网络中每个节点的状态,向上层软件提供当前网络的配置,并使网络中的节点能够协商进入睡眠状态。OSEK网络管理采用分布式网络管理方式,定义了两种网络管理机制:直接网络管理和间接网络管理。
1.直接网络管理
直接网络管理使用特定的网络管理报文,利用令牌环机制监控网络。网络中,每个节点都有一个后继节点,逻辑环的第一个节点是该逻辑环最后一个节点的后继节点,从而所有节点组成一个逻辑环。直接网络管理要求网络中所有的节点参与网络管理并分配唯一的静态节点地址。节点通过发送NMPDU进行网络管理,OSCK NMPDU举例如图3所示。
图3:OSEK NMPDU举例。
节点通过发送Alive报文建立令牌环,功能正常的节点发送周期性(周期TTYP)的Ring报文指示该节点的功能正常,功能不正常的节点发送周期性(周期TError)的Limphome报文指示该节点的跛行状态。请求网络睡眠的节点将NMPDU中的Sleep.Ind置1并发送请求,逻辑环中最后一个节点同意睡眠后发送Sleep.Ack置1的NMPDU。所有节点接收到Sleep.Ack置1的NMPDU后,等待相同时间(TWaitBussleep)后转至睡眠状态。
相应的,OSEK直接网络管理的网络状态分为NMAwake状态和NMBusSleep状态。在NMAwake状态下按照网络配置区分为NMNormal子状态和NMLimphome子状态。网络状态间的转换基于内部定时器及不同类型NMPDU文的接收。
2.间接网络管理
间接网络管理不需要NMPDU,而是通过监控节点的周期性应用报文,实现网络的监控。节点发送的周期性应用报文被成功接收即被认为在线,在预定时间内没有被成功接收即被认为离线。间接网络管理不需要网络中的所有节点分配网络管理报文ID,较直接网络管理简单灵活,网络开销小。但是对于应用上只需要接收网络报文或只发送事件触发报文的节点需要增加专门的周期性报文。
OSEK网络管理虽然没有指定总线类型,但是其特性决定了其只适合于事件触发的总线协议,如CAN总线,而不能用于FlexRay总线协议,因为:节点网络管理状态的转换和NM-Task的执行基于定时器的超时,无法与FlexRay通信周期同步;直接网络管理采用令牌环机制,与FlexRay报文的确定性发送方式不符。
此外OSEK网络管理没有考虑FlexRay总线的不同接入时序、硬件支持和双通道通信等特点。
AUTOSAR网络管理协议
AUTOSAR组织提出了标准化的软件平台及不同总线协议的网络管理规范。AUTOSAR网络管理使用分布式的直接网络管理机制,网络状态转换基于节点请求网络的状态及周期性NMPDU的接收。节点接收到一个广播发送的NMPDU表明发送节点意图保持网络的唤醒状态。如果某节点准备进入总线睡眠状态,则停止发送NMPDU,但只要接收到其它节点发送的NMPDU,就推迟总线睡眠模
- 基于Flexray总线的车载指挥控制设计与实现(11-17)
- ]基于Flexray总线的车载指挥控制任务计算机的设计与实现(08-28)
- 基于Flexray总线的车载指挥控制任务计算机的设计与实现(08-04)
- 基于MFR4200的FlexRay总线接口技术(08-30)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)