P0 batch translation: 49 PDFs (General + BSWGeneral + MethodologyAndTemplates)

This commit is contained in:
opencode-translator
2026-06-12 17:31:38 +08:00
parent 43ddcf23e4
commit 0d470d1f17
49 changed files with 48829 additions and 73 deletions
@@ -0,0 +1,306 @@
# 复杂驱动设计与集成指南
> **AUTOSAR CP Release 4.4.0**
>
> 原文:*Complex Driver design and integration guideline*(文档 ID 622
>
> 翻译状态:**已完成 v1**
>
> 对应原文 PDF`BSWGeneral/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 应包含**版本检查**和**编译时检查**:
```c
#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 接口
**示例**
```c
/* 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 驱动(`Mcu``Port``Dio``Adc` 等)。这**比直接访问硬件更可移植**。
#### 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 批量翻译*