Files
autosar_standard_spec_v4.4/BSWGeneral/AUTOSAR_EXP_CDDDesignAndIntegrationGuideline.md
T

7.7 KiB
Raw Blame History

复杂驱动设计与集成指南

AUTOSAR CP Release 4.4.0

原文:Complex Driver design and integration guideline(文档 ID 622

翻译状态:已完成 v1

对应原文 PDFBSWGeneral/AUTOSAR_EXP_CDDDesignAndIntegrationGuideline.pdf


文档标识

字段
文档标题 复杂驱动设计与集成指南(Complex Driver design and integration guideline
文档标识号 622
文档状态 正式版(Final
所属标准 Classic Platform
所属版本 4.4.0

文档变更历史(节选)

日期 版本 变更说明
2018-10-31 4.4.0 移除 4.1 和 7.3.2 章节的 SWS_EcuMfixed
2016-11-30 4.3.0 新增与 StbM 模块的接口章节;更新模块 ID
2015-07-31 4.2.2 更新 Default Error Tracer;接口的可重入性
2014-10-31 4.2.1 更新 TcpIp
2014-03-31 4.1.3 更新 CDD 代码文件章节;移除变更文档章节
2013-03-15 4.1.1 初始发布

目录

  1. 文档范围
  2. 缩略语与简称
  3. 使用的约定
  4. 相关文档
  5. CDD 介绍
  6. CDD 设计建议
  7. 与其他模块的接口
  8. CDD 集成

1 文档范围

复杂驱动(CDD, Complex Device Driver 是 AUTOSAR 架构中最灵活的 BSW 模块类型,用于实现:

  • 高度硬件相关的功能
  • 专有算法(如自定义加密、信号处理)
  • 标准 AUTOSAR 栈未覆盖的功能
  • 高性能要求的代码

CDD 可以访问所有AUTOSAR 层,包括直接访问微控制器硬件。本文档提供 CDD 设计与 AUTOSAR 集成的指南。


2 缩略语与简称

缩略语 描述
CDD Complex Device Driver(复杂驱动)
MCAL Microcontroller Abstraction Layer
RTE Runtime Environment
SW-C Software Component(软件组件)
StbM Synchronized Time-Base Manager(同步时基管理器)
TcpIp TCP/IP Stack
EcuM ECU State Manager
BswM BSW Mode Manager
ComM Communication Manager
Dem Diagnostic Event Manager
Det Default Error Tracer

3 使用的约定

  • CDD 命名约定:<Vendor>_<Function> 或类似
  • 文档使用 shall 表示强制要求

4 相关文档

编号 名称 文件
[1] Layered Software Architecture AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf
[2] General Specification of Basic Software Modules AUTOSAR_SWS_BSWGeneral.pdf
[3] General Requirements on Basic Software Modules AUTOSAR_SRS_BSWGeneral.pdf
[4] Specification of ECU State Manager AUTOSAR_SWS_ECUStateManager.pdf
[5] Specification of BSW Mode Manager AUTOSAR_SWS_BSWModeManager.pdf
[6] Specification of Default Error Tracer AUTOSAR_SWS_DefaultErrorTracer.pdf
[7] Specification of Synchronized Time-Base Manager AUTOSAR_SWS_SynchronizedTimeBaseManager.pdf
[8] Specification of TCP/IP Stack AUTOSAR_SWS_TcpIp.pdf

5 CDD 介绍

5.1 CDD 在 AUTOSAR 架构中的位置

CDD 是 BSW 的一部分,位于复杂驱动层(Complex Driver Layer。它可以直接调用:

  • 微控制器硬件(绕过 MCAL
  • MCAL(标准外设驱动)
  • ECU 抽象层
  • 服务层OS、EcuM、ComM 等)
  • RTE(与 SW-C 通信)
  • 复杂驱动库

5.2 CDD 的特殊性

特性 标准 BSW 模块 CDD
由 AUTOSAR 规范 详细规范 仅指南
标准化 所有 ECU 一致 实现特定
可调用硬件 通过 MCAL 可直接
性能 通用优化 可高度优化
可移植性 (与具体 ECU 耦合)
复杂度 中等 可高

5.3 CDD 的典型用例

  • 专用加密算法(如 OEM 专有的认证协议)
  • 复杂信号处理(如音频 DSP 接口)
  • 专有通信协议(OEM 自定义)
  • 高精度定时控制(如发动机控制)
  • 特殊传感器接口

6 CDD 设计建议

6.1 文档

6.1.1 用户手册

CDD 应提供用户手册,包括:

  • 功能描述
  • API 文档
  • 配置参数说明
  • 集成步骤
  • 限制和已知问题

6.2 实现

CDD 实现应:

  • 遵循 AUTOSAR_SWS_BSWGeneral 中的通用规范
  • 遵循 MISRA C 2012
  • 使用编译器抽象(Compiler.h
  • 使用内存映射(MemMap.h
  • 包含版本检查

6.3 CDD 文件

6.3.1 代码文件

Cdd_<Vendor>_<Name>.c          # 主实现
Cdd_<Vendor>_<Name>_Cfg.c      # 配置数据

6.3.2 头文件

Cdd_<Vendor>_<Name>.h          # 公共 API
Cdd_<Vendor>_<Name>_Cfg.h      # 配置类型
Cdd_<Vendor>_<Name>_MemMap.h   # 内存映射
Cdd_<Vendor>_<Name>_Version.h  # 版本信息

6.3.3 推荐的文件结构

文件 内容
.c 实现 + 静态变量定义
.h API 函数声明、类型定义、宏
_Cfg.c 配置数据数组
_Cfg.h 配置类型结构体定义
_MemMap.h 内存段映射(自动生成)
_Version.h 版本宏
_Bswmd.arxml BSW 模块描述(XML

6.3.4 一致性检查

CDD 应包含版本检查编译时检查

#if (CDD_VENDOR_ID != EXPECTED_VENDOR_ID)
#error "CDD vendor ID mismatch"
#endif

6.4 行为和接口描述

CDD 应在 BSWMD 中声明:

  • 提供/需要的接口
  • 触发的事件
  • 依赖的其他模块
  • 内存映射段

6.5 参数配置

CDD 配置参数应在 BSWMD 中以 XML 形式声明。工具可基于 BSWMD 生成配置器 UI。


7 与其他模块的接口

7.1 与 RTE 和 SW-C 的接口

CDD 可以:

  • 通过 RTE 与 SW-C 通信(推荐
  • 使用 RTE 的 sender-receiver、client-server 接口

示例

/* SW-C 端调用 CDD */
* Rte_Call_<Port>_<Operation>(/* args */);

/* CDD 端实现 RTE 调用 */
Std_ReturnType Cdd_<Vendor>_<Name>(/* RTE 生成的参数 */) {
    /* 实现 */
}

7.2 与库的接口

CDD 可调用复杂驱动库(如 OEM 专有算法库)。

7.3 与标准 BSW 模块的接口

7.3.1 与 MCAL 模块的接口

CDD 可调用 MCAL 驱动(McuPortDioAdc 等)。这比直接访问硬件更可移植

7.3.2 与 EcuM 的接口

CDD 可调用 EcuM API(如 EcuM_GetState),实现状态相关的行为。

7.3.3 与 BswM 的接口

CDD 可调用 BswM API不推荐直接实现 BswM 逻辑。

7.3.4 与 OS 的接口

CDD 可调用 OS API(任务、事件、资源、计数器)。

7.3.5 与 ComM 的接口

CDD 可调用 ComM API 监控通信状态。

7.3.6 与 Dem 的接口

CDD 可调用 Dem_ReportErrorStatus 报告事件给 DEM。

7.3.7 与 Det 的接口

CDD 可调用 Det_ReportError 报告开发错误。

7.3.8 与 StbM 的接口

CDD 可调用 StbM API 访问同步时基。

7.3.9 与 TcpIp 的接口

CDD 可调用 TcpIp API 实现网络通信。


8 CDD 集成

8.1 集成步骤

  1. 生成:从 BSWMD 生成配置器
  2. 配置:使用工具配置 CDD
  3. 编译:将 CDD 加入编译
  4. 链接:链接到 RTE 和 BSW
  5. 测试:单元测试、集成测试

8.2 集成检查清单

  • CDD 的 BSWMD 完整
  • 内存映射正确
  • 配置参数生成正确
  • 初始化顺序正确
  • 与 OS 任务/中断集成正确
  • 开发错误处理集成(Det
  • 运行时错误处理集成(Dem
  • 模式管理集成(BswM/ComM/EcuM
  • 测试覆盖完整

翻译说明

  • 本文档为指南性文档(EXP,提供 CDD 设计与集成的最佳实践
  • CDD 是 AUTOSAR 中最灵活的 BSW 类型,可绕过标准架构直接访问硬件
  • 设计 CDD 时应权衡灵活性与可维护性

翻译:opencode-translator / Step 3 P0 批量翻译