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 | 通信控制请求SID | M | 0x28 | CC |
| #2 | 子功能 = [控制类型] | M | 0x00-0xFF | LEV_CTRLTP |
| #3 | 通信类型 | M | 0x00-0xFF | CTP |
| #4 | 节点ID(高字节) | Ca | 0x00-0xFF | NIN |
| #5 | 节点ID(低字节) | Ca | 0x00-0xFF | NIN |
注:条件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 | 否定响应SID | 0x7F | M | SIDNR |
| #2 | 通信控制请求SID | 0x28 | M | SIDRQ |
| #3 | 否定响应码 | 0xXX | M | NRC_ |
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
本文围绕UDS 0x28服务,即通信控制服务展开。介绍其用于开启/关闭电控单元对某类报文的发送或接收,阐述了从节点、主节点、子总线和子总线节点等基础概念,定义了请求消息、肯定和否定响应消息,还给出多个服务使用实例。

8502

被折叠的 条评论
为什么被折叠?



