【车载开发系列】UDS诊断—数据传输($0x36)
UDS诊断---数据传输($0x36)
- 【车载开发系列】UDS诊断---数据传输($0x36)
- 一.概念定义
- 二.报文格式
- 1)请求报文
- 2)肯定响应
- 3)否定响应
一.概念定义
- 数据传输 TransferData(36h)
- 诊断工具使用此服务从诊断工具到 ECU 传输数据(下载)或者从 ECU 到诊断工具传输数 据(上传)。
- 在ISO14229当中定义了上传和下载两个部分,但大多数车企都只使用下载功能。
二.报文格式
1)请求报文
- BlockSequenceCounter被ECU用来监测并处理传输错误,初始值是 1,随后每次服务请求 其值递增 1。当传输块编号达到 255(FFh)时, 要求传输块编号从 0 继续。
- transferRequestParameterRecord:字节长短和参数格式不定,由厂家制定。发送请求的数据。

2)肯定响应
- blockSequenceCounter:对请求的blockSequenceCounter的echo
- transferResponseParameterRecord,当36服务用于上传数据时,该参数必须的。36服务用于下载数据时,该参数非必须,此处不解析。

3)否定响应
常用的否定响应码如下。
| Hex | 描述 | Description |
|---|---|---|
| 0x13 | 报文长度错误 | incorrectMessageLengthOrInvalidFormat |
| 0x24 | 请求顺序错误 | requestSequenceError |
| 0x31 | 请求超出范围 | requestOutOfRange |
| 0x71 | 传输数据暂停 | transferDataSuspended |
| 0x72 | 一般编程错误 | generalProgrammingFailure |
| 0x73 | 块序列计数器错误 | wrongBlockSequenceCounter |
| 0x92-0x93 | 电压过高/过低 | voltageTooHigh / voltageTooLow |





![洛谷千题详解 | P1020 [NOIP1999 普及组] 导弹拦截【C++语言】](https://img-blog.csdnimg.cn/img_convert/6e4543e2cabedafc9804ae40e2753e5e.png)













