AUTOSAR网络管理

1、概述

AUTOSAR网络管理是对整车控制器状态的管理。

2、工作模式的切换

1、AUTOSAR网络管理
AUTOSAR网络管理:是控制ECU工作模式状态的切换,比如网络状态、预睡眠模式、睡眠模式。
2、AUTOSAR如何切换工作模式的状态:
1、 当ECU处于睡眠模式或预睡眠模式时,接收到网络管理报文(NMF)或网络请求时,ECU进入网络状态;
2、 当ECU被唤醒后,进入网络状态。
首先,进入repeat模式,利用定时器,重复唤醒所需要的ECU;
其次,如果有需求,被唤醒的ECU进入Normal模式,既可以发送和接收NMF,又可以发送App Frame。如果没有需求,被唤醒的ECU进入Ready模式,不发送NMF可以接收NMF,也可以发送APP Frame;
最后,当所有的网路节点都不发送NMF,并且持续2s(主机厂规定的时间),进入预睡眠模式。
3、 进入预睡眠模式后,等待TWBS时间后且无唤醒,进入睡眠模式;

3、模式说明

3、AUTOSAR模式说明
3.1、睡眠模式、预睡眠模式
1.1、唤醒方式
主动唤醒:ECU本身有需求时,收到NMF,并且发送NMF的时间早于发送App Frame,比如KL15上电,定时器,传感器。(主动设置或者通过人的操作硬件,进而被设备感知)
定时器:节点休眠前设定的时间,比如:每2h节点主动醒来;
传感器:脚踢门功能。脚踢后备箱,后备箱对应控制器主动唤醒网络,进而执行后备箱开启功能。
被动唤醒:收到其他节点的有效网络管理报文的网络请求。

App Frame无法唤醒的原因:
因为睡眠模式和预睡眠模式状态下,不接收和发送App Frame(但是CAN总线已接收,只是无法进入应用层,被CAN控制器里的过滤器过滤了),所以APP Frame无法唤醒。
App Frame发送的时间:CANStartAPPTime
3.2、网络模式
1、Repeat Message模式
分为两个子状态:快速发送状态、正常发送状态。
快速发送状态:为了快速唤醒有需求的网络,进入Normal Operation模式;
正常发送状态:待快速发送状态结束,进入正常发送状态,然后选择进入Read 2、Sleep模式或者Normal Operation模式。
Normal Operation模式:发送网络管理报文,若是网络管理访问释放,则到Ready Sleep模式;
Ready Sleep模式:不发送网络管理报文,若是接收到网络管理报文,转变为Normal Operation模式;

4、AUTOSAR网络管理模式时间

Repeat Message的时间是用时间卡的,在这个时间内要唤醒的ECU必须醒;
它的快速发送状态是用次数卡的,其余时间是正常发送状态。
在这里插入图片描述

序号时间参数描述测试方法时间
1T_Wakeup从睡眠模式到网络模式,(上位机)发送NM报文的时间唤醒源的时间100ms
2T_START_NM从睡眠模式到网络模式,DUT发送的第一帧NM报文捕获到DUT发送第一帧NM报文(进RMS)50ms
3T_STARTTx_AppFrame成功发送第一帧网络管理报文后,开始发送应用报文的最大时间间隔第一帧NM报文发送后,捕获App报文的时间()20ms
4T_NM_MessageCycleNM报文的时间周期两帧NM报文的时间差500ms
5T_NM_ImmdeiateCycleTime快速发送子状态下,NM报文发送周期两帧NM报文的时间差(本地唤醒,进RMS)20ms
6N_ImmediateNM_TIMES快速发送子状态下,以周期T_NM_ImmediateCycleTime = 20ms发送的NM报文数量捕获到NM的次数5次
7T_REPEAT_MESSAGE网络上的其他节点可以通过接受网络管理报文来唤醒的最小时间第一帧NM报文发送的时间到最后一帧“RMS Flag=0”NM报文1500ms
8T_NM_TIMEOUT只要节点进入网络模式并启动此定时器。当此定时器到期时,节点将进入预睡眠模式最后一帧NM报文停发的时间(可能还要加上一帧网络管理报文的时间,因为可能周期没到,有误差,进RSS状态)2000ms
9T_WAIT_BUS_TIMEOUT确保所有的节点时间停止其网络活动定时器最后一帧APP报文停发的时间(进PBM状态)5000ms

5、状态迁移图

BSM状态下,检查没有报文,且不能被APP报文唤醒;
RMS状态下,检查RMS Flag。若是本地唤醒检查立即发送的次数以及周期;
NOS状态下,检查NM报文周期以及APP报文;
RSS状态下,没有NM报文,存在APP报文;
PBS状态下,没有报文(NM报文和APP报文)。
在这里插入图片描述
注意:信号KL15和硬线KL15是不同的,信号KL15是有误差的,硬件KL15可以忽略不计。
2、远程唤醒(没有本地唤醒的参与):
ECU首先被唤醒,进入RMS对ECU进行一个唤醒,等待一个CanNMRepeatMessageTime时间,若没有本地唤醒,那么ECU直接进RSS状态,等待NMTimeoutTimer进入预睡眠,等待CanNMWaitBusSleepTime睡眠。
CanNMRepeatMessageTime如何测试?
捕获到的报文RMS Flag为1的时间 + (第一个RMS Flag为0-最后一个RMS Flag 为1的时间)。
第二个时间是考虑到:可能会有报文周期没有到,发送失败的报文时间,但是没有在RMS中体现,
NMTimeoutTimer如何测试?
如何判断进图PBM状态
假设等待2秒,从RSS 到PBM 。从RMS状态起始时间到进入PBM2s之内,报文停止发送都是正确的。可能会小于2s,因为报文可能在1.98s发送报文,但是报文的时间周期没到,所以发送不出来。在1.98s已经停发,所以在2s减去NM周期到2s内都是正确的。
最后一帧网络管理报文的时间到最后一帧APP Frame的时间。但是若是最后一帧APP Frame周期未到,没有发出来,这段时间应该怎么统计?
CanNMWaitBusSleepTime:该时间段已经没有报文,所以用电压判断电平从2.5V到1.5V时间或者电流。
先远程唤醒,后续有本地唤醒的需要。
ECU首先被唤醒,进入RMS对ECU进行一个唤醒,等待一个CanNMRepeatMessageTime时间,CanNMRepeatMessageTime期间有本地唤醒,那么ECU进入NOS状态,若本地唤醒结束,则直接进入RMS状态(针对硬线信号误差忽略不计,信号模拟要计算误差),等待NMTimeoutTimer进入预睡眠,等待CanNMWaitBusSleepTime睡眠。
RMS状态下 的立即发送模式,只有在睡眠或预睡眠下,直接由本地唤醒才会进入。

6、程序编写思路

1、复位环境和参数:每到一个状态进行,环境和参数的初始化相关变量;
2、进入一个状态,统计报文;
3、捕获唤醒源;
4、捕获NM报文;
5、停止捕获报文(状态到期,到期之前进入下一个状态);
6、分析报文
进行下一个状态。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值