跟我学UDS(ISO14229) ———— 0x36(TransferData)

  客户端将数据传输到服务器(下载)或从服务器请求数据(上传)。数据传输方向由前面的 RequestDownload 或 RequestUpload 服务定义。 如果客户端启动了 RequestDownload,则要下载的数据将包含在 TransferData 请求消息中的参数 transferRequestParameter 中。 如果客户端启动了 RequestUpload,则要上载的数据将包含在 TransferData 响应消息中的参数 transferResponseParameter中。TransferData 服务请求应包括一个在多个 DataTransfer 请求序列期间TransferData 服务失败的情况下改进错误处理的 blockSequenceCounter。当收到 RequestDownload 服务或 RequestUpload 服务请求消息时,服务器的 blockSequenceCounter 必须初始化为 1。 这意味着,紧随 RequestDownload 服务或RequestUpload 服务请求消息之后的第一个 TransferData 服务请求消息以1 的 blockSequenceCounter 开头。

诊断请求格式

 具体的格式如下:
在这里插入图片描述
 处于下载阶段,则参数 transferRequestParameterRecord 时必须存在的。关于参数 blockSequenceCounter 这里说一个补充说明:

  blockSequenceCounter 参数值从 0x01开始,第一个 TransferData 请求位于RequestDownload 服务或 RequestUpload 服务之后。对于每个后续的 TransferData 请求,其值将增加 1。当值增加到 0xFF 时,blockSequenceCounter 值翻转并从 0x00 开始并带有下一个TransferData 请求消息。如何理解可以参加下方的 4 个例子

  a)如果在服务器中正确接收并处理了传输数据下载数据的请求,但是肯定响应消息未到达客户端,则客户端将判断为应用程序层超时,并将重复发送相同的请求(包括相同的blockSequenceCounter )。服务器将接收到重复的 TransferData 请求,并应基于所包含的blockSequenceCounter 确定重复此 TransferData 请求。然后服务器将立即发送肯定响应消息,而无需再次将数据写入其内存中。

  b)如果服务器中没有正确接收到 TransferData 下载数据的请求,则服务器将不会发送肯定响应消息。客户端将判断为应用程序层超时,并将重复相同的请求(包括相同的blockSequenceCounter )。服务器将接收到重复的 TransferData 请求,并应基于所包含的blockSequenceCounter 确定这是新 的TransferData。服务器将处理该服务并发送肯定响应消息。

  c)如果在服务器中正确接收并处理了传输数据的上载数据请求,但是肯定响应消息未到达客户端,则客户端将判断应用程序层超时并重复相同的请求(包括相同的blockSequenceCounter )。服务器将收到重复的 TransferData 请求,并可以根据包含的 blockSequenceCounter 确定重复此TransferData 请求。服务器将立即发送肯定响应消息,再次访问其内存中先前提供的数据。

  d)如果在服务器中未正确接收上载数据的 TransferData 请求,则服务器将不会发送肯定响应消息。客户端将判断应用程序层超时,并将重复相同的请求(包括相同的 blockSequenceCounter)。服务器将接收到重复的 TransferData 请求,并可以基于所包含的blockSequenceCounter 确定这是新的 TransferData。服务器将处理该服务并发送肯定响应消息。

正响应格式

 具体的格式如下:
在这里插入图片描述
 处于上传阶段,则参数 transferRequestParameterRecord 时必须存在的。

负响应NRC码

 具体的NRC码如下:
在这里插入图片描述

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小趴菜_自动驾驶搬砖人

谢谢大爷赏饭吃

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值