• 【ISO14229_UDS刷写】-3-$36诊断服务TransferData理论部分


    总目录:(单击下方链接皆可跳转至专栏总目录)

    《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高阶配置》总目录」

    点击返回《嵌入式硬件/软件开发刷写/烧录文件》专栏

    TransferData0x36 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服务请求消息数据参数定义

    表404 - 请求消息数据参数定义

    定义

    blockSequenceCounter块序列计数器

    BlockSequenceCounter参数值从RequestDownload(0x34)或RequestUpload(0x35)服务后的第一个TransferData请求的0x01处开始。它的值在每个后续的TransferData请求中都会增加1。当值为0xFF时,blockSequenceCounter会翻转,并在下一个TransferData请求信息中从0x00开始。

    用例:

    • 如果一个下载数据的TransferData请求在server中被正确接收和处理,但positive response message没有到达client,那么client将确定一个应用层超时,并将重复相同的请求(包括相同的blockSequenceCounter)。server将收到重复的TransferData请求,并可以根据所包含的blockSequenceCounter来确定这个TransferData请求是重复的。server将立即发送positive response message,而不将数据再次写入其memory中。
    • 如果server没有正确接收到下载数据的TransferData请求,那么server将不会发送positive response message。client将确定应用层超时,并重复相同的请求(包括相同的blockSequenceCounter)。server将收到重复的TransferData请求,并可以根据包含的blockSequenceCounter确定这是一个新的TransferData。server将处理该服务,并将发送positive response message。
    • 如果一个上传数据的TransferData请求被server正确接收和处理,但positive response message没有到达client,那么client将确定应用层超时,并将重复相同的请求(包括相同的blockSequenceCounter)。server将收到重复的TransferData请求,并可以根据所包含的blockSequenceCounter来确定这个TransferData请求是重复的。server将立即发送positive response message,在其内存中再次访问先前提供的数据。
    • 如果server没有正确接收到上传数据的TransferData请求,那么server将不会发送一个positive response message。client将确定应用层超时,并重复相同的请求(包括相同的blockSequenceCounter)。server将收到重复的TransferData请求,并可以根据所包含的blockSequenceCounter来确定这是一个新的TransferData。server将处理该服务并发送positive response message。

    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服务消息流

    详见以下博文:

    【ISO14229_UDS刷写】-6-$34,$35,$36,$37诊断服务用于downloading下载/uploading上载数据的消息流示例icon-default.png?t=N4P3https://blog.csdn.net/qfmzhu/article/details/130895979

    以上摘自《ISO 14229-1:2013》。

    结尾

    获取更多“汽车电子资讯”和“工具链使用”,

    请关注CSDN博客“汽车电子助手”,做您的好助手。

  • 相关阅读:
    spring概述
    P1 缓冲池管理
    SAP UI5 第二代表达式语言的一些特性介绍
    [nlp] Bert 冻结参数,打开训练emb
    Python数据分析--Numpy常用函数介绍(9)-- 与线性代数有关的模块linalg
    KSQL DB 学习笔记1
    Vue 面试题:了解 Vue 中的 Mixin 吗?
    《安富莱嵌入式周报》第323期:NASA开源二代星球探索小车, Matlab2023b,蓝牙照明标准NLC, Xilinx发布电机套件,Clang V17发布
    Java 21 新功能展示(含示例)
    y86.第四章 Prometheus大厂监控体系及实战 -- prometheus存储(十七)
  • 原文地址:https://blog.csdn.net/qfmzhu/article/details/130895839