#1:对36服务肯定应答76#2:blockSequenceCounter,对应36服务请求的blockSequenceCounter。例如:36 01 + data 76 01肯定应答 否定应答: 37服务功能:请求结束刷写 命令格式(请求&应答): 诊断请求: #1:37服务 #2 ··· n:transferRequestParameterRecord,由主机厂定义,一般只需发送37即可,不带任何参数,不过实际情况...
该参数是服务器在请求下载(0x34)肯定响应中告诉诊断设备在每次数据传输服务请求(0x36)应有多少字节(最大数据块长度)可以传输。该信息反映完整的消息长度,包括在传输数据请求(0x36)信息中出现的服务标识符和数据参数。该参数要求诊断设备在开始向服务器传输数据之前适应服务器接收缓冲区的大小。服务器接收的由传输数据请...
低4个bit默认0maxNumberOfBlockLength : 目标ECU允许Tester传输最大的字节数比如下面34服务响应的 maxNumberOfBlockLength等于0x0802,下面36服务就传输了0x0802个字节(包括36 01)0x1802的解释:CAN TP层的第一个字节的高4bit表示帧类型,1就表示是首帧,2是连续帧,3是流控帧,0是单帧。
8、$2E服务:写入DID数据。9、$14服务:清除故障码。10、$19服务:读取故障码信息。11、$2F服务:IO控制。12、$31服务:例程控制。13、$34服务:请求下载,包括DFI、ALFID、memoryAddr和memorySize。14、$36服务:数据传输,通过BSC和memory参数进行。15、$37服务:补充服务,通过CC、CCC等参数进行。
36的响应很简单,就是一个字节的Response SID再加一个字节的blockSequenceCounter作为echo。 RequestTransferExit(0x37): 37服务用于退出上传下载,如果之前的34和36服务都顺利执行完成,那么37服务就可以得到ECU的positive response。 格式很简单,请求就是37,正确响应就是77,都是一个字节。
UDS诊断服务的最后一篇介绍了上传下载单元和Routine单元。上传下载单元包括图1所示的诊断服务,主要用于传输大量数据,如刷写程序。而Routine单元则仅包含31服务,通常用于实现用户自定义功能,如CRC校验。上传下载单元 该单元包括0x34、0x35、0x36、0x37、0x38五个诊断服务,从上至下对应图1中的解释。下面...
通过36服务依次将该数据进行拆分发送,期间每完成一次36服务的发送,ECU进行肯定响应的回复。直到该块数据全部发送完; step3: 诊断仪通过发送37服务进行传输退出的请求; ECU进行肯定响应回复。 各服务说明如下所示: RequestDownload(0x34): 0x34服务用于启动下载传输,作用是告知ECU准备接受数据,ECU则通过0x74response告诉...
UDS由ISO-14229系列标准定义,ISO 14229-1 定义了诊断服务,不涉及网络及实现,只有应用层的内容。而ISO 14229-3则定义了UDS在CAN总线上的实现。 诊断通信的过程从用户角度来看非常容易理解,诊断仪发送诊断请求(request),ECU给出诊断响应(response),而UDS就是为不同的诊断功能的request和response定义了统一的内容和格式...
对于下载来说,transferResponseParameterRecord应该包含由ECU计算的checksum,并且这个参数中不会再重复transferRequestParameterRecord里的数据。 对于上传来说,transferResponseParameterRecord包含上传的数据。 3.支持的NRC 图3 0x36服务支持的NRC 4.示例 后续讲完0x37服务后展示。
4)输入输出控制功能单元,包括2F服务; 5)例行程序功能单元,包括31服务; 6)上传下载控制功能单元,包括34,35,36,37,38共5种服务。 下文将介绍以下:诊断会话相关服务$10和$3E,安全访问服务$27,诊断相关服务$14和$19, 读写数据相关服务$22和$2E,刷写软件相关服务$31,$34,$36和$37。