打印
[其他]

诊断之UDS服务

[复制链接]
584|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
海中水|  楼主 | 2020-4-10 14:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
       UDS本质上是一系列服务的集合,其包含了6大类,共26种,每种服务都有自己独立的ID即SID。
       SID:Service Identifier,诊断服务ID。UDS本质上是一种定向的通信,是一种交互协议(Request/Response),即诊断方(Tester)给待诊断ECU发送指定的请求数据(Request),这条数据中需要包含SID ,且SID处于该应用层数据的第一个字节。如果是肯定的响应(Positive Response),首字节回复【SID + 0x40】,举个例子就是请求0x10,响应0x50;请求0x22,响应是0x62;如果是否定的响应(Negative Response),首字节回复0x7F,第二字节回复刚才询问的SID。比如Tester请求0x10服务,即需要进去编程模式,ECU给出否定响应,首字节0x7F,第二个字节回复0x10,代表否定0x10服务请求,第三个字节是 NRC(否定响应码),代表否定的依据。
       通常在CAN总线中,Addressing information寻址信息会在CAN的帧ID中体现出来,例外是远程寻址,但不常使用。所谓的寻址信息包含了源地址(Source Address)和目标地址(Target Address)就是这条信息是由谁发给谁的,类似于收件人和发件人。但是在回复时,ECU就变成源地址了。因此源地址和目标地址在UDS中并不是一成不变的。
       UDS的寻址模式分两种,一种是物理寻址(点对点、一对一),根据物理地址的不同进行访问,但只能访问单个ECU节点,Tester为SA源地址,ECU作为目标地址;对应的另一种是功能寻址(广播、一对多),根据功能的不同进行访问,它能访问多个ECU节点,对于标准帧来说,通常是0X7DF。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

734

主题

10820

帖子

79

粉丝