【UDS】ISO14229之0x2F服务
文章目录
- 前言
- 一、理论描述
- 二、使用步骤
- 1.请求
- 2.响应
- 总结
->返回总目录<-
前言
简称: “InputOutputControlByIdentifier”,根据标识符控制输入输出
功能: 根据标识符控制输入输出服务用于替换输入信号的值、电控单元内部参数或控制电子系统的输出值。
一、理论描述
通俗解释: 在诊断模式下,通过请求2F服务直接控制开关发出指定的信号。例如:我想要让左转向灯亮,那么就可以通过该服务跳过硬件电路的检测直接软件里操作并替换想要控制的左转向信号输出。
注:诊断服务中一般简单开关类控制都会采用2F服务(转向灯,雨刮之类等);还有一些较为复杂的功能会通过0x31服务来实现(例如控制发动机转速,归零标定方向盘角度等)。
疑问: 这样直接控制要发出的开关信号而已,这样实际运用有啥意义呢?既无法检测硬件,也无法检测软件。
解答: 用在台架HIL测试,实现自动测试,为了测试与开关相关的其他控制器功能。如2f请求左转向,测试接收转向灯信号的节点BCM有没输出点亮左转向等。
在这里博主偷个懒哈,只说Sub-Function为00 和 03(因为开发的项目中只用到这两个子ID)~~
03: 在诊断模式中,请求该子ID的服务,会短暂控制输出,如上述:控制左转向灯信号发出。
注: 是暂时,若要请求一次该服务让左转向信号一直发出,就必须先请求诊断服务0x3E,让诊断一直处于通信握手状态
00: 释放刚才对转向灯的控制权,让其正常检测硬件来发出实际的信号。
二、使用步骤
1.请求
输入输出参数数据标识符分为位映射或非位映射两类。根据位映射和非位映射标识符,该服务的请求报文格式不同。
位映射标识符 使用位为单位表示一个输入或输出参数。
例如: 整车厂指定一个DID为 0x6E88 来控制灯光类的信号,该DID控制参数占2Byte,bit7用于控制远光灯OFF/ON,那么请求远光灯ON的
报文格式:2F 6E 88 03 80 00
Service ID:2F
DataIdentifier:6E 88
IO Control Parameter:03
ControlEnableMaskRecord:80 00
黄框:远光灯信号ON
红框:请求的报文,6E 80当作 6E 88
2,释放控制权,2F 6E 88 00,此时输出的远光灯信号是硬件检测采样的实际信号。
非位映射标识符使用字节为单位来表示一个输入或输出参数。这里就不演示了。
例如:整车厂指定一个DID为 0x6E88 来控制远光灯的信号,该DID控制参数占1Byte,请求格式 2F 6E 88 01/00 , 01 表示ON 00表示OFF
2.响应
1)正响应
Response ID:6F (2F + 0x40,统一规范,回复SID要比请求SID加0x40)
DataIdentifier:6E 88
IO Control Parameter:03
ControlState:80 00 (控制掩码数据)
参见CANoe图中的蓝框
2)否定响应
支持的否定响应如下,一般工作上根据整车厂给的诊断输入文档来选择要支持的NRC码。
博主平日项目中,上图的NRC都需要支持。
NRC13: 请求报文数据长度有误(正确请求数据2F 6E 88 03 80 00 有6个字节。而你请求的是2F 6E 88 03 00只有5个字节,ECU收到你这条报文,无法理解,因此回复该NRC)
NRC22: 请求条件不满足
(一般整车厂会告诉你NRC22的满足条件,例如:车速>3km/h,电源过欠压时候,请求服务,ECU便回复该NRC)
NRC31: 请求超出范围(不按套路出牌,发送 2F 66 66 03 80 00,DataIdentifier有66 66?)
NRC33: 安全访问拒绝(在请求2F服务之前,必须先解锁,否则ECU回复NRC33)
总结
0x2F服务还是比较容易理解的,下一章0x31 例行控制服务见!
->返回总目录<-
【UDS】ISO14229之0x2F服务相关推荐
- 跟我学UDS(ISO14229) ———— 0x19 服务参数介绍
相关链接:跟我学UDS(ISO14229) ---- 0x19(ReadDTCInformation) 目录 DTCStatusMask 工作状态 bit 作用说明 切换逻辑 DTCExtendedD ...
- 跟我学UDS(ISO14229) ———— 0x11(ECUReset)
0x11(ECUReset)服务的主要作用是使用ECUReset服务来请求服务器重置.该服务根据嵌入在ECUReset请求消息中的resetType参数值的内容,请求服务器有效地执行服务器重置. 在服 ...
- 【车载开发系列】UDS诊断---链接控制服务($0x87)
[车载开发系列]UDS诊断-链接控制服务($0x87) 诊断---链接控制服务($0x87) [车载开发系列]UDS诊断---链接控制服务($0x87) 一.概念定义 二.应用场景 三.报文格式 1) ...
- 【UDS】ISO14229之0x19服务
文章目录 前言 一.理论描述 1.服务分类 2.状态掩码 二.操作步骤 1.请求 2.回复 总结 ->返回总目录<- 前言 简称: "ReadDTCInformation&quo ...
- 【UDS】ISO14229之0x14服务
文章目录 前言 一.理论描述 二.使用步骤 1.请求 2.响应 总结 ->返回总目录<- 前言 简称: "ClearDiagnosticInformation",清除D ...
- 【UDS】ISO14229之0x28服务
文章目录 前言 一.理论描述 二.使用步骤 1.请求 2.响应 总结 ->返回总目录<- 前言 简称: "CommunicationControl",通信控制 功能: ...
- 【UDS】ISO14229之0x27服务
文章目录 前言 一.理论描述 二.使用步骤 1.总述 2.请求 3.响应 总结 ->返回总目录<- 前言 简称: "SecurityAccess",安全访问 功能: 由 ...
- 【UDS】ISO14229之0x3E服务
文章目录 前言 一.理论描述 二.使用步骤 1.请求 2.响应 总结 ->返回总目录<- 前言 简称: "TesterPresent",测试工具保持连接服务 功能: 此 ...
- 车载网络测试 - UDS诊断篇 - 诊断服务$10
上一篇我们在(车载网络测试 - UDS诊断篇 - 诊断数据简析)中 有介绍各个服务的数据的格式,接下来的篇幅就是对各个服务做进一步的介绍,以便大家学习和了解:今天我们说的就是会话控制,有地方也叫会话切 ...
最新文章
- Python使用matplotlib可视化发散型条形图、发散条形图(Diverging Bars)是一种可以同时处理负值和正值的条形图、并按照大小排序区分数据(Diverging Bars)
- Python使用matplotlib可视化面积图(Area Chart)、通过给坐标轴和曲线之间的区域着色可视化面积图、在面积图的指定区域添加箭头和数值标签
- VC6.0的使用,工程的创建
- (2) 第二章 WCF服务与数据契约 服务契约详解(二)- 如何引用WCF提供的服务
- CodeForces - 1368F Lamps on a Circle(交互+贪心)
- 5道谷歌面试题:即使是天才也要怀疑自己能力了(附答案)
- linux中权限765啥意思,Linux中的文件权限
- 十二赞日志收集与报警系统一览
- devops 数据库_DevOps世界中与数据库管理员合作的6种方法
- uni保存canvas图片_小程序canvas【开箱即用】
- 《Ray Tracing in One Weekend》——Chapter 5: Surface normals and multiple objects
- C基础(41——45)
- zen brush 2 android,zen brush2
- AE 动效工作流技巧 —— 减少 Bodymovin 导出的 JSON 大小并提升性能(二)
- Eclipse中的Unicode编码如何转为中文?
- filter()“筛选”函数
- 外贸常用术语_常用贸易术语大全
- 谷歌正式放弃与雅虎的广告合作计划
- 蓝桥杯2016年第七届真题-碱基
- 学会python爬虫,这简直就是二次元宅男的福利