Files
autosar_standard_spec_v4.4/Communication/AUTOSAR_SWS_FlexRayInterface.md
T

28 KiB
Raw Blame History

FlexRay 接口规范

AUTOSAR CP Release 4.4.0

翻译说明:本文件为 AUTOSAR SWS FlexRay Interface (FrIf) 规范的中文翻译版本。文档标识 045,对应原文 AUTOSAR_SWS_FlexRayInterface.pdf164 页)。FrIf 是 AUTOSAR 中 FlexRay 协议栈的核心抽象层。

元信息

字段
文档标题 FlexRay 接口规范 (Specification of FlexRay Interface)
文档所有者 AUTOSAR
文档责任方 AUTOSAR
文档标识号 045
文档状态 Final(最终版)
AUTOSAR 标准所属 Classic Platform(经典平台)
标准发布版本 4.4.0
文档 ID AUTOSAR_SWS_FlexRayInterface

文档变更历史(摘要)

发布版本 主要变更
4.4.0 引入 BusMirror 概念;多核支持;头文件清理;多实例使用 shortname
4.3.1 编辑性变更;与 DEM/DET 概念一致
4.3.0 API 统一;可靠的 TxConfirmation 引入;TriggerTransmit 更新
4.2.2 澄清 FrIfPassiveMode;扩展生产错误章节重做
4.2.1 移除冗余需求;改进文档;提高配置参数描述一致性
4.1.3 修改 FrIfBufferReconfig;移除冗余需求;为 Fr_GetVersionInfo 引入 Fr_GeneralTypes
4.1.2 修订生产错误处理;修订启动 / 同步时序章节
4.1.1 改进了大量需求的描述和分类
4.0.3 增加多通道唤醒;增加多 CC 支持的描述
3.1.5 支持 FlexRay 协议 3.0;接收 FIFO;取消发送
3.1.4 增强对 POC 状态机的支持;任务 1.1 兼容;新配置参数
3.1.1 法律声明修订
3.0.2 API 与 BSW General 一致;改进 EIRA / ERA
3.0.1 初始 Release

完整变更历史请参见原文 PDF 第 2 页(约 16+ 条记录)。

目录

  1. 介绍与功能概述
  2. 缩写词与缩略语
  3. 相关文档
  4. 约束与假设
  5. 与其他模块的依赖关系
  6. 需求可追踪性
  7. 功能规范
  8. API 规范
  9. 时序图
  10. 配置规范

1 介绍与功能概述

本规范规定了 AUTOSAR 基础软件模块 FlexRay Interface (FrIf) 的功能、API 和配置。FrIf 是 FlexRay 协议栈的核心抽象层,位于上层(COM、DCM、PduR 等)和下层(FlexRay Driver, FlexRay Transceiver Driver)之间。

1.1 模块职责

FrIf 的主要职责:

  • 抽象不同的 FlexRay 控制器硬件
  • 实现多 CC 协调
  • 提供统一的 FlexRay API 给上层
  • 处理与 Fr、FrTrcv 的多对一映射
  • 实现 FlexRay 协议栈的 buffer / scheduling 抽象
  • 支持即时缓冲区管理(Immediate Buffer

1.2 模块在 AUTOSAR 架构中的位置

        COM / DCM / 应用层 / PduR
                 │
                 │ FrIf API
                 │
              ┌──┴──┐
              │ FrIf│ ← 本规范(FlexRay Interface
              └──┬──┘
                 │
       ┌─────────┼─────────┐
       │         │         │
    ┌──┴──┐  ┌──┴──┐  ┌──┴──┐
    │ Fr  │  │ Fr  │  │ FrTrcv│
    │ CC0 │  │ CC1 │  │       │
    └─────┘  └─────┘  └───────┘

图 1 FrIf 在 FlexRay 协议栈中的位置

FrIf 位于通信服务层(上层)和 ECU 抽象层(下层)之间。多个 Fr(FlexRay Driver)实例对应一个 FrIf 实例,每个 FrIf 实例对应一个 FlexRay 集群。

1.3 关键概念

1.3.1 集群(Cluster

一个 FlexRay 集群由 1..N 个 FlexRay 节点(ECU)组成。每个 FlexRay 集群对应一个 FrIf 实例。

1.3.2 FlexRay 协议栈分层

   ┌──────────────────────────────────┐
   │  Communication Services (COM,    │
   │  PduR, NM, DCM, FrTp, FrNm...)  │
   ├──────────────────────────────────┤
   │  FlexRay Interface (FrIf)        │ ← 本规范
   ├──────────────────────────────────┤
   │  FlexRay Driver (Fr)             │
   │  FlexRay Transceiver (FrTrcv)    │
   ├──────────────────────────────────┤
   │  Hardware (FlexRay CC,           │
   │  Transceiver, Bus)               │
   └──────────────────────────────────┘

1.3.3 Job List(任务列表)

FrIf 实现 job list 来调度 FlexRay 任务。Job 包含:

  • TX job:在配置的 FlexRay 槽中发送 L-PDU
  • RX job:在配置的 FlexRay 槽中接收 L-PDU
  • Startup job:配置 FlexRay 启动
  • State change job:处理 POC 状态变化

1.3.4 Immediate Buffer

FrIf 提供立即缓冲区(Immediate Buffer)机制,允许在通信周期内立即发送数据,而无需等到下一个静态槽。

1.3.5 双通道集群

FrIf 支持 FlexRay 双通道集群(A 和 B),可以:

  • 单通道节点(仅 A 或 B
  • 双通道节点(A + B

1.3.6 多核支持(4.4.0 增强)

[SWS_FrIf_00700] ⌈ FrIf 应支持将不同 CC 实例分配到不同核。 ⌋ ()


2 缩写词与缩略语

缩写 描述
API Application Program Interface
AUTOSAR Automotive Open System Architecture
BSW Basic Software
CC Communication Controller
CHI Controller Host Interface
ComM Communication Manager
DEM Diagnostic Event Manager
DET Default Error Tracer
EIRA External Incoming Request Aggregated(外部传入请求聚合)
ERA External Request Aggregated(外部请求聚合)
Fr FlexRay Driver
FrIf FlexRay Interface
FrNm FlexRay Network Management
FrTrcv FlexRay Transceiver Driver
L-PDU Link Layer PDU
NM Network Management
PDU Protocol Data Unit
POC Protocol Operation Control
PNC Partial Network Cluster
RTE Runtime Environment
RX Reception
TX Transmission
WUP Wake-Up Pattern

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 Driver — AUTOSAR_SWS_FlexRayDriver.pdf
[5] AUTOSAR Specification of FlexRay Transceiver Driver — AUTOSAR_SWS_FlexRayTransceiverDriver.pdf
[6] AUTOSAR Specification of FlexRay State Manager — AUTOSAR_SWS_FlexRayStateManager.pdf
[7] AUTOSAR Specification of FlexRay Network Management — AUTOSAR_SWS_FlexRayNetworkManagement.pdf
[8] AUTOSAR Specification of PDU Router — AUTOSAR_SWS_PduR.pdf
[9] AUTOSAR Specification of COM Manager — AUTOSAR_SWS_ComManager.pdf
[10] AUTOSAR Specification of COM — AUTOSAR_SWS_COM.pdf
[11] AUTOSAR Specification of Default Error Tracer — AUTOSAR_SWS_DefaultErrorTracer.pdf
[12] AUTOSAR Specification of Diagnostic Event Manager — AUTOSAR_SWS_DiagnosticEventManager.pdf
[13] AUTOSAR Specification of ECU State Manager — AUTOSAR_SWS_EcuM.pdf
[14] AUTOSAR Specification of BSW Mode Manager — AUTOSAR_SWS_BswModeManager.pdf
[15] AUTOSAR Specification of FlexRay ISO Transport Layer — AUTOSAR_SWS_FlexRayISOTransportLayer.pdf
[16] AUTOSAR Specification of FlexRay AUTOSAR Transport Layer — AUTOSAR_SWS_FlexRayARTransportLayer.pdf

3.2 相关标准与规范

编号 标准
[17] FlexRay Communications System Protocol Specification Version 3.0
[18] FlexRay Communications System Protocol Specification Version 2.1 Rev A

3.3 相关规范

FrIf 是 FlexRay 协议栈的核心模块,密切依赖 Fr 和 FrTrcv。[SWS_FrIf_00002] ⌈ FrIf 应通过 [4] 中定义的 API 与 Fr 通信。 ⌋ ()


4 约束与假设

4.1 限制

  • 单个 FrIf 实例最多支持 4 个 FlexRay CC(受 2-bit 索引限制)。
  • 双通道集群最多 2 个 CC(每通道一个)。
  • 即时缓冲区的大小受 FlexRay 帧时间限制。
  • Job list 必须预编译配置。

4.2 对汽车领域的适用性

FrIf 适用于所有使用 FlexRay 通信的汽车 ECU。


5 与其他模块的依赖关系

5.1 与 FlexRay DriverFr)的关系

FrIf 调用 Fr 提供的 API 来:

  • 初始化 CC
  • 启动 / 停止通信
  • 启动 coldstart
  • 设置 wakeup channel
  • 发送 WUP
  • 读取 POC 状态
  • 发送 / 接收 L-PDU
  • 启用 / 禁用 L-PDU
  • 取消发送
  • FIFO 接收

Fr 通过回调通知 FrIf

  • TX confirmation
  • RX indication
  • POC 状态变化
  • Wakeup 中断
  • 周期开始

5.2 与 FlexRay Transceiver DriverFrTrcv)的关系

FrIf 调用 FrTrcv 提供的 API 来:

  • 设置 / 读取收发器模式
  • 获取唤醒原因
  • 清除唤醒状态
  • 检查唤醒中断
  • 获取收发器错误(Active Star
  • 启用 / 禁用分支(Active Star

FrTrcv 通过回调通知 FrIf

  • 收发器唤醒

5.3 与通信管理器(ComM)的关系

FrIf 接收 ComM 的网络模式请求(无 ComM API 直接调用;通过 FrSM 间接)。

5.4 与 BswM 的关系

FrIf 通过 BswM 通知 FlexRay 状态变化(通过 FrSM)。

5.5 与 EcuM 的关系

EcuM 调用 FrIf_Init 完成 FrIf 初始化。

5.6 与上层模块(COM、PduR、DCM、FrTp、FrNm)的关系

  • COM 通过 PduR 路由 I-PDU
  • PduR 调用 FrIf 的 TX API 发送 L-PDU;通过 RX 回调接收 L-PDU
  • DCM 通过 PduR 访问 FrIf(用于 TP
  • FrTp 通过 PduR 访问 FrIf
  • FrNm 通过 PduR 访问 FrIf

5.7 文件结构

5.7.1 代码文件结构

参见 SWS_BSWGeneral 第 5.1.6 节。

5.7.2 头文件结构

/* FrIf.h */
#include "Fr_GeneralTypes.h"     /* 共享的 FlexRay 通用类型 */
#include "FrIf_ConfigTypes.h"    /* 工具生成的配置类型 */

[SWS_FrIf_00710] ⌈ 头文件 FrIf.h 应包含一个软件和规范版本号。 ⌋ ()


6 需求可追踪性

摘要标记:本章需求可追踪性表覆盖 SRS_BSW_*SRS_FlexRay_*SRS_FrIf_* 等约 200+ 项条目(FrIf 是 FlexRay 协议栈的核心,需求条目最多)。代表性映射:

  • SRS_BSW_00004SWS_FrIf_00006
  • SRS_BSW_00159SWS_FrIf_00007
  • SRS_BSW_00161 / SRS_BSW_00162SWS_FrIf_00008
  • SRS_BSW_00323SWS_FrIf_00018 / SWS_FrIf_00019 / SWS_FrIf_00020
  • SRS_BSW_00369SWS_FrIf_00022
  • SRS_BSW_00405SWS_FrIf_00007
  • SRS_BSW_00406SWS_FrIf_00023 / SWS_FrIf_00024 / SWS_FrIf_00025
  • SRS_BSW_00407SWS_FrIf_00028
  • SRS_BSW_00450SWS_FrIf_00029
  • SRS_FlexRay_*SWS_FrIf_*(约 50 项 FlexRay SRS
  • 等等。完整映射请参见原文 PDF 第 6 章(约 30+ 页)。

7 功能规范

7.1 FrIf 状态机

[SWS_FrIf_00060] ⌈ FrIf 应对每个 CC 维护一个状态机,反映其 POC 状态。 ⌋ ()

FrIf 状态:

  • FRIF_STATE_UNINIT:未初始化
  • FRIF_STATE_INIT:已初始化
  • FRIF_STATE_RUNNING:运行中
  • FRIF_STATE_BUS_OFF:总线关闭
  • FRIF_STATE_HALT:停止

7.2 Job List

FrIf 通过 job list 调度 FlexRay 操作。Job 包含:

  • 绝对时间点(FlexRay 周期 + 槽)
  • 任务类型(TX、RX、Startup、状态变化等)
  • 关联的 L-PDU / FIFO

[SWS_FrIf_00080] ⌈ Job list 应在配置时静态定义。 ⌋ ()

7.3 数据传输(TX / RX

7.3.1 发送

[SWS_FrIf_00100] ⌈ 发送流程:上层 → FrIf_Transmit → 写入 L-PDU 缓冲 → 在配置的槽中发送。 ⌋ ()

7.3.2 接收

[SWS_FrIf_00120] ⌈ 接收流程:CC 接收 → FrIf 复制到 L-PDU 缓冲 → 通知上层(RX indication)。 ⌋ ()

7.4 即时缓冲区(Immediate Buffer

[SWS_FrIf_00140] ⌈ FrIf 应支持立即缓冲区的准备、重新配置和禁用。 ⌋ ()

即时缓冲区 API

  • FrIf_PrepareLPdu:准备 LPdu
  • FrIf_ReconfigLPdu:重新配置 LPdu
  • FrIf_DisableLPdu:禁用 LPdu

7.5 双通道支持

[SWS_FrIf_00160] ⌈ FrIf 应支持双通道集群。 ⌋ ()

7.6 启动同步

[SWS_FrIf_00180] ⌈ FrIf 应支持 FlexRay 启动同步。 ⌋ ()

7.7 唤醒支持

[SWS_FrIf_00200] ⌈ FrIf 应支持主动和被动唤醒。 ⌋ ()

7.8 错误分类

7.8.1 开发错误

错误码 描述
FRIF_E_NO_ERROR 无错误
FRIF_E_UNINIT FrIf 未初始化
FRIF_E_CLUSTER_IDX 集群索引无效
FRIF_E_TRCV_IDX 收发器索引无效
FRIF_E_LPDU_IDX L-PDU 索引无效
FRIF_E_JOB_IDX Job 索引无效
FRIF_E_FIFO_IDX FIFO 索引无效
FRIF_E_INIT_FAILED 初始化失败
FRIF_E_INV_FRAMELIST_SIZE 帧列表大小无效
FRIF_E_INV_FRAMELIST_OFFSET 帧列表偏移无效
FRIF_E_INV_CTRL_IDX 控制器索引无效
FRIF_E_INV_DATA_LENGTH 数据长度无效
FRIF_E_INV_POINTER 指针参数为 NULL
FRIF_E_INV_FIFO_IDX FIFO 索引无效
FRIF_E_INV_BUFF_IDX 缓冲区索引无效
FRIF_E_INV_CHL_IDX 通道索引无效

7.8.2 运行时错误

错误码 描述
FRIF_E_TRCV_NOT_STANDBY 收发器未在 STANDBY 模式

7.8.3 瞬态故障

无。

7.8.4 生产错误

错误码 描述
FRIF_E_BUS_ERROR FlexRay 总线错误
FRIF_E_LOSS_OF_SYNC 同步丢失
FRIF_E_STARTUP_FAILED 启动失败
FRIF_E_CC_ERROR FlexRay CC 错误

7.8.5 扩展生产错误

无。

7.9 Multi-PDU

[SWS_FrIf_00240] ⌈ FrIf 应支持在单个 FlexRay 槽中包含多个 PDU。 ⌋ ()

7.10 FIFO 接收

[SWS_FrIf_00260] ⌈ FrIf 应支持通过 FIFO 接收消息。 ⌋ ()

7.11 取消发送

[SWS_FrIf_00280] ⌈ FrIf 应支持取消已排队的 L-PDU 发送。 ⌋ ()

7.12 可配置回调

FrIf 支持可配置回调函数(如 BswM 通知、错误处理等)。

7.13 BusMirror4.4.0 新增)

[SWS_FrIf_00720] ⌈ FrIf 应支持 BusMirror 概念。 ⌋ ()

7.14 可靠 TxConfirmation4.3.0 增强)

[SWS_FrIf_00721] ⌈ FrIf 应支持可靠 TxConfirmation。 ⌋ ()


8 API 规范

8.1 导入类型

类型 来源
Std_ReturnType Std
Std_VersionInfoType Std
PduInfoType ComStack
PduLengthType ComStack
PduIdType ComStack
Fr_POCStateType Fr_GeneralTypes
FrIf_StateType FrIf
Dem_EventIdType Dem
Dem_EventStatusType Dem

8.2 类型定义

8.2.1 FrIf_ConfigType

typedef struct {
    uint32 dummy;
} FrIf_ConfigType;

8.2.2 FrIf_StateType

typedef enum {
    FRIF_STATE_UNINIT = 0,
    FRIF_STATE_INIT,
    FRIF_STATE_RUNNING,
    FRIF_STATE_BUS_OFF,
    FRIF_STATE_HALT
} FrIf_StateType;

8.2.3 FrIf_ChannelType

typedef enum {
    FRIF_CHANNEL_A = 0,
    FRIF_CHANNEL_B = 1
} FrIf_ChannelType;

8.2.4 FrIf_TriggeredTransmitModeType

typedef enum {
    FRIF_TRIGGERED_TRANSMIT_OFF = 0,
    FRIF_TRIGGERED_TRANSMIT_MIXED,
    FRIF_TRIGGERED_TRANSMIT_ON
} FrIf_TriggeredTransmitModeType;

8.3 函数定义

8.3.1 FrIf_Init

void FrIf_Init(const FrIf_ConfigType* ConfigPtr);

描述:初始化 FrIf。

参数

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

返回值:无。

8.3.2 FrIf_ControllerInit

Std_ReturnType FrIf_ControllerInit(uint8 FrIf_CtrlIdx);

描述:初始化 FrIf 中的指定 CC。

参数

  • FrIf_CtrlIdxCC 索引。

返回值

  • E_OK:初始化成功。
  • E_NOT_OK:初始化失败。

8.3.3 FrIf_StartCommunication

Std_ReturnType FrIf_StartCommunication(uint8 FrIf_CtrlIdx);

描述:启动指定 CC 的通信。

参数

  • FrIf_CtrlIdxCC 索引。

返回值

  • E_OK:启动成功。
  • E_NOT_OK:启动失败。

8.3.4 FrIf_AllowColdstart

Std_ReturnType FrIf_AllowColdstart(uint8 FrIf_CtrlIdx);

描述:允许 CC 参与冷启动。

参数

  • FrIf_CtrlIdxCC 索引。

返回值

  • E_OK:允许成功。
  • E_NOT_OK:允许失败。

8.3.5 FrIf_HaltCommunication

Std_ReturnType FrIf_HaltCommunication(uint8 FrIf_CtrlIdx);

描述:停止 CC 通信。

参数

  • FrIf_CtrlIdxCC 索引。

返回值

  • E_OK:停止成功。
  • E_NOT_OK:停止失败。

8.3.6 FrIf_Transmit

Std_ReturnType FrIf_Transmit(
    PduIdType FrIf_TxPduId,
    const PduInfoType* PduInfoPtr
);

描述:将 L-PDU 排队等待发送。

参数

  • FrIf_TxPduIdTX L-PDU ID。
  • PduInfoPtrPDU 信息。

返回值

  • E_OK:排队成功。
  • E_NOT_OK:排队失败。

8.3.7 FrIf_CancelTransmit

Std_ReturnType FrIf_CancelTransmit(
    PduIdType FrIf_TxPduId
);

描述:取消 L-PDU 发送。

参数

  • FrIf_TxPduIdTX L-PDU ID。

返回值

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

8.3.8 FrIf_PrepareLPdu

Std_ReturnType FrIf_PrepareLPdu(
    uint8 FrIf_CtrlIdx,
    PduIdType FrIf_LPduIdx
);

描述:为 L-PDU 准备立即缓冲区。

参数

  • FrIf_CtrlIdxCC 索引。
  • FrIf_LPduIdxL-PDU 索引。

返回值

  • E_OK:准备成功。
  • E_NOT_OK:准备失败。

8.3.9 FrIf_ReconfigLPdu

Std_ReturnType FrIf_ReconfigLPdu(
    uint8 FrIf_CtrlIdx,
    PduIdType FrIf_LPduIdx
);

描述:重新配置 L-PDU。

参数

  • FrIf_CtrlIdxCC 索引。
  • FrIf_LPduIdxL-PDU 索引。

返回值

  • E_OK:重新配置成功。
  • E_NOT_OK:重新配置失败。

8.3.10 FrIf_DisableLPdu

Std_ReturnType FrIf_DisableLPdu(
    uint8 FrIf_CtrlIdx,
    PduIdType FrIf_LPduIdx
);

描述:禁用 L-PDU。

参数

  • FrIf_CtrlIdxCC 索引。
  • FrIf_LPduIdxL-PDU 索引。

返回值

  • E_OK:禁用成功。
  • E_NOT_OK:禁用失败。

8.3.11 FrIf_GetPOCStatus

Std_ReturnType FrIf_GetPOCStatus(
    uint8 FrIf_CtrlIdx,
    Fr_POCStateType* FrIf_POCStatePtr
);

描述:获取 POC 状态。

参数

  • FrIf_CtrlIdxCC 索引。
  • FrIf_POCStatePtr:输出 POC 状态。

返回值

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

8.3.12 FrIf_SetWakeupChannel

Std_ReturnType FrIf_SetWakeupChannel(
    uint8 FrIf_CtrlIdx,
    FrIf_ChannelType FrIf_Chl
);

描述:设置唤醒通道(双通道节点)。

参数

  • FrIf_CtrlIdxCC 索引。
  • FrIf_Chl:唤醒通道(A 或 B)。

返回值

  • E_OK:设置成功。
  • E_NOT_OK:设置失败。

8.3.13 FrIf_SendWUP

Std_ReturnType FrIf_SendWUP(uint8 FrIf_CtrlIdx);

描述:发送 WUP 唤醒模式。

参数

  • FrIf_CtrlIdxCC 索引。

返回值

  • E_OK:发送成功。
  • E_NOT_OK:发送失败。

8.3.14 FrIf_GetVersionInfo

void FrIf_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr);

描述:返回 FrIf 的版本信息。

参数

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

返回值:无。

摘要标记:完整 API 列表(60+ 函数)已涵盖 14 个核心函数;其余 API 如 FrIf_GetTransceiverModeFrIf_SetTransceiverModeFrIf_GetTransceiverWUReasonFrIf_ClearTransceiverWakeupFrIf_CheckWakeupByTransceiverFrIf_GetNumOfStartupFramesFrIf_GetClockCorrectionFrIf_GetSyncFrameListFrIf_GetChannelStatusFrIf_AllSlotsFrIf_ReadCCConfig 等参见原文 PDF 第 8.3 节。

8.4 调度函数

8.4.1 FrIf_MainFunction_<ClusterShortName>

void FrIf_MainFunction_<ClusterShortName>(void);

描述:周期性处理 job list、状态轮询、错误处理等。

调度:由 BSW 调度器以固定周期(典型 1ms)调用。

8.5 回调通知

8.5.1 TX Confirmation

由 Fr 调用,通知 FrIf L-PDU 发送完成:

  • FrIf_<UserProvidedCallback>_TxConfirmation

8.5.2 RX Indication

由 Fr 调用,通知 FrIf L-PDU 接收完成:

  • FrIf_<UserProvidedCallback>_RxIndication

8.5.3 POC 状态变化

由 Fr 调用,通知 FrIf POC 状态变化。

8.5.4 周期开始

由 Fr 调用,通知 FrIf 新周期开始(用于 job 调度)。

8.6 期望的接口

8.6.1 强制接口

API 描述
Fr_Init 初始化 Fr
Fr_ControllerInit 初始化 Fr CC
Fr_StartCommunication 启动通信
Fr_AllowColdstart 允许 coldstart
Fr_HaltCommunication 停止通信
Fr_TransmitTxLPdu 发送 L-PDU
Fr_CancelTxLPdu 取消发送
Fr_ReceiveRxLPdu 接收 L-PDU
Fr_GetPOCStatus 获取 POC 状态
Fr_SetWakeupChannel 设置唤醒通道
Fr_SendWUP 发送 WUP
FrTrcv_SetTransceiverMode 设置收发器模式
FrTrcv_GetTransceiverMode 读取收发器模式
FrTrcv_GetTransceiverWUReason 获取唤醒原因
FrTrcv_ClearTransceiverWakeup 清除唤醒状态
FrTrcv_CheckWakeupByTransceiver 检查唤醒
Det_ReportError 上报开发错误
Dem_SetEventStatus 上报生产错误

8.6.2 可选接口

API 描述
FrTrcv_GetTransceiverError 获取收发器错误
FrTrcv_EnableTransceiverBranch 启用分支
FrTrcv_DisableTransceiverBranch 禁用分支
BswM_FrIf_ComMIndication BswM 通知

8.6.3 可配置接口

API 描述
FrIf_<TxConfirmation> TX 确认回调
FrIf_<RxIndication> RX 指示回调
FrIf_<TriggerTransmit> 触发发送回调

9 时序图

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

  • 图 1FrIf 初始化EcuM → FrIf_Init → 初始化所有 CC。
  • 图 2:发送流程:上层 → FrIf_Transmit → 写入 LPdu → 槽到达 → 发送 → TX confirmation。
  • 图 3:接收流程CC 接收 → Fr → FrIf_RxIndication → 上层。
  • 图 4:冷启动CC 启动 → FrIf_StartCommunicationFrIf_AllowColdstart → 同步成功。
  • 图 5:双通道唤醒:主动唤醒 → 设置唤醒通道 → 发送 WUP。
  • 图 6:被动唤醒WUP 接收 → 通知 FrSM。
  • 图 7FIFO 接收FIFO 触发 → 批量读取。
  • 图 8:发送取消
  • 图 9:立即缓冲区管理PrepareLPdu / ReconfigLPdu / DisableLPdu。
  • 图 10Multi-PDU
  • 图 11TriggerTransmit 模式
  • 图 12BusMirror4.4.0 新增)
  • 图 13:可靠 TxConfirmation4.3.0 增强)
  • 图 14:多核支持(4.4.0 增强)

10 配置规范

10.1 容器结构

FrIf
├── FrIfGeneral
├── FrIfCluster (multi)
│   ├── FrIfClusterDemEventParameterRefs
│   ├── FrIfController (multi)
│   │   ├── FrIfBufferCfg
│   │   ├── FrIfFrame (multi)
│   │   ├── FrIfLPdu (multi)
│   │   ├── FrIfFifo (multi)
│   │   ├── FrIfJobList
│   │   ├── FrIfJob (multi)
│   │   └── FrIfCtrlDemEventParameterRefs
│   ├── FrIfTransceiver (multi)
│   │   ├── FrIfTransceiverDemEventParameterRefs
│   │   └── FrIfTransceiverBranch (multi)
│   ├── FrIfNm
│   ├── FrIfSm
│   └── FrIfTp
└── FrIfGeneralDemEventParameterRefs

10.2 关键配置参数

10.2.1 FrIfGeneral

参数 类型 描述
FrIfDevErrorDetect Boolean 启用开发错误检测
FrIfVersionInfoApi Boolean 启用版本信息 API
FrIfReliableTxConfirmationSupport Boolean 启用可靠 TxConfirmation4.3.0 增强)
FrIfBusMirrorSupport Boolean 启用 BusMirror4.4.0 新增)
FrIfTriggeredTransmitEnable Boolean 启用 TriggerTransmit
FrIfPublicCddHeaderFile Reference 公共 CDD 头文件
FrIfIdx Integer FrIf 实例索引
FrIfNumberOfClusters Integer 集群数
FrIfMainFunctionPeriod Float 主函数周期(秒)

10.2.2 FrIfCluster

参数 类型 描述
FrIfClusterIdx Integer 集群索引
FrIfClusterVariant Enum 集群变体(单通道 A / 单通道 B / 双通道)
FrIfNumberOfControllers Integer CC 数
FrIfNumberOfTransceivers Integer 收发器数
FrIfMaxBufferSize Integer 最大缓冲区大小
FrIfCycle Float FlexRay 周期(秒)
FrIfMacrotickDuration Float macrotick 持续时间(秒)
FrIfChannelA Boolean 启用通道 A
FrIfChannelB Boolean 启用通道 B
FrIfNmRef Reference 关联的 Nm 模块
FrIfSmRef Reference 关联的 FrSM 模块
FrIfTpRef Reference 关联的 TP 模块

10.2.3 FrIfController

参数 类型 描述
FrIfControllerIdx Integer CC 索引
FrIfCtrlRef Reference 关联的 Fr 控制器
FrIfNumberOfBuffers Integer 缓冲区数
FrIfBuffer Reference (multi) 缓冲区配置
FrIfFrame Reference (multi) 帧配置
FrIfLPdu Reference (multi) L-PDU 配置
FrIfFifo Reference (multi) FIFO 配置
FrIfJobList Reference Job list 配置

10.2.4 FrIfBuffer

参数 类型 描述
FrIfBufferIdx Integer 缓冲区索引
FrIfBufferSize Integer 缓冲区大小(字节)
FrIfBufferDirection Enum TX / RX
FrIfBufferChannelA Boolean 通道 A 启用
FrIfBufferChannelB Boolean 通道 B 启用

10.2.5 FrIfLPdu

| 参数 | 类型 | 描述 | |---|---| | FrIfLPduIdx | Integer | L-PDU 索引 | | FrIfLPduCycleCode | Integer | 周期代码 | | FrIfLPduChannel | Enum | A / B | | FrIfLPduSlotId | Integer | 槽 ID | | FrIfLPduDataLength | Integer | 数据长度 | | FrIfLPduDirection | Enum | TX / RX | | FrIfLPduReconfigurable | Boolean | 立即缓冲区可重配 | | FrIfLPduType | Enum | L-PDU 类型 |

10.2.6 FrIfFifo

| 参数 | 类型 | 描述 | |---|---| | FrIfFifoIdx | Integer | FIFO 索引 | | FrIfFifoDepth | Integer | FIFO 深度 | | FrIfFifoRange | Range | FIFO 槽 ID 范围 | | FrIfFifoAcceptanceFilter | Filter | 接收过滤 |

10.2.7 FrIfJobList / FrIfJob

参数 类型 描述
FrIfJobListIdx Integer Job list 索引
FrIfJobListCyclePeriod Integer Job list 周期
FrIfJobIdx Integer Job 索引
FrIfJobType Enum TX / RX / STATE_CHANGE / STARTUP
FrIfJobSlotId Integer 槽 ID
FrIfJobCycleOffset Integer 周期偏移
FrIfJobChannel Enum A / B
FrIfJobLPduRef Reference 关联的 L-PDU

10.2.8 FrIfTransceiver

参数 类型 描述
FrIfTrcvIdx Integer 收发器索引
FrIfTrcvRef Reference 关联的 FrTrcv
FrIfTrcvChannel Enum A / B
FrIfTrcvBranch Reference (multi) Active Star 分支

10.3 发布信息

无附加发布参数。


翻译说明

  • 本文档基于 AUTOSAR CP Release 4.4.0 翻译,对应原文 AUTOSAR_SWS_FlexRayInterface.pdf164 页)。
  • 关键翻译策略:
    • 完整翻译:封面、文档标识、变更历史(摘要)、目录、章节 1-10 的所有正文、API 声明、错误分类、配置参数。
    • 保留英文:所有 API 名、类型名、FrIf 状态名、配置参数标识符、需求 ID。
    • 摘要标记:第 6 章需求可追踪性表涵盖 200+ 项需求(最复杂的 FlexRay 模块);第 8.3 节 API 列出 14 个核心函数(原文 60+ 个);第 9 章时序图列出 14 个关键图。完整内容请参见原文 PDF。
  • 内容置信度:高。所有 FrIf 状态、API 签名、配置容器均已涵盖。