【ISO15031_OBD诊断】-0.1-Service服务概述-程序员宅基地

技术标签: UDS/OBD诊断/刷写  # OBD诊断(ISO 15031)  autosar  

总目录:(单击下方链接皆可跳转至专栏总目录)

《UDS/OBD诊断&诊断描述文件CDD》总目录icon-default.png?t=LA92https://blog.csdn.net/qfmzhu/article/details/120425660

目录

0 前言

1 OBD诊断中“术语”的定义

2 OBD诊断中“缩写”的描述

3 ISO 15031-5的适用范围

4 ISO 15765-4中“P2CAN和P2*CAN”应用时序参数定义

5 ISO 15765-4协议的实施指南示例

5.1 默认会话期间的功能OBD通信

5.2 具有增强响应时间的功能OBD通信

6 ISO 15765-4数据不可用

6.1 ISO 15765-4 - 在P2时序内不可用的数据或无法在P2时序内执行服务

6.2 数据不可用—协议的测试条件:ISO 15765-4通过CAN的诊断通信

7 NRC否定响应代码参数定义

8 Byte order字节顺序约定

9要显示的数据格式

10 用于ISO 15765-4的OBD诊断服务概述

11 结尾


0 前言

ISO 15031OBD诊断协议)由以下Part组成,总称为“Road vehicles - Communication between vehicle and external equipment for emissions-related diagnostics道路车辆-车辆与外部设备之间的排放相关诊断通信”:

  1. Part 1: General information and use case definition一般信息和用例定义
  2. Part 2: Guidance on terms, definitions, abbreviations and acronyms术语,定义,缩写和首字母缩写的指南
  3. Part 3: Diagnostic connector and related electrical circuits, specification and use诊断连接器和相关电路,规范和用途
  4. Part 4: External test equipment外部测试设备
  5. Part 5: Emissions-related diagnostic services与排放相关的诊断服务
  6. Part 6: Diagnostic trouble code definitions故障诊断代码定义
  7. Part 7: Data link security数据链路安全

这些Part加在一起提供了一套连贯一致的规范,以促进与排放相关的诊断。ISO 15031-1介绍了该系列国际标准。

ISO 15031-2到ISO 15031-7基于SAE J1979推荐的作法(其中ISO 15031-5基于SAE J1979

为此,它基于符合ISO/IEC 7498-1和ISO/IEC 10731的开放系统互连(OSI:Open Systems Interconnection)基本参考模型,该模型将通信系统分为七层。

当映射到这个模型上时,本国际标准规定的服务按照下表分为以下层次。

Applicability

适用性

OSI 7 layers

Emissions-related OBD communication requirements

与排放相关的OBD通信需求

Emissions-related WWH-OBD communication requirements

与排放相关的WWH-OBD通信需求

Seven layers according to ISO/IEC 7498-1 and ISO/IEC 10731

Application

(layer 7)

ISO 15031-5/SAE J1979

ISO 27145-3

Presentation

(layer 6)

ISO 15031-2, ISO 15031-5, ISO 15031-6

ISO 27145-2

SAE J1930-DA, SAE J1979-DA, SAE J2012-DA

SAE J1930-DA, SAE J1979-DA, SAE J2012-DA

Session

(layer 5)

Not applicable

ISO 14229-2

Transport

(layer 4)

ISO 15031-5

ISO 14230-4

ISO 15765-2

ISO 15765-4

ISO 15765-2

ISO 15765-4

ISO 13400-2

Network

(layer 3)

Data link

(layer 2)

SAE J1850

ISO 9141-2

ISO 14230-2

ISO 11898-1,

ISO 11898-2

ISO 11898-1,

ISO 11898-2

ISO 13400-3

Physical

(layer 1)

ISO 14230-1

a World-Wide Harmonized.

OBD法规要求乘用车轻型、中型重型卡车外部(非车载)“通用”测试设备提供一个最少的诊断信息集。

1 OBD诊断中“术语”的定义

absolute throttle position sensor节气门绝对位置传感器

用于表示节气门开度的值。

注:对于输出与输入电压成比例的系统,此值为最大输入信号的百分比。对于输出与输入电压成反比的系统,该值为100%减去最大输入信号的百分比。空转/怠速时的节气门位置通常指示大于0%,而节气门全开时的节气门位置通常指示小于100%。

bank气缸

共用一个控制传感器的特定气缸组。

注1:气缸组1始终包含气缸#1,气缸#2始终包含相反的气缸组。

注2:如果只有一个气缸组,则使用气缸组#1 DTC,并可省略“气缸组”一词。对于使用多个传感器的单个“气缸组”系统,气缸组1的DTC用于识别传感器为#1、#2和#3,以便它们远离气缸。

base fuel schedule基本燃油表

燃油标定计划在制造时或由车外源更新时编入动力总成控制模块或PROM中,在任何学习的车载校正之前。

CALIDcalibration identifier标定标识符

服务器/电子控制单元(ECU)中包含的用于特定软件/标定的识别码。

注:如果法规要求排放相关软件的标定标识,则应以SAE J1979-DA中规定的标准化格式报告这些标识。

CVNcalibration verification number标定验证码

服务器/ECU计算的标定标识号的验证号,以验证服务器/ECU中包含的软件/标定的完整性。

注:如果法规要求有关排放的软件的标定标识,则应以ISO 15031-2中规定的标准格式进行报告。

calculated load value计算的负载值

“火花点火式车辆”通常表示当前气流除以全开节气门时的峰值气流作为rpm的函数,其中气流根据海拔和环境温度进行校正。

注1:火花点火和压缩点火车辆都可以使用替代定义,在计算中用发动机扭矩代替气流。

注2:该定义提供了一个数字(不带单位),并为维修技术人员提供了正在使用的发动机容量百分比的指示。

client客户端

该功能是测试仪的一部分,并利用诊断服务。

注:测试人员通常会使用其他功能,例如数据库管理、特定解释和人机界面。

continuous monitoring连续监视

每秒不少于两个样本的采样率。

注:如果出于控制目的,对计算机输入的采样频率较低,则可以在每次采样发生时评估组件的信号。

Cvtconvention惯例

列集成在每个消息表中,标记包含的每个参数。

注:使用以下约定:

C = Conditional有条件的:请求/响应消息中标记为“C”的参数仅在消息表底行指定的条件下出现;

M = Mandatory强制性:请求/响应消息表中标记为“M”的参数始终存在;

U = User(optional)用户(可选):请求/响应消息表中标记为“U”的参数是根据制造商的动态使用情况提供的。

公约推荐了一个可用于实施的助记符。在任何情况下,指定的助记符都不是任何实现的强制性要求。

DTdelay time延迟时间

在访问尝试之间插入的时间段。

diagnostic service诊断服务

由客户端(外部测试设备)发起的信息交换,以便从服务器(ECU)获取诊断信息或修改其行为以进行诊断。

注:这也等同于测试模式或模式。

emissions-related DTC排放相关诊断故障码

在故障导致车辆排放超过法定排放阈值时设置的DTC,或者要求按照车载诊断法规的规定设置DTC(例如,禁用诊断系统的另一部分)。

注:通常,在设置与排放有关的DTC,会同时点亮故障指示灯(MI)。根据车载诊断法规的规定,由车辆制造商确定与排放相关的DTC。

ECUelectronic control unit电子控制单元

任何电子控制单元的通用术语。

FAAfalse access attempt错误的访问尝试

车载控制器接收到错误的密钥。

FTfuel trim燃油修正

对基本燃料计划的反馈调整。

注:短期燃油调整是指动态或瞬时调整。长期燃油调整是指对燃油校准计划的调整比短期调整调整要缓慢得多。这些长期调整补偿了随着时间的推移发生的车辆差异和逐渐变化。

I/MI/M station

检查和维修站,以测试车辆排放相关系统的适航性。

key密钥

数据值,用于访问从外部测试设备发送到车载控制器的安全功能,以响应种子。

MImalfunction indicator故障指示

在发生故障时能够清楚地通知驾驶员的指示灯。

OBDon-board diagnostics车载诊断

监视部分或全部计算机输入和控制信号的系统。

注:超出预定限制的信号意味着系统或相关系统中的故障。

negative numbers负数

有符号二进制,二进制数的最高有效位(MSB),用于表示正数(0)/负数(1)。

注:2的补码:负数表示为二进制数的补码,然后加1

示例:–0,99 = 800116 = 1000 0000 0000 00012

0 = 000016 = 0000 0000 0000 00002

+0,99 = 7FFF16 = 0111 1111 1111 11112

注:(–0,99)+(+0,99)= 0。

#:number编号

用这个符号“#”表示。

P2,P3 timing parameterP2P3时序参数)

ECU和外部测试设备的应用时序参数。

P2CAN_min timing parameterP2CAN_min时序参数)

具有最小值的CAN应用时序参数,用于ECU和外部测试设备启动响应消息。

P2CAN_max timing parameterP2CAN_max时序参数)

具有最小值的CAN应用时序参数,用于ECU和外部测试设备启动响应消息。

P2reload timing parameterP2reload时序参数)

具有最大值(P2CAN_max)的CAN应用时序参数仅用于外部测试设备。

secured functions安全功能

受限制的功能,需要对其进行访问才能解锁板载控制器。

示例:车辆排放系统的编程,例如燃料/点火图,防盗系统和里程表。

seed种子

从机载控制器发送到外部测试设备的伪随机数据值,并由安全算法处理以生成密钥。

server服务器

功能是提供诊断服务的电子控制单元的一部分。

注:ISO 15031的这一部分区分了服务器(即功能)和电子控制单元,因此ISO 15031的这一部分与实施无关。

service服务

由客户端(外部测试设备)发起的信息交换,以便从服务器(ECU)获取诊断信息和/或修改其行为以进行诊断。

注:这也相当于测试模式或模式。

unsecured functions不安全的功能

车辆制造商提供的标准诊断功能,并由车载控制器进行控制和保护。

示例:对选定项目进行重新编程,例如清除故障代码。

VINvehicle identification number车辆识别码

遵循每个国家/地区当局的适用法律规定,每辆车特有的唯一识别号。

2 OBD诊断中“缩写”的描述

Addr:address地址

B1S1:Bank 1 Sensor 1气缸组1传感器1

B1S2:Bank 1 Sensor 2气缸组1传感器2

B1S3:Bank 1 Sensor 3气缸组1传感器3

B2S1:Bank 2 Sensor 1气缸组2传感器1

B2S2:Bank 2 Sensor 2气缸组2传感器2

B2S3:Bank 2 Sensor 3气缸组2传感器3

BARO:barometric atmospheric pressure大气压

CALID:calibration identifier标定标识符

CAN:controller area network控制器区域网络

CARB:California Air Resources Board加州空气资源委员会

CVN:calibration verification number标定验证码

DoCAN:Diagnostic communication over CAN通过CAN进行诊断通信

DoK-Line:Diagnostic communication over K-Line通过K-Line进行诊断通信

DTC:diagnostic trouble code诊断故障码

DTC FRZF:DTC Freeze Frame

ECU:electronic control unit电子控制单元

ECM:engine control module发动机控制模块

ECT:Engine Coolant Temperature发动机冷却液温度

FF:Flexible Fuel弹性燃油

FRZF:Freeze Frame冻结帧

FUEL PRES:Fuel Pressure燃油压力

FUEL SYS 1:Fuel System 1 Status燃油系统1状态

IPT:in-use performance tracking使用性能跟踪

ITID:infotype identifier信息类型标识符

I/M:inspection and maintenance检查和维护

ISO:International Organization for Standardization国际标准化组织

ISR:interrupt service routine 中断服务程序

LONG FT 2:Long Term Fuel Trim Bank 2气缸组2的长期燃油调整

K-Line:UART-based communication data link基于UART的通信数据链路

MI:malfunction indicator故障指示

MIL:malfunction indicator lamp故障指示灯

MAF:mass air flow 空气质量流量

MAP:manifold absolute pressure歧管绝对压力

NRC:negative response code否定响应码

OBD:on-board diagnostic车载诊断

OBDMID:on-board monitor identifier车载监视标识符

OSI:open systems interconnection开放系统互连

O2SLOC11:Oxygen Sensor Location Bank 1 Position 1氧传感器位置气缸组1位置1

PCM:powertrain control module动力总成控制模块

PID:parameter identifier参数标识符

PWM:pulse width modulated脉冲宽度调制

RPM:rounds per minute每分钟转数

SAE:Society of Automotive Engineers美国汽车工程师学会

SI:international system of units国际单位制

TID:test identifier测试标识符

TCM:transmission control module变速箱控制模块

UDS:unified diagnostic services统一诊断服务

VIN:vehicle identification number车辆识别号码

VPM:variable pulse width可变脉冲宽度

ACL:additional communication line附加通信线路

RHD:right-hand-driven右手驱动

.con:confirmation确认

.ind:indication指示

.req:request请求

CRC:cyclic redundancy check循环冗余校验

DT:delay time延迟时间

ERR:error detection byte错误检测字节

EWMA:exponential weighted moving average指数加权移动平均

FF:first frame首帧

FAA:false access attempt错误的访问尝试

ISR:interrupt service routine中断服务程序

LSB:least significant bit最低有效位

MSB:most significant bit最高有效位

N_PDU:network protocol data unit网络协议数据单元

N/A:not applicable不适用

NVRAM:non-volatile memory非易失性存储器

PCI:protocol control information协议控制信息

RSP  in-frame response帧内响应

SF:single frame单帧

SOM:start of message消息开始

T_AE:virtual transport interface address extension虚拟传输接口地址扩展

T_Data[ ]:virtual transport interface data field虚拟传输接口数据字段

T_Mtype:virtual transport interface message type虚拟传输接口消息类型

T_Length:virtual transport interface length information虚拟传输接口长度信息

T_PDU:virtual transport interface protocol data unit虚拟传输接口协议数据单元

T_Result:virtual transport interface result虚拟传输接口结果

T_SA:virtual transport interface source address虚拟传输接口源地址

T_TA:virtual transport interface target address虚拟传输接口目标地址

T_TAtype:virtual transport interface target address type虚拟传输接口目标地址类型

UASID:unit and scaling identifier单位和缩放标识符

3 ISO 15031-5的适用范围

ISO 15031-5旨在满足美国和欧洲以及将来可能会采用类似要求的任何其他地区的车载诊断(OBD)法规的数据报告需求。ISO 15031-5规定

a)请求和响应消息的消息格式

b)外部测试设备的请求消息与车辆的响应消息之间以及这些消息与后续请求消息之间的时序需求

c)如果数据不可用,车辆和外部测试设备的行为,以及

d)一组具有相应请求和响应消息内容的诊断服务,以满足OBD法规

ISO 15031-5规定了机动车和外部试验设备所需支持的诊断服务和功能寻址请求/响应信息,用于与汽车排放相关的数据相关的诊断目的。符合ISO 15031-4需求的任何外部测试设备都使用这些消息从车辆中检索与排放相关的信息。

ISO 15031-5参考了SAE J1979-DA(Digital Annex数字附件),其中包括PID,OBDMID,TID和INFOTYPE的所有定义。

4 ISO 15765-4中“P2CAN和P2*CAN”应用时序参数定义

对于基于ISO 15765-4的CAN总线系统,车载系统的(所有)响应ECU应启动对P2CAN内的请求消息的响应消息。下表指定了P2的应用时序参数值。

参数

最小值P2CAN_min ms

最大值P2CAN_max ms

描述

P2CAN

0

50

这是与诊断响应时间相关的系统范围参数。每个服务器(ECU)都需要响应P2CAN_min和P2CAN_max之间的请求。

对于响应的single-frame单帧(SF)或first-frame首帧(FF),客户端(tester)应至少等待P2CAN_max。

P2CAN是多帧响应消息(FirstFrame)的第一个指示之前的时间。在收到完整的消息(最后一个ConsecutiveFrame连续帧)之前,客户端不应处理响应。

对于还支持UDsonCAN以进行增强诊断的客户端(tester),需要P2reload机制。收到SF或FF后,客户端(tester)应重新加载其P2CAN计时器,其值至少为P2CAN_max,并重新启动计时器。

一旦客户端(tester)的P2CAN计时器到期而没有收到SF或FF,客户端(tester)可能会假设没有更多的响应即将到来。

P2*CAN

0

5 000

成功接收NRC 7816否定响应消息和下一个响应消息(肯定或否定信息)之间的时间。

注意:multiple-frame响应的网络层时序参数未显示。ISO 15765-4中规定了法规诊断消息的网络层时序要求。

5 ISO 15765-4协议的实施指南示例

5.1 默认会话期间的功能OBD通信

下图以图形方式描述了客户端和三个服务器中默认会话期间功能寻址请求消息的时序处理。图后面的描述引用了图中标记的点。

图 - 功能OBD通信-默认响应时序

Key

1 客户端T_Data.req:诊断应用程序问题功能解决请求消息到网络层。

2 所有服务器T_Data.ind:网络层向诊断应用程序发出请求消息的接收。所有服务器使用P2CAN = P2CAN_max的值启动P2CAN计时器。

客户端T_Data.con:网络层向诊断应用发出请求消息完成的确认。客户端使用默认重载值P2CAN = P2CAN_max启动其P2CAN_Client定时器。

3 服务器#1 T_Data.req:诊断应用程序已准备好响应消息并向P2CAN内的网络层发出T_Data.req。响应消息可以是多帧或单帧响应消息。

4 客户端T_DataSOM.ind:网络层向诊断应用程序发出StartOfMessage的接收,该消息由CAN上的FirstFrame指示的接收发起(参见ISO 15765-2)。使用P2CAN_max值重新加载P2CAN。

5 服务器#2T_Data.req:诊断应用程序已准备好响应消息并向P2CAN内的网络层发出T_Data.req。响应消息可以是多帧或单帧响应消息

6 客户端T_DataSOM.ind:网络层向诊断应用程序发出StartOfMessage的接收,该消息由CAN上的FirstFrame指示的接收发起(参见ISO 15765-2)。使用P2 CAN_max值重新加载P2CAN。

7 服务器#1 T_Data.con:网络层向诊断应用发出响应消息的完成。

客户端T_Data.ind:网络层向诊断应用发出响应消息的完成。

8 服务器#2 T_Data.con:网络层向诊断应用发出响应消息的完成。

客户端T_Data.ind:网络层向诊断应用发出响应消息的完成。

9 服务器#3 T_Data.req:诊断应用程序已准备好响应消息并向P2CAN内的网络层发出T_Data.req。响应消息可以是多帧或单帧响应消息。

10 客户端T_DataSOM.ind:网络层向诊断应用程序发出StartOfMessage的接收,该消息由CAN上的FirstFrame指示的接收发起(参见ISO 15765-2)。使用P2CAN_max值重新加载P2CAN。

11 服务器#2 T_Data.con:网络层向诊断应用发出响应消息的完成。

客户端T_Data.ind:网络层向诊断应用发出响应消息的完成。

5.2 具有增强响应时间的功能OBD通信

下图说明了在默认会话期间客户端和三个服务器中针对功能寻址请求消息的时序处理,其中一个服务器通过包含NRC 7816的否定响应消息请求增强的响应时序。图之后的描述引用了图中标记的点。

 图 - 功能性OBD通信-增强的响应时间

Key

1 客户端T_Data.req:诊断应用程序问题功能解决请求消息到网络层。

2 所有服务器T_Data.ind:网络层向诊断应用程序发出请求消息的接收。所有服务器使用P2CAN = P2CAN_max的值启动P2CAN计时器。

客户端T_Data.con:网络层向诊断应用发出请求消息完成的确认。客户端使用默认重载值P2CAN = P2CAN_max启动其P2CAN计时器。所有NRCPendingCounter = 0。

3 服务器#1 T_Data.req:诊断应用程序没有准备好肯定响应消息,并通过T_Data.req向P2CAN内的网络层发出NRC = 7816的否定响应消息。

4 服务器#1 T_Data.con:网络层向诊断应用发出响应消息的完成。

客户端T_Data.ind:网络层向诊断应用程序发出消息的接收。由于接收到的响应消息是NRC = 7816的否定响应消息,因此NRCPendingCounter服务器#1递增1(0+1 = 1)。使用P2*CAN_max值重新加载P2CAN。服务器#1使用P2*CAN_max值重新加载P2CAN。

5 服务器#3 T_Data.req:诊断应用程序已准备好响应消息并向P2CAN内的网络层发出T_Data.req。

6 客户端T_DataSOM.ind:网络层向诊断应用程序发出StartOfMessage的接收,该消息由CAN上的FirstFrame指示的接收发起(参见ISO 15765-2)。使用P2*CAN_max重新加载P2CAN。

7 服务器#3 T_Data.con:网络层向诊断应用发出响应消息的完成。

客户端T_Data.ind:网络层向诊断应用发出响应消息的完成。

8 服务器#2 T_Data.req:诊断应用程序已准备好响应消息并向P2CAN内的网络层发出T_Data.req。

9 客户端T_DataSOM.ind:网络层向诊断应用程序发出StartOfMessage的接收,该消息由CAN上的FirstFrame指示的接收发起(参见ISO 15765-2)。客户端使用P2*CAN_max值重新加载P2CAN。

10 服务器#1 T_Data.req:诊断应用程序已准备好响应消息并向P2CAN内的网络层发出T_Data.req

11 客户端T_DataSOM.ind:网络层向诊断应用程序发出StartOfMessage的接收,该消息由CAN上的FirstFrame指示的接收发起(参见ISO 15765-2)。由于接收到的响应消息是肯定响应消息,NRCPendingCounter服务器#1递减1(1-1 = 0)。客户端使用P2CAN_max值重新加载P2CAN。

12 服务器#2 T_Data.con:网络层向诊断应用发出响应消息的完成。

客户端T_Data.ind:网络层向诊断应用发出响应消息的完成。

13 服务器#1 T_Data.con:网络层向诊断应用发出响应消息的完成

客户端T_Data.ind:网络层向诊断应用发出响应消息的完成

6 ISO 15765-4数据不可用

有五种情况的数据被视为不可用:

a)不支持请求消息:不支持功能请求消息的ECU不应发送任何响应消息;

b)支持请求消息但不支持数据:支持功能请求消息但不支持请求数据(例如PID、OBD监视器ID、TID或INFOTYPE)的ECU不允许发送否定响应消息因为另一个ECU会发送一个肯定的响应消息。如果外部测试设备发送包含多个PID的消息,并且每个与排放相关的ECU不支持所有请求的PID,则每个ECU应发送包含支持的PID和数据值的肯定响应消息,并且不应发送否定响应信息。如果ECU不支持任何请求的PID,则不允许发送否定响应消息;

c)支持请求消息,但目前没有数据:确实(确实)支持功能请求消息但当前没有可用请求数据的ECU应使用NRC 2216 - ConditionNotCorrect以否定响应消息进行响应(否定响应消息格式在6.3.3中规定)。对于服务0116、0216、0316、0616、0716和0A16,不允许使用包含NRC 2216的否定响应消息。对于服务0416、0816和0916,允许使用NRC 2216。将2216用于服务0916 CVN请求可能会受到OBD法规的限制;

d)支持请求消息,但在P2时序内数据不可用:ECU和外部测试设备的行为在6.1中规定;

e)支持请求消息,但不能在P2时间内进行服务:ECU和外部测试设备的行为在6.1中规定。对于服务0416和0916,允许使用NRC 7816。

6.1 ISO 15765-4 - 在P2时序内不可用的数据或无法在P2时序内执行服务

支持功能请求消息但在P2时间内没有可用请求数据或无法在P2时间内执行请求服务的ECU应执行以下处理:

a)ECU(s)应使用NRC 7816 - RequestCorrectlyReceived-ResponsePending在P2时间内以否定响应消息进行响应(不允许服务0116、0216、0316、0616、0716和0A16请求);

b)在正确接收到NRC 7816的否定响应消息后,外部测试设备和发送否定响应消息的ECU应将P2CAN_max参数定时值设置为P2*CAN_max(5 000 ms);

c)如果另一个ECU也用NRC 7816发送否定响应消息,则P2CAN_max时序参数值应重新加载到P2*CAN_max;

d)需要超过P2*CAN_max来执行请求的动作的ECU应在P2*CAN_max到期之前用NRC 7816重复否定响应消息,直到正确接收到肯定响应消息;

e)在收到所有肯定响应消息或超时后,发生了P2*CAN_max,P2CAN_max计时参数应重置为表7中指定的值。

车辆制造商负责确保车辆的网络架构在响应服务0116、0216、0316、0616、0716、0816和0A16请求时不会导致超过P2CAN_max时序的时序延迟,因为带有NRC 7816的否定响应消息将不被允许。

图15说明了使用NRC 7816处理ISO 15765-4接口的否定响应消息。

图 - ISO 15765-4:-否定响应代码NRC = 7816处理概述

Key

1 客户端T_Data.req:诊断应用程序问题功能解决请求消息到网络层。

2 所有服务器T_Data.ind:网络层向诊断应用程序发出请求消息的接收。所有服务器使用P2CAN = P2CAN_max的值启动P2CAN计时器。

客户端T_Data.con:网络层向诊断应用发出请求消息完成的确认。所有NRCPendingCounter = 0。客户端使用默认重载值P2CAN = P2CAN_max启动其P2CAN计时器。

3 服务器#1 T_Data.req:诊断应用程序没有准备好肯定响应消息,并通过T_Data.req向P2CAN内的网络层发出NRC = 7816的否定响应消息。

4 客户端T_Data.ind:网络层向诊断应用程序发出消息的接收。由于收到的响应消息是NRC = 7816的否定响应消息,服务器#1的NRCPendingCounter增加1(0+1 = 1)。客户端使用P2*CAN_max值重新加载P2CAN。

服务器#1 T_Data.con:网络层向诊断应用发出响应消息的完成。

5 服务器#2 T_Data.req:诊断应用程序没有准备好肯定响应消息,并通过T_Data.req向P2CAN内的网络层发出NRC = 7816的否定响应消息

6 客户端 T_Data.ind:网络层向诊断应用程序发出消息的接收。由于接收到的响应消息是NRC = 7816的否定响应消息,因此NRCPendingCounter服务器#2递增1(0+1 = 1)。客户端使用P2*CAN_max值重新加载P2CAN。

服务器#2 T_Data.con:网络层向诊断应用发出响应消息的完成。

7 服务器#3 T_Data.req:诊断应用程序已准备好响应消息并向P2CAN内的网络层发出T_Data.req。

8 客户端 T_DataSOM.ind:网络层向诊断应用程序发出StartOfMessage的接收,该消息由CAN上的FirstFrame指示的接收发起(参见ISO 15765-2)。客户端使用P2*CAN_max值重新加载P2CAN。

9 服务器#3 T_Data.con:网络层向诊断应用发出响应消息的完成。

客户端 T_Data.ind:网络层向诊断应用发出响应消息的完成。

10 服务器#2 T_Data.req:诊断应用程序已准备好响应消息并向P2CAN内的网络层发出T_Data.req。响应消息是单帧消息。

11 服务器 #2 T_Data.con:网络层向诊断应用发出响应消息的完成。

客户端T_Data.ind:网络层向诊断应用发出响应消息的完成。由于接收到的响应消息是肯定响应消息,NRCPendingCounter服务器#2递减1(1-1 = 0)。客户端使用P2*CAN_max值重新加载P2CAN。

12 服务器#1 T_Data.req:诊断应用程序已准备好响应消息并向P2CAN内的网络层发出T_Data.req。响应消息是单帧消息。

13 服务器#1 T_Data.con:网络层向诊断应用发出响应消息的完成。

客户端 T_Data.ind:网络层向诊断应用程序发出响应消息的完成。由于接收到的响应消息是肯定响应消息,NRCPendingCounter服务器#1递减1(1-1 = 0)。客户端使用P2CAN_max值重新加载P2CAN。

6.2 数据不可用—协议的测试条件:ISO 15765-4通过CAN的诊断通信

以下是认为没有数据的五个条件:

—不支持服务;

—支持服务,但不支持数据;

—支持服务,但在发出请求时数据不可用;

—支持服务,但在P2时序内数据不可用;

—支持服务,但不能在P2定时内执行。表11列出了正确的服务器/ECU响应,如6.1所述。

表11 - 服务器/ECU对ISO 15765-4协议的肯定响应

服务

(16进制)

条件

ISO 15765-4

NRC

01

不支持

如果支持服务0116,所有ECU应响应服务0116 PID 0016。如果不支持服务0116,则不允许响应。

N/A

请求的PID不受支持

ECU不响应。

N/A

请求支持的PID

需要肯定响应(不允许带有NRC7816的否定响应消息)。

N/A

支持初始化期间请求的PID 0016

需要肯定响应或否定响应,最多5次。

2116

02

不支持

ECU不应响应。

N/A

支持的PID,请求帧XX16,未存储冻结帧

1)ECU应响应PID 0216 帧XX16;PID 0216帧XX16应指示000016。

2)ECU应响应帧XX16(0016,2016,...)的支持PID。

3)如果请求支持PID或PID 0216以外的PID,则ECU不应响应。

N/A

不支持的PID,请求帧XX16,未存储冻结帧

PID 0216帧XX16指示000016,但如果请求任何其他PID,ECU不应响应。

N/A

支持的PID,帧XX16请求,冻结帧存储

1)ECU应在P2时间内响应PID 0216帧XX16。

2)ECU应在P2时序内响应帧XX16(0016、2016...)的支持PID,并应响应P2时序内指示为支持的PID帧XX16。

N/A

不支持的PID,请求的帧XX16,已存储冻结帧

ECU不应响应。

N/A

03/

07/

0A

不支持

ECU不应响应。

N/A

支持,不存储DTC

表示不需要DTC的肯定响应。

N/A

支持,已存储DTC

需要包含存储的DTC的肯定响应。

N/A

04

不支持

ECU不应响应。

N/A

支持,条件不正确

需要否定响应。

2216

支持,条件正确

需要肯定响应消息。请求后最多5000毫秒内允许多个否定响应消息,直到需要肯定响应。

78

06

不支持

ECU不应响应。

N/A

请求支持的OBDMID,没有可用的存储数据

需要肯定响应;测试值,最小和最大限制应设置为0016。

N/A

请求的OBDMID不受支持,没有可用的存储数据

ECU不应响应。

N/A

支持OBDMID请求,存储数据可用

需要肯定响应。

N/A

请求的OBDMID不受支持,存储的数据可用

ECU不应响应。

N/A

08

不支持

ECU不应响应。

N/A

请求支持的TID,条件正确

需要肯定响应。

N/A

请求支持的TID,条件不正确

需要否定回应。

2216

请求的TID不受支持

ECU不应响应。

N/A

09

不支持

ECU不应响应。

N/A

请求支持的信息类型,数据可用(VIN、CVN、CALID)

需要肯定响应。

N/A

请求支持的INFOTYPE,数据不可用,条件正确(CVN)

在P2max(50 ms)内需要初始否定响应消息,在P2max(5.0s)内需要连续否定响应消息,直到发送肯定响应。

7816

请求支持的INFOTYPE,数据不可用,条件不正确(CVN),仅在2005年之前MY

需要负面回应。(使用NRC 2216可能受到OBD法规的限制。)

2216

请求的信息类型不受支持

ECU不应响应。

N/A

00,05 or 0B – 0F

不允许

ECU不应响应。

N/A

7 NRC否定响应代码参数定义

响应代码应在支持服务的ECU中实现,该服务在请求时没有可用的有效数据,或者无法使用P2K-Line和P2CAN时序内可用的有效数据进行响应。

表16定义了否定响应代码。

表16 -否定响应代码(NRC)的定义

支持ISO协议

字节

(16进制)

响应代码定义

助记符

14230–4

10

generalReject一般拒绝

此响应代码表示服务被拒绝,但服务器(ECU)未指定拒绝原因。

GR

14230–4

11

serviceNotSupported不支持的服务

此响应代码表示将不会执行请求的操作,因为服务器(ECU)不支持请求的服务。

SNS

14230–4

12

subFunctionNotSupported-InvalidFormat(subFunction不支持-格式无效)

此响应代码表示将不会采取请求的操作,因为服务器(ECU)不支持请求消息的参数或参数字节的格式与指定服务的规定格式不匹配。

SFNSIF

14230–4

15765–4

21

busy-RepeatRequest-重复请求

此响应代码表示服务器(ECU)暂时太忙而无法执行请求的操作。对于ISO 15765-4协议,客户端(外部测试设备)的行为应符合ISO 15765-4中的定义。在多客户端(多个外部测试设备,例如远程信息处理客户端)环境中,一个客户端的诊断请求消息可能会被响应代码为2116的否定响应消息暂时阻止,而另一客户端完成诊断任务。因此,此否定响应代码(NRC)仅允许在协议的初始化序列期间使用。

注:如果服务器(ECU)能够执行诊断任务,但需要额外的时间来完成任务并准备响应消息,则使用响应代码为7816的否定响应消息而不是2116。

BRR

14230–4

15765–4

22

conditionsNotCorrectOrRequestSequenceError条件不正确或请求顺序错误

此响应代码表示将不会执行请求的操作,因为服务器(ECU)先决条件不满足。当顺序敏感的请求以错误的顺序发出时,也可能发生此请求

CNCORSE

14230–4

15765–4

78

requestCorrectlyReceived-ResponsePending请求正确接收-响应待定

此响应代码表明请求消息已正确接收,请求消息中的任何参数均有效,但可能尚未完成要执行的操作。此响应码可用于指示请求消息已正确接收,不需要重新传输,但服务器(ECU)

尚未准备好接收另一个请求。带有此响应代码的否定响应消息可以由ECU在 P2K-Line = P2CAN = P2*max内重复,直到带有请求数据的肯定响应消息可用。

RCR-RP

8 Byte order字节顺序约定

当报告大于一个字节的数据时,最高有效字节(或高字节)被报告为第一个数据字节,然后是下一个最高有效字节。

最低有效字节(或低字节)被报告为最后一个数据字节。在ISO 15031的这一部分中的许多示例中都显示了该约定。

9要显示的数据格式

表19指出了数据类型和显示格式的最低要求。

表19 - 要显示的数据格式

Data

Services

(16进制)

显示格式

Device ID – source address of response

All

ISO 9141-2:Hexadecimal(0016 to FF16)

ISO 14230-4:Hexadecimal(0016 to FF16)

SAE J1850:Hexadecimal(0016 to FF16)

ISO 15765-4:Hexadecimal(11 bit or 29 bit CAN Identifier)

Parameter ID(PID)

01 and 02

Hexadecimal(0016 to FF16) description(see SAE J1979-DA)

Frame number

02

Decimal(0 to 255)

Data values

01 and 02

See SAE J1979-DA

Diagnostic trouble codes

03,07,and 0A

“P”,“B”,“C”,or“U”,plus 4 hexadecimal characters and/or DTC definition (see SAE J2012-DA)

Test ID

05, 06,and 08

Hexadecimal(0016 to FF16)

Test value and test limits

05

Engineering units for Test IDs less than 8016(see SAE J1979-DA)

–decimal(0 to 255) for Test IDs greater than 8016

Test value and test limits

06

Decimal (0 to 65 535)

Component ID

06

Hexadecimal(0016 to 7F16)

Optional data bytes

08

4 bytes,each decimal(0 to 255)(see SAE J1979-DA)

Vehicle information type

09

Hexadecimal(0016 to 7F16)(see SAE J1979-DA)

Vehicle information data

09

See SAE J1979-DA

注意:ISO 15031-4/SAE J1978详细说明了显示服务0116到0916数据的指南和示例。

10 用于ISO 15765-4的OBD诊断服务概述

服务

(16进制)

描述

01

Request current powertrain diagnostic data

请求当前动力总成诊断数据

02

Request powertrain freeze frame data

请求动力系统冻结帧数据

03

Request emission-related diagnostic trouble codes

请求与排放相关的诊断故障代码

04

Clear/Reset emission-related diagnostic information

清除/重置排放相关诊断信息

05

Request oxygen sensor monitoring test results

请求氧气传感器监测测试结果

06

Request on-board monitoring test results for specific monitored systems

请求特定监控系统的车载监控测试结果

07

Request emission-related diagnostic trouble codes detected during current or last completed driving cycle

请求在当前或上次完成的驾驶循环中检测到的与排放相关的诊断故障代码

08

Request control of on-board system, test, or component

请求控制车载系统、测试或组件

09

Request vehicle information

请求车辆信息

0A

Request emission-related diagnostic trouble codes with permanent status

请求具有永久状态的与排放相关的诊断故障代码

以上摘自《ISO 15031-5:2015》。

11 结尾

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qfmzhu/article/details/122144692

智能推荐

如何配置DNS服务的正反向解析_dns反向解析-程序员宅基地

文章浏览阅读3k次,点赞3次,收藏13次。root@server ~]# vim /etc/named.rfc1912.zones #添加如下内容,也可直接更改模板。[root@server ~]# vim /etc/named.conf #打开主配置文件,将如下两处地方修改为。注意:ip地址必须反向书写,这里文件名需要和反向解析数据文件名相同。新建或者拷贝一份进行修改。nslookup命令。_dns反向解析

设置PWM占空比中TIM_SetCompare1,TIM_SetCompare2,TIM_SetCompare3,TIM_SetCompare4分别对应引脚和ADC通道对应引脚-程序员宅基地

文章浏览阅读2.5w次,点赞16次,收藏103次。这个函数TIM_SetCompare1,这个函数有四个,分别是TIM_SetCompare1,TIM_SetCompare2,TIM_SetCompare3,TIM_SetCompare4。位于CH1那一行的GPIO口使用TIM_SetCompare1这个函数,位于CH2那一行的GPIO口使用TIM_SetCompare2这个函数。使用stm32f103的除了tim6和tim7没有PWM..._tim_setcompare1

多线程_进程和线程,并发与并行,线程优先级,守护线程,实现线程的四种方式,线程周期;线程同步,线程中的锁,Lock类,死锁,生产者和消费者案例-程序员宅基地

文章浏览阅读950次,点赞33次,收藏19次。多线程_进程和线程,并发与并行,线程优先级,守护线程,实现线程的四种方式,线程周期;线程同步,线程中的锁,Lock类,死锁,生产者和消费者案例

在 Linux 系统的用户目录下安装 ifort 和 MKL 库并配置_在linux系统的用户目录下安装ifort和mkl库并配置-程序员宅基地

文章浏览阅读2.9k次。ifort 编译器的安装ifort 编译器可以在 intel 官网上下载。打开https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/fortran-compiler.html#gs.7iqrsm点击网页中下方处的 Download, 选择 Intel Fortran Compiler Classic and Intel Fortran Compiler(Beta) 下方对应的版本。我选择的是 l_在linux系统的用户目录下安装ifort和mkl库并配置

使用ftl文件生成图片中图片展示无样式,不显示_ftl格式pdf的样式调整-程序员宅基地

文章浏览阅读689次,点赞7次,收藏8次。些项目时需要一个生成图片的方法,我在网上找到比较方便且适合我去设置一些样式的生成方式之一就是使用Freemarker,在对应位置上先写好一个html格式的ftl文件,在对应位置用${参数名}填写上。还记得当时为了解决图片大小设置不上,搜索了好久资料,不记得是在哪看到的需要在里面使用width与height直接设置,而我当时用style去设置,怎么都不对。找不到,自己测试链接,准备将所有含有中文的图片链接复制一份,在服务器上存储一份不带中文的文件。突然发现就算无中文,有的链接也是打不开的。_ftl格式pdf的样式调整

orin Ubuntu 20.04 配置 Realsense-ROS_opt/ros/noetic/lib/nodelet/nodelet: symbol lookup -程序员宅基地

文章浏览阅读1.5k次,点赞6次,收藏12次。拉取librealsense。_opt/ros/noetic/lib/nodelet/nodelet: symbol lookup error: /home/admin07/reals

随便推点

操作系统精选习题——第四章_系统抖动现象的发生由什么引起的-程序员宅基地

文章浏览阅读3.4k次,点赞3次,收藏29次。一.单选题二.填空题三.判断题一.单选题静态链接是在( )进行的。A、编译某段程序时B、装入某段程序时C、紧凑时D、装入程序之前Pentium处理器(32位)最大可寻址的虚拟存储器地址空间为( )。A、由内存的容量而定B、4GC、2GD、1G分页系统中,主存分配的单位是( )。A、字节B、物理块C、作业D、段在段页式存储管理中,当执行一段程序时,至少访问()次内存。A、1B、2C、3D、4在分段管理中,( )。A、以段为单位分配,每._系统抖动现象的发生由什么引起的

UG NX 12零件工程图基础_ug-nx工程图-程序员宅基地

文章浏览阅读2.4k次。在实际的工作生产中,零件的加工制造一般都需要二维工程图来辅助设计。UG NX 的工程图主要是为了满足二维出图需要。在绘制工程图时,需要先确定所绘制图形要表达的内容,然后根据需要并按照视图的选择原则,绘制工程图的主视图、其他视图以及某些特殊视图,最后标注图形的尺寸、技术说明等信息,即可完成工程图的绘制。1.视图选择原则工程图合理的表达方案要综合运用各种表达方法,清晰完整地表达出零件的结构形状,并便于看图。确定工程图表达方案的一般步骤如下:口分析零件结构形状由于零件的结构形状以及加工位置或工作位置的不._ug-nx工程图

智能制造数字化工厂智慧供应链大数据解决方案(PPT)-程序员宅基地

文章浏览阅读920次,点赞29次,收藏18次。原文《智能制造数字化工厂智慧供应链大数据解决方案》PPT格式主要从智能制造数字化工厂智慧供应链大数据解决方案框架图、销量预测+S&OP大数据解决方案、计划统筹大数据解决方案、订单履约大数据解决方案、库存周转大数据解决方案、采购及供应商管理大数据模块、智慧工厂大数据解决方案、设备管理大数据解决方案、质量管理大数据解决方案、仓储物流与网络优化大数据解决方案、供应链决策分析大数据解决方案进行建设。适用于售前项目汇报、项目规划、领导汇报。

网络编程socket accept函数的理解_当在函数 'main' 中调用 'open_socket_accept'时.line: 8. con-程序员宅基地

文章浏览阅读2w次,点赞38次,收藏102次。在服务器端,socket()返回的套接字用于监听(listen)和接受(accept)客户端的连接请求。这个套接字不能用于与客户端之间发送和接收数据。 accept()接受一个客户端的连接请求,并返回一个新的套接字。所谓“新的”就是说这个套接字与socket()返回的用于监听和接受客户端的连接请求的套接字不是同一个套接字。与本次接受的客户端的通信是通过在这个新的套接字上发送和接收数_当在函数 'main' 中调用 'open_socket_accept'时.line: 8. connection request fa

C#对象销毁_c# 销毁对象及其所有引用-程序员宅基地

文章浏览阅读4.3k次。对象销毁对象销毁的标准语法Close和Stop何时销毁对象销毁对象时清除字段对象销毁的标准语法Framework在销毁对象的逻辑方面遵循一套规则,这些规则并不限用于.NET Framework或C#语言;这些规则的目的是定义一套便于使用的协议。这些协议如下:一旦销毁,对象不可恢复。对象不能被再次激活,调用对象的方法或者属性抛出ObjectDisposedException异常重复地调用对象的Disposal方法会导致错误如果一个可销毁对象x 包含或包装或处理另外一个可销毁对象y,那么x的Disp_c# 销毁对象及其所有引用

笔记-中项/高项学习期间的错题笔记1_大型设备可靠性测试可否拆解为几个部分进行测试-程序员宅基地

文章浏览阅读1.1w次。这是记录,在中项、高项过程中的错题笔记;https://www.zenwu.site/post/2b6d.html1. 信息系统的规划工具在制订计划时,可以利用PERT图和甘特图;访谈时,可以应用各种调查表和调查提纲;在确定各部门、各层管理人员的需求,梳理流程时,可以采用会谈和正式会议的方法。为把企业组织结构与企业过程联系起来,说明每个过程与组织的联系,指出过程决策人,可以采用建立过程/组织(Process/Organization,P/O)矩阵的方法。例如,一个简单的P/O矩阵示例,其中._大型设备可靠性测试可否拆解为几个部分进行测试