首页 > 其他分享 >UDS 诊断 - TransferData(传输数据)(0x36)服务

UDS 诊断 - TransferData(传输数据)(0x36)服务

时间:2024-09-13 11:53:21浏览次数:12  
标签:UDS 服务 请求 诊断 传输数据 0x36 TransferData 服务器

UDS 诊断服务系列文章目录

诊断和通信管理功能单元
UDS 诊断 - DiagnosticSessionControl(诊断会话控制)(0x10)服务
UDS 诊断 - ECUReset(ECU重置)(0x11)服务
UDS 诊断 - SecurityAccess(安全访问)(0x27)服务
UDS 诊断 - CommunicationControl(通信控制)(0x28)服务
UDS 诊断 - TesterPresent(测试仪保活)(0x3E)服务
UDS 诊断 - AccessTimingParameter(访问计时参数)(0x83)服务
UDS 诊断 - SecuredDataTransmission(受保护的数据传输)(0x84)服务
UDS 诊断 - ControlDTCSetting(控制DTC设置)(0x85)服务
UDS 诊断 - ResponseOnEvent(基于事件响应)(0x86)服务
UDS 诊断 - LinkControl(链路控制)(0x87)服务
数据传输功能单元
UDS 诊断 - ReadDataByIdentifier(按标识符读取数据)(0x22)服务
UDS 诊断 - ReadMemoryByAddress(按地址读取内存)(0x23)服务
UDS 诊断 - ReadScalingDataByIdentifier(按标识符读取换算数据)(0x24)服务
UDS 诊断 - ReadDataByPeriodicIdentifier(按周期性标识符读取数据)(0x2A)服务
UDS 诊断 - DynamicallyDefineDataIdentifier(动态定义数据标识符)(0x2C)服务
UDS 诊断 - WriteDataByIdentifier(按标识符写数据)(0x2E)服务
UDS 诊断 - WriteMemoryByAddress(按地址写内存)(0x3D)服务
存储数据传输功能单元
UDS 诊断 - ClearDiagnosticInformation(清除诊断信息)(0x14)服务
UDS 诊断 - ReadDTCInformation(读取 DTC 信息)(0x19)服务(1) - 服务说明
UDS 诊断 - ReadDTCInformation(读取 DTC 信息)(0x19)服务(2) - 请求消息
UDS 诊断 - ReadDTCInformation(读取 DTC 信息)(0x19)服务(3) - 响应消息
UDS 诊断 - ReadDTCInformation(读取 DTC 信息)(0x19)服务(4) - 示例
输入输出控制功能单元
UDS 诊断 - InputOutputControlByIdentifier(按标识符的输入输出控制)(0x2F)服务
例程功能单元
UDS 诊断 - RoutineControl(例程控制)(0x31)服务
上传下载功能单元
UDS 诊断 - RequestDownload(请求下载)(0x34)服务
UDS 诊断 - RequestUpload(请求上传)(0x35)服务
UDS 诊断 - TransferData(传输数据)(0x36)服务

一、 服务说明

客户端利用 TransferData(传输数据)服务从客户端向服务器(下载)或从服务器向客户端(上传)传输数据。

数据传输方式取决于前述 RequestDownload(请求下载)或 RequestUpload(请求上传)服务。如果客户端发出 RequestDownload,则待下载数据包含在 TransferData 请求消息中的 transferRequestParameter(传输请求参数)内。如果客户端发出的 RequestUpload,则待上传数据包含在 TransferData 响应消息中的 transferResponseParameter(传输响应参数)内。

TransferData 服务请求包含 blockSequenceCounter(快序列计数器),以便在请求一序列 TransferData 过程中 TransferData 服务失败时提高错误处理。收到 RequestDownload(0x34)或 RequestUpload(0x35)消息是,服务器的 blockSequenceCounter 应初始化为 1。这表示 RequestDownload 或 RequestUpload 消息之后的首个 TransferData 请求消息是从 blockSequenceCounter 1 开始。

二、请求消息

1. 请求消息定义

字节参数名称Cvt字节值
#1TransferData(传输数据) 请求 SIDM0x36
#2blockSequenceCounter(块序列计数器)M0x00 - 0xFF

#3

#n
transferRequestParameterRecord[] = [
transferRequestParameter#1

transferRequestParameter#m ]

C

U

0x00 - 0xFF

0x00 - 0xFF

C:如果正在下载,则此参数为强制参数。

2. 请求消息数据参数定义

定义
blockSequenceCounter(块序列计数器)
blockSequenceCounter(块序列计数器)参数值从 0x01 开始,第一个 TransferData 请求在 RequestDownload 或 RequestUpload 服务器之后。TransferData 请求每增加一次,参数值加 1。参数值为 0xFF 时,blockSequenceCounter(块序列计数器)翻滚并从 0x00 开始发出下一条 TransferData 请求消息。
示例:
- 如果下载数据要求 TransferData 请求被服务器正确接收和处理,但肯定响应消息未达到客户端,则客户端会认为应用层超时并重复相同的请求(包括同一 blockSequenceCounter(块序列计数器))。这样,服务器会接收重复 TransferData 请求并根据计入的 blockSequenceCounter(块序列计数器)确定 TransferData 请求重复。然后服务器不再重复写入数据,而是立即将肯定响应消息发送到服务器内存中。
- 如果下载数据要求的 TransferData 请求未被服务器正确接收,则服务器不会发出肯定响应消息。客户端会认为应用层超时并会重复相同的请求(包括同一 blockSequenceCounter)。这样,服务器会接收重复 TransferData 请求并根据计入的 blockSequenceCounter 确定该请求为新 TransferData 请求。然后服务器会处理服务并发送肯定响应消息。
- 如果上传数据要求的 TransferData 请求被服务器正确接收和处理,但肯定响应消息未到达客户端,则客户端会认为应用层超时并重复相同的请求(包括同一 blockSequenceCounter)。这样,服务器会接收重复 TransferData 请求并根据计入的 blockSequenceCounter 确定 TransferData 请求重复。然后一访问到之前提供的数据,服务器会立即再次向其内存发送肯定响应消息。
- 如果上传数据要求的 TransferData 请求未被服务器正确接收,则服务器不会发出肯定响应消息。客户端会认为应用层超时并会重复相同的请求(包括同一 blockSequenceCounter )。这样,服务器会接收重复 TransferData 请求并根据计入的 blockSequenceCounter 确定该请求为新 TransferData 请求。然后服务器会处理服务并发送肯定响应消息。
transferRequestParameterRecord(传输请求参数记录)
此参数记录包含服务器要求的支持数据传输的参数。参数格式和长度由车辆制造商规定。
示例:下载时,transferRequestParameterRecord 包括待传输的数据。

三、肯定响应消息

1. 肯定响应消息定义

字节参数名称Cvt字节值
#1TransferData(传输数据)响应SIDM0x76
#2blockSequenceCounter(块序列计数器)M0x00 - 0xFF

#3

#n
transferResponseParameterRecord[] = [
transferResponseParameter#1

transferResponseParameter#m ]

C

U

0x00 - 0xFF

0x00 - 0xFF

C:如果正在上传,则此参数为强制参数。

2. 肯定响应消息数据参数的定义

定义
blockSequenceCounter(块序列计数器)
此参数是请求消息的 blockSequenceCounter 参数的反射。
transferResponseParameterRecord(传输响应参数记录)
此参数应包含客户端支持数据传输要求的参数。参数格式和长度由车辆制造商规定。
示例:下载时,transferResponseParameterRecord 参数可以包含服务器计算出的校验和。上传时,transferResponseParameterRecord 参数包含上传数据。下载时,transferResponseParameterRecord 参数不得重复 transferRequestParameterRecord。

四、受支持的 NRC

NRC说明
0x13消息不正确或格式无效
如果消息长度错误(如消息长度不符合肯定响应消息对 RequestDownload 服务回应的 maxNumberOfBlockLength 参数要求),则应发送此 NRC。
0x24请求序列错误
下列情况中,服务器应使用此响应码:
- 收到 RequestDownload 或 RequestUpload 服务请求时,RequestDownload 或 RequestUpload 服务未激活;
- RequestDownload 或 RequestUpload 服务激活,但服务器已接收到 RequestDownload 或 RequestUpload 服务中的 memorySize 参数确定的所有数据;
注:利用 BlockSequenceCounter 接收到的与其中一条历史 TransferData 请求消息等效的 TransferData 请求消息应可以被服务器接受。
0x31请求超过限值
下述情况下,应返回此 NRC:
- transferRequestParameterRecord 包含附加控制参数(如附加地址信息),但此控制信息无效。
- transferRequestParameterRecord 与 RequestDownload 或 RequestUpload 服务参数 maxNumberOfBlockLength 不符。
- transferRequestParameterRecord 不符合服务器的内存对齐限制。
0x71传输数据暂停
如果下载模块长度不符合 RequestDownload 服务的请求消息中发送的 memorySize 参数要求,则此 NRC 会被返回。
0x72一般编程故障
下载数据过程中,如果服务器在清除或编程永久性存储器(如快闪存储器)中的内存位置检测到错误,则此 NRC 会被返回。
0x73错误块序列计数器
如果服务器在序列 BlockSequenceCounter 中检测到错误,则此 NRC 会被返回。
注:利用 BlockSequenceCounter 接收到的与其中一条历史 TransferData 请求消息等效的 TransferData 请求消息应可以被服务器接受。
0x92 / 0x93电压过高 / 电压过低
如果在服务器的主电源接脚处测得的电压超出将数据下载到服务器永久性存储器(如快闪存储器)所需电压的可接受范围,则应发送此 NRC。

下为 0x36 服务的 NRC 处理。

0x36 服务的 NRC 处理

图例

1 如果正在执行 RequestUpload 服务,则最小长度必须为 2,如果正在执行 RequestDownload 服务,则 最小长度至少为 3(SI + BlockSequenceCounter + 最小 transferRequestParameterRecord)

标签:UDS,服务,请求,诊断,传输数据,0x36,TransferData,服务器
From: https://blog.csdn.net/weixin_45033239/article/details/142207287

相关文章

  • AUTOSAR&UDS 理论要点及isolar实战-添加扩展数据(19 04服务)
    1.配置DTC扩展数据1.1DemDataElementClass1.DemInternalDataElementClass:此容器包含内部数据元素类的配置(参数)。Extended数据选这个。2.DemInternalDataElement:选择DEM_AGINGCTR_UPCNT,表示老化计数值(即连续报告没有故障的OperationCycle数)3.DemDataElementDataSize......
  • UDS 诊断 - WriteDataByIdentifier(按标识符写数据)(0x2E)服务
    UDS诊断服务系列文章目录诊断和通信管理功能单元UDS诊断-DiagnosticSessionControl(诊断会话控制)(0x10)服务UDS诊断-ECUReset(ECU重置)(0x11)服务UDS诊断-SecurityAccess(安全访问)(0x27)服务UDS诊断-CommunicationControl(通信控制)(0x28)服务UDS诊断-TesterPresent......
  • 电动汽车整车控制器 UDS诊断功能开发调试优化方法
    摘要:通过某电动汽车VCU开发过程中,UDS诊断功能的调试,发现一些测试中存在的问题,比如覆盖度不够、效率低下等,提出了相应的优化方法,并经过测试验证其可行性,此方法亦可推广应用至BMS、HCM等其他控制器的UDS诊断开发调试过程中。希望能给相关技术人员带来参考和帮助。一、UDS诊断功......
  • Infor CloudSuite软件二次开发:InforCloudSuite业务流程定制
    InforCloudSuite软件二次开发:InforCloudSuite业务流程定制InforCloudSuite简介InforCloudSuite平台概述InforCloudSuite是一个集成的企业资源规划(ERP)解决方案,专为特定行业设计,提供了一系列的云应用,旨在优化业务流程,提升运营效率。该平台融合了先进的技术,如人工智......
  • CANoe_UDS-boorloader 自动化测试系列(六)基本功能:CAPL实现bin文件数据解析
    CANoe_UDS-booroader自动化测试系列(一)创建一个CANoe测试工程(测试节点的选选择)CANoe_UDS-booroader自动化测试系列(二)基本刷写流程CANoe_UDS-booroader自动化测试系列(三)基本功能:CAPL实现UDS协议下的CAN报文接收#解析#发送CANoe_UDS-booroader自动化测试系列(四)基本功能:CAPL实......
  • AUTOSAR&UDS 理论要点及isolar实战-2F服务讲解及配置实战
    1.输入输出控制2F服务此服务服务用于代替ECU输入信号的值、电控单元内部参数或控制电子系统的输出值。举个例子:利用2F服务来实现简单的开关控制(转向灯,雨刮之类等)。报文格式:目前项目中主要是用到了00和03子服务,03: 在诊断模式中,请求该子ID的服务,会短暂控制输出,如上述:控制左......
  • AUTOSAR&UDS 理论要点及isolar实战-22服务讲解及配置实战(2)
    1.读取数据22服务此部分和22服务讲解及配置实战(1)中保持一致,有需要的小伙伴前往上一博客查看。2.配置实战2.1DcmDsdServiceTables的配置1.DcmDsdSidTabFnc:工具自带的回调函数,调用静态代码包中的服务函数2.DcmDsdSidTabServiceId为0x22,配置22服务;3.DcmDsdSidTabSub......
  • CANoe_UDS-boorloader 自动化测试系列(二)基本功能:CAPL实现UDS协议下的CAN报文接收#解析
    目录一、前言二、CAPL实现1、报文接收接收报文函数:2、报文发送发送报文函数:三、总结展望一、前言halle,大家好,我是小鸟鹏。上篇文章《CANoe_UDS-boorloader自动测试系列(二)基本刷写流程》简单介绍了整Bootloader的基本刷写流程,包括具体使用哪些服务实现哪些功能,对......
  • H7-TOOL新版固件2.26发布,增加20多款新系列芯片脱机烧录支持,CAN UDS解析,升级CAN助手,串
    H7-TOOL详细介绍(含操作手册):http://www.armbbs.cn/forum.php?mod=viewthread&tid=89934【PC软件】V2.261.PC软件取消自动检查版本,替换为手动按钮检查更新2.CAN助手  -支持时钟选择(20M40M80M),CANFD支持最高8M波特率(需支持8M的canPHY芯片)  -增加“J1939通用解......
  • AUTOSAR&UDS 理论要点及isolar实战-3E服务讲解及配置实战
    1.诊断设备在线3E服务此服务用于告知电控单元测试工具仍在线。该服务需周期性发送,用于重置S3server计时器并维持当前激活的非默认诊断会话。服务请求报文格式:相应格式:支持的否定响应码:2.配置实战2.1DcmDsdServiceTables的配置 3E服务的需求如下:支持3E服务及其......