UDS诊断初步入门

名词解释

名词 解释 交互方式
MDA Master Download Agent 主节点 OTA服务器
HMI Human Machine interface 人机交互接口 用户
VHI vehicle Host interface 车辆宿主接口 车辆
SDA Slave Download Agent 从节点 更新宿主ECU
UDS Unified Diagnostic Services 同意诊断服务
N_PDU Network_Protocol Data Unit 网络层协议数据单元,包含N_AI,N_PCI,N_Data。即地址信息,协议控制信息和数据
N_PCI Protocol Control Information 协议控制信息

ECU 电子单元名词解释

名词 解释中文
VCU—— Vehicle Control Unit 整车控制器
MCU—— Motor Control Unit 电机控制器
BMS —— Battery Manage System 电池管理系统
DCDC —— DC-to-DC converter 直流转换器
OBC —— On-board Charger 车载充电机
CDU —— Conversion & Distribution Unit DC/DC变换器、车载充电机、⾼压接线盒等功能集成的⾼压“电控”集成系统
ATC —— Automatic Temperature Control 空调控制器
EAC —— Electrical Air Condition 电动压缩机控制模块
ABS —— Anti-locked Braking System 防抱死刹车系统
EPS —— Electriaca Power Steering 电子转向助力
BCM —— Body Control Module 车身控制模块
IC —— Intrument Cluster 仪表
T-BOX —— Telematics BOX 远程通讯模块
ISC —— Imitation Sound controller 拟声装置
EMS —— Engine Management System 发动机管理系统
4WD —— 4 Wheel Driver 四驱系统
PEPS —— Passive Entry Passive Start 无钥匙进入/启动系统
ESCL —— Electronic Steering Column Lock 电子转向柱锁
TCU —— Transmission Control Unit 变速器控制单元
EPB —— Electrical Parking Brake 电子驻车系统

</br></br>

5.png

OSI协议

1.png

26个UDS服务

2.png

NRC

3.png
SID服务 描述
11服务 ECU重启,如1101
28服务 通讯控制服务,开启/关闭一个或多个控制器特定报文的发送和/或接收,可针对网络管理信息和正常通讯信息
85服务 诊断故障代码设置控制服务,用于停止或恢复控制器中诊断故障码的设置功能。如8502
14服务 清除诊断信息DTC服务,用于诊断设备清除一个或者多个控制器中的诊断信息DTC,如14FFFFFF
22服务 通过标识符读数据,该服务通过一个或多个数据标识符请求获得ECU定义的数据记录值,主机厂会针对每个需要读取的信息,如软件版本号,硬件版本号,供应商代码,零件号之类的都设置一个独立的DID,比如F180,F188,F1C0
2E服务 通过标识符写数据,OTA一般在刷写前或者后,使用该服务,写入一个自己的刷写指纹
34服务 (RequestDownload),请求下载数据,诊断仪向ECU请求下载数据
35服务 (RequestUpload),请求上传数据,诊断仪向ECU请求上传数据
36服务 (TransferData),数据传输,诊断仪向ECU传数据(下载),或者ECU向诊断仪传数据(上传)
37服务 (RequestTransferExit),数据传输完成,请求退出
38服务 (RequestFileTransfer),请求文件传输,可以用于替代上传下载的服务

刷写一个bin文件,可以简单地认为34->36->36->36->....->36->37|

UDS

  1. UDS本质上是一种交互协议(Request/Response),即诊断方(Tester)给ECU发送指定的请求数据(Request),ECU返回诊断方这个请求的响应数据(Response)
  2. 请求数据中最主要的就是SID,SID处于该应用层数据的第一个字节
  3. UDS的请求命令有4种构成方式,即SID,SID+SF(Sub-function),SID+DID(DataIdentifier),SID+SF+DID。每种服务都有自己不同的构成方式,查看诊断规范即可,不用死记硬背。如22服务,则发送数据为“22F1C0”,F1C0就是DID
  4. 响应数据就一定会有正常响应和错误响应,我们叫做正响应和负响应
  5. 如果ECU是肯定的响应(PositiveResponse),首字节回复[SID+0x40],举例子就是请求0x10,响应0x50,即为“50xx”;请求0x22,响应0x62,即为“62xxxxxxxxxx”
  6. 如果是否定的响应(NegativeResponse),首字节回复0x7F,第二字节回复刚才询问的SID。比如Tester请求0x10服务,我想进入编程模式,ECU给出否定响应,首字节0x7F,第二字节回复0x10,代表我否定你的0x10服务请求,第三字节是NRC(否定响应码),代表我否定你的理由,即为“7F10xx”
  7. 这里提一下一个特殊的NRC——0x78,requestCorrectlyReceived-ResponsePending(RCRRP,请求已被正确接收-回复待定)。这个NRC表明请求消息被正确地接收,请求消息中的所有参数都是有效的,但是要执行的操作还没有完成,Server端还没有准备好接收另一个请求。一旦请求的服务已经完成,服务器应该发送一个最终响应,响应代码应与此不同。78负响应需要被Server端重复,直到被请求的服务完成并且最终的响应消息被发送。
  8. 如31擦除指令,ECU需要时间执行,无法在超时时间内给出最终响应,那么ecu需要主动返回7F3178,让Tester等待,并持续发送直到动作完成,给出最终响应为止。
  9. 既然是交互,那么每一方需要有地址(寻址信息)
    10.所谓的寻址信息包含了源地址(SourceAddress)和目标地址(TargetAddress),就是这条信息是由谁发给谁的,类似于收件人和发件人。当ECU回信给Tester时,ECU就变成源地址了
  10. UDS的寻址模式分两种,一种是物理寻址(点对点、一对一),根据物理地址的不同进行访问,但只能访问单个ECU节点。对应的,另一种是功能寻址(广播、一对多),根据功能的不同进行访问,它能访问多个ECU节点,对于CAN来说,通常是0x7DF,对于Ethernet,通常是0XE400
  11. 对于CAN,每一个ECU都有2个CAN的诊断帧ID,分别对应物理寻址的收与发。通常由主机厂来确定不同ECU的这两个特定的诊断ID。比如0x701对应接收Tester的消息,0x709对应发给Tester的消息
  12. 对于Ethernet,每个ECU一般用一个地址来进行收发。这个地址叫做逻辑地址。

Diagnostic Session

0x00 :ISOSAEReserved(保留)
0x01 :defaultSession(默认会话)
0x02 :ProgrammingSession(编程会话)
0x03 :extendedDiagnosticSession(扩展会话)
0x04 :safetySystemDiagnosticSession
0x05 – 0x3F : ISOSAEReserved(保留)
0x40 – 0x5F :vehicleManufacturerSpecific(由整车厂自定义使用)
0x60 – 0x7E :systemSupplierSpecific(由ECU供应商自定义使用)
0x7F :ISOSAEReserved(保留)
4.png

ECU在刚上电或者复位之后处于默认会话模式(0x01),默认会话模式下发送10 03可以切换至拓展会话模式(0x03),拓展会话模式发送10 02可以切换至编程会话模式(0x02),而在默认会话模式不可以直接切换至编程会话模式

诊断会话控制,CAN报文样例
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
02 10 03 00 00 00 00 00
06 50 03 00 32 13 88 00

  1. 请求报文中,02表示单帧2个字节,10为服务ID 0x10 诊断会话控制,03为切换为extendedDiagnosticSession
  2. 响应报文中,06表示单帧6个字节,50为服务ID 0x10+0x40,03为子功能extendedDiagnosticSession,00 32 13 88为应用层超时参数P2
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,002评论 6 509
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,777评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,341评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,085评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,110评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,868评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,528评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,422评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,938评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,067评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,199评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,877评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,540评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,079评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,192评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,514评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,190评论 2 357

推荐阅读更多精彩内容