flexray网络管理与测试-金年会金字招牌信誉至上

flexray网络管理与测试
技术干货 2022.10.28

随着车载网络发展,ecu的通讯速率相较以往得到飞速提升。现今多数oem在中高速通讯场景中仍采用canfd进行过渡,但当同时考虑安全和更高带宽时,canfd则无法满足,因此flexray成为部分oem的首要选择。其中控制各ecu的睡眠唤醒依旧利用耳熟能详的nm网络管理实现。


下面跟随小怿一起了解flexray网络管理及相关测试吧。


一、flexray网络管理简介


01 报文格式

flexray网段通信时为了表示各ecu表示自身是否加入网络,特意在nm报文中引入vote投票位,当vote=1时代表加入网络,vote位是否有效取决于flexray-nm状态机。

flexray-nm报文格式及内容如下所示:

640 (5).jpg


其中针对cbv字节的bit信息定义如下:


640 (7).jpg


02 flexray-nm状态机

poc:protocol operation control,协议操作控制,简称poc状态机

pnc:patiral network control,局部网络控制,简称pnc状态机

swc:software component,应用层软件组件,负责实现不同功能

wup:wakeup pattern,flexray唤醒信号,以低高电平呈现


flexray网络管理设计类同于can网络管理设计,不同的是flexray的网络管理为了更清晰的划分局部网络,同一flexray网段下根据ecu功能划分了pnc网关、非pnc网关与不支持pn三种。其中ecu的休眠、唤醒、同步的时机由nm状态机决定;各ecu状态由自身poc状态机控制负责实现;唤醒状态时,各swc映射至pnc的相关报文是否发送由pnc状态机与comm channel状态机共同决定。测试时仅关注pnc状态机即可,也就是pnc网关的网络管理报文对应pncid是否置1,这一信息部分oem也布置了vfc报文进行体现。


再简而言之,在flexray网络管理与can/canfd网络管理测试不同点为nm状态机跳转与pnc状态机map-frame的一致性。今天我们主要介绍flexray-nm状态机的跳转机制。


640 (19).png


flexray-nm状态机模式有三大三小,后文有关状态描述采用对应缩写:

bsm:bus sleep mode,总线睡眠模式

sym:synchronize mode,同步模式

nm:network mode,网络模式


network mode模式中包含三个子状态:

rms:repeat message state,重复消息状态

nos:normal operation state,正常操作状态

rss:ready sleep state,准备睡眠状态


flexray-nm状态机与can-nm状态机唯一不同的是取消了pbm预睡眠模式,并引入同步模式给与全局时基同步时间。各个状态跳转的条件基本取决于nm-timeout-timer、repeat-message-timer、wait-bus-sleep-timer及网络是否释放。具体的跳转条件如下:


condition1:本地唤醒请求

condition2:接收网络管理报文成功

condition3:发送网络管理报文成功

condition4:repeat-message-timer超时

condition5:不进行本地唤醒请求

condition6:nm-timeout-timer超时

condition7:配置flexraynmpnenabled=false并且网络请求

condition8:wait-bus-sleep-timer超时

condition9:配置flexraynmpnenabled =true并且重复消息请求

condition10:poc状态机完成同步

action1:初始化

action2:初始化nm-timeout-timer

action3:开始repeat-message-timer

action4:开始wait-bus-sleep-timer


了解了flexray网络管理的基础知识,下面跟随小编一起学习下网络管理中flexray不同于can的部分测试吧。


二、flexray网络管理测试


01 测试环境搭建

640 (20).png

基于vector的基础测试环境


怿星自研的flexray自动测试台架由上图vector基础测试环境再搭配自研ets6210、eh6466板卡共同构成,可同时实现flexray单节点、系统级、网络管理以及诊断刷写测试。基于cdd的诊断实现同样满足oem在flexray节点诊断协议的不一致性,常见的诊断协议为doip、flexray、can。测试中为避免canoe中poc状态机重启将影响网络管理测试,在network hardware中配置如下:


640 (21).png


当被测件为冷启动节点时,为保证网络启动时被测节点的冷启动优先级,还需取消canoe的冷启动功能:


640 (22).png


02 vote投票位测试

测试方法:利用canoe发送wup唤醒电平,仿真带有请求所有pnc的有效网络管理报文,监测ecu发出网络管理报文中vote有效性。


640 (23).png

发送唤醒报文后,ecu的nm报文vote=1


前文所述,vote有效代表节点自身加入网络,可以概括为vote在需要节点通信时总是有效,具体的变化如下:

· 本地唤醒/网络唤醒进入rms状态时vote=1

· 本地唤醒/网络唤醒维持进入nos状态时vote=1

· 网络被释放且nm-timeout-timer超时后vote=0

· wait-bus-sleep-timer超时后vote不再发送


03 bsm-rms测试

测试方法:利用canoe发送wup唤醒电平,仿真vote=1有效网络管理报文,监测ecu发出网络管理报文中vote的发送次数与pnc信息。


640 (24).png


发送唤醒信号后,ecu的nm报文持续10个nm-cycle


flexray采用时隙(时间片)传输,因此处于静态段的网络管理报文传输无法像can一样在rms状态设置快发送,但仍然规定了网络管理报文的发送次数,通常配置为10个nm-cycle。基于flexray的10mbit/传输,网络管理报文周期相较于can仍加速3-4倍,相较于canfd加速1-2倍,这也取决于nm-repcycle的设置。bsm-rms状态测试正是检测此项机制。监测实现采用on frframe事件,测试时最好设置同一cycle中仿真的网络管理报文时隙id大于被测的网络管理报文,大家可以参照lin协议的调度表运行考虑不这样做会有什么bug,又有哪种方法可以解决?


04 pnc掩码测试

测试方法:利用arxml解析后的pnc-pdu-signal group信息,使用canoe发送wup唤醒电平,仿真带有不同pncid的有效网络管理报文,监测ecu相关pdu的signal group是否更新。


640 (25).png

分别发送pncid=16,17的nm报文


前文所述,flexray节点为安全与高速服务,任何节点的通信都必须保证,因此在整车网络中各冷启动节点常被配置为pnc网关,那pnc掩码唤醒/唤醒维持测试就必不可少了。测试中需注意on frpdu事件无法抓取object::name,必须将arxml文件中的信息提取并根据object::fr_cycle与object::fr_slotid做匹配。capl提供主要抓取对象如下:


640 (26).png


以上,就是本次给大家分享的全部内容啦。小怿相信随着oem对于整车功耗标准的不断提升,flexray的优点与管理用户数据的pnc状态设计在未来将会有更多运用。限于篇幅,内容不详之处如果您还有疑问,欢迎关注怿星科技公众号,也可随时联系金年会金字招牌信誉至上呦!




关注怿星科技公众号,获取更多资讯 


flexray网络管理与测试(图11)


网站地图