P1 batch translation: 94 PDFs (Communication + Diagnostics + SystemServices + MCAL)
This commit is contained in:
@@ -0,0 +1,372 @@
|
||||
# XCP 模块规范 (Specification of Module XCP)
|
||||
|
||||
> **AUTOSAR CP Release 4.4.0**
|
||||
> **文档 ID 412: AUTOSAR_SWS_XCP**
|
||||
|
||||
## 元信息
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 文档标题 | XCP 模块规范 |
|
||||
| 文档所有者 | AUTOSAR |
|
||||
| 文档责任方 | AUTOSAR |
|
||||
| 文档标识号 | 412 |
|
||||
| 文档状态 | Final |
|
||||
| 所属 AUTOSAR 标准 | Classic Platform |
|
||||
| 所属标准版本 | 4.4.0 |
|
||||
|
||||
## 文档变更历史
|
||||
|
||||
| 日期 | 版本 | 变更方 | 变更说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| 2018-10-31 | 4.4.0 | AUTOSAR Release Management | 细微更正 |
|
||||
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | 修正/澄清 |
|
||||
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | 以太网支持增强 |
|
||||
| 2015-07-31 | 4.2.2 | AUTOSAR Release Management | 编辑修正 |
|
||||
| 2014-10-31 | 4.2.1 | AUTOSAR Release Management | DAQ 增强 |
|
||||
| 2014-03-31 | 4.1.3 | AUTOSAR Release Management | 编辑变更 |
|
||||
| 2013-10-31 | 4.1.2 | AUTOSAR Release Management | 增加 XCP on UDP/TCP |
|
||||
| 2013-03-15 | 4.1.1 | AUTOSAR Administration | 引入 XCP |
|
||||
|
||||
---
|
||||
|
||||
## 目录
|
||||
|
||||
- [1. 介绍](#1-介绍)
|
||||
- [2. 缩略语](#2-缩略语)
|
||||
- [3. 相关文档](#3-相关文档)
|
||||
- [4. 约束与假设](#4-约束与假设)
|
||||
- [5. 与其他模块的依赖](#5-与其他模块的依赖)
|
||||
- [6. 需求可追溯性](#6-需求可追溯性)
|
||||
- [7. 功能规范](#7-功能规范)
|
||||
- [8. API 规范](#8-api-规范)
|
||||
- [9. 配置规范](#9-配置规范)
|
||||
|
||||
---
|
||||
|
||||
## 1. 介绍
|
||||
|
||||
本规范规定了 AUTOSAR 基础软件模块 **XCP** (Universal Calibration Protocol) 的功能、API 和配置。
|
||||
|
||||
XCP 是 ASAM 标准化的通用测量和标定协议,支持:
|
||||
- 测量(Measurement):读取 ECU 内部变量
|
||||
- 标定(Calibration):修改 ECU 标定参数
|
||||
- 数据采集(DAQ):周期或事件触发的数据流
|
||||
- 数据刺激(STIM):向 ECU 注入数据
|
||||
|
||||
XCP 支持多种传输层:
|
||||
- XCP on CAN
|
||||
- XCP on FlexRay
|
||||
- XCP on Ethernet (UDP/TCP)
|
||||
|
||||
---
|
||||
|
||||
## 2. 缩略语
|
||||
|
||||
| 缩略语 | 描述 |
|
||||
| --- | --- |
|
||||
| AUTOSAR | Automotive Open System Architecture |
|
||||
| A2L | ASAM 2MC 语言文件扩展 |
|
||||
| ASAM | Association for Standardization of Automation and Measuring Systems |
|
||||
| BSW | Basic Software |
|
||||
| CAN | Controller Area Network |
|
||||
| CanIf | CAN Interface |
|
||||
| CTO | Command Transfer Object |
|
||||
| DAQ | Data AcQuisition |
|
||||
| DTO | Data Transfer Object |
|
||||
| ECU | Electronic Control Unit |
|
||||
| FrIf | FlexRay Interface |
|
||||
| LPDU | Data Link Layer PDU |
|
||||
| MCD | Measurement Calibration and Diagnostics |
|
||||
| MISRA | Motor Industry Software Reliability Association |
|
||||
| ODT | Object Descriptor Table |
|
||||
| PDU | Protocol Data Unit |
|
||||
| SchM | Schedule Manager |
|
||||
| SRS | Software Requirements Specification |
|
||||
| STIM | Data Stimulation packet |
|
||||
| SW | Software |
|
||||
| SWS | Software Specification |
|
||||
| TCP/IP | Transmission Control Protocol / Internet Protocol |
|
||||
| TS | Time Stamp |
|
||||
| UDP/IP | User Datagram Protocol / Internet Protocol |
|
||||
| XCP | Universal Calibration Protocol |
|
||||
| ISR | Interrupt Service Routine |
|
||||
| DET | Default Error Tracer |
|
||||
|
||||
---
|
||||
|
||||
## 3. 相关文档
|
||||
|
||||
### 3.1 输入文档
|
||||
|
||||
- [0] Basic Software Module Description Template
|
||||
- [1] List of Basic Software Modules
|
||||
- [2] AUTOSAR Layered Software Architecture
|
||||
- [3] General Requirements on Basic Software Modules
|
||||
- [4] Specification of RTE (BSW Scheduler)
|
||||
- [5] Specification of ECU Configuration
|
||||
- [6] Specification of Memory Mapping
|
||||
- [7] Specification of FlexRay Interface
|
||||
- [8] Specification of CAN Interface
|
||||
- [9] Specification of Socket Adaptor
|
||||
- [10] Requirements on XCP Module
|
||||
- [11] AUTOSAR OS Specification
|
||||
- [12] General Specification of Basic Software Modules
|
||||
|
||||
### 3.1.1 相关标准
|
||||
|
||||
- [13] ASAM XCP – Part1 Overview, Version 1.1
|
||||
- [14] ASAM XCP – Part3 Transport Layer Specification XCP on CAN, Version 1.2
|
||||
- [15] ASAM XCP – Part3 Transport Layer Specification XCP on Ethernet (TCP_IP & UDP_IP), Version 1.1
|
||||
- [16] ASAM XCP – Part3 Transport Layer Specification XCP on FlexRay, Version 1.1
|
||||
|
||||
### 3.2 相关规范
|
||||
|
||||
SWS BSW General [12] 适用。
|
||||
|
||||
---
|
||||
|
||||
## 4. 约束与假设
|
||||
|
||||
### 4.1 限制
|
||||
|
||||
不在范围内的功能:
|
||||
- SET_DAQ_ID 命令(XCP CAN 传输层规范)
|
||||
- AUTOSAR RTE 当前不提供 XCP 直接通信 API
|
||||
- NAX 仅通过 ASAM 配置文件 A2L 配置
|
||||
- LIN 总线不支持 ASAM XCP
|
||||
|
||||
### 4.2 适用车域
|
||||
|
||||
n/a
|
||||
|
||||
---
|
||||
|
||||
## 5. 与其他模块的依赖
|
||||
|
||||
### 5.1 AUTOSAR RTE (BSW Scheduler)
|
||||
调度 XCP main 函数。
|
||||
|
||||
### 5.2 AUTOSAR FlexRay Interface
|
||||
通过 FlexRay 收发 XCP PDU。
|
||||
|
||||
### 5.3 AUTOSAR CAN Interface
|
||||
通过 CAN 收发 XCP PDU。
|
||||
|
||||
### 5.4 AUTOSAR SocketAdaptor
|
||||
通过 Ethernet 收发 XCP PDU。
|
||||
|
||||
### 5.5 AUTOSAR RTE
|
||||
用于将 ROM/FLASH 中的标定参数复制到 RAM(双指针方法)。
|
||||
|
||||
---
|
||||
|
||||
## 6. 需求可追溯性
|
||||
|
||||
| 需求 ID | 描述 | 满足者 |
|
||||
| --- | --- | --- |
|
||||
| SRS_BSW_00101 | 初始化 | SWS_Xcp_00010 |
|
||||
| SRS_BSW_00407 | 版本信息 | SWS_Xcp_00020 |
|
||||
| SRS_Xcp_00001 | XCP 协议 | SWS_Xcp_00050 |
|
||||
|
||||
> **[摘要]** 完整需求追溯表见原文 PDF 第 18-25 页。
|
||||
|
||||
---
|
||||
|
||||
## 7. 功能规范
|
||||
|
||||
### 7.1 XCP 协议概述
|
||||
|
||||
XCP 是基于 master-slave 的协议:
|
||||
- **Master**:外部工具(标定工具,如 INCA、CANape)
|
||||
- **Slave**:ECU 上的 XCP 模块
|
||||
|
||||
通信通过 CTO 和 DTO 进行:
|
||||
- **CTO** (Command Transfer Object):命令/响应
|
||||
- **DTO** (Data Transfer Object):DAQ/STIM 数据
|
||||
|
||||
### 7.2 标准 XCP 命令
|
||||
|
||||
| 命令 | 含义 |
|
||||
| --- | --- |
|
||||
| CONNECT | 建立 XCP 会话 |
|
||||
| DISCONNECT | 关闭会话 |
|
||||
| GET_STATUS | 查询状态 |
|
||||
| GET_ID | 获取标识 |
|
||||
| SET_MTA | 设置内存传输地址 |
|
||||
| UPLOAD | 上传内存 |
|
||||
| DOWNLOAD | 下载到内存 |
|
||||
| FREE_DAQ | 释放 DAQ 列表 |
|
||||
| ALLOC_DAQ | 分配 DAQ 列表 |
|
||||
| WRITE_DAQ | 写 DAQ 项 |
|
||||
| SET_DAQ_LIST_MODE | 配置 DAQ 模式 |
|
||||
| START_STOP_DAQ_LIST | 启动/停止 DAQ |
|
||||
| GET_DAQ_CLOCK | 获取 DAQ 时钟 |
|
||||
| PROGRAM_START | 开始编程 |
|
||||
| PROGRAM | 编程数据 |
|
||||
| PROGRAM_RESET | 编程后复位 |
|
||||
|
||||
### 7.3 DAQ 数据采集
|
||||
|
||||
#### 7.3.1 DAQ 配置
|
||||
- DAQ List
|
||||
- ODT (Object Descriptor Table)
|
||||
- ODT Entry
|
||||
|
||||
#### 7.3.2 DAQ 运行模式
|
||||
- 周期触发
|
||||
- 事件触发
|
||||
- 直接写
|
||||
|
||||
### 7.4 标定页切换
|
||||
|
||||
- Calibration Page:RAM 中的标定值
|
||||
- Working Page:工作页
|
||||
- Reference Page:参考页(ROM/Flash)
|
||||
|
||||
### 7.5 传输层
|
||||
|
||||
#### 7.5.1 XCP on CAN
|
||||
- DLC 通常为 8
|
||||
- 11 位或 29 位 CAN ID
|
||||
|
||||
#### 7.5.2 XCP on FlexRay
|
||||
- 使用 FlexRay 静态/动态段
|
||||
- 支持帧拆分
|
||||
|
||||
#### 7.5.3 XCP on Ethernet
|
||||
- UDP 或 TCP
|
||||
- 端口可配置
|
||||
|
||||
### 7.6 错误分类
|
||||
|
||||
#### 7.6.1 开发错误
|
||||
|
||||
| 错误名 | 错误码 | 含义 |
|
||||
| --- | --- | --- |
|
||||
| XCP_E_INIT_FAILED | 0x01 | 初始化失败 |
|
||||
| XCP_E_UNINIT | 0x02 | 未初始化 |
|
||||
| XCP_E_PARAM_POINTER | 0x03 | NULL 指针 |
|
||||
| XCP_E_INVALID_PDUID | 0x04 | 无效 PDU ID |
|
||||
|
||||
---
|
||||
|
||||
## 8. API 规范
|
||||
|
||||
### 8.1 导入类型
|
||||
|
||||
| 模块 | 头文件 | 导入类型 |
|
||||
| --- | --- | --- |
|
||||
| ComStack_Types | ComStack_Types.h | PduIdType, PduInfoType |
|
||||
| Std_Types | Std_Types.h | Std_ReturnType, Std_VersionInfoType |
|
||||
|
||||
### 8.2 类型定义
|
||||
|
||||
#### 8.2.1 Xcp_ConfigType
|
||||
```c
|
||||
typedef struct Xcp_ConfigType Xcp_ConfigType;
|
||||
```
|
||||
|
||||
### 8.3 函数定义
|
||||
|
||||
#### 8.3.1 Xcp_Init
|
||||
```c
|
||||
void Xcp_Init(const Xcp_ConfigType* Xcp_ConfigPtr)
|
||||
```
|
||||
| Service ID | 0x00 |
|
||||
| --- | --- |
|
||||
|
||||
#### 8.3.2 Xcp_GetVersionInfo
|
||||
```c
|
||||
void Xcp_GetVersionInfo(Std_VersionInfoType* versioninfo)
|
||||
```
|
||||
|
||||
#### 8.3.3 Xcp_Transmit
|
||||
```c
|
||||
Std_ReturnType Xcp_Transmit(
|
||||
PduIdType TxPduId,
|
||||
const PduInfoType* PduInfoPtr
|
||||
)
|
||||
```
|
||||
|
||||
#### 8.3.4 Xcp_MainFunction
|
||||
```c
|
||||
void Xcp_MainFunction(void)
|
||||
```
|
||||
|
||||
#### 8.3.5 Xcp_SetTransmissionMode
|
||||
```c
|
||||
void Xcp_SetTransmissionMode(
|
||||
NetworkHandleType Channel,
|
||||
Xcp_TransmissionModeType Mode
|
||||
)
|
||||
```
|
||||
|
||||
### 8.4 回调通知
|
||||
|
||||
#### 8.4.1 Xcp_RxIndication
|
||||
```c
|
||||
void Xcp_RxIndication(
|
||||
PduIdType RxPduId,
|
||||
const PduInfoType* PduInfoPtr
|
||||
)
|
||||
```
|
||||
|
||||
#### 8.4.2 Xcp_TxConfirmation
|
||||
```c
|
||||
void Xcp_TxConfirmation(PduIdType TxPduId)
|
||||
```
|
||||
|
||||
#### 8.4.3 Xcp_TriggerTransmit
|
||||
```c
|
||||
Std_ReturnType Xcp_TriggerTransmit(
|
||||
PduIdType TxPduId,
|
||||
PduInfoType* PduInfoPtr
|
||||
)
|
||||
```
|
||||
|
||||
### 8.5 期望接口
|
||||
|
||||
#### 8.5.1 强制接口
|
||||
- CanIf_Transmit / FrIf_Transmit / SoAd_IfTransmit
|
||||
- Det_ReportError
|
||||
|
||||
---
|
||||
|
||||
## 9. 配置规范
|
||||
|
||||
### 9.1 容器与配置参数
|
||||
|
||||
#### 9.1.1 Xcp
|
||||
根容器。
|
||||
|
||||
#### 9.1.2 XcpConfig
|
||||
配置集容器。
|
||||
|
||||
#### 9.1.3 XcpGeneral
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| XcpDevErrorDetect | bool | DET 启用 |
|
||||
| XcpVersionInfoApi | bool | 版本信息 API |
|
||||
| XcpMainFunctionPeriod | float | main 周期 |
|
||||
| XcpOnCanEnabled | bool | XCP on CAN 启用 |
|
||||
| XcpOnFrEnabled | bool | XCP on FlexRay 启用 |
|
||||
| XcpOnEthernetEnabled | bool | XCP on Ethernet 启用 |
|
||||
|
||||
#### 9.1.4 XcpDaqList
|
||||
DAQ 列表配置。
|
||||
|
||||
#### 9.1.5 XcpEvent
|
||||
事件配置(周期、信道等)。
|
||||
|
||||
#### 9.1.6 XcpSegment, XcpPage
|
||||
段和页配置(用于标定)。
|
||||
|
||||
> **[摘要]** 完整配置详见原文 PDF 第 50-60 页。
|
||||
|
||||
---
|
||||
|
||||
## 翻译说明
|
||||
|
||||
- 本译本基于 AUTOSAR CP 4.4.0 的 XCP 规范 (Document ID 412,共 62 页)
|
||||
- 摘要标记位置:第 6 章需求追溯、第 9 章配置
|
||||
Reference in New Issue
Block a user