UDS中多帧传输详解(配合实例)--ISO 15765-2(网络层服务)

1:多帧协议说明

根据UDS协议 ISO14229-1中的描述,传输层和网络层使用 ISO 15765-2来表示;

2:多帧协议格式

2.1 总体协议格式

参考ISO 15765-2协议,发现对多帧有如下定义;下面的定义在 ISO 15765-2中均有定义

字段 说明 字段 说明
N_PCI 网络协议控制信息 FS flow status 流状态
N_PDU 网络协议数据单元 BS block size 块大小
SF_DL 单帧数据长度 STmin separation time min 最小间隔时间
FF_DL 首帧数据长度

简单的说:

第一个byte是0x0X开头的是单帧;

第一个byte是0x1X开头的是首帧;

第一个byte是0x2X开头的是连续帧;

第一个byte是0x3X开头的是流控帧;

注意这里描述的是二进制数据,CAN上发送的是16进制数据

2.2 流控帧协议格式

参考 15765-2 "6.5.5"章节,有更加详细的描述,下面是简单总结

FS:当前ECU的接收状态反馈;为0,持续发送; 为1,稍等一会,说明ECU当前在处理其它事情;

BS:连续帧多大能发送多多少帧;为0,随便发;0x01-0xFF, 最多发送多少帧就要等一会了;

STmin:发送间隔时间;每个ECU的性能有差距,这个是接收端反馈发送端,每帧连续帧的时间间隔是多少;

注意STmin传输不同的值,单位是不一样的

3:多帧协议实例解析

3.1 服务端应答多帧

参考 N_PCI 字节说明解析,需要先把16进展转换为2进制,有的可能需要转换为10进制,便于人理解

sh 复制代码
# 0x19--读取故障码;服务端应答多帧
[RX] tick=1733304883.221074 can ID: 0x123, DLC: 8, Data: 05 19 42 33 08 1e aa aa
# 0x05=0b 0000 0101;单帧,数据长度为5
[TX] tick=1733304883.221074 can ID: 0x456, DLC: 8, Data: 10 0b 59 42 33 ff 1f 04
# 0x100b= 0b 0001 0000 0000 1011;首帧,数据长度为11
[RX] tick=1733304883.231862 can ID: 0x123, DLC: 8, Data: 30 00 0a aa aa aa aa aa
# 0x30=0b 0011 0000; 连续帧,FS=0,持续发送
# 0x00;BS=0,随便发
# 0x0a; STmin=10, 连续帧发送间隔为10ms
[TX] tick=1733304883.231862 can ID: 0x456, DLC: 8, Data: 21 01 30 13 00 0e ff ff
# 0x21=0b 0010 0001; 连续帧,序号为1
# 如果后面还有连续帧的话,那么就是 时间间隔为10ms,需要为2;也就是以0x22开头
相关推荐
得单片机的运5 小时前
STM32的蓝牙通讯(HAL库)
stm32·单片机·嵌入式硬件·蓝牙
weixin_452600697 小时前
GC8872刷式直流电机驱动器详解:3.6A驱动能力与PWM控制
stm32·单片机·嵌入式硬件·智能家居·音响·电动工具
Despacito0o10 小时前
STM32 I2C通信完整教程:从协议原理到硬件实现
stm32·单片机·嵌入式硬件
你好,奋斗者!10 小时前
小电流驱动大电流:原理、实现方式与应用前景
stm32·单片机·嵌入式硬件·电路设计
XINVRY-FPGA13 小时前
XCZU4EV-1FBVB900E Xilinx FPGA AMD Zynq UltraScale+ MPSoC EV(Embedded Vision)
arm开发·嵌入式硬件·计算机视觉·fpga开发·硬件架构·硬件工程·fpga
猫猫的小茶馆14 小时前
【STM32】FreeRTOS 任务的删除(三)
java·linux·stm32·单片机·嵌入式硬件·mcu·51单片机
学不动CV了14 小时前
单片机ADC采集机理层面详细分析(二)
c语言·arm开发·stm32·单片机·嵌入式硬件·开源·51单片机
学不动CV了14 小时前
51核和ARM核单片机OTA实战解析(二)
c语言·arm开发·stm32·单片机·嵌入式硬件·51单片机
Yuroo zhou15 小时前
IMU的精度对无人机姿态控制意味着什么?
单片机·嵌入式硬件·算法·无人机·嵌入式实时数据库
嵌入式小白牙17 小时前
ARM-I2C硬实现
arm开发·单片机·嵌入式硬件