前言
本文介绍UDS统一诊断服务的访问时序参数0X83服务,希望能对你有所帮助
一、访问时序参数服务介绍
这个服务我目前在项目中没怎么用到过,先来看看ISO14229的介绍
Access Timing Parameter 服务用于在通信链路处于活动状态期间读取和更改通信链路的默认定时参数。
此服务的使用很复杂,取决于服务器的能力和数据链路拓扑。每个诊断会话仅支持一个扩展时序参数集。由于服务器支持不同的扩展计时参数集,因此建议仅将此服务与物理寻址一起使用。
建议使用以下服务顺序:
-
DiagnosticSessionControl (diagnosticSessionType) service;
-
AccessTimingParameter (readExtendedTimingParameterSet) service;
-
AccessTimingParameter (setTimingParametersToGivenValues) service;
对于需要服务器发送响应的情况,客户端和服务器应在服务器发送AccessTimingParameter肯定响应消息后激活新的定时参数设置。在不允许响应消息的情况下,客户端和服务器应在请求消息的传输/接收后激活新的计时参数。
在成功切换到另一个或相同的诊断会话后(例如,通过 DiagnosticSessionControl、ECUReset 服务或会话超时),服务器和客户端应将它们的计时参数重置为默认值。
二、数据格式
2.1 请求报文
格式如下:
[SID]+ [sub-function]+ [TimingParameterRequestRecord]
前两个字节是固定有的,第三个字节只有当子功能为setTimingParametersToGivenValues时,才会有,其他情况下不需要发送这个参数
2.2 子功能
AccessTimingParameter 服务提供了四种不同的访问服务器计时参数的方式,具体如下:
2.3 响应
正响应格式如下:
TimingParameterResponseRecord 仅在 timingParameterAccessType = readExtendedTimingParameterSet 或readCurrentlyActiveTimingParameters 时存在。TimingParameterResponseRecord 的结构和内容依赖于数据链路层,因此在 ISO 14229 的实施规范中定义。
否定响应:【7F】+【SID】+【NRC】
支持的NRC如下:
三、举例
客户端向服务端发送设置时序参数为默认值的请求
服务端的肯定应答