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

UDS - 8 Application layer protocol

8 应用层协议

来自:ISO 14229-1-2020.pdf

8.1 一般定义

应用层协议应始终是确认消息传输,这意味着对于从客户端发送的每个服务请求,服务器应发送一个或多个相应的响应。

此规则的唯一例外是使用功能寻址或请求/指示指定不生成响应/确认的少数情况。为了不给系统带来许多不必要的消息负担,即使服务器未能完成请求的诊断服务,也存在少数情况,不应发送否定响应消息。这些例外情况在本文档的相关子条款中描述(例如,参见 8.7)。

应用层协议应与会话层协议并行处理。这意味着即使客户端正在等待对先前请求的响应,它也应保持适当的会话层时序(例如,如果需要保持诊断会话在其他服务器中继续进行,则发送 TesterPresent 请求;实现取决于所使用的数据链路层)。

8.2 A_PDU,应用协议数据单元

A_PDU(应用层协议数据单元)直接由 A_SDU(应用层服务数据单元)和层特定控制信息 A_PCI(应用层协议控制信息)构成。A_PDU 应具有以下通用格式:

A_PDU 	(Mtype,SA,TA,TA_type,[RA,]A_Data = A_PCI + [parameter 1, ...],Length)

其中:

  • “Mtype、SA、TA、TA_type、RA、Length” 与 A_SDU 中使用的参数相同;
  • “A_Data” 是为每个单独的应用层服务定义的字节数据字符串。A_Data 字符串应以 A_PCI 开头,后跟每个服务指定的 A_SDU 中的所有服务特定参数。括号表示参数列表的这一部分可以为空;
  • “Length” 确定 A_Data 的字节数。

8.3 A_PCI,应用协议控制信息

A_PCI 包含两种格式。格式由 A_PDU 参数的第一个字节的值标识。对于所有服务请求以及第一个字节不等于 7F16 的服务响应,应适用以下定义:

A_PCI	 (SI)

其中:

  • “SI” 是参数服务标识符;

对于第一个字节等于 0x7F 的服务响应,应适用以下定义:

A_PCI 	(NR_SI,SI)

其中:

  • “NR_SI” 是用于标识否定服务响应/确认的特殊参数;
  • “SI” 是参数服务标识符。

注:对于服务 ReadDataByPeriodicIdentifier(0x2A,参见 11.5)中定义的周期性数据响应消息的传输,应用层协议数据单元 (A_PDU) 中不存在 A_PCI。

8.4 SI,服务标识符

类型:1字节无符号整数值
范围:根据表2中的定义,0x00至0xFF。

表 2 — 服务标识符值

A_SI服务器类型(bit 6)定义于
0x00不适用本文件保留
0x01到0x0FISO 15031-5/SAE J1979 指定的服务ISO 15031-5/SAE J1979
0x10到0x3E本文档中指定的服务请求这个文件
0x3F不适用本文件保留
0x40不适用本文件保留
0x41到0x4FISO 15031-5 / SAE J1979 积极服务响应ISO 15031-5 / SAE J1979
0x50到0x7E本文件规定的积极服务响应这个文件
0x7F消极响应服务标识符这个文件
0x80到0x82不适用本文件保留
0x83到0x88服务请求这个文件
0x89到0xB9不适用本文件保留
0xBA到0xBE服务请求由系统供应商定义
0xBF到0xC2不适用本文件保留
0xC3到0xC8本文件规定的积极服务响应这个文件
0xC9到0xF9不适用本文件保留
0xFA到0xFE积极的服务反应由系统供应商定义
0xFF不适用本文件保留

注:请求消息的服务标识符与肯定响应消息的服务标识符一一对应,SI 字节值的位 6 表示服务类型。所有请求消息的 SI 位 6 = 0。所有肯定响应消息的 SI 位 6 = 1,除 ReadDataByPeriodicIdentifier(0x2A,见 11.5)服务的周期性数据响应消息外。

描述:

SI 应用于对服务原语中已调用的特定服务进行编码。每个请求服务都应分配一个唯一的 SI 值。每个肯定响应服务都应分配一个相应的唯一 SI 值。

服务标识符用于在从应用层传递到下层(并从下层返回)的 A_Data 数据字符串中表示服务。

8.5 A_NR_SI,否定响应服务标识符

类型:1 字节无符号整数值
固定值:0x7F
说明:
参数 NR_SI 是用于标识否定服务响应/确认的特殊参数。它应为否定响应/确认消息的 A_PCI 的一部分。

注:NR_SI 值与 SI 值相协调。NR_SI 值不作为 SI 值使用,是为了使 A_Data 编码和解码更加容易。

8.6 否定响应/确认服务原语

每个诊断服务都有一个否定响应/否定确认消息,该消息根据表 3 用消息 A_Data 字节指定。第一

相关文章:

UDS - 8 Application layer protocol

8 应用层协议 来自:ISO 14229-1-2020.pdf 8.1 一般定义 应用层协议应始终是确认消息传输,这意味着对于从客户端发送的每个服务请求,服务器应发送一个或多个相应的响应。 此规则的唯一例外是使用功能寻址或请求/指示指定不生成响应/确认的少数情况。为了不给系统带来许多不…...

二叉树公共最近祖先

文章目录 1. **二叉搜索树(Binary Search Tree, BST)**2. **一般二叉树****递归方法**:**迭代方法**: 案例展示二叉搜索树(BST)中查找LCA一般二叉树中查找LCA1. **使用哈希表存储父节点信息**2. **处理多个查询**3. **异常处理**结…...

智慧运维系统指导规范

随着信息技术的迅猛发展,智慧运维系统在现代企业中扮演着越来越重要的角色。为了提高运维效率、保障系统稳定运行,并制定一套科学、合理的智慧运维系统指导规范至关重要。本规范旨在为企业提供一套全面、系统的智慧运维管理方法和操作准则,以…...

最新自助下单彩虹云商城系统源码,含小储云商城模板免授权

最新彩虹商城源码,含小储云商城模板免授权,试用了一下还行,具体的大家可以看看 源码下载:https://download.csdn.net/download/m0_66047725/89405387 更多资源下载:关注我。...

头条系统-05-延迟队列精准发布文章-概述添加任务(db和redis实现延迟任务)、取消拉取任务定时刷新(redis管道、分布式锁setNx)

文章目录 延迟任务精准发布文章1)文章定时发布2)延迟任务概述2.1)什么是延迟任务2.2)技术对比2.2.1)DelayQueue2.2.2)RabbitMQ实现延迟任务2.2.3)redis实现 3)redis实现延迟任务4)延迟任务服务实现4.1)搭建heima-leadnews-schedule模块4.2)数据库准备4.3)安装redis4.4)项目集成…...

.gitignore git添加忽略文件

在项目的根目录下创建一个名为 .gitignore 的文件。在这个文件中,列出您希望Git忽略的文件和文件夹的名称或模式。 下面是一些基本的步骤和规则: 创建 .gitignore 文件:在项目根目录下创建一个名为 .gitignore 的文件。如果没有这个文件&…...

面向遥感图像的多阶段特征融合目标检测方法

源自:电子学报 作者:陈立 张帆 郭威 黄赟 注:若出现无法显示完全的情况,可 V 搜索“人工智能技术与咨询”查看完整文章 摘 要 遥感图像目标具有多尺度、大横纵比、多角度等特性,给传统的目标检测方法带来了新的…...

操作系统面试篇一

很多读者抱怨计算操作系统的知识点比较繁杂,自己也没有多少耐心去看,但是面试的时候又经常会遇到。所以,我带着我整理好的操作系统的常见问题来啦!这篇文章总结了一些我觉得比较重要的操作系统相关的问题比如 用户态和内核态、系统…...

OPenFast软件中的NRELOffshrBsline5MW_Onshore_ServoDyn.dat文件详解

我先简单概括一下,后续我再详细总结:文件“NRELOffshrBsline5MW_Onshore_ServoDyn.dat”是用于NREL 5.0 MW基准风力发电机的ServoDyn模块的输入文件。它定义了仿真控制、变桨控制、发电机和扭矩控制、偏航控制以及输出设置等各种参数。以下是主要内容的总…...

搭建rtmp/rtsp流媒体服务器的步骤

很多文章介绍使用ffmpeg推送和拉流,执行推流命令: D:\software\ffmpeg-7.0.1-full_build\bin\ffmpeg.exe -re -stream_loop -1 -i "D:\Video\汪汪队立大功\S07\001.mp4" -vcodec h264 -acodec aac -f flv rtmp://127.0.0.1/live/test110 经常…...

vue自定义事件传递数据

页面应用一个组件,采用自定义事件来传递参数 $emit是Vue实例的一个方法,它用于触发自定义事件。这些事件可以被父组件监听到,从而实现子组件向父组件的通信。 这种方法的好处在于,它可以让数据的流动保持单向,有助于…...

TensorBoard 安装与启动

安装&#xff1a;pip install tensorboard启动&#xff1a;tensorboard --logdir<events_directory_name> events_directory_name 为运行 tensorboard 后&#xff0c;产生的 events 文件所在的路径 博客参考&#xff1a;TensorBoard最全使用教程...

云计算运维工程师的突发状况处理

云计算运维工程师在应对突发的故障和紧急情况时,需要采取一系列迅速而有效的措施来最小化服务中断的时间并恢复系统的稳定性。 以下是一些关键步骤和策略: 快速响应: 立即识别并确认故障的性质和范围。通知团队成员和相关的利益相关者,确保所有人了解当前情况。故障诊断:…...

【CSS in Depth 2 精译】1.6 本章小结

1.6 本章小结 浏览器遵循层叠规则来确定哪些样式在哪些元素上生效&#xff1b;选择器优先级由选择器中的 id 数、class 类的个数以及标签名的个数来共同确定。优先级更高的声明将覆盖较低声明&#xff1b;当某些属性没有层叠值时&#xff0c;它们会从父元素继承一个样式值。这…...

FFmpeg源码:ff_h2645_extract_rbsp函数分析

一、ff_h2645_extract_rbsp函数的声明 ff_h2645_extract_rbsp函数的声明放在FFmpeg源码&#xff08;本文演示用的FFmpeg源码版本为5.0.3&#xff0c;该ffmpeg在CentOS 7.5上通过10.2.1版本的gcc编译&#xff09;的头文件libavcodec/h2645_parse.h中。 /*** Extract the raw (u…...

关于 AD21导入电子元器件放置“3D体”STEP模型失去3D纹理贴图 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/139969415 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…...

【JAVA】利用Redisson和Spring实现高效物联温度控制链路,确保温度调节的准确性和效率,定时链路执行使用案例,一环扣一环

主要功能和场景 柔性调温策略&#xff1a;这个类主要用于管理一个温度调节流程&#xff0c;通过不同的策略&#xff08;如策略1和策略2&#xff09;来调节温度&#xff0c;确保设备或环境中的温度达到预设的目标。 紧急停止机制&#xff1a;在流程执行过程中&#xff0c;如果需…...

yolov8部署资料

1.labelImg安装&#xff1a; labelImg的安装过程可以参照以下步骤进行&#xff0c;这里以Windows操作系统为例&#xff1a; 1. 检查Python环境 首先&#xff0c;需要确认你的电脑上是否已经安装了Python。你可以通过Win R打开windows“运行”对话框&#xff0c;输入cmd&#x…...

迅为RK3588开发板支持LVDS信号,标准 HDMI信号,IMIPI信号

性能强--iTOP-3588开发板采用瑞芯微RK3588处理器&#xff0c;是全新一代ALoT高端应用芯片&#xff0c;采用8nm LP制程&#xff0c;搭载八核64位CPU&#xff0c;四核Cortex-A76和四核Cortex-A55架构&#xff0c;主频高达2.4GHZ&#xff0c;8GB内存&#xff0c;32GB EMMC。 四核心…...

页面开发感想

页面开发 1、 前端预览 2、一些思路 2.1、首页自定义element-plus的走马灯 :deep(.el-carousel__arrow){border-radius: 0%;height: 10vh; }需要使用:deep(标签)才能修改样式 或者 ::v-deep 标签 2.2、整体设计思路 <template><div class"card" style&…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...