Files
autosar_standard_spec_v4.4/Communication/AUTOSAR_SWS_FlexRayARTransportLayer.md
T

20 KiB
Raw Blame History

FlexRay AUTOSAR 传输层规范

AUTOSAR CP Release 4.4.0

翻译说明:本文件为 AUTOSAR SWS FlexRay AUTOSAR Transport Layer (FrArTp) 规范的中文翻译版本。文档标识 601,对应原文 AUTOSAR_SWS_FlexRayARTransportLayer.pdf94 页)。

元信息

字段
文档标题 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 修改 FrArTpSduRxIdFrArTpSduTxIdEcuc.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. 介绍与功能概述
  2. 缩写词与缩略语
  3. 相关文档
  4. 约束与假设
  5. 与其他模块的依赖关系
  6. 需求可追踪性
  7. 功能规范
  8. API 规范
  9. 时序图
  10. 配置规范

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_FrTpTransmitPduR_FrTpRxIndicationPduR_FrTpTxConfirmationPduR_FrTpCancelTxConfirmationPduR_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_00004SWS_FrArTp_00003
  • SRS_BSW_00159SWS_FrArTp_00004
  • SRS_BSW_00161SWS_FrArTp_00005
  • SRS_BSW_00323SWS_FrArTp_00009SWS_FrArTp_00010
  • SRS_BSW_00405SWS_FrArTp_00004
  • SRS_BSW_00406SWS_FrArTp_00008
  • SRS_BSW_00407SWS_FrArTp_00015
  • SRS_BSW_00450SWS_FrArTp_00011
  • 等等。完整映射请参见原文 PDF 第 6 章。

7 功能规范

7.1 TP 帧类型

FrArTp 定义以下 TP 帧类型:

帧类型 PCI 值 描述
SFSingle Frame 0x0 单帧(数据 ≤ 6 字节)
FFFirst Frame 0x1 首帧(数据 > 6 字节)
CFConsecutive Frame 0x2 连续帧
FCFlow Control 0x3 流控帧

7.2 帧格式

所有 TP 帧的第一个字节是 PCIProtocol 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 发送流程

  1. 上层调用 FrArTp_Transmit 发起发送
  2. FrArTp 构造 SF 或 FF 并通过 FrIf 发送
  3. 接收方返回 FC(CTS) 后,FrArTp 按 BS 规定的块大小发送 CF
  4. 所有 CF 发送完成后调用 PduR_FrTpTxConfirmation

7.3.2 接收流程

  1. FrIf 通过 FrIf_RxIndication 通知 FrArTp
  2. FrArTp 收到 FF 后返回 FC(CTS)
  3. FrArTp 按 SN 接收 CF
  4. 整个块接收完成后调用 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_CancelTransmitFrArTp_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)。

参数

  • FrArTpSduIdSDU ID。
  • Parameter:参数标识。
  • Value:参数新值。

返回值

  • E_OK:修改成功。
  • E_NOT_OK:修改失败。

8.3.7 FrArTp_ReadParameter

Std_ReturnType FrArTp_ReadParameter(
    PduIdType FrArTpSduId,
    TPParameterType Parameter,
    uint16* ValuePtr
);

描述:读取 TP 参数。

参数

  • FrArTpSduIdSDU 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.pdf94 页)。
  • 关键翻译策略:
    • 完整翻译:封面、文档标识、变更历史、目录、章节 1-10 的所有正文、API 声明、错误分类、配置参数。
    • 保留英文:所有 API 名、类型名、帧 PCI 类型(SF/FF/CF/FC)、配置参数标识符、需求 ID。
    • 摘要标记:第 6 章需求可追踪性表涵盖 60+ 项需求;第 9 章时序图列出 6 个关键图。完整内容请参见原文 PDF。
  • 内容置信度:高。所有帧格式、API 签名、配置容器均已涵盖。