[UDS] --- CommunicationControl 0x28

1 0x28功能描述

根据ISO14119-1标准中所述,诊断服务28服务主要用于网络中的报文发送与接受,比如控制应用报文的发送与接收,又或是控制网络管理报文的发送与接收,以便满足一定场景下的应用需求。

2 0x28应用场景

一般而言,对于28诊断服务,主要应用场景为以下场合:

存在某些特殊的测试场景,比如只希望接收或者发送对应的网络管理与应用报文;绝大多数情况下应用在刷写ECU的过程中,即在预编程条件下执行28服务功能寻址便可以抑制总线应用报文与网络管理报文的发送与接收,以便减少网络总线负载,提高ECU下载效率,同时刷写结束后也要执行28服务使能对应控制报文的发送与接收,在此过程中一般会配合85服务一起使用,后期会给大家介绍,敬请关注。

上述这些应用场景较为常见,这里就不一一列举。

3 0x28服务请求

3.1 0x28 request格式

按照ISO14229-1标准所述,下图所示为28通信控制原理中诊断服务请求格式:
在这里插入图片描述- #1参数为service ID 28

  • #2参数为子功能码
  • #3参数为通信类型
  • #4 #5 参数nodeIdentificationNumber仅在subFunction等于4或者5才有效,否则#4,#5参数可以不存在

3.2 子功能码

在这里插入图片描述
子功能码各个数字含义如下:
在这里插入图片描述

3.3 communication type

在这里插入图片描述

  • Bit0-1:
    0x1:正常应用报文
    0x2:网络管理报文
    0x3:应用与网络报文

  • Bit4-7:
    0x0:表示使能或者抑制所有的Dcm控制的comM通道;
    0x1:使能或者抑制特定的comM通道;
    0xF:仅能接受请求的comM通道

在这里插入图片描述

4 0x28请求和响应

4.1 正响应及示例

以抑制网络管理报文发送为例
28服务诊断请求实例如下图所示:
在这里插入图片描述
正响应格式
如下图所示,为28诊断服务的正响应格式:
在这里插入图片描述
从上图中可以看出,28诊断服务的正响应由以下2个部分组成:

  • Response ID:该参数固定为SID+0x40 = 0x68;
  • SubFunction:该参数为上述诊断请求格式中controlType;

其中,0x01就是跟诊断请求中的controlType保持一致即可

4.2 负响应NRC

绝大多数情况下,Server针对Client的请求都会给到正响应,比如发生重启前需确保整车处于安全状态,如引擎熄火,车速不能超过3km/h等,或者为了防止不按照诊断请求格式进行请求,那么Server需要通过某种方式来告诉Client执行不成功的原因在哪里以便于调查问题直至得到正响应。

因此ISO14229-1针对所有的诊断服务提供了一种统一的诊断负响应的诊断格式:7F +SID + NRC。

其中NRC全称为Negetive Responce Code,每个NRC具有唯一的含义来代表当前诊断请求错误的原因所在。当然每个诊断服务支持的NRC不尽相同,具体支持的NRC需要参考ISO14229-1标准文档,对于28服务而言支持的NRC如下表:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/124100.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k8s节点已有镜像,但Pod一直在拉取镜像时卡着

Pod状态为ContainerCreating,查看日志提示pull镜像,但该镜像在Node节点已经存在,且拉取策略为IfNotPresent 解决:重启kubelet

迁移学习 - 微调

什么是与训练和微调? 你需要搭建一个网络模型来完成一个特定的图像分类的任务。首先,你需要随机初始化参数,然后开始训练网络,不断调整参数,直到网络的损失越来越小。在训练的过程中,一开始初始化的参数会…

指针相关面试题目

数组名的意义: 1. sizeof( 数组名 ) ,这里的数组名表示整个数组,计算的是整个数组的大小。 2. & 数组名,这里的数组名表示整个数组,取出的是整个数组的地址。 3. 除此之外所有的数组名都表示首元素的地址。 下…

【地理位置识别】IP归属地应用的特点

IP归属地应用是一类用于确定特定IP地址的地理位置信息(通常是城市、地区或国家)的工具和服务。以下是IP归属地应用的几个主要特点: 地理位置识别: IP归属地应用主要用于确定IP地址的地理位置。这可以帮助组织更好地了解其网站访问…

【C语言实现扫雷小游戏——可展开一片】

文章目录 1. 游戏分析和设计1.1扫雷游戏的功能说明1.2数据结构的分析与设计 2.代码实现2.1基本框架2.2初始化棋盘2.3打印棋盘2.4布置雷2.4统计周围雷的个数2.5排查雷2.6展开一片 3.完成代码3.1game.h3.2 game.c3.3test.c 学习完了函数和数组,让我们做个扫雷小游戏巩…

评估在线不平衡学习的PAUC

评估在线不平衡学习的PAUC 原始论文《Prequential AUC: properties of the area under the ROC curve for data streams with concept drift》 由于正常的AUC需要计算整体数据集上,每个数据的预测置信度的排名。那么我们首先要求我们的在线学习算法在进行预测时也返…

Flume 快速入门【概述、安装、拦截器】

文章目录 什么是 Flume?Flume 组成Flume 安装Flume 配置任务文件应用示例启动 Flume 采集任务 Flume 拦截器编写 Flume 拦截器拦截器应用 什么是 Flume? Flume 是一个开源的数据采集工具,最初由 Apache 软件基金会开发和维护。它的主要目的是…

Java 谈谈你对OOM的认识

文章目录 前言一、基础架构二、常见OOM1、栈内存溢出java.lang.StackOverflowError2、堆内存溢出java.lang.OutOfMemoryError:Java heap space3、GC回收时间过长java.lang.OutOfMemoryError: GC overhead limit exceeded4、NIO程序堆外内存溢出java.lang.OutOfMemor…

H 指数 II

给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数,citations 已经按照 升序排列 。计算并返回该研究者的 h 指数。 h 指数的定义:h 代表“高引用次数”(high citations)&#xff…

STM32———USART串口控制LED灯亮灭

1.硬件设计流程 2.程序设计流程 1.串口初始化时钟使能:RCC_APBxPeriphClockCmd(); GPIO初始化时钟使能:RCC_AHBxPeriphClockCmd();2.GPIO端口模式配置:GPIO_Init();3.串口参数初始化:USART_Init();4.串口使能:USART_C…

SpringBoot相比于Spring的优点(自动配置和依赖管理)

自动配置 例子见真章 我们先看一下我们Spring整合Druid的过程,以及我们使用SpringBoot整合Druid的过程我们就知道我们SpringBoot的好处了。 Spring方式 Spring方式分为两种,第一种就是我们使用xml进行整合,第二种就是使用我们注解进行简化…

RedissonCach的源码流程

上: https://blog.csdn.net/Michelle_Zhong/article/details/126384566 中: https://blog.csdn.net/michelle_zhong/category_11874153.html 下: https://blog.csdn.net/Michelle_Zhong/article/details/126391915?ops_request_misc%257B%…

AAOS CarMediaService 问题分析

文章目录 问题描述车载蓝牙音乐流程Music 监听焦点变化流程BT请求焦点的流程MediaSession 服务端的流程BT和music 之间的相互影响 问题描述 问题 AAOS界面连接蓝牙的情况下,Music应用播放音乐会暂停。 分析 暂停是应用的行为,Music应用会监听focus的变化…

GE IS420UCSBH1A 控制器模块

控制器模块是工业自动化和控制系统中的关键组件,用于监测、控制和管理各种工程过程。这些模块通常具有以下特点: 多通道控制: 控制器模块通常可以控制多个通道,允许同时管理多个设备或过程。 实时控制: 模块支持实时控…

docker 启动简单的开发环境(mysql, redis, etcd)

docker开启容器分为两种,一种是命令启动,一种是用yaml启动 本片文章用到的是yaml启动 以下是启动脚本:env.yaml version: "3" services:jump_etcd:container_name: jump_etcdimage: bitnami/etcd:3privileged: truevolumes:- &q…

判读文本编码是否为UTF8

&#xff08;----转载-----&#xff0c;忘记出处了抱歉&#xff09; private bool IsUtf8(byte[] buff) { for (int i 0; i < buff.Length; i) { if ((buff[i] & 0xE0) 0xC0) // 110x xxxx 10xx xxxx …

使用NVIDIA GPU FFmpeg转码 YUV to H264(成功)

0. 官方教程 NVIDIA官方教程&#xff1a;链接&#xff0c;本篇内容主要参考2.2 Software Setup。 1. 安装显卡驱动 确保nvidia-smi能够正常使用&#xff1a; 2. 安装CUDA toolkit 注意要与显卡驱动版本对应&#xff0c;验证toolkit是否正确安装&#xff1a; 3. 安装ffnvco…

Pytorch detach()方法

detach() 是 PyTorch 中的一个方法&#xff0c;用于从计算图中分离&#xff08;detach&#xff09;张量。它可以将一个张量从当前计算图中分离出来&#xff0c;返回一个新的张量&#xff0c;该张量与原始张量共享相同的底层数据&#xff0c;但不再追踪梯度信息。 当你需要在计…

代码版本控制工具GitLab :从安装到使用一步到位

一、GitLab 是什么&#xff1f; 如果听说过 Git 或者 GitHub&#xff0c;那么 GitLab 你一定也听说过。GitLab 是一个用于仓库管理系统的开源项目&#xff0c;使用 Git 作为代码管理工具&#xff0c;并在此基础上搭建起来的 Web 服务。简单理解&#xff1a;GitLab 类似私人版 …

ssm框架

SSM框架是一个用于构建Java Web应用程序的集成框架&#xff0c;它由三个关键组件组成&#xff0c;分别是Spring、Spring MVC、和MyBatis&#xff0c;这三个组件的作用如下&#xff1a; Spring&#xff08;Spring Framework&#xff09;&#xff1a;Spring是一个轻量级的开源框架…