UDS诊断学习(一)--- UDS诊断概述、单/多帧、肯/否定响应

UDS诊断概述、单/多帧、肯/否定响应

概念

  1. UDS(Unified Diagnostic Services,统一诊断服务)为协议ISO 15765和ISO 14229定义的一种汽车通用诊断协议,处于OSI七层网络模型中的应用层。当前主要以UDSonCan为主。
    UDS协议通过【请求】、【响应】的模式,对ECU进行测试、检测以及诊断等功能。

单/多帧传输

单/多帧传输是由can数据传输大小受限所引出的概念,即若一条诊断命令的长度超过数据场的大小,那么就需要分包传输–多帧传输
根据ISO 15765规范规定了帧格式:
在这里插入图片描述

  1. 单帧传输
    • 单帧意味着这一帧的数据场部分有效字节数<=8,不足的地方多以0xAA/55/CC等填充;
    • 无论单帧还是多帧,每一帧的0号字节的高四位用于区别帧类型(0/1/2/3);
    • 对于单帧SingleFrame,0号字节低4位【SF_DL】表示DLC(Data-Length-Control),表示需要读后面多长的数据(即后续有多少有效的数据位);
      例:
      02 10 03 55 55 55 55 55 -----> 有效数据是10 03
      01 10 03 55 55 55 55 55 -----> 有效数据是10
  2. 多帧传输
    • 首帧FF ---- FirstFrame
      • 0号字节高4位固定为1,低4位加上1号字节组成DLC,表示多帧传输的数据长度(如果是22/2R读写数据服务,需要包含SID+DID)
    • 连续帧CF ---- ContinueFrame
      • 0号字节高4位固定为2,低4位表示包的连续号SN,后面跟数据
    • 流控帧FC ---- FrameControl
      • 0号字节高4位固定为3,低4位表示流状态参数FS
        • FS(流控状态):
          • 0,CTS表示继续发送;
          • 1,WT表示等待,令发送方停止发送,直到下一个流控帧的到来;
          • 2,OVFLW表示溢出,当接收方接收到首帧,判断到FF_DL的长度比接收方缓冲区大时发送,随后发送方终止发送
      • 1号字节表示BS(BlockSize)块大小,即告知发送方允许接下来发多少帧连续帧。当BS=0时,块大小不做限制。
      • 2号字节表示STmin(SeparationTimeminimum),规定了连续帧发送的最小时间间隔。
    • 多帧传输示例:
      在这里插入图片描述
      在这里插入图片描述

请求/响应

  1. 请求格式
    • SID+SF(sub-function),服务+子功能
      如:10 01
    • SID+DID(Data-Identifier),服务+DID,常用于读写
      如:22 F15A
    • SID+SF+DID,服务+子功能+DID,如例程服务
      如:31 01 FF00
    • SID,仅服务号
  2. 响应格式
    • 肯定响应(positive response)
      SID+0x40 + 其他
      如:req:10 01
      rsp:50 01
    • 否定响应(negative response)
      7F + 服务 + NRC(negative response Code)
      如:req:10 01
      rsp:7F 10 13

补充:寻址方式

总线上往往有多个ECU,诊断设备可以和某一个ECU进行通信,也可以和多个ECU通信,方式就是把寻址方式设置为物理寻址及功能寻址。寻址即数据传输方式。
诊断报文通常会有三个诊断ID,物理请求报文ID,功能请求报文ID、诊断响应ID。

  1. 物理寻址
    物理请求报文ID对应物理寻址方式,是诊断仪与ECU之间点对点通信;
  2. 功能寻址
    功能请求报文ID对应功能寻址方式,属于一对多通信;
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值