UDS网络层知识整理:单帧与多帧传输以及网络层时间参数整理

2024-01-05 19:28

本文主要是介绍UDS网络层知识整理:单帧与多帧传输以及网络层时间参数整理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、单帧与多帧传输

UDS网路层的相关类型帧:

SF单帧参数:

  • SF_DL:后续数据长度

FF首帧参数:

  • FF_DL:后续数据长度

CF连续帧参数:

  • SN:连续帧序号,连续帧的第1帧值为1,每增加一个连续帧,SN值加1,后续SN达到15(0xF)时候,下一帧连续帧为0.(流控帧FC不影响连续帧SN值的计算)

FC流控帧参数:

  • FS:FlowStatus(流控制状态),为0表示准备好等待BS声明的最大连续帧数,为1表示等待一个新的流控帧,为2表示流控溢出,将会引起发送终止发送
  • BS:Block Size,为0 表示分段报文期间不再发送流控帧,所有连续帧都将持续发送到接收端。0x01~0xFF,定义为到下一个流控帧为止的连续帧最大数量
  • STmin:定义2个连续帧(CF)之间的最小允许时间。0~7F 表示0~127ms;F1~F9的单位为100us,其中F1表示100us,F9表示900us

1、单帧传输

单帧传输中仅需要用到SF(SingleFrame):

  • 举个例子:UDS中10服务

TX:02 10 03 00 00 00 00 00

单帧的第一个字节02,高4位为0表示是SF帧;低4位为2,表示后面的有效字节长度为2个字节

2、多帧传输

多帧传输中需要用到:FF(首帧)、FC(流控帧)、CF(连续帧)

  •  举个例子:2E服务写DID

TX:10 14 2E F1 90 FF FF FF

RX:30 08 14 00 00 00 00 00

TX:21 FF FF FF FF FF FF FF

TX:22 FF FF FF FF FF FF FF

(1)其中首帧FF第1个字节与第2个字节(10 14),第1个字节高4位 0x01 表示了该帧是首帧,第1个字节低4位,和第二个字节表示长度为0x014,表示后续有效字节数为20个字节

(2)当Sender首帧发出后,需要等待Receiver发送流控帧后,才能接着发送后面的流控帧数据。其中流控帧第1个字节30,其中高4位 3 表示为流控帧,低4位 0 表示流控帧的状态。流控帧第2个字节08 表示接收了8帧连续帧后,就需要等待流控帧

(3)当Sender接受到流控帧后,就需要开始发送连续数据,其中连续帧第1个字节21,高4位2表示是连续帧,低4位1表示连续帧的第一帧(注:其中连续帧的第1帧SN为1,后续SN达到15后,下一个连续帧的SN为0)

二、网络层相关时间参数

注:时间参数末尾的s表示sender,r表示receiver

  • N_As:控制器访问网络并在发送端传输诊断报文允许的时间。(即:访问网络层As开始计时,到报文发出后As停止计时,这一段时间)
  • N_Br:控制器接收到第一帧或连续帧之后,在控制器传输FC之前的允许时间。(即:网络层接收解析到为FF时候,Br开始计时,当访问网络层准备回复FC时,Br停止)
  • N_Ar:控制器访问网络并且在接收端传输诊断报文允许的时间。(即:访问网络层准备回复FC时,Ar开始计时,当报文发出后Ar停止计时,这一段时间)
  • N_Bs:传输首帧或连续帧与接收流控帧之间的时间(即:传输完FF或者CF时,Bs开始计时,当接受到FC或者是最后一帧CF,Bs停止计时)
  • N_Cs:控制器在接收到FC或发送完CF后,到传输连续帧之间允许的时间
  • N_Cr:控制器在发送流控帧或者接收前一个连续帧后等待连续帧的时间

这篇关于UDS网络层知识整理:单帧与多帧传输以及网络层时间参数整理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/573913

相关文章

go中的时间处理过程

《go中的时间处理过程》:本文主要介绍go中的时间处理过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 获取当前时间2 获取当前时间戳3 获取当前时间的字符串格式4 相互转化4.1 时间戳转时间字符串 (int64 > string)4.2 时间字符串转时间

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

Python变量与数据类型全解析(最新整理)

《Python变量与数据类型全解析(最新整理)》文章介绍Python变量作为数据载体,命名需遵循字母数字下划线规则,不可数字开头,大小写敏感,避免关键字,本文给大家介绍Python变量与数据类型全解析... 目录1、变量变量命名规范python数据类型1、基本数据类型数值类型(Number):布尔类型(bo

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据