车载基础软件——基础软件验证平台(网络管理和诊断)

news2024/11/26 3:28:59

我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:

我们并不必要为了和谐,而时刻保持通情达理;我们需要具备的是,偶尔有肚量欣然承认在某些方面我们可能会有些不可理喻。该有主见的时候能掷地有声地镇得住场,该沉默的时候也能专心安理得地躲起来不吭声,会关心和牵挂他人但绝不黏人,能为在乎的人放下身段,但除他们之外可以自由到不看任何人脸色行事。

本文主要介绍车载基础软件——基础软件验证平台关于网络管理和诊断测试相关内容。

文章主要有如下几个内容:

-> 1、网络管理测试验证

-> 2、诊断服务测试验证

-> 3、BSW层里的操作系统OS

一、网络管理测试验证

网络管理主要负责对汽车上控制器进行配置管理和协调工作的,无论是传统的汽油车,还是新兴的电动车,其控制器的供电均是通过蓄电池来提供的。网络管理可以通过车载网络,设计一套规则,来实现各控制器的睡眠和唤醒,以此来减少蓄电池的耗电。例如:AUTOSAR-NM 是基于 AUTOSAR 架构提出的网络管理方案,通过 BusSleep、PreSleep、Network 三个状态及其子状态,来实现整车控制器的协同睡眠和唤醒。因此,网络管理测试对于协同睡眠和唤醒功能的验证是整车功能实现的重要保障。

1、需求分析

AUTOSAR 架构虽然完整定义了网络管理组件中网络状态的类型以及不同网络状态之间跳转的条件,但是实际控制器的网络管理协议栈成熟度各不相同,并且软件模块之间如果没有较好地进行解耦,进而就会造成车辆上下电的不稳定性,某些功能场景也会受到影响。所以不论是单部件环境下的休眠和唤醒还是整车环境下协同休眠和唤醒,都是保障汽车通信和功能实现的重要前提。

2、验证方法

控制器的网络状态往往在总线中即可获取到,影响其状态跳转的因素基本可分为本地条件与远程条件两类。本地条件与供电关联较强,远程条件与总线状态交互较强,因此结合影响因素,其网络管理的测试验证环境如图所示:

总线分析仪:用来模拟除控制器外的其他节点发送和接收报文;记录监测总线报文;对控制器进行ACK应答。

电源:通过PC可控模拟不同供电电压。

R1:120Ω;R2:120Ω。

注:若控制器内部含有 120Ω 终端电阻则无需匹配R2;若控制器内部不含有120Ω终端电阻则需同时匹配 R1和R2。

注:若控制器为 Ethernet 控制器,CAN_H/CAN_L 为 ETH_P/ETH_N,无终端电阻。

3、验证范围

为保证单部件控制器网络管理行为的正确性,需要对控制器的网络管理策略进行全方位的测试。网络管理的测试验证主要包含网络管理报文数据格式测试、网络管理状态转换策略测试、特殊网络管理策略测试。网络管理报文数据格式测试主要用来验证控制器的网络管理报文格式是否和需求定义保持一致。网络管理状态转换策略测试主要用来验证控制器的网络状态跳转是否满足规范要求。特殊网络管理策略测试主要用来验证控制器在极端总线条件下(如总线高负载率或总线 busoff)的状态跳转是否受到影响。如下网络管理测试验证部分用例,详细测试用例中的每条用例应包含的内容与网络通信要求一致:

(1)、网络管理报文数据格式测试

-> 源地址测试CBV

-> CBV 未使用位测试

-> Userdata 未使用字节测试

-> 网络管理地址范围测试

(2)、网络管理状态转换策略测试

-> BSM状态测试

-> BSM-RMS转换测试

-> BSM-RMS-NOS转换测试

-> BSM-RMS-RSS转换测

-> BSM-RMS-NOS-RMS转换测试

(3)、特殊网络管理策略测试

-> 节点掉线错误测试

-> 高负载下的NM状态转换测试

搁笔分享完毕!

愿你我相信时间的力量

做一个长期主义者

二、诊断服务测试验证

网络诊断应用于车辆的初始目的是确定汽车工作状态,排查汽车故障。随着诊断协议的不断完善,其应用场景也不断在扩展,例如产品开发测试阶段的软件升级、生产阶段的下线配置、售后阶段的故障诊断、用户使用过程中的 OTA 远程升级以及远程诊断等。这些诊断功能场景基本涵盖了车辆的全生命周期,诊断协议则是实现这些功能的基础原则。因此,诊断服务测试验证是实现诊断功能场景的基本保证。

1、需求分析

ECU 诊断功能是由内部自诊断功能及相关诊断协议组成。通常大多数诊断功能是由两者共同完成的,诊断服务中包含 ECU 自诊断的数据,维修车辆则是通过诊断协议读取自诊断的数据。例如车辆行驶过程中可能会发生一些故障 , 当故障发生时会以点亮报警灯等方式来提示驾驶员。但具体故障的原因是无法通过报警灯体现的,这时则需要通过车上的 OBD 接口连接诊断仪来将故障代码读取出来。而诊断测试可实现ECU诊断功能的验证及诊断协议一致性检测,从而确保装车后车辆诊断功能能够正常运行。

2、验证方法

诊断测试的验证主要针对控制器收发多帧报文情况、诊断服务、子功能、诊断会话控制、安全状态和相关定时参数等内容进行验证。为实现网络诊断验证,搭建下面基于总线分析仪的测试环境。基于总线分析仪的测试设备包括电源、总线分析仪,测试环境如图:

总线分析仪:用来模拟除控制器外其他节点发送和接收报文;记录监测总线报文;对控制器进行ACK 应答。

电源:可模拟不同供电电压。

R1\R2:选配型终端电阻120 Ω。对于终端型控制器,需选配R1或R2;对于非终端型控制器,需同时配置 R1与R2。

注:若控制器为 Ethernet 控制器,CAN_H/CAN_L 为 ETH_P/ETH_N,无终端电阻。

3、验证范围

网络诊断的测试验证主要包含传输层及应用层测试。传输层主要针对控制器能够进行多帧报文的收发等层面进行诊断配置参数的验证;应用层主要针对诊断服务、子功能、诊断会话控制、安全状态和相关定时参数进行验证。如下为网络诊断基础验证的部分用例,详细测试用例中的每条用例应包含有唯一的编号、需明确需求点、测试目的、测试环境、测试步骤、评价标准等内容:

(1)、传输层测试(适用于CAN/CAN FD)

-> 停止发送后续连续帧

-> 不发送某连续帧

-> 延迟发送某连续帧

-> 确认控制器 N_Bs 满足规定

(2)、应用层自动测试

-> 无效子功能

-> 无效诊断服务

-> 无效 DID

-> 基本服务测试

(3)、应用层手动测试

-> 安全访问Service 27

-> 通信控制Service 28

-> 控制DTC设置Service 85

-> 软硬件版本号读取

-> 2E服务功能测试

通过如上测试内容,使软件基础平台网络管理和诊断功能更加完善。

搁笔分享完毕!

愿你我相信时间的力量

做一个长期主义者!

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

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

相关文章

部署packstack及问题总结

目录 一、部署packstack 1.1 简介 1.2 性能搭配 1.3 准备工作 1.4 安装 二、出现的问题 2.1 安装中断临时文件 2.2 提示某个安装包出错 2.3 leatherman版本太高 三、安装成功 一、部署packstack 1.1 简介 对于openstack初学者而言,传统部署openstack流程…

MQ-rabbitMQ_基础篇

MQ-rabbitMQ_基础篇 1.MQ1.1什么是MQ1,2应用 2.常见消息中间件协议(模型)2.1JMS模型(协议)2.2AMQP协议 3.RabbitMQ3.1六种工作模式3.1.1Hello Word简单模式3.1.2word queues 工作队列能者多劳 3.1.3Publish/Subscribe 发布与订阅模…

在SwissTargetsPrediction数据库中预测成分靶点

1.对筛选的多肽成分进行靶点预测: ①用Uniport中的蛋白进行一系列操作(水解,挑选2~8短肽,活性预测,毒性,过敏性预测,胃肠吸收度,半衰期和苦味的预测、生物活性功能预测)…

mybatis连接池源码分析

文章目录 前言一、PooledDataSourceFactory二、获取连接三、归还连接 前言 其实大部分连接池的代码都大同小异,总体获取连接,归还连接逻辑大都相同。希望通过阅读本文章,能给你带来帮助。 测试用例 public void testMybatis()throws Excepti…

深入篇【C++】类与对象:运算符重载详解

深入篇【C】类与对象&#xff1a;运算符重载详解 ⏰一.运算符重载&#x1f553;1.<运算符重载&#x1f550;2.>运算符重载&#x1f552;3.运算符重载&#x1f551;4.运算符重载①.格式1.改进12.改进2 ②.默认成员函数1.功能2.不足 &#x1f553;5.<运算符重载&#x1…

学内核之十九:Linux文件系统结构大蓝图

目录 一&#xff1a;参考资料 二&#xff1a;整理的原因及基本原则 三&#xff1a;Linux文件系统大蓝图 四&#xff1a;补充说明 一&#xff1a;参考资料 博主梳理的关于文件系统的基础知识&#xff1a; 7.5 文件系统_定义_龙赤子的博客-CSDN博客 博主转载的关于page cac…

深入理解深度学习——正则化(Regularization):参数范数惩罚

分类目录&#xff1a;《深入理解深度学习》总目录 正则化在深度学习的出现前就已经被使用了数十年。线性模型&#xff0c;如线性回归和逻辑回归可以使用简单、直接、有效的正则化策略。许多正则化方法通过对目标函数 J J J添加一个参数范数惩罚 Ω ( θ ) \Omega(\theta) Ω(θ…

三、Neo4j 源码研究系列 - 持久化

version: v-2023051401 author: 路__ 说到数据库&#xff0c;那么离不开的模块就是持久化&#xff08;Persistence&#xff09;&#xff0c;数据持久化是数据库不可缺少的重要组成模块之一。可以说一个数据库少了持久化功能&#xff0c;可以说这个数据库就不足以称为数据库。…

并查集:解密算法面试中的常客

文章目录 1. 并查集原理&#x1f351; 举例说明&#x1f351; 并查集的应用 2. 并查集实现&#x1f351; 接口总览&#x1f351; 构造函数&#x1f351; 查询操作&#x1f345; 代码实现 &#x1f351; 合并操作&#x1f345; 动图演示&#x1f345; 代码实现 &#x1f351; 判…

Linux文件打开函数open()

#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> int main(void) {int fd -1; /*这个整数用来存放文件描述符*/char filename[] "good.txt"; /*打开的文件名&#xff0c;是一个字符数组…

String类 [下]

目录 一、拷贝构造和赋值重载的传统写法和现代写法 0x01 拷贝构造的传统写法 0x02 拷贝构造的现代写法 0x03 赋值重载的传统写法 0x04 赋值重载的现代写法 0x05 总结 二、 增删改查之后的string 0x01 成员函数swap: 0x02 reserve&#xff1a;改变容量 0x03 push_back: 尾…

带你深入理解Java异常

&#x1f495;“人生就像一盘棋&#xff0c;有时候你慢一步&#xff0c;就输掉了一局。但只要你不停止思考和行动&#xff0c;就永远有机会翻盘。”&#x1f495; &#x1f43c;作者&#xff1a;不能再留遗憾了&#x1f43c; &#x1f386;专栏&#xff1a;Java学习&#x1f38…

《计算机网络——自顶向下方法》精炼——3.4.1-3.4.3

聪明出于勤奋,天才在于积累。——华罗庚 文章目录 对协议的进一步改进rdt2.1rdt2.2rdt3.0&#xff1a;含有比特差错和丢包的可靠数据传输协议 流水线协议回退n步&#xff08;GBN&#xff09; 对协议的进一步改进 rdt2.1 在上一篇文章中&#xff0c;我们讲到对于产生比特差错的…

A2-RIDE Long-tailed recognition by routing diverse distribution-aware experts

文章目录 0. Abstract1. Introduction2. Related Works3. RIDE&#xff1a;ROUTING DIVERSE DISTRIBUTION-AWARE EXPERTS4. Experiments5. Summary论文总结长尾数据分布 (Long-tailed Data Distribution)RIDE方法及模型1. **Multi-expert framework**2. **Routing diversified …

RabbitMQ如何保证顺序消费

目录标题 生产者有序的情况下如何保证顺序生产单个消费者多个消费者 生产者无序的情况下消息返回队列消息不返回队列 生产者有序的情况下 如何保证顺序生产 单一生产者&#xff1a;消息生产的顺序性仅支持单一生产者。 串行发送&#xff1a;如果生产者采用多线程并行发送&…

借助国内ChatGPT平替+markmap/Xmind飞速生成思维导图

系列文章目录 借助国内ChatGPT平替MindShow&#xff0c;飞速制作PPT 文章目录 系列文章目录前言一、科大讯飞“星火”认知大模型二、使用步骤1.借助讯飞星火生成思维导图的文案2.选择markmap绘制思维导图3.选择Xmind绘制思维导图 总结 前言 随着人工智能技术的不断发展&#x…

自动操作魔法师4.9.0.0

产品下载 (won-soft.com) 如下图所示&#xff1a; 彻底远离枯燥乏味的工作 在日常办公中&#xff0c;开发票&#xff0c;更新客户资料&#xff0c;打印报表&#xff0c;录入数据等等工作是极为重要&#xff0c;但大部分时候这些工作是相当枯燥的。你不得得一遍又一遍的进行重复…

第二章: Mybatis-Plus 快速入门

目录 1. 准备工作 数据库准备: 创建Maven 父模块 2. Mybatis 整合 Mybatis-Plus 创建子模块: 准备 log4j.properties 日志文件 3. Mybatis 原生写法实现查询User 编写mybatis-config.xml文件&#xff1a; 编写User实体对象&#xff1a;&#xff08;这里使用lombok进行了…

Hyper-V搭建免费桌面云

Hyper-V 是 Microsoft 的硬件虚拟化产品。 它用于创建并运行计算机的软件版本&#xff0c;称为“虚拟机”。 每个虚拟机都像一台完整的计算机一样运行操作系统和程序。 如果需要计算资源&#xff0c;虚拟机可提供更大的灵活性、帮助节省时间和金钱&#xff0c;并且与在物理硬件…

【AI面试】RoI Pooling 和 RoI Align 辨析

RoI Pooling和RoI Align是两种常用的目标检测中的RoI特征提取方法。它们的主要区别在于&#xff1a;如何将不同大小的RoI对齐到固定大小的特征图上&#xff0c;并在这个过程中保留更多的空间信息。 一、RoI Pooling RoI Pooling最早是在Fast R-CNN中提出的&#xff0c;它的基…