UDS诊断协议

这篇具有很好参考价值的文章主要介绍了UDS诊断协议。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

UDS本质上是一系列服务的集合,包含6大类,共26种。每种服务都有独立的ID,即SID

请求
  • SID(1Byte) + 参数

  • SID(1Byte) + Sub-function(1Byte) + 参数

  • SID + DID(2Bytes)

响应
  • 肯定响应
    • SID+0x40(1Byte) + Sub-function(根据请求是否存在) + 参数
    • SID+0x40(1Byte) + DID + Data
  • 否定响应
    • 0x7F + SID + NRC(1Byte)(否定响应码)
    • 0x7F + SID + DID + NRC(1Byte)(否定响应码)
  • 常见的NRC
    • 11表示服务不支持
    • 12表示Sub-function不支持
    • 13表示请求的长度不正确、格式不正确
    • 31表示请求超出范围
    • 78表示收到诊断请求,等待响应
    • 7E表示当前会话下Sub-function不支持
    • 7F表示当前会话下服务不支持
Sub-function分成了两部分(14229 P39
  • Bit7Suppress postive reponse message indication bit,抑制正响应位
    • 0时,不抑制正响应消息
    • 1时,抑制响应消息,正响应消息不应该被发送
    • 负响应消息不受抑制正响应位影响,会根据协议规定的限制发送
    • 注意NRC为78时,后续也会发送正响应
  • Bit0 - Bit6
    • Sub-function 的参数值
常用服务
  • 10诊断会话控制

    • 01默认会话:权限最小,可操作的服务少
    • 02编程会话:用于解锁bootloader相关的诊断服务
    • 03扩展会话:用于解锁高权限诊断服务,如:读写DTC、写入数据
    • 注:编程会话不能由默认会话转入(在默认会话情况下,不能执行 10 02),只能由扩展会话转入
    • 默认进入默认会话,当ECU处于非默认会话时,一段时间内没有请求会退回到默认会话。可以通过让Tester周期发送3E服务,使ECU保持在非默认会话
  • 11 重置ECUReset

    • 报文格式
      • 请求:11 + Sub-function
      • 响应:51 + Sub-function + powerDownTime
    • 常用子服务
      • 01 硬重启
      • 03 软重启
      • 04 enableRapidPowerShutDown 当使用此子服务时,powerDownTime才会存在
    11 01
    51 01
    
  • 27安全访问

    • ECU上电后是一个锁定的状态,可以通过27服务来解锁
    • 过程:
      • Tester端给ECU发送请求报文来请求种子
      • ECU收到报文后,回复肯定响应(包含种子数)
      • Tester端根据这个种子数,利用自身的安全算法算出一个密钥K1,并发送给ECU
      • ECU同样根据种子数和自身的安全算法计算出一个密钥K2,并将接收到的K1K2相比较。如果一致ECU发送肯定响应给Tester端,已经解锁。
    • 当执行复位、重新上下电或者会话切换后,会由解锁状态跳转到锁定状态
  • 22读数据

    • 报文格式
      • 请求:22 + DID(2Bytes)
      • 响应:62 + DID + Data
    • 支持的NRC
      • 13表示请求消息的长度无效或超过长度
      • 14表示读取的数据已经超过了传输最大值,如请求多个DID,响应的数据太多了
      • 22表示服务器的运行条件不满足执行的操作
      • 31表示当前会话下不支持请求的DID;请求的动态DID尚未分配
      • 33表示如果至少有一个DID是安全的,但是服务器没有解锁
  • 2E写数据

    • 报文格式
      • 请求:2E + DID + Data
      • 响应:6E + DID
    • 支持的NRC
      • 72表示写入失败
  • 19DTC

    • 当系统检测到错误或故障时,会将相应的数值故障码进行存储,数值故障码就是DTC

    • 一般由3个字节组成:

      UDS诊断协议,UDS,14229,诊断协议,汽车电子

      • 字节1

        • 左边两位对应DTC属于哪一个系统,P: 00动力系统、C: 01底盘、B: 10车身和U: 11通信系统
        • 左边3-4位用来区分DTC是标准组织所定义还是OEM自定义
        • 左边5-8位对应车辆系统的区域
      • DTC Status

        UDS诊断协议,UDS,14229,诊断协议,汽车电子

        • Bit4Bit6的初始值为1,其余位的初始值为0,所以默认值0x50
        • Bit01时表示当前结果为故障
        • Bit31时表示存在历史故障
    • 常用子服务(14229 P18814229 P206

      • 01:检索与客户端定义的状态掩码匹配的DTC数量
        • 19 + 01 + DTCStatusMask
        • 59 + 01 + DTCStatusAvailabilityMask + DTCFormatIdentifier + Number(2Byte)
      • 02:检索与客户端定义的状态掩码匹配的DTC列表
        • 19 + 02 + DTCStatusMask
        • 59 + 02 + DTCStatusAvailabilityMask + DTC + statusOfDTC
        • 注:当(DTCStatusMask & statusOfDTC) != 0时,匹配成功
    • 04:读取DTC的快照信息(冻结帧),即发生故障时的一些环境数据,能更好的判断DTC产生的原因以及发生故障的原因
      - 19 + 04 + DTC + DTCSnapshotRecordNumber
      - 59 + 04 + DTC + Status + DTCSnapshotRecordNumber + DTCSnapshotRecordNumberOfIdentifiers +DID + snapshotData +DID + snapshotData
      - 快照信息:例如故障发生时间、胎压、电压、行驶里程数和车速等。在故障发生时,ECU要记录发生故障时的快照信息,便于以后通过查找故障发生时刻的这些数据,分析故障原因
      - DTCSnapshotRecordNumber包含一组快照信息、一组快照信息中可以包含多个DID,每个DID则包含具体的信息,比如:胎压、里程数

      • 06:读取DTC存储时候的一些扩展信息
        • 19 + 06 + DTC + DTCExtDataRecordNumber
        • 59 + 06 + DTC + statusOfDTC + DTCExtDataRecordNumber + DTCExtDataRecord[]
        • 扩展信息:用于记录故障的一些其它信息,比如:故障发生的次数、老化次数、已老化次数等
      • 为什么有了快照数据还要有扩展信息呢?
        • 快照即故障发生时刻存下来的瞬间的环境数据
        • 扩展信息即在故障发生时其它的故障信息,如aging counteraged counterFault Counter以及event id
      • 0A:读取所有DTC列表及状态
        • 19 + 0A
        • 59 + 0A + DTCStatusAvailabilityMask + DTC + statusOfDTC
  • 14清除DTC

    • 报文格式文章来源地址https://www.toymoban.com/news/detail-617685.html

      • 请求:14 + DTC
      • 响应:54
      14 FF FF FF
      54
      
  • 31 例程控制RoutineControl

    • 客户端通过例程ID(2-Byte)请求启动、停止服务端的例程或者请求例程结果
    • 主要用于:Erasing memoryResetting
    • 报文格式
      • 请求:31 + Sub-function + routineIdentifier(2-Byte)
      • 响应:71 + routineControlType + routineIdentifier(2-Byte) +routineInfo
    • 常用子服务
      • 01 启动例程(startRoutine)
      • 02 停止例程(stopRoutine)
      • 03请求例程结果(requestRoutineResults)
  • 34 请求下载Request Download

    • 报文格式
      • 请求:34 + dataFormatIdentifier + addressAndLengthFormatIdentifier + memoryAddress + memorySize
      • dataFormatIdentifier
        • 00
        • 00以外的值由汽车制造商定义
      • addressAndLengthFormatIdentifier的含义
        • bit 7-4: Length (number of bytes) of the memorySize parameter,指定memorySize有几个字节
        • bit 3-0: Length (number of bytes) of the memoryAddress parameter,指定memoryAddress有几个字节
      • memoryAddress 要写入数据在内存的起始地址
      • memorySize 使用此参数与实际要传输的数据大小进行比较
      • 响应:74 + lengthFormatIdentifier + maxNumberOfBlockLength
      • lengthFormatIdentifier的含义
        • bit 7-4: Length (number of bytes) of the maxNumberOfBlockLength parameter
        • bit 3-0: reserved by document, to be set to 0
      • maxNumberOfBlockLength告知客户端后面的每个TransferData报文总共占多少字节
    34 11 33 60 20 00 00 FF FF
    74 20 00 81
    
  • 36 传输数据Transfer Data

    • 将数据从客户端传输到服务器
    • 报文格式
      • 请求:36 + blockSequenceCounter + Data(3-n)
        • blockSequenceCounter 序号0x01-0xFF,下一个循环0x00-0xFF
      • 响应:76 + blockSequenceCounter + transferResponseParameterRecord
    36 01 xx xx   # 每条报文占的字节数根据34服务中响应的maxNumberOfBlockLength返回值
    76 01
    
  • 37 请求传输退出Request Transfer Exit

    • 用于终止客户端和服务端之间的数据传输
    • 报文格式
      • 请求:37
      • 响应:77
    37
    77
    
  • 实际传输过程

    • 依次343637,为一个循环,其中36数据传输可执行多次

    • 37执行结束后,如果还有其它数据传输,则再次执行343637服务

  • 28通信控制(CommunicationControl)

    • 用于开启或关闭服务端某些消息的接收/发送报文
    • 报文格式
      • 请求:28 + sub-function=[controlType] + communicationType
      • communicationType
        • 01: normalCommunicationMessages
        • 02: networkManagementCommunicationMessages
        • 03: networkManagementCommunicationMessages and normalCommunicationMessages
      • 响应:68 + sub-function=[controlType]
    28 03 02
    68 03
    
    • 常用子服务
      • 00enableRxAndTx 启用非诊断报文的接收和发送
      • 03disableRxAndTx 禁止非诊断报文的接收和发送
  • 85控制DTC(ControlDTCSetting)

    • 用于停止和恢复DTC状态位的更新
    • 报文格式
      • 请求:85 + sub-function=[DTCSettingType] + DTCSettingControlOptionRecord
      • 响应:C5 + DTCSettingType
    85 01
    C5 01
    
    • 常用子服务

      • 01 on 恢复更新
      • 02 off 停止更新
    • 报文格式

      • 请求:85 + sub-function=[DTCSettingType] + DTCSettingControlOptionRecord
      • 响应:C5 + DTCSettingType
    85 01
    C5 01
    
    • 常用子服务
      • 01 on 恢复更新
      • 02 off 停止更新

到了这里,关于UDS诊断协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • AUTOSAR汽车电子系统架构标准

    目录 AUTOSAR RTE SWC和BSW SWC访问代码实现 ARXML(AUTOSAR XML) Interface Client-Server接口代码实现 AutoSAR OS Application AUTOSAR(Automotive Open System Architecture)正式发布日期是2003年,是一种开放的汽车电子系统架构标准,旨在提供汽车电子系统的 标准化和模块化 解决方案。它由一系列的 规

    2024年02月11日
    浏览(12)
  • 一文详解汽车电子CAN总线

    一文详解汽车电子CAN总线

    CAN总线(控制器区域网络Controller Area Network)是一个中央网络系统,连接不同的电子控制单元(ECU)以及车辆中的其他设备。现在的汽车可以有100个ECU,因此CAN总线通信变得非常重要。 集中式 :CAN总线系统允许对连接到网络的ECU进行集中控制,使控制ECU变得容易。 鲁棒性 :CAN总线协

    2024年02月08日
    浏览(8)
  • 汽车电子Autosar之DTC

    目录 一、DTC基本介绍 1、DTC基本组成 2、DTC故障类型 3、DTC与event区别与联系

    2024年02月08日
    浏览(13)
  • 一文详解汽车电子LIN总线

    一文详解汽车电子LIN总线

    汽车电子LIN总线不同于CAN总线。 LIN总线基本上是CAN总线的廉价补充,相比于CAN总线,它提供较低的可靠性和性能。同时LIN总线也是一个应用非常广泛的网络协议,并且越来越受欢迎。 再一次,我们准备了一个关于LIN总线的简要介绍。以下涉及多个方面的主题与研究内容。本

    2024年02月08日
    浏览(12)
  • 汽车电子AUTOSAR之EcuM模块

    目录 前言 正文 EcuM模块总体介绍 主要功能 总状态机(Flexible 与 Fixed)

    2024年02月08日
    浏览(12)
  • 【电子取证篇】汽车取证检验标准

    汽车取证鉴定可能涉及的测试/测量方法—【蘇小沐】 GA/T 976-2012《电子数据法庭科学鉴定通用方法》; GA/T 1998-2022《汽车车载电子数据提取技术规范》; GA/T 1999.2-2022《道路交通事故车辆速度鉴定方法 第2部分:基于汽车事件数据记录系统》; GB 39732-2020《汽车事件数据记录系

    2024年02月10日
    浏览(9)
  • 汽车电子之功能安全产品设计过程

    汽车电子之功能安全产品设计过程

    汽车电子之功能安全产品设计过程 内容来自 驱动视界 学习为主。 1.概念阶段 2.系统阶段 3.硬件层面 4.软件层面 5.3“V” 6.大追溯关系 随着电动化、智能化的发展,越来越多的汽车配备了电子电气系统,如电传动系统、助力转向系统、自动驾驶系统等,原有的机械部件被电子

    2024年02月15日
    浏览(13)
  • 汽车电子中的TC8测试

    Tech Committee,简称TC。 其中TC8定义了测试流程并支持建立能够执行ECU测试的测试机构,并建立对测试规范和合作伙伴要求的定期审核,以提高汽车系统中以太网ECU和网络的通信质量。 一:主要以TCPIP协议栈的链路层以上为主,包括ARP、ICMPv4、IPv4、UDP、TCP、DHCP、SOMEIP等协议的测

    2023年04月18日
    浏览(13)
  • 汽车电子功能安全FuSa之一:FuSa概念

    汽车电子功能安全FuSa之一:FuSa概念

    讲汽车电子功能安全肯定离不开ISO26262标准的解读,本人也是一边看一边摸索,迫于英语词汇匮乏,原文看起来比较费劲,故萌生了翻译全篇的想法,该专栏将不定期上传英文翻译版本供大家作为参考学习; 功能安全:不存在由电子电气系统的故障行为导致的危险所造成的不

    2024年02月09日
    浏览(11)
  • 汽车电子笔记之:基于AUTOSAR的多核监控机制

    汽车电子笔记之:基于AUTOSAR的多核监控机制

    目录 1、概述 2、系统监控的目标 2.1、任务的状态机 2.2、任务服务函数 2.3、任务周期性事件 2.4、时间监控的指标 2.5、时间监控的原理 2.6、CPU负载率监控原理 2.6.1、设计思路 2.6.2、监控方法的评价 3、基于WDGM模块热舞时序监控方法 3.1、活跃监督 3.2、截至时间监督 3.3、逻辑监

    2024年02月10日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包