目录
0 前言
1 状态转换
1.1 BSM TO RMS
1.2 RMS TO RSS
1.3 RMS TO NOS
1.4 RSS TO PBSM
1.5 PBSM TO BSM
1.6 RSS TO NOS
1.7 RSS TO RMS
2 结尾
0 前言
之前在这篇《从项目中初识Autosar网络管理》已经和大家讲了Autosar网络管理的几个状态机以及定时器的大致概念,以及在项目中的作用,网上讲理论的大佬也不在少数,但如果没有自动化脚本的话,很多新人并不知道该怎么切换到那些状态去,本文主要从项目中教大家如何进入那几个状态模式。
1 状态转换
1.1 BSM TO RMS
ECU上电,没有向ECU发送NM报文前的状态就是BSM状态,一般需要发送两帧NM报文来唤醒ECU,第一帧先唤醒芯片,第二帧才是在唤醒ECU。如果你只发送一帧NM报文一般是不能唤醒ECU的,这是实操中需要注意的一个点。
收到唤醒信号到ECU唤醒,这需要在T_WakeUp时间内完成,这也是测试点。进入RMS之后,按照T_NM_MessageCycle的周期持续发送报文,1500ms以后进入下一个状态。
1.2 RMS TO RSS
如果没有其他请求,只是一直在发送NM的全0报文,此时ECU会进入RSS状态,该状态比较明显的特征就是ECU只发出APP报文,而不发出NM报文。
1.3 RMS TO NOS
RMS到NOS需要有网络请求,这个可以是点火信号,也可以是有诊断请求,此处以有诊断请求为例,在RMS时,发送诊断报文,此时进入NOS状态,ECU发出的NM报文状态如下所示,从图中可以看到一开始ECU的NM报文还在重复报文状态,而进入NOS后该状态为就变为了0。
1.4 RSS TO PBSM
上位机停发NM报文后,经过NM_TIMEOUT后你会发现ECU也开始停发APP报文了,这时候ECU就进入了PBSM的状态。
NM_TIMEOUT = 最后一帧应用报文发出的时间 - 最后一帧网络报文发出的时间
1.5 PBSM TO BSM
进入PBSM后,等待WAIT_BUS_SLEEP时间后会发现总线出现了错误帧,此时说明ECU进入了BSM。
WAIT_BUS_SLEEP = 第一帧错误帧的出现时间 - 最后一帧应用报文发出的时间
1.6 RSS TO NOS
IG中发送NM报文(全0),在RMS期间关闭IG报文,发送诊断报文,此时可以发现,ECU的NM报文出现了三种变化:
此处需要注意是,由于诊断报文ECU从RSS进入到NOS后,NM发送10帧就会停止发送,这是因为S3的时间为5000ms:
1.7 RSS TO RMS
IG以20ms周期发送401报文(全0),ECU发送4帧459报文后停止发送NM报文,只发送APP报文,此时ECU进入RSS状态
如果在此时继续发送401报文,将byte(1)置为01,请求重复报文状态,此时进入RMS,459会以4帧为一个循环继续发送
注:这里的4秒是由于IG停止了一段时间的NM报文,重新发送NM报文后,ECU回复两条459的时间间隔
2 结尾
欢迎各位大佬在评论区批评指正,有需要加入自动化测试群的请评论区留言或私信。