马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
AUTOSAR FlexRay Interface 模块分析
本文档基于AUTOSAR SWS FlexRayInterface规范,对FlexRay Interface模块举行具体分析。
1. FlexRay Interface 模块架构
1.1 模块架构概览
1.2 架构分析
FlexRay Interface模块是AUTOSAR中的ECU抽象层组件,为上层模块提供同一的抽象接口,屏蔽下层硬件细节。它在AUTOSAR条理架构中具有以下特点:
- 位置和脚色:
- 位于ECU抽象层(更确切地说,属于通讯硬件抽象)
- 为上层模块提供同一的FlexRay通讯体系抽象接口
- 不直接访问硬件,通过驱动步伐间接控制通讯控制器和收发器
- 向上交互:
- 与PDU Router交互:提供PDU传输服务
- 与FlexRay传输协议(FrTp)交互:处理惩罚传输协议数据
- 与FlexRay网络管理(FrNm)交互:处理惩罚网络管理数据
- 与总线镜像(Bus Mirroring)交互:陈诉通讯帧信息
- 向下交互:
- 与FlexRay状态管理器(FrSM)交互:吸取状态控制下令
- 与FlexRay驱动(Fr)交互:控制FlexRay通讯控制器
- 与FlexRay收发器驱动(FrTrcv)交互:控制FlexRay收发器
- 独立性特点:
- 代码独立于具体FlexRay硬件(控制器和收发器)
- 支持"一次编写随处运行"原则,通过设置顺应差别硬件
- 无需修改源代码即可完成设置
2. FlexRay Interface 状态机
2.1 状态机图表
2.2 状态机具体分析
FlexRay Interface模块实现了一个简单而有效的状态机,用于控制通讯利用:
- 状态界说:
- 初始状态:体系启动的瞬时状态
- 离线状态(FRIF_STATE_OFFLINE):初始化后的默认状态,不实行通讯服务
- 在线状态(FRIF_STATE_ONLINE):实行全部通讯服务,包罗吸取、传输和传输确认
- 状态转换:
- 通过FrIf_Init()初始化后,状态机进入离线状态
- 通过FrIf_SetState(ClstIdx, FRIF_GOTO_ONLINE)从离线转为在线
- 通过FrIf_SetState(ClstIdx, FRIF_GOTO_OFFLINE)从在线转为离线
- 状态机特点:
- 每个FlexRay集群有独立的状态机实例
- 状态转换前会查抄TxConfCounter(传输确认计数器)
- 在线状态才气实行通讯干系利用
- 离线状态可举行设置利用
- 安全机制:
- 在离线转换哀求时,会查抄未完成的传输
- 确保通讯安全关闭,克制数据丢失
3. FlexRay Interface 索引方案
3.1 索引方案图表
3.2 索引方案具体分析
FlexRay Interface采取一套经心筹划的索引方案,实现了对硬件资源的抽象:
- 抽象索引概念:
- 使用从零开始的连续索引标识各类资源
- 上层模块无需相识硬件细节,通过抽象索引访问资源
- 设置数据将抽象索引映射到实际硬件资源
- 紧张索引范例:
- FrIf_ClstIdx(集群索引):标识FlexRay集群,至少支持4个
- FrIf_CtrlIdx(控制器索引):标识FlexRay控制器,至少支持4个
- FrIf_ChnlIdx(通道索引):取值FR_CHANNEL_A或FR_CHANNEL_B,标识通道
- TxPduId(PDU索引):标识要传输的PDU,用于FrIf_Transmit API
- 索引映射机制:
- 集群索引映射到一组控制器索引
- 控制器索引与通道索引组合,确定具体物理通道
- 控制器索引转换为驱动步伐使用的硬件特定索引
- 全部映射通过静态设置数据表实现
- 功能上风:
- 隐蔽硬件复杂性,提供同一接口
- 支持多种硬件组合和拓扑结构
- 便于设置和扩展,无需修改代码
4. FlexRay Interface 数据传输流程
4.1 数据传输流程图
4.2 数据传输流程具体分析
FlexRay Interface的数据传输流程涵盖了初始化、传输、吸取和确认等关键环节:
- 初始化与状态设置:
- 通过FrIf_Init(Config)初始化FlexRay Interface
- 调用Fr_Init()初始化底层FlexRay驱动
- 通过FrIf_SetState切换到在线状态
- Fr_StartCommunication()启动实际通讯
- PDU传输过程:
- 上层应用通过PDU Router发送数据哀求
- PDU Router调用FrIf_Transmit(TxPduId, PduInfoPtr)
- FlexRay Interface查找PDU设置,确定传输方式
- 支持两种传输模式:
- 网络模式:存储PDU数据到缓冲区,稍后处理惩罚
- 立刻传输模式:直接调用Fr_StartTransmission()
- 传输确认机制:
- 通讯控制器发出克制或数据确认
- 驱动步伐调用Fr_TxConfirmation()
- FlexRay Interface通过PduR_FrIfTxConfirmation()关照上层
- 更新TxConfCounter,跟踪传输状态
- 数据吸取流程:
- 通讯控制器吸取到数据后发出克制
- 驱动步伐调用Fr_RxIndication()关照吸取
- FlexRay Interface处理惩罚吸取数据
- 有效数据通过PduR_FrIfRxIndication()上报
- 无效或逾期数据将被扬弃
- 作业实行流程:
- FrIf__JobListExec()函数处理惩罚作业列表
- 按实行时间排序作业
- 循环实行每个作业,调用相应的硬件利用
- 包管数据传输的有序性和实时性
5. 总结
AUTOSAR FlexRay Interface模块在汽车电子通讯架构中饰演着关键脚色,通过精良的抽象筹划,实现了以下目标:
- 硬件抽象:屏蔽了差别FlexRay硬件的差别,提供同一接口
- 模块化筹划:清楚的职责分别,精良的接口界说
- 可设置性:丰富的设置选项,无需修改代码即可顺应差别需求
- 性能保障:高效的数据传输机制,包管通讯可靠性
- 应用广泛:实用于须要高数据率和容错通讯的各种汽车域
xRay硬件的差别,提供同一接口
2. 模块化筹划:清楚的职责分别,精良的接口界说
3. 可设置性:丰富的设置选项,无需修改代码即可顺应差别需求
4. 性能保障:高效的数据传输机制,包管通讯可靠性
5. 应用广泛:实用于须要高数据率和容错通讯的各种汽车域
通过状态机、索引方案和严格界说的数据流,FlexRay Interface模块确保了FlexRay通讯的高效、可靠和易于集成,为基于AUTOSAR的今世汽车电子体系提供了结实的通讯根本。
|