AutoSAR实战:UDS诊断服务Communication Control (0x28)配置详解
Used tool-chain | |
---|---|
ISOLAR-AB | v 4.0.2 |
RTA-BSW | v 3.1 |
Introduction
本应用笔记(AN)介绍了使用RTA-BSW对统一诊断服务(UDS)0x28服务的一种简单实现方式。该服务的实现需要由总线状态管理模块(BswM)执行模式切换操作,因此涉及诊断通信管理器(Dcm,UDS协议端)和BswM(模式切换)的配置。
通信控制是一种UDS服务(服务ID为0x28),用于通过诊断线路有选择地启用或禁用总线通信。在需要停止所有或一组电子控制单元(ECU)通信的场景中(例如在软件下载期间,以便最大限度地提高可用带宽),此服务非常有用。
UDS规范支持以多种不同方式以及针对不同的“通信类型”(即正常通信、网络管理通信等)启用或禁用通信。在本应用笔记中,我们将展示仅禁用正常通信的发送/接收的情况。
Assumptions
你必须安装以下ETAS软件:
- ISOLAR-AB 4.0.2
- RTA-BSW 3.1
This AN could be used as a reference for any generic AR based project. The reference bus used in this document is the CAN bus.
Dcm Configuration
Dcm Dsd Configuration
实现服务0x28所需的首要步骤是将该服务添加到诊断通信管理(Dcm)服务表中。在DcmDsd部分添加一个名为“通信控制(CommunicationControl)”的服务:
使用以下值配置服务(请注意,从某些汽车基础软件(BSW)版本开始可能需要初始化函数,因此请检查该函数是否已定义)。
需要添加所需子服务的配置。例如,下面展示了子服务0x03(禁用发送/接收)的情况。
Dcm Dsp 配置
现在 Dsd(Dcm 服务调度器)配置已完成,因此服务将由 Dcm 处理。要完成模块配置,必须添加一个 Dsp(Dcm 服务处理器)通信控制配置。因此,进入 DcmDsp 配置,找到“通信控制”部分,并创建一个 DcmDspComControlAllChannels 引用。该引用需要指向 ComM 通道引用,如下图所示:
现在重新生成基本软件模块(Bsw),以便生成通信控制实现。
基本软件模块管理器(BswM)配置
必须对 BswM 进行配置,以便在接