从零开始:统一诊断服务UDS PART2

八、诊断仪(TESTER)如何准确访问到特定的ECU?

答案是:两种寻址方式——物理寻址和功能寻址

1.物理寻址(1:1)

客户端(TESTER)与服务器(ECU)之间采用一对一的诊断通信方式

                                                        

2.功能寻址(1:N)

客户端(TESTER)与服务器(ECU)之间采用一对多的诊断通信方式,客户端向多个服务器发出同一功能寻址的诊断请求

3.寻址的基本术语

(1)源地址(Source Address ,SA)发送节点地址  

(2)目标地址(Target Address,TA)接受节点地址

4.地址与报文ID的关系

(1)地址和报文ID相关,诊断报文ID=基地址+节点地址  

(2)以某个ECU物理寻址为例,基地址为0x700,Tester节点地址为 0x01,ECU节点地址为    0x08,那么对于此ECU的物理寻址请求ID为0x701(0x700 + 0x01),ECU的响应ID为0x708  (0x700 + 0x08)  

(3)功能寻址一般为特定ID,如x7DF  

(4)每一个ECU都有2个CAN的诊断帧ID,分别对应物理寻址的收与发。通常由主机厂来确定不同ECU的这两个特定的诊断ID。比如0x701对应接收Tester的消息,0x709对应发给Tester的消息。

九、UDS服务使用OSI模型的会话层和应用层

       诊断工具(TESTER)与车内的所有控制单元(ECU)均有连接,且这些控制单元均启用了UDS服务。不同于仅使用OSI模型第一层、第二层的CAN协议,UDS服务使用OSI模型的第五层和第七层(会话层和应用层)。服务ID(SID)和与服务相关的参数包含在CAN数据帧的8个数据字节中,这些数据帧是从诊断工具(TESTER)发出的。

十、UDS服务的通讯

UDS的服务分为6大类,一共26种服务, 对应26个SID  

重点关注:10、11、22、2E、27、28、14、19、34、36、37、3E

1.UDS服务的通讯格式

        在使用中,UDS诊断是基于问答形式实现,"请求"由client端发送给server,UDS规定使用1个byte来表示诊断服务,即服务ID(Service Identifier,SID)。请求报文里带有SID,根据具体的服务内容后面加具体的数据         

        服务ID(Service Identifier,SID)范围:0x00 - 0xFF

2.请求/响应格式  

        A.请求的格式如下:  

                (1)有sub function的诊断请求 service ID+ sub-function+parameter

                (2)无sub function的诊断请求 service ID+parameter  

                (3)SID(service id)诊断服务ID,表示诊断服务的功能,长度为1字节。sub-function子功                       能,表示诊断服务的具体操作,长度为1字节。parameter参数,表示诊断服务的执行条                   件  

                (4)请求服务的SID:(X0XX XXXX)b    第6位为0

                (5)示例:ReadDTCInformation(0x19)服务请求的SID (00011001)b  

       B.响应的格式如下:

                Response SID +Sub-function+Parameter

                 a.肯定响应服务:response SID是诊断请求的echo,值为SID+0x40  

                (1)肯定响应服务的SID:(X1XX XXXX)b    第6位为1  

                (2)肯定响应服务的SID=请求服务的SID+0x40  

                (3)示例:ReadDTCInformation(0x19)服务响应的SID (01011001)b =0x59

                 b.否定响应服务:固定三个字节,分别是0X7F,请求服务SID,否定响应码(NRC)

   

  • 16
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值