OBD诊断(ISO15031) 01服务

文章目录

  • 功能简介
  • PID 的功能
  • 请求和响应
    • 1、read-supported PIDs
      • 1.1、请求
      • 1.2、肯定响应
    • 2、read PID value
      • 1.1、请求
      • 1.2、肯定响应
    • 3、同时请求多个PID
    • 3、同时读取多个PID数据
  • Parameter definition
  • 报文示例
    • 1、单个PID请求和读取
    • 2、多个PID请求和读取

功能简介

01服务,即 Request current powertrain diagnostic data(读取动力系统当前的诊断数据)服务,比如某个传感器的状态、发动机转速、DTC数量、故障指示灯是否亮起等

这些数据都是需要预先定义好的,如何进行定义呢,在ISO标准规定了一些参数标识符即PID(parameter Identifiers),每个PID代表一个变量参数。

OBD诊断中,ECU 至少应支持服务0x01PID 0x00

PID 的功能

PID 的大小占一个字节。
ISO其实定义了部分PID参数,其余的值都保留,并不要求所有的主机厂把这些参数都实现,也就是说PID参数是可以选择支持的。
那么ECU到底支持哪些PID?
实际上,PID分为两类,一类用于表示具体的数据,而另一类则用于指出该ECU支持哪些PID。
如PID 0x00\0x20\0x40\0x60\0x80等就是用来查询到底支持哪些服务的,
读取其中一个PID后ECU会返回4个字节(32 bit)的结果,依次对应ECU对其后 32 个PID是否支持。具体如何使用如下:

  • PID 0x00 用于查询(0x01~0x20)之间支持的PID参数
  • PID 0x20 用于查询(0x21~0x40)之间支持的PID参数
  • PID 0x40 用于查询 (0x41~0x60)之间支持的PID参数
  • 以此类推后面的0x60 0x80

在这里插入图片描述

请求和响应

1、read-supported PIDs

1.1、请求

基本格式

<SID> + <PID>

在这里插入图片描述

1.2、肯定响应

基本格式:

<SID + 0x40> + <PID> + <支持的 PID PID PID PID>

在这里插入图片描述

2、read PID value

1.1、请求

基本格式

<SID> + <PID>

在这里插入图片描述

1.2、肯定响应

基本格式:

<SID + 0x40> + <PID> + <返回数据>
在这里插入图片描述

3、同时请求多个PID

ECU应支持最多六(6)个PID的请求。
请求消息可以多次包含相同的PID。ECU应处理每个PID作为单独的参数,并根据请求经常用每个PID的数据进行响应(对于同一PID返回的数据可能不同)。
响应消息中PID的顺序不需要与请求消息中的顺序相匹配。

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

3、同时读取多个PID数据

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

Parameter definition

SAE J1979-DA specifies the interpretation of the data record of supported PIDs.

报文示例

1、单个PID请求和读取

第 1 步,向车辆请求支持的PID
在这里插入图片描述

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

第 2 步,Request PID from vehicle

PID 01h: Number of emission-related powertrain DTCs and MIL status.
在这里插入图片描述

在这里插入图片描述

2、多个PID请求和读取

第 1 步,向所有ECU请求支持的PID
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第 2 步,读取多个支持的PID数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【Ubuntu24.04无显示器远控】【Todesk远程桌面黑屏】【Linux虚拟显示器】解决方案

1️⃣版本 Ubuntu 24.04Todesk 4.7.2.0xserver-xorg-video-dummy 1:0.4.0-1build1 2️⃣安装配置虚拟显示器 sudo apt install xserver-xorg-video-dummy编辑/etc/gdm3/custom.conf&#xff0c;关闭Ubuntu24.04Wayland切换为X11 WaylandEnablefalse /usr/share/X11/xorg.con…

NDT(基于正态分布变换的配准算法)

NDT是将单个扫描的离散点集转换为空间上定义的分段连续可微概率密度&#xff0c;该概率密度由一组易于计算的正态分布组成的算法。采用NDT连续化后&#xff0c;传统硬离散优化问题能够潜在地转化为更易于处理的连续优化问题。 NDT原理 NDT将根据点云中点所处的位置&#xff0…

网络治理新模式:Web3时代的社会价值重构

随着Web3技术的崛起&#xff0c;传统的网络治理模式正在经历革新&#xff0c;这不仅仅是技术的进步&#xff0c;更是对社会价值观念的挑战和重构。本文将深入探讨Web3时代的网络治理新模式&#xff0c;其背后的技术基础、社会影响以及未来的发展方向。 1. 引言 Web3时代&#…

智慧营区人员管理系统|DW-S406系统特点

1、项目背景 当前我国军队正处于加紧完成机械化和信息化建设双重历史任务的阶段&#xff0c;现阶段我国对军事通信领域强有力的支持性产业政策&#xff0c;将为行业的未来发展提供有力保障。随着经济实力的不断增长&#xff0c;以及国际、周边政治局势的日趋复杂&#xff0c;我…

# 音频处理4_傅里叶变换

1.离散傅里叶变换 对于离散时域信号 x[n]使用离散傅里叶变换&#xff08;Discrete Fourier Transform, DFT&#xff09;进行频域分析。 DFT 将离散信号 x[n] 变换为其频谱表示 X[k]&#xff0c;定义如下&#xff1a; X [ k ] ∑ n 0 N − 1 x [ n ] e − j 2 π k n N X[k]…

C# 超简单的离线人脸识别库 - ViewFaceCore

项目介绍 ViewFaceCore是一个基于 SeetaFace6 的 .NET 人脸识别解决方案。 项目特点 开源&#xff08;MIT license&#xff09;、免费、简单的离线人脸识别库。 跨平台&#xff08;适用于 Windows、MacOS 和 Linux &#xff09;。 .NET 框架 和 操作系统 封装完善的NuGet包…

[CAN] 通讯协议手动解析与手动打包 [手撕编码格式]

手动解析与手动打包 一、Intel格式编码1.1 报文解析。1.2 报文打包二、Motorola格式通讯协议2.1 报文解析。2.2 报文打包🙋 前言 CAN有两种编码格式:Intel编码格式 和 Motorola编码格式,本教程将分别对两种格式进行手动解析与手动打包。 一、Intel格式编码 假设已知雷达CAN…

接口自动化测试框架实战(Pytest+Allure+Excel)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1. Allure 简介 Allure 框架是一个灵活的、轻量级的、支持多语言的测试报告工具&#xff0c;它不…

项目开发 TCP-Socket连接功能实现(Android端)

前段时间在公司做项目的时候遇到了一个功能需要使用TCP-Socket连接硬件设备进行通信&#xff0c;查了很多资料也只是关于HTTP-Socket相关的&#xff0c;没法满足项目的要求&#xff0c;后来查到一个相关的插件&#xff0c;现在有时间和大家分享一下。 项目简单介绍&#xff1a…

【手撕代码】握手机制

文章目录 为什么要握手握手信号无非3种可能 怎样实现握手案例一&#xff1a;数据反压 参考链接 为什么要握手 跨时钟域处理&#xff1a; 握手信号法其实也用到了脉冲展宽的方法&#xff0c;只是展宽信号的变化条件不同。因为如果不对脉冲进行展宽&#xff0c;慢速时钟域的时钟…

39 - 安全技术与防火墙

39、安全技术和防火墙 一、安全技术 入侵检测系统&#xff1a;特点是不阻断网络访问&#xff0c;主要是提供报警和事后监督。不主动介入&#xff0c;默默看着你&#xff08;监控&#xff09;。 入侵防御系统&#xff1a;透明模式工作&#xff0c;数据包&#xff0c;网络监控…

python-(opencv)视频转glf

文章目录 前言python-(opencv)视频转glf1. 下载 opencv-python2. cv2&#xff08;OpenCV&#xff09;和imageio的区别3. demo源码 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说…

youlai-boot项目的学习(4) 前后端本地部署

环境 1、macOS, brew, IntelliJ IDEA, WebStrom 2、后端&#xff1a;https://gitee.com/youlaiorg/youlai-boot.git , master, 9a753a2e94985ed4cbbf214156ca035082e02723 3、前端&#xff1a;https://gitee.com/youlaiorg/vue3-element-admin.git, master, 66b913ef01dc880ad…

深度解析RocketMq源码-IndexFile

1.绪论 在工作中&#xff0c;我们经常需要根据msgKey查询到某条日志。但是&#xff0c;通过前面对commitLog分析&#xff0c;producer将消息推送到broker过后&#xff0c;其实broker是直接消息到达broker的先后顺序写入到commitLog中的。我们如果想根据msgKey检索一条消息无疑…

Zookeeper:基于Zookeeper的分布式锁

一、Zookeeper分布式锁原理 二、Zookeeper JavaAPI操作 1、Curator介绍 Curator是Apache Zookeeper的Java客户端。常见的Zookeeper Java API&#xff1a; 原生Java API。ZkClient。Curator。 Curator项目目标是简化Zookeeper客户端的使用。Curator最初是Netfix研发的&#xf…

C++11的可变参数模板

可变参数模板 什么是可变参数模板的可变参数展开参数包emplace系列函数引例emplace系列函数 什么是可变参数 printf和scanf中就涉及可变参数 这里三个点就代表可变参数&#xff0c;意思就是不管你传多少个参数&#xff0c;都可以接收 printf("%d",x); printf("…

狼牙山短视频:成都柏煜文化传媒有限公司

狼牙山短视频&#xff1a;记录自然与历史的交融 随着短视频的兴起&#xff0c;我们得以在短短几分钟内&#xff0c;跨越千山万水&#xff0c;领略世界各地的风情。成都柏煜文化传媒有限公司 而今天&#xff0c;我想带大家走进一个独特的地方——狼牙山&#xff0c;通过一系列短…

Transformer教程之Transformer的历史背景

在现代人工智能领域&#xff0c;Transformer模型已经成为一种不可或缺的技术&#xff0c;它在自然语言处理&#xff08;NLP&#xff09;和计算机视觉等多个领域取得了巨大的成功。本文将带你回顾Transformer的历史背景&#xff0c;了解它是如何从最初的构想到今天的广泛应用的。…

Web渗透:文件包含漏洞

Ⅱ.远程文件包含 远程文件包含漏洞&#xff08;Remote File Inclusion, RFI&#xff09;是一种Web应用程序漏洞&#xff0c;允许攻击者通过URL从远程服务器包含并执行文件&#xff1b;RFI漏洞通常出现在动态包含文件的功能中&#xff0c;且用户输入未经适当验证和过滤。接着我…