这一篇重点说一下诊断的请求和响应所包含的信息以及格式要求。

一、诊断数据单元

诊断数据单元一般包含地址信息和应用数据、应用数据长度,其中应用数据会包含服务ID、子功能参数(如果有)和应用数据参数:

1.地址信息:地址信息一般包含报文类型、目标地址、源地址、地址类型等信息,其中大家重点需要关注的是目标地址、源地址和地址类型。目标地址指的是诊断报文接收方的地址,源地址是诊断报文发送方的地址,地址类型指的是报文是物理寻址还是功能寻址。对于CAN报文来说,这个地址信息就是映射到CAN ID上的,以太网的报文格式里也有地址信息的位置,这是每条报文所必须包含的内容,映射关系都有固定的格式,这个后面专门会讲。

2.服务ID:服务ID是用来标识诊断里每个服务的唯一ID,请求和响应里的服务ID是不同的,分为服务请求的ID、服务肯定响应的ID以及服务否定响应的ID。下面是一个表格,列举了服务ID的划分。

仔细观察上面的表格,会发现以下两点:①请求和肯定响应的服务ID数值相差0x40,诊断的请求和响应的服务ID是一对一的,也就是说一个请求的服务ID所对应的肯定响应的服务ID是唯一的,请求的服务ID其BIT6=0,所对应的肯定响应的服务ID其BIT6=1,因此相差0x40;②否定响应只有一个服务ID,那就是0x7F。

3.应用数据参数:除了服务ID之外,诊断报文中还会有其他的参数和数据,根据服务不同,数据内容也会不同,例如有的服务是包含子功能的,那么服务ID后面紧跟的就是子功能,有的服务需要通过数据标识来决定请求的数据是什么,那么服务或服务和子功能后面还要跟着数据标识等等,更详细的数据格式会在后面每个服务的章节说明。

二、请求数据单元格式

请求数据单元同样按有没有子功能分成两种,先看带子功能的请求格式。如下表所示,请求里首先会包含地址信息,除远程地址外,其余都应该是必须有的;然后是服务ID,之后室一个字节的子功能,再后面是数据参数。数据单元最后还要带数据长度,这里的长度指的是应用数据长度,地址信息不包含在内。

不带子功能的服务请求跟带子功能的区别只有一个,就是服务后面紧跟数据参数,不再有子功能位置。

RA远程地址只有在Message type是远程诊断的时候,才会存在。远程诊断是一个稍微复杂的寻址方式,当TA不能够完全表示服务端的地址信息的时候,需要使用远程诊断的功能。

注意这里的远程诊断并非当前基于远程信息平台所搭建的云端远程诊断和升级系统。

可以想象这样一个场景,假设我们的车会外挂拖车模块,而且是可以外挂不同品牌的拖车。如果需要读取拖车的信息,汽车厂商的诊断仪不太可能会适配非官方的模块,这时候可以有这样一个解决方案,让与外挂的拖车相连接的总线节点作为一个网关。诊断仪配置可以填写远程地址的功能,发送诊断请求的时候,目标节点地址设置为这个网关,而RA地址填写所外接的拖车节点的地址,而这个网关可以识别报文的扩展地址从而将对应的请求和响应转发到相应的网段。

理解起来是不是挺复杂?复杂就对了,我解释起来也挺复杂,所以目前接触的乘用车并没有实际使用这套,而商用车使用UDS的也屈指可数,所以这里仅当了解就可以了。

三、肯定响应数据单元格式

肯定响应格式和请求的格式相差不大,只不过这里的SID换成了服务的响应ID,也就是请求的SID+0x40。

ISO14229-1里的图响应这儿最后没有写Length,不知道是忘记了还是特殊原因,因为对整体理解没有影响,这里不做深究。

四、否定响应数据单元格式

否定响应比较简单,地址信息和上面的数据单元里含义一致,应用数据部分只有三个字节的长度:第一个字节是否定响应的服务ID即0x7F,注意这个是固定的;第二个字节是请求的SID,即前面请求数据单元里的SID,它表示这个否定响应是针对哪一个请求的;最后一个字节是NRC,Negative Response Code,前面有介绍其含义,主要用来表示给出否定响应的具体原因是什么。

关于否定响应,这里多说一点,一般诊断的请求和响应是一问一答的形式,即无特殊要求(见系列之二)的请求之后要有响应,如果没有响应就表明服务端有问题。所以一般ECU接收到请求之后,要么给肯定响应,要么给否定响应。但是有一个否定响应是特殊的,当NRC是0x78的时候,这个NRC是pending的意思,表示当前服务端还没办法处理请求,需要再等等,过会儿再给响应,也就是说再过会儿会给一个肯定或者否定的响应,所以请记住这个特殊的NRC。

UDS诊断系列链接汇总_ChenglimK的博客-CSDN博客

UDS诊断系列之四 诊断请求和响应相关推荐

  1. 车载诊断系列 —— 车辆诊断(Vehicle Diagnostics)

    车载诊断系列 -- 车辆诊断(Vehicle Diagnostics) 大家好,我是穿拖鞋的汉子! 今天是2023年1月28日,春节假期开工第一天.晚上下班得空在电脑前,对以往工作内容做一个汇总,也算 ...

  2. UDS诊断系列之五 诊断会话控制(10)服务

    诊断会话控制服务,其服务ID是0x10,主要功能为控制服务端的会话模式的切换. 一.诊断会话模式 诊断会话模式分为默认会话模式和非默认会话模式,不同的会话模式所支持的功能.权限.时间参数等等是不一样的 ...

  3. 车载诊断系列——车辆诊断(Vehicle and Fleet Diagnostics)

    今天是年假放假第一天,一切都还顺利.老规矩分享一段喜欢的文字,避免自己成为高知识低文化的工科男: " 我既不是特别强的人,也不是得天独厚的有特殊才能的人.我不过是一个不愿意示弱于人,不愿输给 ...

  4. UDS诊断系列之三 ISO14229协议介绍(下)

    上篇主要分享了一些基本概念和响应规则,里面提到了否定响应码,也提到了ISO14229-1的附录A是一张否定响应码的表格,里面详细介绍了否定响应码的具体含义.那么在什么时候给出什么样的否定响应码,这篇里 ...

  5. UDS诊断系列之二 ISO14229协议介绍(上)

    ISO14229系列,涵盖了UDS的服务定义以及在各车载总线上的一些特殊应用指导,以及各总线类型所对应的下层协议要求,下面就是该系列中各协议所对应的内容清单. 协议编号 协议名称 协议内容 14229 ...

  6. UDS诊断系列之十 DTC控制(85)服务

    DTC控制服务的主要作用是控制DTC的状态更新. 一.响应规则 DTC=diagnostic trouble code,DTC的状态是故障信息中的一个字节,用来表示故障当前的状态是正在发生还是仅仅发生 ...

  7. UDS诊断系列之十一 输入输出控制(2F)服务 上

    应粉丝要求,先来更新输入输出控制(2F)服务的内容. 输入输出控制(2F)服务顾名思义就是对输入和输出内容进行控制,这里的输入和输出一般指的是控制器的输入和输出引脚或者设备,例如仪表的各种灯就是仪表控 ...

  8. 【车载开发系列】诊断故障码DTC的格式标识符

    [车载开发系列]诊断故障码DTC的格式标识符 诊断故障码DTC的格式标识符 [车载开发系列]诊断故障码DTC的格式标识符 一.DTC格式标识符概念 二.DTC格式标识符的运用 1)DTCByXXXXM ...

  9. 【车载开发系列】诊断故障码DTC中的快照信息

    [车载开发系列]诊断故障码DTC中的快照信息 诊断故障码DTC中的快照信息 [车载开发系列]诊断故障码DTC中的快照信息 一.DTC快照的概念 二.获取DTC快照数据 三.DTC快照与DTC扩展信息的 ...

最新文章

  1. 遇事不责怪别人,换位思考能成全更好的自己
  2. 别再说你不会 ElasticSearch 调优了,都给你整理好了
  3. Map.keyset()
  4. 浩鲸科技携手阿里云原生共同打造“场域运营数字化解决方案”
  5. SQL2005备份集中的数据库备份与现有的数据库不同,错误号码:3154,解决方法...
  6. Python的虚拟环境配置(pyenv+virtualenv)
  7. GB28181协议中的事件系统设计
  8. AcWing1064.骑士(状压DP)题解
  9. 这一次,苹果、Google、微软选择了统一战线!
  10. GridView 分页导航
  11. java12安装和配置_JDK12 安装和环境变量配置
  12. GPS同步时钟(NTP时钟服务器)常见故障解决与价格差异分析
  13. 笔记本电脑无线网络连接不上怎么办
  14. Error: Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist
  15. Python查找文件夹中含有指定关键字的文件
  16. wb在计算机知识里是什么意思,相机上的WB,ISO,S和EV是什么意思?
  17. 提高MySQL微信三公源码的7个技巧
  18. 【预测模型】基于最小二乘法算法实现股票预测matlab代码
  19. 免费微信小程序,发一发打造微信小程序Saas营销服务移动工具箱
  20. 演讲者模式投影到幕布也看到备注_ppt备注怎么用在放映时怎么可以不在投影仪上显示...

热门文章

  1. 本地计算机上的OracleoraDB12Home1TNSListener服务启动后停止...
  2. TED演讲|别让任何人打乱你的人生的节奏
  3. 基于Java web的旅游网站(源码+文档)
  4. 使用nw.js将vue项目打包为可在xp系统运行的桌面程序
  5. 还是觉得WinXP中Luna的Theme是经典啊!用了Royal不多会儿就疲劳了!
  6. 2019年消防工程师精讲视频全科下载
  7. android怎么链接汽车,3如何将Android与汽车音频连接起来
  8. 空间直线方程及其与面线的夹角
  9. 某型飞机惯导系统检测设备研制
  10. C#基础知识---飞行棋小游戏