# 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 章配置