ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

UDS基础介绍

UDS基础介绍 诊断服务表UDS诊断6大类26种服务诊断服务等级表说明UDS诊断服务是实现人或设备与ECU控制器交流的一种语言在总线上往往有着众多ECU设备作为诊断设备既可以与所有的ECU一起沟通也可以指定某一个ECU单独沟通。所以寻址方式就有功能寻址Functionally Addressed和物理寻址Physically Addressed两种。1、功能寻址即广播诊断请求Request同时等待总线上的ECU给与响应。2、物理寻址指定发送特定诊断请求Request等待指定ECU给与响应。SID格式使用方法[发送数据长度] [SID] [SF][发送数据长度] [SID] [DID][发送数据长度] [SID] [SF] [DID]NRC表NRC用来快速判断故障原因单帧、多帧、流控帧PDU协议数据单元信息和数据的集合表示发送方和接收方对等实体之间传递的信息和数据包括PCI协议控制信息和 Data;单帧SF多帧FF首帧FC流控帧连续帧CFuds on can1.物理寻址11功能寻址 1N2.流控帧中FS表示发送方是否可以继续传输信息0可以继续发送1等待发送2数据溢出一次发送的数据大于接收方所能接收的数据BS接收方一次能接收到的数据最大量STmin两个连续帧之间的最小时间间隔SN连续帧的序列号CAN诊断由发送端的请求与接收端的响应构成诊断即为发送端与接收端数据往来。有的诊断一条消息完成有的诊断需要多条消息完成毕竟在诊断中一条 CAN 消息只包含 8 个字节长度。CanTp 层传输的报文分为 SF单帧、 FF首帧、 CF连续帧、 FC流控帧 4 类。单帧传输SF单帧该诊断报文只需一条报文就可以实现数据小于8个byte在发送端到接收端的请求仅为一条消息时即为单帧SingleFrame单帧数据格式如图单帧第一个字节 byte0 为 PCI PCI 的高 4 位为 0 PCI 低四位为接下来准备传输的数据长度从第二个字节 byte1 起为传输的数据SID 也作为数据。从单帧的数据格式可以看出真正的数据部分最多为 Byte1 ~Byte7 共 7 个字节长度即 CAN 诊断数据发送长度得小于等于 7 个字节。多帧传输需要传输的数据比较多就需要多帧来传输发送过程中需要把 N-SDU 分割成多帧 N-PDU 来发送。接收过程中把多帧 N-PDU 重组发给上层多帧传输分为首帧和续帧。FF首帧多帧发送时第一帧报文叫做首帧在多帧传输中包括了首帧FF和连续帧CF接收端需要在收到首帧后回复流控FC。首帧格式如图所示首帧第一个字节 PCI 的高四位为 1 PCI 低四位与第二个字节 LEN 合起来为接下来传输的数据长度从第三个字节 byte2 起为传输数据。最大多帧长度为 4095 个字节。FC流控帧接收端在收到首帧后会发出一个流控帧第一个字节 PCI 的高四位为 3低四位为 FS(FlowStatus) FS 可以为 0 代表 ContinueToSend(CTS) 1 代表Wait(WT) 2 代表 Overflow (OVFLW) 3 – F 为预留通常我们遇到的值为0。流控帧的作用在于接收端告知发送端接收能力包含 BlockSize(BS)和SeparationTimeMin(STmin)两个参数。• BS 表示接收端允许发送端连续发送的最大连续 N_PDU 帧数 BS 为 0 的时候告诉发送端可以发完剩余的全部 N-PDU BS 为 01 - 0xFF 时表示发送端可以发的连续帧最大帧数。• STmin 表示发送端发送连续帧的最小间隔时间。流控帧的本质是接收端告诉发送端自己的接收能力CF连续帧连续帧格式如图所示连续帧第一个字节 PCI 的高四位为 2 PCI 的低四位为帧计数器第二个字节 byte1 起为剩余传出的数据。例如首帧已经传输了Data0 Data1 …至Data5则第一个连续帧接着传输 Data6 Data7…至Data12第二个连续帧接着传输 Data13 Data14…以此类推直至所有数据传输结束。续帧 SN 从 0 开始到 15 之后又返回 0 开始。注意 FF 发完后的第一个 CF的 SN 为 1续帧 SN 从 0 开始到 15 之后又返回 0 开始。注意 FF 发完后的第一个 CF的 SN 为 1
返回列表