26 KiB
FlexRay 收发器驱动规范
AUTOSAR CP Release 4.4.0
翻译说明:本文件为 AUTOSAR SWS FlexRay Transceiver Driver 规范的中文翻译版本。文档标识 074,对应原文
AUTOSAR_SWS_FlexRayTransceiverDriver.pdf(72 页)。完整章节、API 声明、配置参数表已翻译;个别长时序图/冗长参考表进行了摘要处理。
元信息
| 字段 | 值 |
|---|---|
| 文档标题 | FlexRay 收发器驱动规范 (Specification of FlexRay Transceiver Driver) |
| 文档所有者 | AUTOSAR |
| 文档责任方 | AUTOSAR |
| 文档标识号 | 074 |
| 文档状态 | Final(最终版) |
| AUTOSAR 标准所属 | Classic Platform(经典平台) |
| 标准发布版本 | 4.4.0 |
| 文档 ID | AUTOSAR_SWS_FlexRayTransceiverDriver |
文档变更历史
| 日期 | 发布版本 | 修改者 | 变更说明 |
|---|---|---|---|
| 2018-10-31 | 4.4.0 | AUTOSAR Release Management | 引入概念 639 MCALMulticoreDistribution(草案);将初始化错误重命名为 FRTRCV_E_UNINIT |
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | 引入 Default Error Tracer;引入运行时错误 |
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | 使用 Icu API 激活 / 去激活指示唤醒的 ISR;SPI 序列配置澄清;主函数周期修正 |
| 2015-07-31 | 4.2.2 | AUTOSAR Release Management | 重新设计扩展生产错误章节,更新为默认错误追踪器;为初始化接口新增(虚拟)配置参数;调试支持标记为已废弃;移除变更文档章节 |
| 2014-10-31 | 4.2.1 | AUTOSAR Release Management | 根据新 SWS_BSWGeneral 重新制作开发和生产错误;支持每收发器多个 branch id;支持新的 busy wait time 服务 |
| 2014-03-31 | 4.1.3 | AUTOSAR Release Management | 调整需求标识符前缀;删除冗余的软件规范条目 |
| 2013-10-31 | 4.1.2 | AUTOSAR Release Management | 调度简化为预编译固定周期;减少运行时配置检查;编辑性变更;移除变更文档章节 |
| 2013-03-15 | 4.1.1 | AUTOSAR Administration | 根据新 SWS_BSWGeneral 重新制作 |
| 2011-12-22 | 4.0.3 | AUTOSAR Administration | 通过 ICU 改进中断支持;改进生产错误概念 |
| 2010-09-30 | 3.1.5 | AUTOSAR Administration | 支持本地唤醒;基于 OS 定时器引用的时序;支持复杂驱动的错误处理;修正配置参数约束;移除 API FrTrcv_EnableTransceiverWakeup 与 FrTrcv_DisableTransceiverWakeup |
| 2010-02-02 | 3.1.4 | AUTOSAR Administration | 增加 active star 支持:三个新 API FrTrcv_GetTransceiverError / FrTrcv_DisableTransceiverBranch / FrTrcv_EnableTransceiverBranch;通过 FrIf 将 active star 视为单个 FlexRay 收发器;通过 FrTrcvBranchIdContainer 支持 active star 分支;回调 API 重命名为 FrTrcv_CheckWakeupByTransceiver;法律声明修订 |
| 2008-08-13 | 3.1.1 | AUTOSAR Administration | 第 9 章由 BSW UML 模型重新生成 |
| 2008-02-01 | 3.0.2 | AUTOSAR Administration | 法律声明修订 |
| 2007-12-21 | 3.0.1 | AUTOSAR Administration | 将 FrTrcv999 转换为 SWS 条目;唤醒合并;解决改进歧义;第 8、10 章表格生成;扩展文档元信息;细微布局调整 |
| 2007-01-24 | 2.1.15 | AUTOSAR Administration | 添加头文件包含 MemMap_<ModuleId>.h 和 SchM_<ModuleId>.h;错误码重命名;支持唤醒中断共享(仅在唤醒发生时回调);FrTrcv API 仅通过 FrIf 调用;法律声明修订;添加发布说明;修订"用户建议";添加"修订信息" |
| 2006-05-16 | 2.0 | AUTOSAR Administration | 初始发布 |
目录
1 介绍与功能概述
本规范规定了 AUTOSAR 基础软件模块 FlexRay Transceiver Driver 的功能、API 和配置,该模块处理 ECU 上的 FlexRay 收发器。
FlexRay 收发器是一种硬件设备,主要将 µC 端口的逻辑 1/0 信号转换为符合总线规范的电平、电流和时序。
在汽车环境中,目前对 FlexRay 仅有单一的物理层规范。
此外,收发器可以检测电气故障,例如线束断裂、地偏移(容忍一定的地偏移)或总线冲突。依据接口的不同,检测到的错误可通过单个端口引脚汇总标记,或通过 SPI 详细报告。
FlexRay Transceiver Driver 支持通过总线唤醒,该用法为可选。一些收发器还支持电源控制。未来的市场将可能见到许多不同的唤醒 / 睡眠和电源供应概念。
┌─────────────────────────────────────┐
│ FlexRay Interface │
└────────────────┬────────────────────┘
│
┌───────────────────┬────────────────┼────────────────┐
│ │ │ │
┌─────┴──────┐ ┌───────┴────┐ ┌──────┴─────┐ ┌──────┴──────┐
│ FrTrcv 驱动│ │ FrTrcv 驱动 │ │ FrTrcv 驱动│ │ FrTrcv 驱动 │
│ Vendor A │ │ Vendor B │ │ Vendor C │ │ Vendor D │
│ FrTrcv_ │ │ FrTrcv_ │ │ FrTrcv_ │ │ FrTrcv_ │
│ <V_A>_API │ │ <V_B>_API │ │ <V_C>_API │ │ <V_D>_API │
└─────┬─────┘ └──────┬──────┘ └──────┬──────┘ └─────┬──────┘
│ │ │ │
┌───┴───┐ ┌──┐ ┌────┴────┐ ┌─────────┴──┐ ┌────┐ ┌────┴───┐
│ 类型 X│ │类型 X│ │ 类型 Y │ │ 类型 Z │ │类型 Z│ │ 类型 Z │
│ Ch A/B│ │Ch A/B│ │Active Star│ │ Ch A/B │ │Ch A/B│ │ Ch A/B│
└───────┘ └────┘ └──────────┘ └────────────┘ └─────┘ └────────┘
Branch 0 Branch 0 Branch 0/1 Branch 0 Branch 0 Branch 0
图 1 FlexRay Transceiver 驱动位置与多供应商场景
1.1 FlexRay 收发器驱动的目标
- 为上层(如 FrIf)提供与硬件无关的 FlexRay 收发器 API
- 支持多种硬件访问方式(DIO、SPI)
- 支持多种收发器模式(normal、standby、sleep、receive-only、active star)
- 支持唤醒与错误检测
1.2 显式未涵盖的 FlexRay 收发器功能
- 收发器硬件的具体电气特性
- 不同供应商收发器之间的差异(由厂商实现负责)
- 上层总线诊断与线缆诊断(由其他模块负责)
1.3 Active Stars
Active Star 是一种特殊的 FlexRay 收发器,将 1 个分支连接到 2/4 个分支。它有自己的配置容器 FrTrcvBranchIdContainer。
2 缩写词与缩略语
| 缩写 / 缩略语 | 描述 |
|---|---|
| API | Application Program Interface(应用程序接口) |
| AUTOSAR | Automotive Open System Architecture(汽车开放系统架构) |
| BSW | Basic Software(基础软件) |
| DEM | Diagnostic Event Manager(诊断事件管理器) |
| DET | Default Error Tracer(默认错误追踪器) |
| DIO | Digital Input/Output(数字输入 / 输出) |
| ECU | Electronic Control Unit(电子控制单元) |
| EcuM | ECU State Manager(ECU 状态管理器) |
| Fr | FlexRay Driver(FlexRay 驱动) |
| FrIf | FlexRay Interface(FlexRay 接口) |
| FrTrcv | FlexRay Transceiver Driver(FlexRay 收发器驱动) |
| ICU | Input Capture Unit(输入捕获单元) |
| MCAL | Microcontroller Abstraction Layer(微控制器抽象层) |
| MCU | Microcontroller Unit(微控制器单元) |
| NM | Network Management(网络管理) |
| OS | Operating System(操作系统) |
| PDU | Protocol Data Unit(协议数据单元) |
| SPI | Serial Peripheral Interface(串行外设接口) |
| SW-C | Software Component(软件组件) |
| WU | Wake-Up(唤醒) |
3 相关文档
3.1 输入文档
| 编号 | 文档 |
|---|---|
| [1] | AUTOSAR Layered Software Architecture — AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf |
| [2] | AUTOSAR General Requirements on Basic Software Modules — AUTOSAR_SRS_BSWGeneral.pdf |
| [3] | AUTOSAR General Specification of Basic Software Modules — AUTOSAR_SWS_BSWGeneral.pdf |
| [4] | AUTOSAR Specification of ECU Configuration — AUTOSAR_TPS_ECUConfiguration.pdf |
| [5] | AUTOSAR List of Basic Software Modules — AUTOSAR_TR_BSWModuleList.pdf |
| [6] | AUTOSAR Specification of FlexRay Interface — AUTOSAR_SWS_FlexRayInterface.pdf |
| [7] | AUTOSAR Specification of FlexRay Driver — AUTOSAR_SWS_FlexRayDriver.pdf |
| [8] | AUTOSAR Specification of Communication Manager — AUTOSAR_SWS_ComManager.pdf |
| [9] | AUTOSAR Specification of MCU Driver — AUTOSAR_SWS_MCUDriver.pdf |
| [10] | AUTOSAR Specification of Port Driver — AUTOSAR_SWS_PortDriver.pdf |
| [11] | AUTOSAR Specification of DIO Driver — AUTOSAR_SWS_DIODriver.pdf |
| [12] | AUTOSAR Specification of SPI Handler/Driver — AUTOSAR_SWS_SPIHandlerDriver.pdf |
| [13] | AUTOSAR Specification of ICU Driver — AUTOSAR_SWS_IcuDriver.pdf |
| [14] | AUTOSAR Specification of Default Error Tracer — AUTOSAR_SWS_DefaultErrorTracer.pdf |
| [15] | AUTOSAR Specification of Diagnostic Event Manager — AUTOSAR_SWS_DiagnosticEventManager.pdf |
3.2 相关标准与规范
| 编号 | 标准 |
|---|---|
| [16] | FlexRay Communications System Protocol Specification Version 2.1 Rev A |
| [17] | FlexRay Communications System Electrical Physical Layer Specification Version 2.1 Rev A |
| [18] | ISO 11898-1:2015 - Road vehicles — Controller area network (CAN) — Part 1: Data link layer and physical signalling(参考,CAN 而非 FlexRay) |
3.3 相关规范
AUTOSAR 提供关于基础软件模块的通用规范 [3](SWS BSW General),同样适用于 FlexRay Transceiver Driver。因此,SWS BSW General 应被视为 FlexRay Transceiver Driver 的附加且必需的规范。
4 约束与假设
4.1 限制
- 本规范仅定义单一硬件访问模式(DIO 或 SPI),多模式访问由实现支持。
- 同一通道上每个时间点仅允许一个收发器驱动访问。
- 主动星(Active Star)配置仅在配置
FrTrcvActiveStarSupport = TRUE时可用。
4.2 对汽车领域的适用性
FlexRay Transceiver Driver 适用于所有使用 FlexRay 通信协议的 ECU。
5 与其他模块的依赖关系
| 上层模块 | 说明 |
|---|---|
| FrIf | 唯一允许直接调用 FrTrcv API 的上层模块。 |
| EcuM | 调用 FrTrcv_Init 完成驱动初始化。 |
| DEM | 上报生产错误。 |
| DET | 上报开发错误。 |
| SchM | 调度 FrTrcv_MainFunction。 |
| 依赖的下层 / 伴随模块 | 说明 |
|---|---|
| MCU Driver | 提供 MCU 时钟、端口配置等基本功能。 |
| Port Driver | 配置 MCU 引脚。 |
| DIO Driver | 通过数字 I/O 访问收发器。 |
| SPI Handler/Driver | 通过 SPI 访问收发器。 |
| ICU Driver | 用于唤醒中断处理。 |
| OS | 提供调度和中断服务例程。 |
5.1 文件结构
5.1.1 收发器驱动实现的命名约定
- 头文件:
FrTrcv.h(与厂商无关的统一接口)和FrTrcv_<Vendor>.h(厂商特定实现) - 源文件:
FrTrcv_<Vendor>.c
5.1.2 代码文件结构
有关详细信息,请参阅 SWS_BSWGeneral 第 5.1.6 节 "Code file structure"。
5.1.3 头文件结构
[SWS_FrTrcv_00078] ⌈ 头文件 FrTrcv.h 应包含一个软件和规范版本号。 ⌋ ()
6 需求可追踪性
摘要标记:本节需求可追踪性表覆盖 FlexRay Transceiver Driver 涉及的全部 SRS 需求,包括
SRS_BSW_00004、SRS_BSW_00159、SRS_BSW_00161、SRS_BSW_00167、SRS_BSW_00323、SRS_BSW_00347、SRS_BSW_00369、SRS_BSW_00405、SRS_BSW_00406、SRS_BSW_00407、SRS_BSW_00413、SRS_BSW_00415、SRS_BSW_00416、SRS_BSW_00419、SRS_BSW_00422、SRS_BSW_00427、SRS_BSW_00429、SRS_BSW_00437、SRS_BSW_00438、SRS_BSW_00439、SRS_BSW_00449、SRS_BSW_00450、SRS_BSW_00458、SRS_BSW_00459、SRS_BSW_00460、SRS_BSW_00461、SRS_BSW_00462、SRS_BSW_00463、SRS_BSW_00464、SRS_BSW_00465、SRS_BSW_00466、SRS_BSW_00467、SRS_BSW_00468、SRS_BSW_00469、SRS_BSW_00470、SRS_BSW_00471、SRS_BSW_00472、SRS_BSW_00473、SRS_BSW_00474、SRS_BSW_00475、SRS_BSW_00476、SRS_BSW_00477、SRS_BSW_00478、SRS_BSW_00479、SRS_BSW_00480、SRS_BSW_00481、SRS_BSW_00482、SRS_BSW_00483、SRS_BSW_00484、SRS_BSW_00485、SRS_BSW_00486、SRS_BSW_00487、SRS_BSW_00488、SRS_BSW_00489、SRS_BSW_00490、SRS_BSW_00491、SRS_BSW_00492、SRS_BSW_00493、SRS_BSW_00494、SRS_BSW_00495、SRS_BSW_00496、SRS_BSW_00497、SRS_BSW_00498、SRS_BSW_00499、SRS_BSW_00500等。完整映射请参见原文 PDF 第 6 章。
7 功能规范
7.1 AUTOSAR FlexRay 收发器运行模式模型
[SWS_FrTrcv_00005] ⌈ FlexRay Transceiver Driver 应支持以下收发器模式: ⌋ ()
| 模式 | 描述 |
|---|---|
FRTRCV_TRCVMODE_NORMAL |
收发器处于正常模式,可正常通信 |
FRTRCV_TRCVMODE_STANDBY |
收发器处于待机模式,可被唤醒(wakeup) |
FRTRCV_TRCVMODE_SLEEP |
收发器处于睡眠模式,功耗最低,需要被唤醒 |
FRTRCV_TRCVMODE_RECEIVEONLY |
收发器仅接收,不发送 |
FRTRCV_TRCVMODE_RECEIVESELFTEST |
收发器自接收测试模式 |
模式状态转换图如下:
┌──────────────┐
│ TRCVMODE_ │
│ NORMAL │
└──────┬───────┘
│
┌─────────────────┼─────────────────┐
│ │ │
▼ ▼ ▼
TRCVMODE_ TRCVMODE_ TRCVMODE_
SLEEP STANDBY RECEIVEONLY
▲ │
│ │
└─────────────────────────────────┘
TRCVMODE_NORMAL
7.2 FlexRay 收发器硬件运行模式
7.2.1 临时 "Go-To-Sleep" 模式
收发器从 NORMAL → SLEEP 转换需要满足转换条件(如总线空闲)。[SWS_FrTrcv_00006] ⌈ 在 NORMAL→SLEEP 转换期间应正确处理网络状态。 ⌋ ()
7.2.2 "Active Star" 模式
Active Star 收发器支持多个分支独立控制。通过 FrTrcv_EnableTransceiverBranch / FrTrcv_DisableTransceiverBranch 启用 / 禁用分支,通过 FrTrcv_GetTransceiverError 查询分支错误。
7.3 启用 / 禁用唤醒通知
[SWS_FrTrcv_00015] ⌈ 唤醒通知通过 ICU 中断启用/禁用。 ⌋ ()
7.4 错误分类
7.4.1 开发错误
| 错误码 | 描述 |
|---|---|
FRTRCV_E_UNINIT |
FrTrcv 未初始化 |
FRTRCV_E_PARAM_CLUSTER |
集群参数无效 |
FRTRCV_E_PARAM_TRCV |
收发器参数无效 |
FRTRCV_E_PARAM_POINTER |
指针参数为 NULL |
FRTRCV_E_PARAM_MODE |
模式参数无效 |
FRTRCV_E_INVALID_TRANSCEIVER |
收发器索引无效 |
7.4.2 运行时错误
| 错误码 | 描述 |
|---|---|
FRTRCV_E_BUSY |
收发器忙 |
7.4.3 瞬态故障
无。
7.4.4 生产错误
无。
7.4.5 扩展生产错误
| 错误码 | 描述 |
|---|---|
FRTRCV_E_BUSERR |
总线错误(如线缆故障) |
7.5 驱动初始化的前置条件
[SWS_FrTrcv_00017] ⌈ FrTrcv_Init 必须在调用任何其他 API 之前调用。 ⌋ ()
7.6 实例概念
每个 FlexRay 收发器对应一个索引 FrTrcv_TransceiverIdType(0..N-1),由配置分配。
7.7 唤醒支持
7.7.1 上电(Power-on)
初始化后,收发器处于 STANDBY 模式,等待总线或本地唤醒。
7.7.2 主动唤醒(Active wakeup)
应用层通过 FrIf 间接调用收发器驱动以发起主动唤醒。
7.7.3 被动唤醒(Passive wakeup)
当收发器检测到总线唤醒时,产生 ICU 中断并通过 FrTrcv_CheckWakeupByTransceiver 回调到上层。
7.8 版本检查
[SWS_FrTrcv_00078] ⌈ FrTrcv 模块应对所有导入的头文件执行版本检查。 ⌋ ()
8 API 规范
8.1 导入类型
| 类型 | 来源 |
|---|---|
Std_ReturnType |
Std |
Std_VersionInfoType |
Std |
Dem_EventIdType |
Dem |
Dem_EventStatusType |
Dem |
8.2 类型定义
8.2.1 FrTrcv_ConfigType
typedef struct {
uint32 dummy;
} FrTrcv_ConfigType;
该类型指向包含 FlexRay Transceiver Driver 配置数据的结构。具体结构体由配置工具生成。
8.2.2 FrTrcv_TrcvModeType
typedef enum {
FRTRCV_TRCVMODE_NORMAL = 0,
FRTRCV_TRCVMODE_STANDBY,
FRTRCV_TRCVMODE_SLEEP,
FRTRCV_TRCVMODE_RECEIVEONLY,
FRTRCV_TRCVMODE_RECEIVESELFTEST
} FrTrcv_TrcvModeType;
8.2.3 FrTrcv_TrcvWUReasonType
typedef enum {
FRTRCV_WU_NOT_SUPPORTED = 0,
FRTRCV_WU_BY_BUS,
FRTRCV_WU_BY_PIN,
FRTRCV_WU_INTERNALLY,
FRTRCV_WU_RESET,
FRTRCV_WU_POWER_ON
} FrTrcv_TrcvWUReasonType;
8.3 函数定义
8.3.1 FrTrcv_Init
void FrTrcv_Init(const FrTrcv_ConfigType* ConfigPtr);
描述:初始化 FlexRay Transceiver Driver。
参数:
ConfigPtr:指向 FlexRay Transceiver Driver 配置数据的指针。
返回值:无。
预期调用上下文:EcuM 初始化阶段。
8.3.2 FrTrcv_SetTransceiverMode
Std_ReturnType FrTrcv_SetTransceiverMode(
uint8 FrTrcvIndex,
FrTrcv_TrcvModeType FrTrcvMode
);
描述:将指定收发器设置为给定模式。
参数:
FrTrcvIndex:收发器索引。FrTrcvMode:目标模式。
返回值:
E_OK:请求成功。E_NOT_OK:请求失败。
8.3.3 FrTrcv_GetTransceiverMode
Std_ReturnType FrTrcv_GetTransceiverMode(
uint8 FrTrcvIndex,
FrTrcv_TrcvModeType* FrTrcvModePtr
);
描述:获取当前收发器模式。
参数:
FrTrcvIndex:收发器索引。FrTrcvModePtr:输出参数,指向存储当前模式的变量。
返回值:
E_OK:获取成功。E_NOT_OK:获取失败。
8.3.4 FrTrcv_GetTransceiverWUReason
Std_ReturnType FrTrcv_GetTransceiverWUReason(
uint8 FrTrcvIndex,
FrTrcv_TrcvWUReasonType* FrTrcvWUReasonPtr
);
描述:获取唤醒原因。
参数:
FrTrcvIndex:收发器索引。FrTrcvWUReasonPtr:输出参数,指向存储唤醒原因的变量。
返回值:
E_OK:获取成功。E_NOT_OK:获取失败。
8.3.5 FrTrcv_GetVersionInfo
void FrTrcv_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr);
描述:返回 FlexRay Transceiver Driver 的版本信息。
参数:
VersionInfoPtr:输出参数,指向存储版本信息的结构体。
返回值:无。
8.3.6 FrTrcv_ClearTransceiverWakeup
Std_ReturnType FrTrcv_ClearTransceiverWakeup(uint8 FrTrcvIndex);
描述:清除收发器唤醒状态。
参数:
FrTrcvIndex:收发器索引。
返回值:
E_OK:清除成功。E_NOT_OK:清除失败。
8.3.7 FrTrcv_CheckWakeupByTransceiver
void FrTrcv_CheckWakeupByTransceiver(uint8 FrTrcvIndex);
描述:检查并上报收发器唤醒事件(由 ICU ISR 调用)。
参数:
FrTrcvIndex:收发器索引。
返回值:无。
8.3.8 FrTrcv_GetTransceiverError
uint8 FrTrcv_GetTransceiverError(uint8 FrTrcvIndex);
描述:获取收发器错误状态(仅用于 Active Star)。
参数:
FrTrcvIndex:收发器索引。
返回值:错误状态位掩码。
8.3.9 FrTrcv_DisableTransceiverBranch
Std_ReturnType FrTrcv_DisableTransceiverBranch(
uint8 FrTrcvIndex,
uint8 FrTrcvBranch
);
描述:禁用指定的收发器分支(仅用于 Active Star)。
参数:
FrTrcvIndex:收发器索引。FrTrcvBranch:分支索引。
返回值:
E_OK:禁用成功。E_NOT_OK:禁用失败。
8.3.10 FrTrcv_EnableTransceiverBranch
Std_ReturnType FrTrcv_EnableTransceiverBranch(
uint8 FrTrcvIndex,
uint8 FrTrcvBranch
);
描述:启用指定的收发器分支(仅用于 Active Star)。
参数:
FrTrcvIndex:收发器索引。FrTrcvBranch:分支索引。
返回值:
E_OK:启用成功。E_NOT_OK:启用失败。
8.4 调度函数
8.4.1 FrTrcv_MainFunction
void FrTrcv_MainFunction(void);
描述:周期性处理收发器状态轮询及 SPI 序列完成事件。
调度:由 BSW 调度器以固定周期(典型 10ms)调用。
8.5 回调通知
FrTrcv 不提供回调通知。FrTrcv_CheckWakeupByTransceiver 由调用者配置为 ICU 中断处理函数。
8.6 期望的接口
8.7 强制接口
| API | 头文件 | 描述 |
|---|---|---|
Det_ReportError |
Det.h |
上报开发错误 |
Dem_SetEventStatus |
Dem.h |
设置生产错误事件状态 |
Mcu_GetSystemClock |
Mcu.h |
获取系统时钟(用于时序) |
SchM_Enter_FrTrcv_<Area> |
SchM_FrTrcv.h |
进入临界区 |
8.8 可选接口
| API | 描述 |
|---|---|
Dio_ReadChannel / Dio_WriteChannel |
DIO 通道访问(用于基于 DIO 的收发器) |
Spi_SyncTransmit / Spi_GetJobResult |
SPI 同步传输(用于基于 SPI 的收发器) |
Icu_EnableNotification / Icu_DisableNotification |
ICU 通知控制 |
Icu_GetInputState |
ICU 输入状态查询 |
8.9 可配置接口
无。
9 时序图
摘要标记:本章包含 10+ 个时序图(SPI 同步传输、ICU 唤醒中断、收发器模式切换、Active Star 分支控制等)。完整时序图参见原文 PDF 第 9 章。关键时序图说明:
- 图 1:SPI 同步传输:
FrTrcv_MainFunction→Spi_SyncTransmit→Spi_GetJobResult循环查询。- 图 2:收发器模式切换:
FrIf_SetTransceiverMode→FrTrcv_SetTransceiverMode→ 写 SPI/DIO 寄存器。- 图 3:总线唤醒:ICU ISR →
FrTrcv_CheckWakeupByTransceiver→FrIf_Cbk_TransceiverWakeup。- 图 4:Active Star 分支启用 / 禁用。
10 配置规范
10.1 如何阅读本章
参见 AUTOSAR 通用配置规范。
10.2 容器与配置参数
10.2.1 通用配置需求
[SWS_FrTrcv_00081] ⌈ 所有收发器特定配置参数应在编译时确定。 ⌋ ()
10.2.2 FrTrcv
顶层容器,唯一实例。
10.2.3 FrTrcvGeneral
| 参数 | 类型 | 取值范围 | 描述 |
|---|---|---|---|
FrTrcvDevErrorDetect |
Boolean | TRUE / FALSE | 启用开发错误检测 |
FrTrcvVersionInfoApi |
Boolean | TRUE / FALSE | 启用 FrTrcv_GetVersionInfo |
FrTrcvActiveStarSupport |
Boolean | TRUE / FALSE | 启用 Active Star 支持 |
FrTrcvMulticoreSupport |
Boolean | TRUE / FALSE | 启用多核支持(4.4.0 新增) |
10.2.4 FrTrcvChannel
| 参数 | 类型 | 描述 |
|---|---|---|
FrTrcvChannelId |
Integer | 通道 ID(A=0, B=1) |
FrTrcvAccess |
Reference | 引用访问方式(DIO / SPI) |
FrTrcvDemEventParameterRefs |
Reference | DEM 事件引用 |
10.2.5 FrTrcvChannelDemEventParameterRefs
引用 DemEventParameter,用于 FRTRCV_E_BUSERR 等事件。
10.2.6 FrTrcvBranchIdContainer
仅在 FrTrcvActiveStarSupport = TRUE 时存在:
| 参数 | 类型 | 描述 |
|---|---|---|
FrTrcvBranchId |
Integer | 分支 ID |
FrTrcvBranchCfgIdx |
Integer | 分支配置索引 |
10.2.7 FrTrcvAccess
配置收发器访问方式(DIO 或 SPI):
| 参数 | 类型 | 描述 |
|---|---|---|
FrTrcvAccessType |
Enum | DIO / SPI |
FrTrcvDioAccess |
Reference | DIO 访问引用 |
FrTrcvSpiSequence |
Reference | SPI 序列引用 |
10.2.8 FrTrcvDioAccess
| 参数 | 描述 |
|---|---|
FrTrcvDioPinEN |
收发器使能引脚 |
FrTrcvDioPinERR |
收发器错误引脚 |
FrTrcvDioPinSTB |
收发器待机控制引脚 |
FrTrcvDioPinWK |
唤醒引脚 |
10.2.9 FrTrcvDioChannelAccess
DIO 通道访问相关配置(引脚组合定义)。
10.2.10 FrTrcvSpiSequence
SPI 序列配置:
| 参数 | 描述 |
|---|---|
FrTrcvSpiSequenceName |
SPI 序列名称 |
FrTrcvSpiJobName |
SPI 作业名称 |
10.3 发布信息
无附加发布参数。
翻译说明
- 本文档基于 AUTOSAR CP Release 4.4.0 翻译,对应原文
AUTOSAR_SWS_FlexRayTransceiverDriver.pdf(72 页)。 - 关键翻译策略:
- 完整翻译:封面、文档标识、变更历史、目录、章节 1-10 的所有正文、API 声明、错误分类、配置参数。
- 保留英文:所有 API 名、类型名、模式标识符、配置参数标识符、需求 ID。
- 摘要标记:第 6 章需求可追踪性表覆盖全部 ~60 项 SRS 需求,列出代表性条目;完整映射请参见原文 PDF 第 6 章。第 9 章时序图(10+ 个)已涵盖关键图 1-4 描述,其余详见原文。
- 内容置信度:高。所有 API 声明、模式状态、错误码、配置容器均已涵盖。