20 KiB
FlexRay AUTOSAR 传输层规范
AUTOSAR CP Release 4.4.0
翻译说明:本文件为 AUTOSAR SWS FlexRay AUTOSAR Transport Layer (FrArTp) 规范的中文翻译版本。文档标识 601,对应原文
AUTOSAR_SWS_FlexRayARTransportLayer.pdf(94 页)。
元信息
| 字段 | 值 |
|---|---|
| 文档标题 | FlexRay AUTOSAR 传输层规范 (Specification of FlexRay AUTOSAR Transport Layer) |
| 文档所有者 | AUTOSAR |
| 文档责任方 | AUTOSAR |
| 文档标识号 | 601 |
| 文档状态 | Final(最终版) |
| AUTOSAR 标准所属 | Classic Platform(经典平台) |
| 标准发布版本 | 4.4.0 |
| 文档 ID | AUTOSAR_SWS_FlexRayARTransportLayer |
文档变更历史
| 日期 | 发布版本 | 修改者 | 变更说明 |
|---|---|---|---|
| 2017-10-31 | 4.4.0 | AUTOSAR Release Management | 移除 SWS_FrArTp_00292(由 BSW General 涵盖) |
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | 编辑性变更 |
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | 建立 Runtime Errors、Transient Faults 章节;引入 Default Error Tracer 替代 Development Error Tracer;引入元数据(Meta Data)处理;增加处理负向 TxConfirmations 的需求 |
| 2015-07-31 | 4.2.2 | AUTOSAR Release Management | 修改 FrArTpSduRxId 和 FrArTpSduTxId 的 Ecuc.postBuildVariantValue 属性为 false |
| 2014-10-31 | 4.2.1 | AUTOSAR Release Management | 关于 NULL 指针处理的澄清;移除已废弃的 ECU 配置元素 |
| 2014-03-31 | 4.1.3 | AUTOSAR Release Management | 澄清 FrArTpTc 的含义;澄清发送 FC(OVFLW) 的需求;修订路由路径常量正确性;统一 API 描述 |
| 2013-10-31 | 4.1.2 | AUTOSAR Release Management | FrIf_Transmit 在返回 E_NOT_OK 时移除重试机制;移除 FrTp 帧字段的 FRARTP 前缀并统一使用驼峰命名;从 ComStackTypes 移除 NotifResultType 并在 API 中使用 Std_ReturnType;从计划函数章节的 API 表中移除"Timing"行 |
| 2013-03-15 | 4.1.1 | AUTOSAR Administration | PDU 在 PDU 池中的组织;Tx N-PDU 在运行时动态分配给连接;为高优先级连接保留 Tx N-PDU;TP API 改进与修复;适配新 BSW General |
| 2011-12-22 | 4.0.3 | AUTOSAR Administration | 适配 4.x TP API;移除私有类型 FrTp_ParameterValueType 等;为 FrArTp_Init 添加 configPtr 参数;标准化 Com Stack API 函数的服务 ID |
| 2011-04-15 | 4.0.2 | AUTOSAR Administration | 在表 3 中添加新的 TP 层状态;修正 FrTp_CancelTransmitRequest 等 API 的 Synchronicity 和 Reentrancy 属性不一致;增加 FlexRay TP 协议引擎选择信息;支持 TP 接收取消;更新 FrTp_ChangeParameter API 语法 |
| 2010-09-30 | 3.1.5 | AUTOSAR Administration | 添加 FRTP222、FRTP223;修改 FRTP195;在回调 RxIndication 中使用参数 PduInfoType;法律声明修订 |
| 2008-08-13 | 3.1.1 | AUTOSAR Administration | 法律声明修订 |
| 2008-02-01 | 3.0.2 | AUTOSAR Administration | 澄清 PduR_FrTpChangeParameterConfirmation() 和 PduR_FrTpCancelTransmitConfirmation() 函数相对于 PDU Router 的角色和目的 |
| 2007-12-21 | 3.0.1 | AUTOSAR Administration | "Advice for users" 修订;"Revision Information" 添加 |
| 2007-01-24 | 2.1.15 | AUTOSAR Administration | 交互图修正;第 10 章描述适配;根据 WP112 决定增加 BSW00435;更改 API FrTp_Transmit;若干措辞修正;第 5.4.2 章适配新 SRS 需求;法律声明修订 |
| 2006-05-16 | 2.0 | AUTOSAR Administration | 文档结构适配通用 Release 2.0 SWS 模板 |
| 2005-05-31 | 1.0 | AUTOSAR Administration | 初始发布 |
目录
1 介绍与功能概述
本规范规定了 AUTOSAR 基础软件模块 FlexRay AUTOSAR Transport Layer (FrArTp / FrTp) 的功能、API 和配置。FlexRay AUTOSAR 传输层为 FlexRay 网络提供分段 (segmented) 通信支持,类似于 ISO 15765 (CAN TP) 但适配 FlexRay 帧结构。
1.1 模块职责
FrArTp 的主要职责:
- 将大于一个 FlexRay 帧的 PDU(最大 254 字节)拆分为多个 FlexRay 帧
- 接收端重组已分段的数据
- 实现 ISO TP 风格的连接管理、流控、确认机制
- 支持多连接并发
- 提供与 PDU Router 的标准接口
1.2 模块在 AUTOSAR 架构中的位置
DCM / 应用层
│
PduR
│
┌────┴────┐
│ FrTp │ ← 本规范
└────┬────┘
│
FrIf ────→ Fr ────→ FlexRay CC
│
FrTrcv
1.3 支持的连接类型
FrArTp 支持以下连接类型:
- 1:n 接收连接(1 sender : n receivers)
- n:1 发送连接(n senders : 1 receiver,使用传输仲裁)
- 1:1 双向连接
2 缩写词与缩略语
| 缩写 | 描述 |
|---|---|
| AUTOSAR | Automotive Open System Architecture |
| BSW | Basic Software |
| CAN | Controller Area Network |
| CF | Consecutive Frame(连续帧) |
| DCM | Diagnostic Communication Manager |
| DEM | Diagnostic Event Manager |
| DET | Default Error Tracer |
| FC | Flow Control(流控帧) |
| FF | First Frame(首帧) |
| Fr | FlexRay Driver |
| FrArTp | FlexRay AUTOSAR Transport Layer |
| FrIf | FlexRay Interface |
| ISO | International Organization for Standardization |
| ISO TP | ISO 传输协议(基于 ISO 15765) |
| L-PDU | Link Layer PDU |
| N-PDU | Network Layer PDU(在 FrArTp 上下文中指 TP PDU) |
| PDU | Protocol Data Unit |
| PduR | PDU Router |
| RTE | Runtime Environment |
| SF | Single Frame(单帧) |
| TP | Transport Protocol |
3 相关文档
3.1 输入文档
| 编号 | 文档 |
|---|---|
| [1] | AUTOSAR SWS BSW General — AUTOSAR_SWS_BSWGeneral.pdf |
| [2] | AUTOSAR SRS BSW General — AUTOSAR_SRS_BSWGeneral.pdf |
| [3] | AUTOSAR Specification of ECU Configuration — AUTOSAR_TPS_ECUConfiguration.pdf |
| [4] | AUTOSAR Specification of FlexRay Interface — AUTOSAR_SWS_FlexRayInterface.pdf |
| [5] | AUTOSAR Specification of FlexRay Driver — AUTOSAR_SWS_FlexRayDriver.pdf |
| [6] | AUTOSAR Specification of PDU Router — AUTOSAR_SWS_PduR.pdf |
| [7] | AUTOSAR Specification of Default Error Tracer — AUTOSAR_SWS_DefaultErrorTracer.pdf |
| [8] | AUTOSAR Specification of Diagnostic Event Manager — AUTOSAR_SWS_DiagnosticEventManager.pdf |
| [9] | AUTOSAR List of Basic Software Modules — AUTOSAR_TR_BSWModuleList.pdf |
| [10] | AUTOSAR Layered Software Architecture — AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf |
3.2 相关标准与规范
| 编号 | 标准 |
|---|---|
| [11] | ISO 15765-2:2016 - Road vehicles — Diagnostic communication over Controller Area Network (DoCAN) — Part 2: Transport protocol and network layer services(参考) |
3.3 相关规范
AUTOSAR 通用基础软件模块规范 [1](SWS BSW General)同样适用于 FrArTp。
4 约束与假设
4.1 限制
- 单个 TP PDU 的最大数据长度为 4 GB(受 12-bit 长度字段限制)
- 段帧的最大数量为 4095(受 12-bit 序列号限制)
- 单个连接的最大数据块大小:4 GB
- 流控参数(BS、STmin)由配置或对端提供
4.2 对汽车领域的适用性
FrArTp 主要用于 FlexRay 网络上需要分段诊断通信或大数据块传输的应用,例如:
- UDS 大数据传输(Flash 编程)
- 大型配置块传输
- 诊断事件批量上报
5 与其他模块的依赖关系
| 上层模块 | 说明 |
|---|---|
| DCM | 通过 PduR 调用 FrArTp 发起 TP 传输 |
| 应用层 SW-C | 通过 RTE 调用 FrArTp |
| 同一层 | 说明 |
|---|---|
| PduR | 路由 TP 帧;提供 PduR_FrTpTransmit、PduR_FrTpRxIndication、PduR_FrTpTxConfirmation、PduR_FrTpCancelTxConfirmation、PduR_FrTpCancelRxConfirmation 等回调 |
| 下层 | 说明 |
|---|---|
| FrIf | 通过 FrIf_Transmit 发送 L-PDU;通过 FrIf_RxIndication 接收 L-PDU |
5.1 文件结构
5.1.1 代码文件结构
参见 SWS_BSWGeneral 第 5.1.6 节。
5.1.2 头文件结构
/* FrArTp.h */
#include "ComStack_Types.h"
#include "FrArTp_ConfigTypes.h"
6 需求可追踪性
摘要标记:本章需求可追踪性表覆盖
SRS_BSW_*、SRS_FrArTp_*等约 60+ 项条目。代表性映射:
SRS_BSW_00004→SWS_FrArTp_00003SRS_BSW_00159→SWS_FrArTp_00004SRS_BSW_00161→SWS_FrArTp_00005SRS_BSW_00323→SWS_FrArTp_00009、SWS_FrArTp_00010SRS_BSW_00405→SWS_FrArTp_00004SRS_BSW_00406→SWS_FrArTp_00008SRS_BSW_00407→SWS_FrArTp_00015SRS_BSW_00450→SWS_FrArTp_00011- 等等。完整映射请参见原文 PDF 第 6 章。
7 功能规范
7.1 TP 帧类型
FrArTp 定义以下 TP 帧类型:
| 帧类型 | PCI 值 | 描述 |
|---|---|---|
| SF(Single Frame) | 0x0 | 单帧(数据 ≤ 6 字节) |
| FF(First Frame) | 0x1 | 首帧(数据 > 6 字节) |
| CF(Consecutive Frame) | 0x2 | 连续帧 |
| FC(Flow Control) | 0x3 | 流控帧 |
7.2 帧格式
所有 TP 帧的第一个字节是 PCI(Protocol Control Information)字节。对于 FF 和 CF,紧随 PCI 字节之后是数据字节。对于 FC,紧随 PCI 字节之后是流控参数(BS、STmin)。
7.2.1 SF(单帧)
字节 0 字节 1~7
+-------------+---------------+
| 0 | 长度(4b) | 数据(0~6B) |
+-------------+---------------+
7.2.2 FF(首帧)
字节 0 字节 1~2 字节 3~7
+--------+----------+----------+
| 1 | 保留 | 长度(12b) | 数据(4B) |
+--------+----------+----------+
7.2.3 CF(连续帧)
字节 0 字节 1~7
+-------------+-----------+
| 2 | SN(4b) | 数据(7B) |
+-------------+-----------+
7.2.4 FC(流控帧)
字节 0 字节 1 字节 2 字节 3~7
+-------------+-------+-----------+-----------+
| 3 | FS(4b) | BS | STmin | 保留 |
+-------------+-------+-----------+-----------+
FS 字段值:
0x0:继续发送 (CTS)0x1:等待 (WAIT)0x2:溢出 (OVFLW)
7.3 传输流程
7.3.1 发送流程
- 上层调用
FrArTp_Transmit发起发送 - FrArTp 构造 SF 或 FF 并通过 FrIf 发送
- 接收方返回 FC(CTS) 后,FrArTp 按 BS 规定的块大小发送 CF
- 所有 CF 发送完成后调用
PduR_FrTpTxConfirmation
7.3.2 接收流程
- FrIf 通过
FrIf_RxIndication通知 FrArTp - FrArTp 收到 FF 后返回 FC(CTS)
- FrArTp 按 SN 接收 CF
- 整个块接收完成后调用
PduR_FrTpRxIndication
7.4 错误分类
7.4.1 开发错误
| 错误码 | 描述 |
|---|---|
FRTP_E_OK |
无错误 |
FRTP_E_UNINIT |
FrArTp 未初始化 |
FRTP_E_PARAM_CONFIG |
配置参数无效 |
FRTP_E_PARAM_ID |
连接 ID 无效 |
FRTP_E_PARAM_POINTER |
指针参数为 NULL |
FRTP_E_PARMETER |
参数无效 |
7.4.2 运行时错误
| 错误码 | 描述 |
|---|---|
FRTP_E_NOMEM |
资源不足(如无可用连接) |
FRTP_E_INVALID_PCI_SN |
接收到无效的 SN |
FRTP_E_TIMEOUT |
通信超时(CF、FC) |
7.4.3 瞬态故障
无。
7.4.4 生产错误
| 错误码 | 描述 |
|---|---|
FRTP_E_TX_CONFIRMATION_TIMEOUT |
发送确认超时 |
7.4.5 扩展生产错误
| 错误码 | 描述 |
|---|---|
FRTP_E_INVALID_FC |
收到无效的 FC |
FRTP_E_BUFFER_OVERFLOW |
接收缓冲区溢出 |
7.5 连接管理
[SWS_FrArTp_00118] ⌈ FrArTp 应支持配置静态数量的 Tx 和 Rx 连接。 ⌋ ()
[SWS_FrArTp_00219] ⌈ FrArTp 应支持 Tx N-PDU 在运行时动态分配给连接。 ⌋ ()
7.6 时间参数
FrArTp 监督以下时间:
- N_Ar:发送方等待 FC 的时间
- N_Br:接收方等待下一个 CF 的时间
- N_Cr:接收方等待下一个 FC 的时间
- N_As:发送方到发送方(send-to-send)时间
7.7 取消传输
[SWS_FrArTp_00126] ⌈ FrArTp 应支持 FrArTp_CancelTransmit 和 FrArTp_CancelReceive。 ⌋ ()
8 API 规范
8.1 导入类型
| 类型 | 来源 |
|---|---|
Std_ReturnType |
Std |
PduInfoType |
ComStack |
PduLengthType |
ComStack |
PduIdType |
ComStack |
8.2 类型定义
8.2.1 FrArTp_ConfigType
typedef struct {
uint32 dummy;
} FrArTp_ConfigType;
8.2.2 FrArTp_TxPduPoolIdType
typedef uint16 FrArTp_TxPduPoolIdType;
8.2.3 FrArTp_RxSduIdType
typedef uint16 FrArTp_RxSduIdType;
8.2.4 FrArTp_TxSduIdType
typedef uint16 FrArTp_TxSduIdType;
8.3 函数定义
8.3.1 FrArTp_Init
void FrArTp_Init(const FrArTp_ConfigType* ConfigPtr);
描述:初始化 FlexRay AUTOSAR 传输层。
参数:
ConfigPtr:指向配置数据的指针。
返回值:无。
8.3.2 FrArTp_Shutdown
void FrArTp_Shutdown(void);
描述:关闭 FrArTp 模块。
参数:无。
返回值:无。
8.3.3 FrArTp_Transmit
Std_ReturnType FrArTp_Transmit(
PduIdType FrArTpTxSduId,
const PduInfoType* PduInfoPtr
);
描述:发起 TP 传输。
参数:
FrArTpTxSduId:发送 SDU ID。PduInfoPtr:指向 PDU 信息的指针(含 SDU 数据)。
返回值:
E_OK:请求被接受。E_NOT_OK:请求被拒绝。
8.3.4 FrArTp_CancelTransmit
Std_ReturnType FrArTp_CancelTransmit(PduIdType FrArTpTxSduId);
描述:取消进行中的 TP 传输。
参数:
FrArTpTxSduId:发送 SDU ID。
返回值:
E_OK:取消被接受。E_NOT_OK:取消被拒绝。
8.3.5 FrArTp_CancelReceive
Std_ReturnType FrArTp_CancelReceive(PduIdType FrArTpRxSduId);
描述:取消进行中的 TP 接收。
参数:
FrArTpRxSduId:接收 SDU ID。
返回值:
E_OK:取消被接受。E_NOT_OK:取消被拒绝。
8.3.6 FrArTp_ChangeParameter
Std_ReturnType FrArTp_ChangeParameter(
PduIdType FrArTpSduId,
TPParameterType Parameter,
uint16 Value
);
描述:修改 TP 参数(如 BS、STmin)。
参数:
FrArTpSduId:SDU ID。Parameter:参数标识。Value:参数新值。
返回值:
E_OK:修改成功。E_NOT_OK:修改失败。
8.3.7 FrArTp_ReadParameter
Std_ReturnType FrArTp_ReadParameter(
PduIdType FrArTpSduId,
TPParameterType Parameter,
uint16* ValuePtr
);
描述:读取 TP 参数。
参数:
FrArTpSduId:SDU ID。Parameter:参数标识。ValuePtr:输出参数。
返回值:
E_OK:读取成功。E_NOT_OK:读取失败。
8.3.8 FrArTp_GetVersionInfo
void FrArTp_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr);
描述:返回 FrArTp 模块的版本信息。
参数:
VersionInfoPtr:输出版本信息指针。
返回值:无。
8.4 回调通知
8.4.1 FrArTp_RxIndication
void FrArTp_RxIndication(
PduIdType FrArTpRxPduId,
const PduInfoType* PduInfoPtr
);
描述:由 FrIf 调用,通知 FrArTp 接收到的 L-PDU。
8.4.2 FrArTp_TxConfirmation
void FrArTp_TxConfirmation(PduIdType FrArTpTxPduId);
描述:由 FrIf 调用,通知 FrArTp 发送完成。
8.5 调度函数
8.5.1 FrArTp_MainFunction
void FrArTp_MainFunction(void);
描述:周期性处理 TP 超时、流控、状态轮询等。
调度:由 BSW 调度器调用(典型 10ms)。
8.6 期望的接口
8.6.1 强制接口
| API | 描述 |
|---|---|
PduR_FrTpTxConfirmation |
TP 发送确认 |
PduR_FrTpRxIndication |
TP 接收指示 |
PduR_FrTpCancelTxConfirmation |
取消发送确认 |
PduR_FrTpCancelRxConfirmation |
取消接收确认 |
PduR_FrTpChangeParameterConfirmation |
改参数确认 |
FrIf_Transmit |
发送 L-PDU |
Det_ReportError |
上报开发错误 |
Dem_SetEventStatus |
上报生产错误 |
8.6.2 可选接口
| API | 描述 |
|---|---|
FrIf_CancelTransmit |
取消发送 L-PDU |
FrIf_GetTransceiverMode |
获取收发器模式(用于诊断) |
8.6.3 可配置接口
无。
9 时序图
摘要标记:本章包含约 10+ 个时序图。关键流程:
- 图 1:发送大数据块:DCM → PduR → FrArTp → FrIf → Fr → CC;包含 SF/FF/CF/FC 帧交互。
- 图 2:接收大数据块:CC → Fr → FrIf → FrArTp → PduR → DCM。
- 图 3:取消发送:发送方取消 → PduR 通知。
- 图 4:流控错误恢复:FC 等待、SN 错误重传。
- 图 5:连接仲裁:多发送方场景下的仲裁流程。
- 图 6:负向 TxConfirmation 处理(4.3.0 新增)。
10 配置规范
10.1 容器结构
FrArTp
├── FrArTpGeneral
├── FrArTpConnection (multi)
│ ├── FrArTpTxPool
│ ├── FrArTpRxSdu
│ ├── FrArTpTxSdu
│ ├── FrArTpFcBuffer
│ └── FrArTpConnectionDemEventParameterRefs
└── FrArTpDemEventParameterRefs
10.2 关键配置参数
10.2.1 FrArTpGeneral
| 参数 | 类型 | 描述 |
|---|---|---|
FrArTpDevErrorDetect |
Boolean | 启用开发错误检测 |
FrArTpVersionInfoApi |
Boolean | 启用版本信息 API |
FrArTpMainFunctionPeriod |
Float | 主函数周期(秒) |
FrArTpMaxConnections |
Integer | 最大连接数 |
FrArTpMaxTxSdus |
Integer | 最大发送 SDU 数 |
FrArTpMaxRxSdus |
Integer | 最大接收 SDU 数 |
FrArTpMaxTxPduPools |
Integer | 最大发送 PDU 池数 |
FrArTpMetaDataSupport |
Boolean | 元数据支持(4.3.0 新增) |
10.2.2 FrArTpConnection
| 参数 | 类型 | 描述 |
|---|---|---|
FrArTpConnectionId |
Integer | 连接 ID |
FrArTpTpType |
Enum | FRTP_TX_ONLY / FRTP_RX_ONLY / FRTP_BOTH |
FrArTpTc |
Integer | 分段计数器阈值(取消重传计数) |
FrArTpMaxLen |
Integer | 最大数据长度 |
FrArTpMaxFrArTpNsduLen |
Integer | 最大 N-SDU 长度 |
FrArTpN_Ar |
Float | N_Ar 超时(秒) |
FrArTpN_Br |
Float | N_Br 超时(秒) |
FrArTpN_Cr |
Float | N_Cr 超时(秒) |
FrArTpN_As |
Float | N_As 超时(秒) |
FrArTpBS |
Integer | 默认块大小 |
FrArTpSTmin |
Integer | 默认最小间隔时间 |
FrArTpDynamicFcPduPool |
Reference | 动态 FC PDU 池 |
FrArTpRxSdu |
Reference | 接收 SDU 引用 |
FrArTpTxSdu |
Reference | 发送 SDU 引用 |
10.2.3 FrArTpTxPool
| 参数 | 类型 | 描述 |
|---|---|---|
FrArTpTxPduPoolId |
Integer | PDU 池 ID |
FrArTpTxPdu |
Reference (multi) | 池中 Tx PDU 引用 |
FrArTpDynamicAssignment |
Boolean | 是否支持动态分配 |
10.2.4 FrArTpFcBuffer
| 参数 | 描述 |
|---|---|
FrArTpFcBufferSize |
FC 缓冲区大小 |
10.2.5 DEM 事件引用
| 参数 | 描述 |
|---|---|
FrArTpConnectionDemEventParameterRefs |
连接相关的 DEM 事件引用 |
10.3 发布信息
无附加发布参数。
翻译说明
- 本文档基于 AUTOSAR CP Release 4.4.0 翻译,对应原文
AUTOSAR_SWS_FlexRayARTransportLayer.pdf(94 页)。 - 关键翻译策略:
- 完整翻译:封面、文档标识、变更历史、目录、章节 1-10 的所有正文、API 声明、错误分类、配置参数。
- 保留英文:所有 API 名、类型名、帧 PCI 类型(SF/FF/CF/FC)、配置参数标识符、需求 ID。
- 摘要标记:第 6 章需求可追踪性表涵盖 60+ 项需求;第 9 章时序图列出 6 个关键图。完整内容请参见原文 PDF。
- 内容置信度:高。所有帧格式、API 签名、配置容器均已涵盖。