当前位置: 首页 > article >正文

UDS 诊断报文格式

文章目录

  • 网络层目的
  • N_PDU 格式
  • 诊断报文的分类:单帧、多帧

网络层目的

N_PDU(network protocol data unit),即网络层协议数据单元

网络层最重要的目的就是把数据转换成符合标准的单一数据帧(符合can总线规范的),从而进行数据传输。报文信息每次最多传输4095个字节(基于can),但是单帧长度最多为8个字节,此时需要将报文进行拆分传输。

N_PDU 格式

N_PDU 格式
地址信息协议控制信息数据区
N_AI(Address Information)N_PCI(Protocol Control Information)N_Data
  • N_AI 包含了目标地址、源地址、可能还有远程地址等所有与地址有关的信息,通常就是指CAN报文的ID
  • N_PCI 协议控制信息,表示帧类型:SF,FF,CF,FC 和 数据长度
  • N_DATA 数据

对于CAN诊断通信,我们可以通过分析每个CAN帧数据域的第一个字节来确定它属于四种不同类型中的哪一种。

诊断报文的分类:单帧、多帧

在传输协议(TP,Transport Protocol)层面,我们将诊断消息分为两大类:单帧和多帧。

  • 单帧消息(Single Frame):单帧消息只包含一个N_PCI,即单帧。它们适用于较小的诊断消息,可以在单个CAN帧中传输完整的诊断数据。
  • 多帧消息(Multi-Frame):多帧消息分为三种不同的N_PCI类型,包括首帧、流控制帧和连续帧。这些消息用于传输较大的诊断数据,需要分成多个CAN帧来传输。
    • 首帧(First Frame):首帧包含了诊断数据的一部分,并提供了有关数据总长度的信息。
    • 流控制帧(Flow Control Frame):流控制帧用于通知发送方可以继续发送数据帧的数量。
    • 连续帧(Consecutive Frame):连续帧包含了较大诊断数据的剩余部分,根据流控制帧中的信息,发送方可以持续发送这些帧。
N_PDU类型N_PCI (Byte1 - Byte 8) CAN2.0为例
Byte 1Byte 2Byte 3Byte 4Byte 5...Byte 8
Bit 7-4 Bit 3-0
单帧(SF) N_PCI Type = 0 SF_DL <= 7 N_Data
首帧(FF) N_PCI Type = 1 N_PCI Type = 1 7 < FF_DL <= 4095 N_Data
首帧(FF) N_PCI Type = 1 0 0 4095 < FF_DL N_Data
流控帧(FC) N_PCI Type = 3 FS BS STmin reserve
连续帧(CF) N_PCI Type = 2 SN (0-F循环计数) N_Data

在这里插入图片描述

  • SF_DL :单帧的数据长度

  • FF_DL :首帧的数据长度

  • FS (Flow State) 流状态:

    • 0 : 继续发送
    • 1 : 等待
    • 2 : 溢出,即第一帧中的FF_DL信息的长度超过接受实体缓冲区的大小)
  • BS 表示 允许一次可连续发送连续帧 CF 的次数

  • STmin 表示 发送方发送连续帧 CF 与连续帧 CF 间的最小间隔时间


http://www.kler.cn/news/157306.html

相关文章:

  • Vue入门——v-on标签
  • 回溯和分支算法
  • Snagit 2024.0.1(Mac屏幕截图软件)
  • 【五分钟】熟练使用numpy.cumsum()函数(干货!!!)
  • 接口压测指南
  • Spring IOC—基于XML配置和管理Bean 万字详解(通俗易懂)
  • iOS ------ UICollectionView
  • Python —— Mock接口测试
  • ElasticSearch知识体系详解
  • 解码 SQL:深入探索 Antlr4 语法解析器背后的奥秘
  • Web前端 ---- 【vue】vue 组件传值(props、全局事件总线、消息的订阅与发布)
  • 10个顶级Linux开源反向代理服务器 - 解析与导航
  • 字节内部自动化测试教程:python+pytest接口自动化-接口测试一般流程及方法
  • CoreDNS实战(一)-构建高性能、插件化的DNS服务器
  • Azure Machine Learning - 使用 REST API 创建 Azure AI 搜索索引
  • 【云备份】项目介绍
  • SoC with CPLD and MCU ?
  • ODN光纤链路全程衰减如何计算
  • d3dx9_43.dll丢失原因以及5个解决方法详解
  • Ubuntu18.04安装Ipopt-3.12.8流程
  • MFC发送ZPL指令控制斑马打印机
  • 代码随想录day5 哈希表part 01 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和
  • 【FMC141】基于VITA57.4标准的4通道2.8GSPS 16位DA播放子卡(2片DAC39J84)
  • 股票代码合法验证:python字符串str应用
  • 力扣(LeetCode)907. 子数组的最小值之和(C++)
  • WEB渗透—反序列化(十一)
  • HeteroTiC: 基于异构时间通道的鲁棒网络流水印
  • GCN,GraphSAGE 到底在训练什么呢?
  • 卷积神经网络(CNN):乳腺癌识别.ipynb
  • ChatGPT使用路径:从新手到专家的指南