UDS 诊断服务系列文章目录
UDS 诊断 - DiagnosticSessionControl(诊断会话控制)(0x10)服务
UDS 诊断 - ECUReset(ECU重置)(0x11)服务
UDS 诊断 - SecurityAccess(安全访问)(0x27)服务
UDS 诊断 - CommunicationControl(通信控制)(0x28)服务
UDS 诊断 - TesterPresent(测试仪保活)(0x3E)服务
UDS 诊断 - AccessTimingParameter(访问计时参数)(0x83)服务
文章目录
一、服务说明
AccessTimingParameter(访问计时参数)用于读取和更改通信链路激活期间该通信链路的默认计时参数。
本服务的使用比较复杂,取决于服务器的能力及数据链路拓扑。每个诊断会话仅支持一个扩展的计时参数集。建议使用仅带物理寻址功能的服务,因为服务器支持不同的扩展计时参数集。
建议使用一下服务序列:
- DiagnosticSessionControl(诊断会话控制)(0x10)(diagnosticSessionType(诊断会话类型))服务;
- AccessTimingParameter(访问计时参数)(0x83)(readExtendedTimingParameterSet(读取扩展的计时参数集))服务;
- AccessTimingParameter(访问计时参数)(0x83)(setTimerParametersToGivenValues(计时参数值设置为指定值))服务;
需要服务器发送响应的情况下,服务器发送 AccessTimingParameter(访问计时参数)肯定响应消息之后,客户端和服务器应激活新的计时参数设置。不允许发送响应消息的情况下,传输 / 接收请求消息之后,客户端和服务器应激活新的计时参数。
成功切换到另一个或相同的诊断会话后,服务器和客户端应将其计时参数重置为默认值(例如,通过 DiagnosticSessionControl(诊断会话控制)(0x10),ECUReset(ECU重置)(0x11)服务或会话计时超时进行重置)。
AccessTimingParameter(访问计时参数)服务提供四种不同的访问服务器计时参数的方式:
- readExtendedTimingParameterSet(读取扩展的计时参数集);
- setTimingParametersToDefaultValues(计时参数设置为默认值);
- readCurrentlyActiveTimingParameters(读取当前活动的计时参数);
- setTimerParametersToGivenValues(计时参数值设置为指定值);
二、请求消息
1.请求消息定义
字节 参数名称 字节值 #1 AccessTimingParameter(访问计时参数)请求SID 0x83 #2 sub-function = [ timingParameterAccessType ] 0x00 - 0xFF
#3
.
.
#nTimingParameterRequestRecord[] = [
byter#1
.
.
byte#m
仅当 timingParameterAccessType = setTimingParameterToGivenValues 时该参数存在。 ]
0x00 - 0xFF
.
.
0x00 - 0xFF2.请求消息子功能参数定义
第 6 至 0 位 说明 0x00 保留 0x01 readExtendedTimingParameterSet(读取扩展的计时参数集)
接收 timingParameterAccessType = readExtendedTimingParameterSet 的 AcessTimingParameter(访问计时参数)指示源于后,服务器应读取扩展的计时参数集,即服务器可支持的参数值。
如果成功读取访问计时参数集,则服务器应发送带肯定响应参数的AccessTimingParament(访问计时参数)响应原语。
如果未成功读取访问计时参数集,则服务器应发送带适宜的否定响应代码的否定响应消息。
该子功能用于为当前有效诊断会话提供额外的计时参数集。
凭借 timingParameterAccessType = setTimingParametersToGivenValues,即可设置该计时参数集(通过 timingParameterAccessType = readExtendedTimingParameterSet 进行读取)。0x02 setTimingParametersToDefaultValues(计时参数设置为默认值)
收到 timingParameterAccessType = setTimingParametersToDefaultValues 的 AccessTimingParameter(访问计时参数)指示原语后,服务器应将所有计时参数值更改为默认值,并在默认计时参数有效之前发送带肯定响应参数的 AccessTimingParameter(访问计时参数)响应原语(在 suppressPosRspMsgIndicationBit(抑制肯定响应消息指示位)设置为 “False” 的情况下,否则计时参数应在成功评估请求消息后有效)。
如果因任何原因未能将计时参数更改为默认值,则服务器应维持当前有效计时参数,并发送一条带适宜的否定响应码的否定响应消息。0x03 readCurrentlyActiveTimingParameters(读取当前活动的计时参数)
收到timingParameterAccessType = readCurrentlyActiveTimingParameters 的 AccessTimingParameter(访问计时参数)指示原语后,服务器应读取当前所使用的计时参数。
如果成功读取访问计时参数,则服务器应发送带肯定响应参数的 AccessTimingParameter(访问计时参数)响应原语。
如果因任何原因导致不可能读取访问当前所使用的计时参数,则服务器应发送带适宜的否定响应代码的否定响应消息。0x04 setTimerParametersToGivenValues(计时参数值设置为指定值)
收到 timingParameterAccessType = setTimerParametersToGivenValues 的 AccessTimingParameter(访问计时参数)指示原语后,服务器应当检查当前条件下是否能够更改计时参数。
如果条件有效,则服务器应执行更改计时参数所必要的所有操作,并在新的计时参数值有效之前发送带肯定响应参数的 AccessTimingParameter(访问计时参数)响应原语(在 suppressPosRspMsgIndicationBit(抑制肯定响应消息指示位)设置为 “False” 的情况下,否则计时参数应在成功评估请求消息后有效)。
如果因任何原因导致未能更改计时参数,则服务器应维持当前有效的计时参数,并发送一条带适宜的否定响应代码的否定响应消息。
不可能将服务器的计时参数设置为通过 timingParameterAccessType = readExtendedTimingParameterSet 读取的最小值与最大值之间的值的任何集合。服务器的计时参数仅能够设置为通过 timingParameterAccessType = readExtendedTimingParameterSet 读取的计时参数。服务器应拒绝进行此操作的请求。0x05 - 0xFF 保留 3. 请求消息数据参数定义
定义 TimingParameterRequestRecord(计时参数请求记录)
该参数记录包含将 timingParameterAccessType = setTimerParametersToGivenValues 在服务器中进行设置的计时参数值。三、肯定响应消息
1. 肯定响应消息定义
字节 参数名称 字节值 #1 AccessTimingParameter(访问计时参数)响应SID 0xC3 #2 timingParameterAccessType(计时参数访问类型) 0x00 - 0x7F #3
.
.
#nTimingParameterResponseRecord(计时参数响应记录)[] = [
byter#1
.
.
byte#m
仅当 timingParameterAccessType = readExtendedTimingParameterSet 或 readCurrentlyActiveTimingParameters 时该参数存在。 ]
0x00 - 0xFF
.
.
0x00 - 0xFF2. 肯定响应消息数据参数定义
下表为响应消息数据参数定义
定义 timingParameterAccessType(计时参数访问类型)
该参数是对来自请求消息的子功能参数第 6 至 0 位的回显。TimingParameterResponseRecord(计时参数响应记录)
该参数记录含有通过 timingParameterAccessType = readExtendedTimingParameterSet 或 readCurrentlyActiveTimingParameters 从服务器读取的计时参数值。四、支持的NRC
NRC 说明 0x12 不受支持的子功能 0x13 消息长度不正确或格式无效 0x22 条件不正确
如果不符合请求 AccessTimingParameter(访问计时参数)的标准,则返回该NRC。0x31 请求超过限值
如果 TimingParameterResponseRecord(计时参数响应记录)包含无效的计时参数值,则返回该NRC。五、示例
本示例显示的是如何在服务器中设置默认计时参数。
suppressPosRspMsgIndicationBit = Falsereq 83 02 resp C3 02