Files
autosar_standard_spec_v4.4/Communication/AUTOSAR_SWS_TTCANInterface.md
T

301 lines
6.6 KiB
Markdown

# TTCAN 接口规范 (Specification of TTCAN Interface)
> **AUTOSAR CP Release 4.4.0**
> **文档 ID 444: AUTOSAR_SWS_TTCANInterface**
## 元信息
| 项目 | 内容 |
| --- | --- |
| 文档标题 | TTCAN 接口规范 |
| 文档所有者 | AUTOSAR |
| 文档责任方 | AUTOSAR |
| 文档标识号 | 444 |
| 文档状态 | 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 | 初版正式 |
---
## 目录
- [1. 介绍](#1-介绍)
- [2. 缩略语](#2-缩略语)
- [3. 相关文档](#3-相关文档)
- [4. 约束与假设](#4-约束与假设)
- [5. 与其他模块的依赖](#5-与其他模块的依赖)
- [6. 需求可追溯性](#6-需求可追溯性)
- [7. 功能规范](#7-功能规范)
- [8. API 规范](#8-api-规范)
- [9. 时序图](#9-时序图)
- [10. 配置规范](#10-配置规范)
---
## 1. 介绍
本规范规定了 AUTOSAR 基础软件模块 **TTCAN 接口** (CanIfTTCAN) 的功能、API 和配置。
TTCAN(Time Triggered CAN)是基于 ISO 11898-4 的时间触发 CAN 协议,提供确定性消息调度。
TTCAN 接口模块作为传统 CAN 接口的扩展,提供:
- 时间触发消息发送/接收
- 全局时间同步
- TTCAN 矩阵处理(主消息、TUR、参考消息)
---
## 2. 缩略语
| 缩略语 | 描述 |
| --- | --- |
| API | Application Programming Interface |
| BSW | Basic Software |
| CAN | Controller Area Network |
| CanIf | CAN Interface |
| DET | Default Error Tracer |
| ECU | Electronic Control Unit |
| L1 | TTCAN Level 1 |
| L2 | TTCAN Level 2 |
| MCAL | Microcontroller Abstraction Layer |
| TT | Time Triggered |
| TTCAN | Time Triggered CAN |
| TUR | Time Unit Ratio |
---
## 3. 相关文档
### 3.1 输入文档
- [1] Layered Software Architecture
- [2] General Requirements on Basic Software Modules
- [3] Specification of Standard Types
- [4] Specification of TTCAN Driver
- [5] Specification of CAN Interface
- [6] Specification of PDU Router
- [7] Specification of Default Error Tracer
- [8] Specification of Communication Stack Types
- [9] Basic Software Module Description Template
- [10] Specification of ECU Configuration
- [11] General Specification of Basic Software Modules
### 3.2 相关标准
- [12] ISO 11898-4:2004, Road vehicles -- Controller area network (CAN) -- Part 4: Time-triggered communication
### 3.3 相关规范
SWS BSW General [11] 适用。
---
## 4. 约束与假设
### 4.1 限制
TTCAN 接口扩展 CanIf;原 CanIf 所有限制适用。
### 4.2 适用车域
适用于使用 TTCAN 的车域。
---
## 5. 与其他模块的依赖
| 模块 | 依赖关系 |
| --- | --- |
| CanIf | TTCAN 接口扩展 CanIf 功能 |
| CanDrv | 实际硬件访问 |
| PduR | 上层路由 |
| Os | 时间同步 |
| Det | 错误上报 |
---
## 6. 需求可追溯性
| 需求 ID | 描述 | 满足者 |
| --- | --- | --- |
| SRS_BSW_00101 | 初始化 | SWS_CanIf_00010 |
| SRS_BSW_00407 | 版本信息 | SWS_CanIf_00159 |
| SRS_TTCAN_00010 | 时间触发发送 | SWS_CanIf_TTCAN_00010 |
> **[摘要]** 完整需求追溯表见原文 PDF 第 15-21 页。
---
## 7. 功能规范
### 7.1 TTCAN 概述
TTCAN 是 CAN 总线的扩展,提供 Time-Triggered 通信。两级:
- **L1 (Level 1)**:基本时间触发,无全局时间同步
- **L2 (Level 2)**:具有全局时间同步,可处理时间漂移
### 7.2 系统矩阵
TTCAN 通信基于 **系统矩阵**:
- 由 Master Message 启动
- 含 Reference Message 同步时间
- 多个 Time Window 提供发送/接收槽
### 7.3 全局时间同步
- 参考消息(Reference Message)提供全局时间
- TUR(Time Unit Ratio)调整本地时间
### 7.4 触发消息处理
#### 7.4.1 发送
- **[SWS_CanIf_TTCAN_00010]** ⌈基于发送触发,接口启动 PDU 发送。⌋
#### 7.4.2 接收
触发的接收时间窗口启动接收。
### 7.5 错误分类
#### 7.5.1 开发错误
| 错误名 | 错误码 | 含义 |
| --- | --- | --- |
| CANIF_E_PARAM_CANID | 0x10 | 无效 CAN ID |
| CANIF_E_PARAM_HOH | 0x12 | 无效 HOH |
| CANIF_E_PARAM_LPDU | 0x13 | 无效 L-PDU |
| CANIF_E_UNINIT | 0x30 | 未初始化 |
---
## 8. API 规范
### 8.1 导入类型
继承 CanIf 的导入类型,以及:
| 模块 | 头文件 | 导入类型 |
| --- | --- | --- |
| TTCAN | TTCAN.h | TTCAN_TimeType |
### 8.2 类型定义
#### 8.2.1 CanIfTT_ConfigType
```c
typedef struct CanIfTT_ConfigType CanIfTT_ConfigType;
```
### 8.3 函数定义
#### 8.3.1 CanIf_Init
```c
void CanIf_Init(const CanIf_ConfigType* ConfigPtr)
```
#### 8.3.2 CanIf_Transmit
```c
Std_ReturnType CanIf_Transmit(
PduIdType TxPduId,
const PduInfoType* PduInfoPtr
)
```
#### 8.3.3 CanIf_TTGetSyncState
```c
Std_ReturnType CanIf_TTGetSyncState(
uint8 Controller,
TTCAN_SyncStateType* SyncStatePtr
)
```
获取当前同步状态。
#### 8.3.4 CanIf_TTGetTimeValue
```c
Std_ReturnType CanIf_TTGetTimeValue(
uint8 Controller,
TTCAN_TimeType* TimeValuePtr
)
```
获取当前 TT 时间。
#### 8.3.5 CanIf_TTSetTimeBaseRef
```c
Std_ReturnType CanIf_TTSetTimeBaseRef(
uint8 Controller,
TTCAN_TimeType TimeBaseRef
)
```
#### 8.3.6 CanIf_TTSetMatrixCycleStart
```c
Std_ReturnType CanIf_TTSetMatrixCycleStart(
uint8 Controller,
TTCAN_TimeType MatrixCycleStart
)
```
#### 8.3.7 CanIf_TTReadTimeBaseRef
读取时间基准。
### 8.4 回调通知
#### 8.4.1 CanIf_TTRxIndication
TTCAN 时间触发接收指示。
#### 8.4.2 CanIf_TTTxConfirmation
TT 触发发送确认。
#### 8.4.3 CanIf_TTGlobalTimeSyncEvent
全局时间同步事件。
### 8.5 期望接口
#### 8.5.1 强制接口
- TTCAN_Transmit
- TTCAN_GetTime
- PduR_CanIfRxIndication
- Det_ReportError
---
## 9. 时序图
> **[摘要]** 详细时序图见原文 PDF 第 40-50 页。
---
## 10. 配置规范
### 10.1 容器与配置参数
#### 10.1.1 CanIfTT
TTCAN 接口扩展容器。
#### 10.1.2 CanIfTTGeneral
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| CanIfTTSupport | bool | 启用 TTCAN |
| CanIfTTGlobalTimeBase | float | 全局时基 |
#### 10.1.3 CanIfTTController
TTCAN 控制器配置。
#### 10.1.4 CanIfTTMessage
TTCAN 触发消息配置。
> **[摘要]** 完整配置详见原文 PDF 第 50-60 页。
---
## 翻译说明
- 本译本基于 AUTOSAR CP 4.4.0 的 TTCAN 接口规范 (Document ID 444,共 60 页)
- 摘要标记位置:第 6 章需求追溯、第 9 章时序图、第 10 章配置