UDS诊断(ISO14229-1) 2F服务

文章目录

  • 功能简介
  • 对信号进行控制,但是怎么知道软件内部有没有真正的起作用
  • 应用场景
  • 请求和响应
    • 1、请求
    • 2、子功能
    • 3、肯定响应
    • 4、否定响应
  • 控制参数(IOCP)
  • 报文示例
  • UDS中常用 NRC
  • 参考

功能简介

2F服务,即 InputOutputControlByIdentifier(按标识符的输入输出控制)服务,该服务用于相对简单的(如静态)输入替换/输出控制,但若必须使用较为复杂的输入替换/输出控制时,则使用 routineControl(例程控制)。

该服务是用于client主动请求server去对相关输入输出信号进行控制。所谓的输入输出控制简而言之就是屏蔽实际的输入输出信号值,取而代之的是client主动以某种特定的控制方式去设置这些信号值。

2F服务会对所需要受控的信号进行编组,同时分配一个特定的DataIdentifier(即DID)来实现1个或多个信号参数的控制。但有时发送2F诊断服务时我们不需要对所有信号进行控制,那么此时我们可以引入controlEnableMask来实现只对特定信号的控制。

对信号进行控制,但是怎么知道软件内部有没有真正的起作用

此时要引入一个新的服务22(ReadDataByIdentifier),该服务可以通过信号所在的DID去获取对应的数值,然后与2F请求设置的数值比较是否相同,进而便可以知道2F控制是否生效。

也就意味着支持2F的DID必然支持22服务,反之则不然。

2F服务功能逻辑:
在这里插入图片描述

应用场景

常见场景:

  • 车窗的升降控制;(OutputControl)
  • 直连执行器的启动与停止;(OutputControl)
  • 车灯的开启与关闭;(OutputControl)
  • ADAS相关功能的配置开启与关闭;(InputControl)
  • LED报警灯的驱动与关闭;(OutputControl)

请求和响应

1、请求

基本格式

归纳起来,诊断的request格式无非以下两种:

<SID> + <Sub-function> + <Parameter>

<SID> + <Parameter>

即有无sub-function的区别。Parameter可以是DID,可以是输入参数,可以是自定义的值,字节数视具体要求而定。

在这里插入图片描述
在这里插入图片描述

2、子功能

子功能参数定义(1字节数据):

  • Bit7:抑制肯定响应消息指示位suppressPosRspMsgIndicationBit
    • 0=False:需要肯定响应
    • 1=True:禁止肯定响应
  • Bit6-0:子功能参数值(0x00~0x7F)

无。

3、肯定响应

基本格式:

<SID + 0x40> + <Sub-function> + <Parameter>

<SID + 0x40> + <Parameter>

要注意,第一个字节是由SID和0x40的和构成。这里的Parameter项是optional的,具体要看协议规定。

在这里插入图片描述
在这里插入图片描述

4、否定响应

基本格式:

<0x7F> + <SID> + <NRC>

看起来比较简单,格式比较固定,只要是Negative Response,第一字节就是0x7F,第二字节照抄原来的SID,第三个字节是错误响应码,指示具体错误响应的原因

在这里插入图片描述

NRC 判断优先级顺序:
在这里插入图片描述

控制参数(IOCP)

控制参数IOCP是一种控制输入输出的控制模式,有以下4种控制模式:
在这里插入图片描述
在这里插入图片描述

在使用4个参数时,需注意以下两点内容:

IOCP参数并不是2F服务的子服务,2F服务没有子服务,这点要明确;
在使用00 ,01,02时,诊断请求不需要加入受控参数controlState参数以及enable Mask,只需执行诊断请求 2F + DID +Byte Number,但其诊断回复还是要带有该DID所控制的参数的值;
IOCP中的4个参数并不是都需要支持,取决于客户需要,一般而言,00,03都会支持,其余两项可选;

报文示例

  • 示例 1 - 示例 1:“进气门位置”shortTermAdjustment(短期调整)
    正受控制的参数是与 dataIdentifier(数据标识符)(0x9B00) 相关的“进气门位置”。
    换算: Air Inlet Door Position(进气门位置) [%] = 十进制(十六进制) * 1 [%]

    • 步骤 1: ReadDataByIdentifier(按标识符读取数据)
      在这里插入图片描述
      在这里插入图片描述
    • 步骤 2: shortTermAdjustment(短期调整)
      在这里插入图片描述
      在这里插入图片描述
    • 步骤 3: ReadDataByIdentifier(按标识符读取数据)
      在这里插入图片描述
      在这里插入图片描述
    • 步骤 4: returnControlToECU(将控制权返还给 ECU)
      在这里插入图片描述
      在这里插入图片描述
  • 示例 2 – EGR 和 IAC shortTermAdjustment(短期调整)(单个请求内的各个参数或多个参数)
    本示例使用了打包的 dataIdentifier(数据标识符) 0x0155 说明单个请求内的各个参数或多个参数。 dataIdentifier 支持下表内的五个参数
    在这里插入图片描述
    在这里插入图片描述

    • 案例 1:仅控制 IAC 枢轴位置
      在这里插入图片描述
      在这里插入图片描述

    • 案例 2: 仅控制 RPM
      在这里插入图片描述
      在这里插入图片描述

    • 案例 3:控制踏板位置 A和 EGR 工作周期
      在这里插入图片描述
      在这里插入图片描述

    • 案例 4:将所有参数的控制权返还给 ECU
      在这里插入图片描述
      在这里插入图片描述

UDS中常用 NRC

在这里插入图片描述

参考

  • https://zhuanlan.zhihu.com/p/381330120

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

雾天条件下 SLS 融合网络的三维目标检测

论文地址&#xff1a;3D Object Detection with SLS-Fusion Network in Foggy Weather Conditions 论文代码&#xff1a;https://github.com/maiminh1996/SLS-Fusion 论文摘要 摄像头或激光雷达&#xff08;光检测和测距&#xff09;等传感器的作用对于自动驾驶汽车的环境意识…

基于web3+solidity的众筹项目

基本配置&#xff1a;node、npm、yarn&#xff0c;安装ganache&#xff0c;chrome&#xff0c;chrome安装插件MetaMask&#xff0c; 主要功能&#xff1a;目的是实现一个简单的众筹平台&#xff0c;允许用户发起筹款项目、捐款、提出使用资金请求以及证明人证明。 部分合约&…

机器学习中常用的概念:ROC曲线和AUC值,到底是什么?

1.关于ROC曲线的概念 ROC曲线和AUC值是评价分类监督学习性能的重要量度指标。ROC曲线又被称为“接受者操作特征曲线”“等感受性曲线”&#xff0c;主要用于预测准确率情况。最初ROC曲线运用在军事上&#xff0c;现在广泛应用在各个领域&#xff0c;比如判断某种因素对于某种疾…

[SpringBoot]如何在一个普通类中获取一个Bean

最近在项目中出现了一个这种情况&#xff1a;我一顿操作猛如虎的写了好几个设计模式&#xff0c;然后在设计模式中的类中想将数据插入数据库&#xff0c;因此调用Mapper持久层&#xff0c;但是数据怎么都写不进去&#xff0c;在我一顿操作猛如虎的查找下&#xff0c;发现在普通…

JVM工作原理与实战(六):类的生命周期-连接阶段

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、类的生命周期 1.加载&#xff08;Loading&#xff09; 2.连接&#xff08;Linking&#xff09; 3.初始化&#xff08;Initialization&#xff09; 4.使用&#xff08;Using&…

目标检测开源数据集——海底垃圾识别

随着全球经济的快速发展&#xff0c;海洋垃圾问题日益严重。海洋垃圾不仅对海洋生态系统造成严重破坏&#xff0c;还威胁到人类的健康和生存。因此&#xff0c;海上垃圾识别变得至关重要。本文将详细介绍海上垃圾识别的重要性&#xff0c;从生态、经济、健康和社会四个方面进行…

机器学习原理到Python代码实现之LinearRegression

Linear Regression 线性回归模型 该文章作为机器学习的第一篇文章&#xff0c;主要介绍线性回归模型的原理和实现方法。 更多相关工作请参考&#xff1a;Github 算法介绍 线性回归模型是一种常见的机器学习模型&#xff0c;用于预测一个连续的目标变量&#xff08;也称为响应变…

matlab如何标定相机内外参和畸变参数

关于内外参矩阵和畸变矩阵可以学习 https://blog.csdn.net/qq_30815237/article/details/87530011?spm1001.2014.3001.5506 在APP中找到 camera Calibrator 点击 Add Images&#xff0c;导入拍照图片。标定20张左右就够了&#xff0c;然后角度变一下&#xff0c;但不需要变太…

向量数据库:usearch的简单使用+实现图片检索应用

usearch的简单使用 usearch是快速开源搜索和聚类引擎&#xff0c;用于C、C、Python、JavaScript、Rust、Java、Objective-C、Swift、C#、GoLang和Wolfram &#x1f50d;中的向量和&#x1f51c;字符串 // https://github.com/unum-cloud/usearch/blob/main/python/README.md …

20240107让Firefly的AIO-3399J开发板的Android11下配置为默认1080p录像

20240107让Firefly的AIO-3399J开发板的Android11下配置为默认1080p录像 2024/1/7 23:01 开发板&#xff1a;Firefly的AIO-3399J【RK3399】 SDK&#xff1a;rk3399-android-11-r20211216.tar.xz【Android11】 Android11.0.tar.bz2.aa【ToyBrick】 Android11.0.tar.bz2.ab Androi…

【Unity美术】如何用3DsMax做一个水桶模型

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

让充电器秒供多个快充口,乐得瑞推出1拖2功率分配快充线方案

随着PD3.1协议的市场应用越来越多&#xff0c;一些充电器的Type-C接口的输出功率达到百瓦及以上&#xff0c;如何充分利用好这类充电器设备&#xff0c;乐得瑞电子推出1拖2快充线缆解决方案&#xff0c;支持智能功率分配策略支持私有快充协议。 如上图是乐得瑞1拖2功率分配快充…

二叉树与堆的深度解析:数据结构中的关键概念及应用

. 个人主页&#xff1a;晓风飞 专栏&#xff1a;数据结构|Linux|C语言 路漫漫其修远兮&#xff0c;吾将上下而求索 文章目录 前言树概念注意&#xff1a; 树的基本概念及术语基本概念及术语以家谱为例 树的表示孩子兄弟表示法简介优势应用示例 树在实际中的运用文件系统的目录树…

Verilog学习记录

目录 一、Verilog简介 &#xff08;一&#xff09;Verilog 的主要特性 &#xff08;二&#xff09;Verilog的主要应用 &#xff08;三&#xff09;Verilog设计方法 二、Verilog基础语法 &#xff08;一&#xff09;标识符和关键字 &#xff08;二&#xff09;Verilog数据…

创建Vue3项目

介绍 使用命令创建vue3项目 示例 第一步&#xff1a;执行创建项目命令 npm create vuelatest第二步&#xff1a;填写输入项 第三步&#xff1a;进入study-front-vue3文件夹 cd study-front-vue3第四步&#xff1a;执行npm命令安装依赖 npm install第五步&#xff1a;运行…

LLM 幻觉现象及 RAG 解决方案

1. 幻觉现象及原因 什么是幻觉(hallucination)现象? 大模型的回答有编造成分或错误. 比如问 “tensorflow 1.12 版本有 xxx 这个api 么”, 模型回答 “有”, 其实没有. 原因 训练语料质量低, 本身有错误答案存在.LLM 的训练并不关注 “事实是否正确”, 自然不能保证生成答案一…

OpenMMlab导出PointPillars模型并用onnxruntime推理

导出onnx文件 通过mmdeploy的tool/deploy.py脚本容易转换得到PointPillars的end2end.onnx模型。 根据https://github.com/open-mmlab/mmdeploy/blob/main/docs/zh_cn/04-supported-codebases/mmdet3d.md显示&#xff0c;截止目前 mmdet3d 的 voxelize 预处理和后处理未转成 o…

【APACHE】的认识和基础配置参数

#主页传送:江南的江 #每日鸡汤&#xff1a;人生没有如果和假设&#xff0c;只有后果和结果。生活有进有退&#xff0c;输什么也不能输心情。生活简单就是迷人的&#xff0c;学会简单其实就是不简单。要学会平静地接受现实&#xff0c;学会对自己说声顺其自然&#xff0c;学会坦…

Selenium安装WebDriver:ChromeDriver谷歌浏览器驱动下载安装与使用最新版118/119/120

Selenium安装WebDriver&#xff1a;ChromeDriver谷歌浏览器驱动下载安装与使用最新版118/119/120 0. 背景 在使用之前的代码通过selenium操作Chrome浏览器时&#xff0c;安装中遇到了Chrome版本与浏览器驱动不匹配的的问题&#xff0c;在此记录安装下过程 1. 确定Chrome版本 …

海外跨境独立站和代购系统存在必然联系?独立站建站初期,以及如何运营好独立站。

海外跨境独立站和代购系统在多个方面存在差异&#xff1a; 定位&#xff1a;独立站是拥有独立域名&#xff0c;自主宣传推广媒体与渠道的新型网站&#xff0c;更侧重于培养买家&#xff0c;做品牌建设&#xff0c;相当于个体经营专卖店。而代购系统是利用先进的技术和流程管理…