总目录:(单击下方链接皆可跳转至专栏总目录)
《UDS/OBD诊断需求编辑工具》总目录https://blog.csdn.net/qfmzhu/article/details/123697014
目录
1 $0x36 TransferData诊断服务描述
2 0x36服务请求消息
2.1 0x36服务请求消息定义
2.2 0x36服务请求消息子功能参数$ Level(LEV_)定义
2.3 0x36服务请求消息数据参数定义
3 0x36服务肯定响应消息
3.1 0x36服务肯定响应消息定义
3.2 0x36服务肯定响应消息数据参数定义
4 0x36服务支持的否定响应代码(NRC_)
5 示例:0x36 TransferData服务消息流
结尾
优质博文推荐阅读(单击下方链接,即可跳转):
点击返回「《Autosar从入门到精通-实战篇》总目录」
点击返回「《Autosar_BSW高阶配置》总目录」
点击返回《嵌入式硬件/软件开发刷写/烧录文件》专栏
TransferData(0x36) service传输数据服务
服务 | SID | 描述 |
TransferData 传输数据 | 0x36 | client向server发送数据(download下载)或从server请求数据(upload上传)。 |
1 $0x36 TransferData诊断服务描述
TransferData服务被client用来从client向server(download下载)或从server向client(upload上传)传输数据。
数据传输方向由前面的RequestDownload或RequestUpload服务定义。如果client发起RequestDownload,要下载的数据将包括在TransferData请求消息的参数transferRequestParameter中。如果client发起了一个RequestUpload,要上传的数据就包括在TransferData响应消息中的参数transferResponseParameter中。
TransferData服务请求包括一个blockSequenceCounter,以便在多个TransferData请求序列中的TransferData服务失败时改进错误处理。当收到RequestDownload (0x34)或RequestUpload (0x35)请求消息时,server的blockSequenceCounter应被初始化为1。这意味着在RequestDownload (0x34)或RequestUpload (0x35)请求消息之后的第一个TransferData (0x36)请求消息以一个blockSequenceCounter为起点。
重要的是 - server和client应满足ISO 14229-1的7.5章节中规定的请求和响应信息行为。
2 0x36服务请求消息
2.1 0x36服务请求消息定义
表403 - 请求消息定义
A_Data byte | 参数名称 | Cvt | 字节值 | 助记符 |
#1 | TransferData Request SID 传输数据请求SID | M | 0x36 | TD |
#2 | blockSequenceCounter 块序列计数器 | M | 0x00 – 0xFF | BSC |
#3 : #n | transferRequestParameterRecord[] = [ transferRequestParameter#1 : transferRequestParameter#m ] | C : U | 0x00 – 0xFF : 0x00 – 0xFF | TRPR_ TRTP_ : TRTP_ |
C = Conditional有条件:如果下载正在进行,该参数是强制性的。 |
2.2 0x36服务请求消息子功能参数$ Level(LEV_)定义
此服务不使用子功能参数。
2.3 0x36服务请求消息数据参数定义
定义 |
blockSequenceCounter块序列计数器 BlockSequenceCounter参数值从RequestDownload(0x34)或RequestUpload(0x35)服务后的第一个TransferData请求的0x01处开始。它的值在每个后续的TransferData请求中都会增加1。当值为0xFF时,blockSequenceCounter会翻转,并在下一个TransferData请求信息中从0x00开始。 用例:
|
transferRequestParameterRecord传输请求参数记录 该参数记录包含server所需的参数,以支持数据传输。该参数的格式和长度由汽车制造商决定。 例子:对于下载,transferRequestParameterRecord包括要传输的数据。 |
3 0x36服务肯定响应消息
3.1 0x36服务肯定响应消息定义
表405 - 肯定响应消息定义
A_Data byte | 参数名称 | Cvt | 字节值 | 助记符 |
#1 | TransferData Response SID 传输数据响应SID | M | 0x76 | TDPR |
#2 | blockSequenceCounter 块序列计数器 | M | 0x00 – 0xFF | BSC |
#3 : #n | transferResponseParameterRecord[] = [ transferResponseParameter#1 : transferResponseParameter#m ] | C : U | 0x00 – 0xFF : 0x00 – 0xFF | TREPR_ TREP_ : TREP |
C = Conditional有条件的:如果上传正在进行,这个参数是强制性的。 |
3.2 0x36服务肯定响应消息数据参数定义
表406 - 响应消息数据参数定义
定义 |
blockSequenceCounter块序列计数器 这个参数是请求信息中blockSequenceCounter参数的回显。 |
transferResponseParameterRecord传输响应参数记录 该参数应包含client所需的参数,以支持数据的传输。该参数的格式和长度由汽车制造商决定。 例子:对于下载,参数transferResponseParameterRecord可以包括由server计算的校验和。对于上传,参数transferResponseParameterRecord包括上传的数据。对于下载,参数transferResponseParameterRecord不应重复transferRequestParameterRecord的内容。 |
4 0x36服务支持的否定响应代码(NRC_)
对于这项服务,应执行以下negative response code否定响应代码。表407中记录了每个响应代码会发生的情况。如果错误情况适用于server,应使用列出的negative response否定响应。
表407 - 支持的否定响应代码
NRC | 描述 | 助记符 |
0x13 | incorrectMessageLengthOrInvalidFormat消息长度不正确或格式无效 如果消息的长度不对(例如,消息长度不符合requestDownload服务的肯定响应中返回的maxNumberOfBlockLength参数的要求),则应发送该NRC。 | IMLOIF |
0x24 | requestSequenceError请求序列错误 server应使用此响应代码: -如果收到对该服务的请求时,RequestDownload或RequestUpload服务未被激活; -如果RequestDownload或RequestUpload服务处于活动状态,但server已经收到由活动的RequestDownlod或RequestUpload服务中的memorySize参数决定的所有数据; 注:server应接受重复传输数据请求消息,该消息的blockSequenceCounter等于前一个传输数据请求消息中包含的blockSequenceCounter。 | RSE |
0x31 | requestOutOfRange请求超出范围 如果出现以下情况,则应返回该NRC: - TransferRequestParameterRecord包含额外的控制参数(例如额外的地址信息),并且该控制信息无效。 - TransferRequestParameterRecord与requestDownload或requestUpload服务参数maxNumberOfBlockLength不一致。 - TransferRequestParameterRecord与server的memory排列限制不一致。 | ROOR |
0x71 | transferDataSuspended转移数据暂停 如果下载模块的长度不符合requestDownload服务的请求消息中发送的memorySize参数的要求,应返回该NRC。 | TDS |
0x72 | generalProgrammingFailure一般编程失败 如果在下载数据期间,server在erasing擦除或programming编程永久存储设备(如Flash Memory)中的一个memory位置时检测到一个错误,则应返回该NRC。 | GPF |
0x73 | wrongBlockSequenceCounter错误的块序列计数器 如果server检测到blockSequenceCounter的顺序有误,则应返回这个NRC。 注意:server应接受重复TransferData请求消息,其blockSequenceCounter等于前一个TransferData请求消息中包含的blockSequenceCounter。 | WBSC |
0x92 / 0x93 | voltageTooHigh / voltageTooLow电压太高/电压太低 如果在server的主电源引脚上测得的电压超出了将数据下载到server的永久存储器(如Flash Memory)的可接受范围,则应视情况发送该返回代码。 | VTH / VTL |
评价顺序记录在图28中。
Key
1)如果正在进行RequestUpload(SI + BSC),必须是2、
2)如果正在进行RequestDownload (SI + BSC + 最小TRPR_),则至少为3。
图28 - NRC处理请求下载服务
5 示例:0x36 TransferData服务消息流
以上摘自《ISO 14229-1:2013》。
结尾
获取更多“汽车电子资讯”和“工具链使用”,
请关注CSDN博客“汽车电子助手”,做您的好助手。