从项目中初识Autosar状态机转换

目录

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 结尾

        欢迎各位大佬在评论区批评指正,有需要加入自动化测试群的请评论区留言或私信。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/868664.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【网安播报】CocoaPods 曝关键漏洞,应用程序面临供应链攻击风险

1、CocoaPods 曝关键漏洞,数百万 macOS 和 iOS 应用程序面临供应链攻击风险 开源依赖管理器 CocoaPods 中的安全漏洞暴露了数千个软件包,利用这些漏洞的攻击者可以将恶意代码注入合法应用,通过受信任的渠道分发恶意软件,并破坏用户…

Qt QWizard新建向导实例

使用QWizard做新建向导,最简单的实例 class MyWizard : public QWizard { public: MyWizard(QWidget* parent nullptr); QWizardPage* createFirstPage(); QWizardPage* createSecondPage(); QWizardPage* createThirdPage(); }; MyWizard::MyWizard(QWidget* par…

最近点对问题(算法与数据结构设计)

课题内容和要求 最近点对问题,在二维平面上输入n个点列P。其中任一点pi(xi,yi),编写程序求出最近的两个点。使用穷举法实现,算法复杂度O(n2);优化算法,以O(nlog2n)实现这一问题 数…

静脉分割YOLOV8-SEG

静脉分割,YOLOV8*SEG资源-CSDN文库 首先使用YOLOV8-SEG训练,得到PT模型,然后转换成ONNX,OPENCV的DNN调用,从而摆脱PYTORCH依赖,支持C,PYTHON,ANDROID调用

Java信号量semaphore的原理与使用方法

Semaphore的基本概念 在Java中,Semaphore是位于java.util.concurrent包下的一个类。它的核心就是维护了一个许可集。简单来说,就是有一定数量的许可,线程需要先获取到许可,才能执行,执行完毕后再释放许可。 那么&…

尚品汇-(十五)

&#xff08;1&#xff09;快速入门 SpringBoot形式创建 Maven形式创建&#xff1a; 加入依赖&#xff1a; 创建启动类&#xff1a; 设置头文件 就想Jsp的<%Page %>一样 &#xff0c;Thymeleaf的也要引入标签规范。不加这个虽然不影响程序运行&#xff0c;但是你的idea…

顶会FAST24最佳论文|阿里云块存储架构演进的得与失-4.EBS不同架构性能提升思路

3.1 平均延迟与长尾延迟 虚拟磁盘&#xff08;VD&#xff09;的延迟是由其底层架构决定的&#xff0c;具体而言&#xff0c;取决于请求所经历的路径。以EBS2为例&#xff0c;VD的延迟受制于两跳网络&#xff08;从BlockClient到BlockServer&#xff0c;再至ChunkServer&#x…

Xilinx FPGA:vivado关于IIC的一些零碎知识点

一、简介 IlC(inter-Integrated circuit)总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线&#xff0c;用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信&#xff0c;在小数据量场合使用&#xff0c;传输距离短&#xff0c;任意时刻只能有一个主机等特性…

13 协程设计原理与汇编实现

协程的问题 为什么要有协程?协程的原语操作?协程的切换?协程的struct如何定义?协程的scheduler(调度)如何定义?调度策略如何实现?协程如何与posix,api兼容?协程多核模式?协程的性能如何测试?为什么要有协程 同步的编程方式,异步的性能。同步编程时,我们需要等待io就…

信息技术课堂纪律管理:从混乱到秩序的智慧转型

引言&#xff1a; 在信息爆炸的时代&#xff0c;信息技术课程如同一把开启未来世界大门的钥匙&#xff0c;为学生们搭建起探索科技奥秘的桥梁。然而&#xff0c;面对着屏幕背后的无限诱惑&#xff0c;维持课堂纪律&#xff0c;确保学生们专注于学习&#xff0c;成为了每位信息…

C/C++内存分布

1.内存分布简略图 2.全局变量和静态变量的区别 (1)局部静态变量&#xff1a;存储在数据段中&#xff0c;局部静态变量的作用域在当前函数中&#xff0c;出了函数就不能使用该变量&#xff0c;但局部静态变量的生命周期是在整个程序间&#xff0c;局部静态变量要运行到这一行才…

【Java14】构造器

Java中的构造器在创建对象&#xff08;实例&#xff09;的时候执行初始化。Java类必须包含一个或一个以上的构造器。 Java中的构造器类似C中的构造函数。 Java中对象&#xff08;object&#xff09;的默认初始化规则是&#xff1a; 数值型变量初始化为0&#xff1b;布尔型变量…

【CSAPP】-cachelab实验

目录 实验目的与要求 实验设备与软件环境 实验过程与结果&#xff08;可贴图&#xff09; 操作异常问题与解决方案 实验总结 实验目的与要求 1、掌握应用程序性能的优化方法&#xff1b; 2、理解存储器层次结构在程序运行过程中所起的重要作用&#xff1b; 3、让学生更好…

高考志愿填报的六个不要

在高考志愿填报这个关键时刻&#xff0c;确实需要谨慎行事&#xff0c;避免一些常见的错误。以下是高考志愿填报的六个“不要”&#xff0c;希望能为你提供一些有用的建议&#xff1a; 1、不要盲目跟风 每个人的兴趣、能力和未来规划都不同&#xff0c;不要仅仅因为某个专业或…

Gradle基础:从入门到掌握

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 在现代软件开发中&#xff0c;自动化构建工具是提高效率和管理依赖的重要手段。而Gradle作为一种灵活且强大的构…

python基础篇(9):模块

1 模块简介 Python 模块(Module)&#xff0c;是一个 Python 文件&#xff0c;以 .py 结尾. 模块能定义函数&#xff0c;类和变量&#xff0c;模块里也能包含可执行的代码. 模块的作用: python中有很多各种不同的模块, 每一个模块都可以帮助我们快速的实现一些功能, 比如实现…

工业4.0视角下:PLC转OPC UA网关的作用

在工业自动化领域&#xff0c;PLC&#xff08;可编程逻辑控制器&#xff09;是常见的控制设备&#xff0c;而OPC UA&#xff08;开放型工业自动化统一架构&#xff09;协议则是一种现代化的通信协议&#xff0c;用在工厂自动化系统中实现设备之间的数据交换和通信。PLC转OPC U…

TensorRT动态形状(Dynamic Shape)出错,官方demo+自己模型运行时出错

(2024.7.2) 使用TensorRT处理动态输入形状推理时出现的错误&#xff0c;本案基于官方demo文件&#xff0c;已解决&#xff1a; TensorRT版本10.0&#xff0c;官方例子使用的是这个https://github.com/NVIDIA/trt-samples-for-hackathon-cn/blob/master/cookbook/01-SimpleDem…

贝叶斯估计(1):期末大乱炖

写在前面&#xff01; 1 先验分布和后验分布 三种信息&#xff1a;总体信息、样本信息、先验信息 总体信息&#xff1a;“总体是正态分布”&#xff1b;样本信息&#xff1a;总体抽取的样本提供的信息&#xff0c;是最新鲜的信息&#xff1b;先验信息&#xff1a;在抽样之前就…

Excel数据截取及合并多行多列数据

公式一&#xff1a;RIGHT(A2,LEN(A2)-FINDB(")",A2)) 公式二&#xff1a;PHONETIC(C2:D19) 详情可以看附件。