【AutoSar_UDS服务】0x28服务_通信控制

本文围绕UDS 0x28服务,即通信控制服务展开。介绍其用于开启/关闭电控单元对某类报文的发送或接收,阐述了从节点、主节点、子总线和子总线节点等基础概念,定义了请求消息、肯定和否定响应消息,还给出多个服务使用实例。

1. 简介和功能概述

CommunicationControl,即通信控制,在UDS 中由0x28服务实现。通讯控制服务用于开启/关闭电控单元对某类报文的发送或接收。一般地,控制通信类型为Com或者Nm PDUs

UDS 0x28服务,主要的使用场景:

  • ECU节点的软件需要更新时,一般通过诊断工具更新ECU软件的方式如:FBL(Flash BootLoader),为了让刷写过程不受其他报文干扰,就会在之前请求28服务来禁止收发报文。待刷写完毕,再通过请求28服务使能报文收发;
  • 在测试场景下,可能会使能或禁用某个ECU的收发功能;

通信控制服务须在非默认会话下进行请求,而当ECU回到默认会话时,0x28服务会恢复至默认状态,报文的收发功能恢复正常。

2. 基础概念

2.1 从节点和主节点

在理解主节点和从节点的概念之前,先简单说一下节点的概念:在某一个总线上挂载的ECU其实就是该总线的一个节点。
何为主节点?当某个ECU连接着多路总线,并且该ECU需要在各个总线间转发报文,那么该ECU则是主节点。
e.g : 如下图,主节点连接3路总线,且每条总线上都挂载这从节点。相对于总线来说主节点的序号可能并非相同,在Can1中,主节点作为节点2,而在Can2中主节点作为节点1。
在这里插入图片描述

2.2 子总线和子总线节点

那么,这三路总线对于主节点来说是什么呢?对于主节点来说,它们都属于主节点的子总线。主节点可能会转发子总线上各个从节点的消息,那么也称这些从节点为主节点的子总线节点或子节点。

3. 请求消息定义

A_Data 字节参数名称Cvt字节值助记符
#1通信控制请求SIDM0x28CC
#2子功能 = [控制类型]M0x00-0xFFLEV_CTRLTP
#3通信类型M0x00-0xFFCTP
#4节点ID(高字节)Ca 0x00-0xFFNIN
#5节点ID(低字节)Ca 0x00-0xFFNIN

注:条件Ca :当子功能 = [控制类型]为0x4或0x5时,此参数才存在。

3.1 请求消息子功能定义

该服务使用的子功能,即控制类型(该字节的bit7表示抑制肯定相应位)。
引用
在这里插入图片描述
其中,子服务0x00,0x01,0x02,0x03是常用的控制类型;特殊地,对于0x04,0x05子功能,主节点需要通过增强的子总线节点的节点ID将该节点所在子总线的通信切换到相应的模式上,e.g:将相关子总线节点所在的子总线切换到仅支持诊断的通信模式。

3.2 请求通信类型定义

引用
注:最常用的就是0x1,0x2,0x3这三种通信类型了。通过在BswM模块配置可以实现控制类型和通信类型的组合,当然子服务还是需要在Dcm中配置。

3.3 肯定响应消息定义

引用

3.4 否定响应消息定义

A_Data 字节参数名称字节值Cvt助记符
#1否定响应SID0x7FMSIDNR
#2通信控制请求SID0x28MSIDRQ
#3否定响应码0xXXMNRC_
3.4.1 否定响应码定义

引用

5. 服务使用实例

5.1 example #1 禁用网络管理报文的Tx/Rx

在这里插入图片描述

5.2 example #2 禁用应用、网管报文的Tx使能Rx

在这里插入图片描述

5.3 example #3 主节点控制从节点的总线通信为仅支持诊断的调度模式

在这里插入图片描述
注: 主节点将节点ID = 0x000A所在子总线切换为仅诊断通信调度模式,仅能收到主节点所发送的诊断报文。

5.4 example #4 当前会话下服务不支持

自画

6. 参考资料

1.【UDS】ISO14229之0x28服务
2. 汽车UDS诊断之通信控制服务(0x28)深度剖析
3. AUTOSAR_SWS_DiagnosticCommunicationManager.pdf
4. ISO 14229-1-2013规格和要求.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值