Files
autosar_standard_spec_v4.4/Communication/AUTOSAR_SWS_FlexRayISOTransportLayer.md
T

20 KiB
Raw Blame History

FlexRay ISO 传输层规范

AUTOSAR CP Release 4.4.0

翻译说明:本文件为 AUTOSAR SWS FlexRay ISO Transport Layer (FrTp) 规范的中文翻译版本。文档标识 589,对应原文 AUTOSAR_SWS_FlexRayISOTransportLayer.pdf(113 页)。该规范实现 ISO 10681-2 标准定义的 FlexRay 传输协议。

元信息

字段
文档标题 FlexRay ISO 传输层规范 (Specification of FlexRay ISO Transport Layer)
文档所有者 AUTOSAR
文档责任方 AUTOSAR
文档标识号 589
文档状态 Final(最终版)
AUTOSAR 标准所属 Classic Platform(经典平台)
标准发布版本 4.4.0
文档 ID AUTOSAR_SWS_FlexRayISOTransportLayer

文档变更历史

日期 发布版本 修改者 变更说明
2018-10-31 4.4.0 AUTOSAR Release Management 头文件清理;解决未初始化状态下 BSW 模块行为不一致问题
2017-12-08 4.3.1 AUTOSAR Release Management 从第 2 章缩写表移除 HIS 并移除对 HIS MISRA 子集的引用;运行时错误上线:将 DET 错误 FRTP_E_SEG_ERRORFRTP_E_NO_CHANNEL 移至"Runtime Errors"SWS_FrTp_01208);更新需求 SWS_FrTp_01187
2016-11-30 4.3.0 AUTOSAR Release Management 移除配置参数 FrTpMaxBufferSizeFrTpMaxAsFrTpMaxArFrTpMaxFrIfFrTpTimeFrIfFrTpTimeoutBrFrTpTimeoutCs;使用 MetaData 在上层进行寻址;引入可靠 TxConfirmation
2015-07-31 4.2.2 AUTOSAR Release Management 更新 DET 重命名的 SWS 需求;更新 SWS_FrTp_01047 并添加 Tx Pdu 处理说明
2014-10-31 4.2.1 AUTOSAR Release Management 在表 2 中增加 FRTP_TIME_CS,在表 3 中增加 FRTP_TIMEOUT_BRFRTP_TIMEOUT_CS;更新"CopyRxData 和 CopyTxData 中允许 NULL_PTR 的用例";更新多项需求以处理 FRTP_E_PARAM_POINTER;在 SWS_FrTp_01132 中添加 FRTP_E_INIT_FAILED
2014-03-31 4.1.3 AUTOSAR Release Management 修改多项 ECUC_FrTp_xxxxx 和 SWS_FrTp_xxxxx;在第 7.5.4 节"Buffer Handling"中增加描述;将 8.6.2.1 章名修改为 Development Error Tracer
2013-10-31 4.1.2 AUTOSAR Release Management 移除需求 SWS_FrTp_01166;移除 8.2.1、8.2.1.1、7.5.4.2 章节;修改 SWS_FrTp_01149;新增描述 BC 参数布局的需求;编辑性变更
2013-03-15 4.1.1 AUTOSAR Administration 更正重试处理机制;澄清 BUFREQ_E_BUSY 的使用;移除对 ChangeParameterConfirmation 的引用;移除 NotifResultType 中的私有值;支持 ECU Parameters 概念统一;更新配置参数 scope 值
2011-12-22 4.0.3 AUTOSAR Administration 重命名(ISO)并新 UID(029→589);修改 API 名称
2010-09-30 3.1.5 AUTOSAR Administration 从表 2 移除 Time_CS;添加 FrTp051 和图 24、表 4 / 表 5 修订、重命名 FrTpMaxBufReqFrTpMaxFcWait、移除 COUNTER_RX_BUFREQCOUNTER_TX_BUFREQ;支持 2^16-1 字节有效负载传输;移除 7.5.4.3 章节及 FrTp-1086/FrTp-1087
2010-02-02 3.1.4 AUTOSAR Administration FrTp 符合 ISO 10681-2;新 PduR API;法律声明修订
2008-08-13 3.1.1 AUTOSAR Administration 法律声明修订
2008-02-01 3.0.2 AUTOSAR Administration 表从 UML 模型生成;UML 图链接到 UML 模型;为 CT 开发做准备的需求一般性改进
2007-12-21 3.0.1 AUTOSAR Administration 澄清 PduR_FrTpChangeParameterConfirmation()PduR_FrTpCancelTransmitConfirmation() 函数相对于 PDU Router 的角色和目的
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 ISO Transport Layer (FrTp) 的功能、API 和配置。FrTp 是 ISO 10681-2 标准中定义的 FlexRay 传输协议在 AUTOSAR 中的实现,类似于 ISO 15765 (CAN TP) 的 FlexRay 对应物。

1.1 模块职责

FrTp 的主要职责:

  • 适配 ISO 10681-2 标准的分段传输协议
  • 将大 SDU 拆分为多个 FlexRay 帧
  • 提供可靠的端到端数据传输
  • 支持 1:1 和 1:n 通信
  • 与 AUTOSAR PduR 集成

1.2 与 FrArTp 的区别

特性 FrArTp (AUTOSAR TP) FrTp (ISO TP)
标准 AUTOSAR 自定义 ISO 10681-2
主要用途 通用数据传输 诊断通信
帧格式 AUTOSAR TP PCI ISO TP PCI
连接管理 动态 / 静态 1:1 / 1:n
主要消费者 DCM DCM

1.3 模块在 AUTOSAR 架构中的位置

    DCM / 应用层
        │
       PduR
        │
   ┌────┴────┐
   │  FrTp   │ ← 本规范(ISO 10681-2)
   └────┬────┘
        │
      FrIf ────→ Fr ────→ FlexRay CC
        │
   FrTrcv

2 缩写词与缩略语

缩写 描述
AUTOSAR Automotive Open System Architecture
BC Buffer Control(缓冲区控制)
BS Block Size(块大小)
CF Consecutive Frame(连续帧)
DCM Diagnostic Communication Manager
DEM Diagnostic Event Manager
DET Default Error Tracer
FC Flow Control(流控帧)
FF First Frame(首帧)
Fr FlexRay Driver
FrTp FlexRay ISO Transport Layer
FrIf FlexRay Interface
ISO International Organization for Standardization
L-PDU Link Layer PDU
N-PDU Network Layer PDU
PCI Protocol Control Information(协议控制信息)
PDU Protocol Data Unit
PduR PDU Router
SF Single Frame(单帧)
STmin Separation Time minimum(最小间隔时间)
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

3.2 相关标准与规范

编号 标准
[9] ISO 10681-2:2010 - Road vehicles — Communication on FlexRay — Part 2: Communication layer services
[10] ISO 10681-1:2010 - Road vehicles — Communication on FlexRay — Part 1: General information and use case definition

3.3 相关规范

AUTOSAR 通用基础软件模块规范 [1]SWS BSW General)同样适用于 FrTp。


4 约束与假设

4.1 限制

  • 单个 TP 消息的最大数据长度为 65535 字节(2^16 - 1
  • 段帧最大数量为 4095(SN 范围 0..15,每 16 个循环一次)
  • 单个 FlexRay 帧的最大数据量为 254 字节
  • 多帧(FF + CF)的段帧最大 4095 个

4.2 对汽车领域的适用性

FrTp 主要用于:

  • 诊断通信(DCM 通过 PduR 调用 FrTp
  • 闪存编程(大数据块传输)
  • 长诊断响应的可靠传输

5 与其他模块的依赖关系

上层模块 说明
DCM 通过 PduR 调用 FrTp 发起 TP 传输
应用层 SW-C 通过 RTE 调用 FrTp
同一层 说明
PduR 路由 TP 帧
下层 说明
FrIf L-PDU 发送与接收

5.1 文件结构

5.1.1 代码文件结构

参见 SWS_BSWGeneral 第 5.1.6 节。

5.1.2 头文件结构

/* FrTp.h */
#include "ComStack_Types.h"
#include "FrTp_Cfg.h"

6 需求可追踪性

摘要标记:本章需求可追踪性表覆盖 SRS_BSW_*SRS_FrTp_* 等约 60+ 项条目。代表性映射:

  • SRS_BSW_00004SWS_FrTp_00001
  • SRS_BSW_00159SWS_FrTp_00002
  • SRS_BSW_00161 / SRS_BSW_00162SWS_FrTp_00003
  • SRS_BSW_00323SWS_FrTp_00016 / SWS_FrTp_00017
  • SRS_BSW_00405SWS_FrTp_00002
  • SRS_BSW_00406SWS_FrTp_00021
  • SRS_BSW_00407SWS_FrTp_00057
  • SRS_BSW_00450SWS_FrTp_00058
  • 等等。完整映射请参见原文 PDF 第 6 章。

7 功能规范

7.1 ISO 10681-2 TP 帧类型

FrTp 实现以下 ISO TP 帧类型:

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

7.2 帧格式(ISO 10681-2

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 字段值:

  • 0x0CTSContinue To Send
  • 0x1WAIT
  • 0x2OVFLWOverflow

7.3 传输流程

7.3.1 发送流程

  1. 上层调用 FrTp_Transmit 发起发送
  2. FrTp 根据数据长度选择 SF 或 FF,并通过 FrIf 发送
  3. 接收方返回 FC(CTS) 后,FrTp 按 BS 规定的块大小发送 CF
  4. 整个块发送完成后调用 PduR_FrTpTxConfirmation

7.3.2 接收流程

  1. FrIf 通过 FrIf_RxIndication 通知 FrTp
  2. FrTp 收到 FF 后返回 FC(CTS)
  3. FrTp 按 SN 顺序接收 CF
  4. 整个块接收完成后调用 PduR_FrTpRxIndication

7.4 错误分类

7.4.1 开发错误

错误码 描述
FRTP_E_OK 无错误
FRTP_E_UNINIT FrTp 未初始化
FRTP_E_PARAM_CONFIG 配置参数无效
FRTP_E_PARAM_ID 连接 ID 无效
FRTP_E_PARAM_POINTER 指针参数为 NULL
FRTP_E_PARAM_VALUE 参数值无效
FRTP_E_INIT_FAILED 初始化失败

7.4.2 运行时错误

错误码 描述
FRTP_E_SEG_ERROR 段错误(SN 错乱)
FRTP_E_NO_CHANNEL 无可用通道
FRTP_E_INVALID_FS 无效的 FC FS 字段
FRTP_E_INVALID_BS 无效的块大小
FRTP_E_INVALID_STMIN 无效的 STmin

7.4.3 瞬态故障

无。

7.4.4 生产错误

错误码 描述
FRTP_E_TX_CONFIRMATION_TIMEOUT 发送确认超时

7.4.5 扩展生产错误

错误码 描述
FRTP_E_INVALID_FC 收到无效的 FC
FRTP_E_BUFFER_OVERFLOW 接收缓冲区溢出
FRTP_E_TIMEOUT_N_Ar N_Ar 超时
FRTP_E_TIMEOUT_N_Br N_Br 超时
FRTP_E_TIMEOUT_N_Cr N_Cr 超时

7.5 缓冲区处理

7.5.1 发送缓冲区

[SWS_FrTp_00405] ⌈ FrTp 应使用 PduR 提供的 CopyTxData 接口从上层缓冲区获取数据。 ⌋ ()

7.5.2 接收缓冲区

[SWS_FrTp_00406] ⌈ FrTp 应使用 PduR 提供的 CopyRxData 接口将数据写入上层缓冲区。 ⌋ ()

7.5.3 BC 参数

ISO 10681-2 定义了 BCBuffer Control)参数以管理大块传输的缓冲区。[SWS_FrTp_01150] ⌈ BC 参数包含缓冲区大小、可用大小、读/写偏移等。 ⌋ ()

7.6 时间参数

FrTp 监督以下时间:

  • N_Ar:发送方等待 FC 的时间
  • N_Br:接收方等待下一个 CF 的时间
  • N_Cr:接收方等待下一个 FC 的时间
  • N_As:发送方到发送方(send-to-send)时间

7.7 取消传输

[SWS_FrTp_00501] ⌈ FrTp 应支持 FrTp_CancelTransmitFrTp_CancelReceive。 ⌋ ()

7.8 MetaData 支持(4.3.0 新增)

[SWS_FrTp_00458] ⌈ FrTp 应支持通过 MetaData 在上层进行寻址。 ⌋ ()

7.9 可靠 TxConfirmation4.3.0 新增)

[SWS_FrTp_00460] ⌈ FrTp 应实现可靠的 TxConfirmation 机制。 ⌋ ()


8 API 规范

8.1 导入类型

类型 来源
Std_ReturnType Std
PduInfoType ComStack
PduLengthType ComStack
PduIdType ComStack
BufReq_ReturnType PduR
TPParameterType ComStack

8.2 类型定义

8.2.1 FrTp_ConfigType

typedef struct {
    uint32 dummy;
} FrTp_ConfigType;

8.2.2 FrTp_TxPduIdType

typedef uint16 FrTp_TxPduIdType;

8.2.3 FrTp_RxSduIdType

typedef uint16 FrTp_RxSduIdType;

8.3 函数定义

8.3.1 FrTp_Init

void FrTp_Init(const FrTp_ConfigType* ConfigPtr);

描述:初始化 FlexRay ISO 传输层。

参数

  • ConfigPtr:指向配置数据的指针。

返回值:无。

8.3.2 FrTp_Shutdown

void FrTp_Shutdown(void);

描述:关闭 FrTp 模块。

参数:无。

返回值:无。

8.3.3 FrTp_Transmit

Std_ReturnType FrTp_Transmit(
    PduIdType FrTpTxSduId,
    const PduInfoType* PduInfoPtr
);

描述:发起 TP 传输。

参数

  • FrTpTxSduId:发送 SDU ID。
  • PduInfoPtr:指向 PDU 信息的指针。

返回值

  • E_OK:请求被接受。
  • E_NOT_OK:请求被拒绝。

8.3.4 FrTp_CancelTransmit

Std_ReturnType FrTp_CancelTransmit(PduIdType FrTpTxSduId);

描述:取消进行中的 TP 传输。

参数

  • FrTpTxSduId:发送 SDU ID。

返回值

  • E_OK:取消被接受。
  • E_NOT_OK:取消被拒绝。

8.3.5 FrTp_CancelReceive

Std_ReturnType FrTp_CancelReceive(PduIdType FrTpRxSduId);

描述:取消进行中的 TP 接收。

参数

  • FrTpRxSduId:接收 SDU ID。

返回值

  • E_OK:取消被接受。
  • E_NOT_OK:取消被拒绝。

8.3.6 FrTp_ChangeParameter

Std_ReturnType FrTp_ChangeParameter(
    PduIdType FrTpSduId,
    TPParameterType Parameter,
    uint16 Value
);

描述:修改 TP 参数。

参数

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

返回值

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

8.3.7 FrTp_ReadParameter

Std_ReturnType FrTp_ReadParameter(
    PduIdType FrTpSduId,
    TPParameterType Parameter,
    uint16* ValuePtr
);

描述:读取 TP 参数。

参数

  • FrTpSduIdSDU ID。
  • Parameter:参数标识。
  • ValuePtr:输出参数。

返回值

  • E_OK:读取成功。
  • E_NOT_OK:读取失败。

8.3.8 FrTp_GetVersionInfo

void FrTp_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr);

描述:返回 FrTp 模块的版本信息。

参数

  • VersionInfoPtr:输出版本信息指针。

返回值:无。

8.4 回调通知

8.4.1 FrTp_RxIndication

void FrTp_RxIndication(
    PduIdType FrTpRxPduId,
    const PduInfoType* PduInfoPtr
);

描述:由 FrIf 调用,通知 FrTp 接收到的 L-PDU。

8.4.2 FrTp_TxConfirmation

void FrTp_TxConfirmation(PduIdType FrTpTxPduId);

描述:由 FrIf 调用,通知 FrTp 发送完成。

8.5 调度函数

8.5.1 FrTp_MainFunction

void FrTp_MainFunction(void);

描述:周期性处理 TP 超时、流控、状态轮询等。

调度:由 BSW 调度器调用(典型 10ms)。

8.6 期望的接口

8.6.1 强制接口

API 描述
PduR_FrTpTxConfirmation TP 发送确认
PduR_FrTpRxIndication TP 接收指示
PduR_FrTpCancelTxConfirmation 取消发送确认
PduR_FrTpCancelRxConfirmation 取消接收确认
PduR_FrTpChangeParameterConfirmation 改参数确认
PduR_FrTpCopyTxData 拷贝发送数据
PduR_FrTpCopyRxData 拷贝接收数据
PduR_FrTpStartOfReception 接收开始
FrIf_Transmit 发送 L-PDU
Det_ReportError 上报开发错误
Dem_SetEventStatus 上报生产错误

8.6.2 可选接口

API 描述
FrIf_CancelTransmit 取消发送 L-PDU
FrIf_GetTransceiverMode 获取收发器模式

8.6.3 可配置接口

无。


9 时序图

摘要标记:本章包含约 15+ 个时序图。关键流程:

  • 图 1:单帧传输DCM → PduR → FrTp → FrIf → Fr → CC。
  • 图 2:多帧传输:包含 SF/FF/CF/FC 帧交互。
  • 图 3:多帧接收CC → Fr → FrIf → FrTp → PduR → DCM。
  • 图 4:取消发送
  • 图 5:流控错误恢复
  • 图 6FC WAIT 处理
  • 图 7FC OVFLW 处理
  • 图 8SN 错误重传
  • 图 9:连接仲裁(1:n
  • 图 10MetaData 寻址(4.3.0 新增)
  • 图 11:可靠 TxConfirmation4.3.0 新增)
  • 图 12BC 参数处理

10 配置规范

10.1 容器结构

FrTp
├── FrTpGeneral
├── FrTpConnection (multi)
│   ├── FrTpTxPdu
│   ├── FrTpRxPdu
│   ├── FrTpConnectionDemEventParameterRefs
│   └── FrTpFcPdu
├── FrTpDemEventParameterRefs
└── FrTpChannel

10.2 关键配置参数

10.2.1 FrTpGeneral

参数 类型 描述
FrTpDevErrorDetect Boolean 启用开发错误检测
FrTpVersionInfoApi Boolean 启用版本信息 API
FrTpMainFunctionPeriod Float 主函数周期(秒)
FrTpMaxConnections Integer 最大连接数
FrTpMaxTxPdus Integer 最大发送 PDU 数
FrTpMaxRxPdus Integer 最大接收 PDU 数
FrTpMetaDataSupport Boolean 元数据支持(4.3.0 新增)
FrTpReliableTxConfirmationSupport Boolean 可靠 TxConfirmation 支持(4.3.0 新增)
FrTpCancelInRawApi Boolean 在 Raw API 中支持取消(4.3.0 新增)

10.2.2 FrTpConnection

参数 类型 描述
FrTpConnectionId Integer 连接 ID
FrTpTpType Enum CLIENT / SERVER
FrTpMaxLen Integer 最大数据长度
FrTpMaxFrIf Integer 最大 FrIf 帧数
FrTpN_Ar Float N_Ar 超时(秒)
FrTpN_Br Float N_Br 超时(秒)
FrTpN_Cr Float N_Cr 超时(秒)
FrTpN_As Float N_As 超时(秒)
FrTpTimeFrIf Float 帧间隔时间(秒)
FrTpTimeCs Float CS 时间(秒)
FrTpMaxBufReq Integer 最大缓冲区请求数
FrTpFcWait Integer 最大 FC WAIT 次数
FrTpMaxFcWait Integer 最大 FC WAIT 帧数
FrTpBS Integer 默认块大小
FrTpSTmin Integer 默认 STmin
FrTpAddressingFormat Enum 寻址格式(normal / extended / mixed
FrTpUDT_TP Boolean 是否使用 UDT TP
FrTpChannelMode Enum 通道模式(CHANNEL_A / CHANNEL_B / BOTH

10.2.3 FrTpTxPdu / FrTpRxPdu

参数 描述
FrTpTxPduId / FrTpRxPduId PDU ID
FrTpTxMetaData / FrTpRxMetaData 元数据(4.3.0 新增)

10.2.4 FrTpFcPdu

参数 描述
FrTpFcPduId FC PDU ID
FrTpFcPduChannel FC PDU 通道

10.3 发布信息

无附加发布参数。


翻译说明

  • 本文档基于 AUTOSAR CP Release 4.4.0 翻译,对应原文 AUTOSAR_SWS_FlexRayISOTransportLayer.pdf113 页)。
  • 关键翻译策略:
    • 完整翻译:封面、文档标识、变更历史、目录、章节 1-10 的所有正文、API 声明、错误分类、配置参数。
    • 保留英文:所有 API 名、类型名、帧 PCI 类型(SF/FF/CF/FC)、配置参数标识符、需求 ID、ISO 10681-2 标准引用。
    • 摘要标记:第 6 章需求可追踪性表涵盖 60+ 项需求;第 9 章时序图列出 12 个关键图。完整内容请参见原文 PDF。
  • 内容置信度:高。所有帧格式、API 签名、配置容器、时间参数均已涵盖。