AUTOSAR图解==>AUTOSAR_SWS_WirelessEthernetTransceiverDriver
AUTOSAR 无线以太网收发器驱动 (WEthTrcv) 详解
目录
- 1. 概述
- 1.1 无线以太网收发器驱动的定位与作用
- 1.2 功能特性
- 2. 架构设计
- 2.1 在AUTOSAR分层架构中的位置
- 2.2 内部组件结构
- 3. API接口
- 3.1 API功能概览
- 3.2 主要数据类型
- 4. 配置结构
- 4.1 配置容器层次关系
- 4.2 关键配置参数
- 5. 工作状态与转换
- 5.1 状态模型
- 5.2 状态转换机制
- 6. 总结
- 6.1 应用场景
- 6.2 集成要点
1. 概述
1.1 无线以太网收发器驱动的定位与作用
无线以太网收发器驱动(WEthTrcv)是AUTOSAR基础软件中的一个关键模块,属于微控制器抽象层(MCAL)中的通信驱动类别。该模块的主要职责是为上层软件(尤其是以太网接口模块)提供一个硬件无关的接口,使其能够以统一的方式访问底层的无线以太网收发器硬件。
WEthTrcv模块负责管理和控制无线以太网收发器的工作状态、配置无线电参数、监控链路状态,以及处理收发数据的底层操作。通过这个模块,AUTOSAR架构能够支持现代汽车中越来越重要的无线网络通信需求,特别是用于车载网络通信、车联网应用以及V2X(车对外界)通信场景。
1.2 功能特性
无线以太网收发器驱动具有以下核心功能:
- 硬件抽象:提供硬件无关的接口,屏蔽底层收发器硬件的差异
- 多收发器支持:支持管理多个相同类型的收发器
- 无线电配置:支持配置无线电参数,如频率、功率等级、数据速率等
- 通道管理:支持配置和管理发送/接收通道参数
- 状态管理:控制和监控收发器的工作状态(如活动、待机、睡眠等)
- 链路监控:监控无线链路的连接状态并报告状态变化
- 天线配置:支持配置天线参数(如增益、类型等)
- 诊断支持:向诊断事件管理器(DEM)报告错误事件
- 调度支持:提供周期性主函数供BSW调度器调用
2. 架构设计
2.1 在AUTOSAR分层架构中的位置
以下架构图展示了无线以太网收发器驱动在AUTOSAR分层架构中的位置以及与其他模块的关系:
2.1.1 架构要点
无线以太网收发器驱动在AUTOSAR架构中的定位有以下几个关键特点:
- 层次关系:WEthTrcv位于微控制器抽象层(MCAL)中的通信驱动子层,是连接上层服务与硬件的桥梁
- 向上接口:向上提供标准化接口给以太网接口(EthIf)模块
- 横向集成:与诊断事件管理器(DEM)横向集成,提供错误报告功能
- 向下访问:直接访问无线以太网物理介质(硬件层)
- 模块关系:与无线以太网驱动(WEth)、以太网收发器驱动(EthTrcv)和以太网驱动(Eth)并列,共同构成通信驱动层
这种架构设计确保了:
- 标准化的上层接口,使应用软件可以通过相同的接口访问不同的硬件
- 清晰的职责分工,WEthTrcv专注于无线收发器的控制和管理
- 灵活的配置和可扩展性,支持多种无线收发器硬件
2.2 内部组件结构
下图展示了无线以太网收发器驱动的内部组件结构及其相互关系:
2.2.1 核心组件分析
无线以太网收发器驱动内部由多个功能组件组成,主要包括:
- 初始化模块:负责整个驱动的初始化,配置硬件收发器,是驱动功能的入口点
- 配置管理:管理驱动的静态和动态配置参数
- 模式管理:控制收发器的工作模式(如DOWN、STANDBY、ACTIVE等)
- 链路状态管理:监控无线链路的状态并处理状态变化
- 无线电参数管理:负责配置和管理无线电参数
- 无线电通道管理:管理收发通道的配置和操作
- 主函数:周期性被BSW调度器调用,处理状态更新和事件处理
2.2.2 配置组件
配置相关的组件包括:
- 无线电配置:包含无线电1和无线电2的配置,支持不同频段和标准
- 发送队列:管理无线电发送的数据队列
- 天线配置:管理天线相关的配置参数
这种组件化设计具有以下优势:
- 职责单一:每个组件专注于特定功能,提高代码可维护性
- 高内聚低耦合:组件间通过明确的接口交互,减少不必要的依赖
- 可扩展性:可以轻松添加新的功能组件或扩展现有组件
3. API接口
3.1 API功能概览
无线以太网收发器驱动提供了一组标准化的API函数,使上层软件能够控制和使用无线收发器的功能。以下类图展示了主要的API函数及相关数据类型:
3.1.1 主要API函数
WEthTrcv模块的API函数可以分为以下几类:
-
初始化函数
WEthTrcv_Init
:初始化无线以太网收发器驱动
-
模式控制函数
WEthTrcv_SetTransceiverMode
:设置收发器工作模式WEthTrcv_GetTransceiverMode
:获取当前收发器工作模式
-
链路状态函数
WEthTrcv_GetLinkState
:获取链路的当前状态(活动或断开)
-
无线电参数函数
WEthTrcv_SetRadioParams
:设置无线电参数(如频率、功率等)
-
通道参数函数
WEthTrcv_SetChanRxParams
:设置通道接收参数WEthTrcv_SetChanTxParams
:设置通道发送参数WEthTrcv_GetChanRxParams
:获取通道接收参数
-
其他功能函数
WEthTrcv_GetVersionInfo
:获取驱动的版本信息WEthTrcv_MainFunction
:驱动的主函数,由BSW调度器周期性调用
这些API函数提供了完整的控制和查询能力,使上层软件可以全面管理无线以太网收发器。
3.2 主要数据类型
WEthTrcv模块使用多种数据类型来表示其状态和配置信息:
-
状态枚举类型
-
WEthTrcv_ModeType
:表示收发器的工作模式WETHTRCV_MODE_DOWN
:收发器已断电WETHTRCV_MODE_STANDBY
:低功耗待机状态WETHTRCV_MODE_ACTIVE
:活动但未收发数据WETHTRCV_MODE_TX_ONLINE
:仅发送模式WETHTRCV_MODE_RX_ONLINE
:仅接收模式WETHTRCV_MODE_TXRX_ONLINE
:完全在线模式WETHTRCV_MODE_SLEEP
:睡眠模式
-
WEthTrcv_LinkStateType
:表示链路状态WETHTRCV_LINK_STATE_DOWN
:链路断开WETHTRCV_LINK_STATE_ACTIVE
:链路激活
-
-
配置数据类型
WEthTrcv_RadioConfigType
:无线电配置参数WEthTrcv_ChanRxParamsType
:通道接收参数WEthTrcv_ChanTxParamsType
:通道发送参数Std_VersionInfoType
:版本信息
这些数据类型使API接口更加清晰和类型安全,便于上层软件正确使用驱动功能。
4. 配置结构
4.1 配置容器层次关系
无线以太网收发器驱动模块采用了AUTOSAR标准的配置容器结构。以下类图展示了配置容器的层次关系:
4.1.1 配置层次结构
WEthTrcv的配置采用了多层次的容器结构,具体包括:
-
顶层容器
WEthTrcv
:顶级配置容器,包含通用配置和配置集
-
配置集容器
WEthTrcvConfigSet
:包含多个WEthTrcv配置WEthTrcvConfig
:具体的收发器配置WEthTrcvDemEventParameterRefs
:诊断事件参数引用WEthTrcvRadioConfigSet
:无线电配置集WEthTrcvRadioConfig
:具体的无线电配置WEthTrcvRadioChannelTxQueueConfig
:无线电通道发送队列配置WEthTrcvAntennaConfigSet
:天线配置集WEthTrcvAntennaConfig
:具体的天线配置
-
通用配置
WEthTrcvGeneral
:包含驱动的通用配置参数
这种层次化的配置结构使开发人员能够根据具体的硬件和应用需求灵活配置WEthTrcv模块。
4.2 关键配置参数
WEthTrcv模块的配置参数可以分为以下几类:
-
通用配置参数
WEthTrcvDevErrorDetect
:是否启用开发错误检测WEthTrcvMainFunctionPeriod
:主函数调用周期WEthTrcvIndex
:收发器索引WEthTrcvVersionInfoApi
:是否启用版本信息API
-
无线电配置参数
WEthTrcvRadioEnabled
:无线电启用标志WEthTrcvRadioFrequency
:无线电频率(MHz)WEthTrcvRadioPowerClass
:功率等级WEthTrcvRadioDataRate
:数据速率(Mbps)WEthTrcvRadioPreambleLength
:前导码长度
-
通道发送队列配置
WEthTrcvRadioChannelAifsN
:仲裁帧间间隔WEthTrcvRadioChannelCwMin/CwMax
:争用窗口最小/最大值WEthTrcvRadioChannelTxPower
:发送功率WEthTrcvRadioChannelTxLimit
:发送限制WEthTrcvRadioChannelTxQueue
:队列大小
-
天线配置参数
WEthTrcvAntennaEnabled
:天线启用标志WEthTrcvAntennaType
:天线类型WEthTrcvAntennaGain
:天线增益
-
诊断事件参数
WEthTrcvE_LinkDown
:链路断开事件WEthTrcvE_LinkStateChg
:链路状态变化事件WEthTrcvE_AccessTimeout
:访问超时事件WEthTrcvE_ConfigErr
:配置错误事件
通过适当配置这些参数,可以优化无线以太网收发器的性能和行为,以满足特定应用的需求。
5. 工作状态与转换
5.1 状态模型
无线以太网收发器驱动定义了一套完整的状态模型,用于管理收发器的工作状态和转换。以下状态图展示了这一模型:
5.1.1 主要状态定义
WEthTrcv模块定义了以下主要工作状态:
- 初始化:驱动初始化状态,执行硬件初始化、加载配置和设置默认参数
- 下线(DOWN):收发器已断电的状态,链路状态为DOWN,处于最低功耗状态
- 待机(STANDBY):低功耗待机状态,但可以接收命令
- 活动(ACTIVE):收发器已上电并可以接收命令,但尚未开始收发数据
- 仅发送(TX_ONLINE):收发器处于仅发送模式
- 仅接收(RX_ONLINE):收发器处于仅接收模式
- 收发模式(TXRX_ONLINE):收发器可以同时发送和接收数据,链路状态为ACTIVE
- 睡眠(SLEEP):低功耗睡眠状态
- 错误(ERROR):收发器处于错误状态,例如硬件访问错误、配置错误或超时错误
5.2 状态转换机制
WEthTrcv模块支持以下状态转换路径:
-
正常转换路径
- 初始化 → 下线:初始化完成后自动转换
- 下线 ↔ 待机:通过
WEthTrcv_SetTransceiverMode
函数控制 - 待机 ↔ 活动:通过
WEthTrcv_SetTransceiverMode
函数控制 - 活动 → 收发模式/仅发送/仅接收:通过
WEthTrcv_SetTransceiverMode
函数设置不同的工作模式 - 收发模式/仅发送/仅接收 → 活动:通过
WEthTrcv_SetTransceiverMode
函数返回活动状态 - 收发模式/仅发送/仅接收 → 待机:可以直接从工作模式切换到待机状态
- 活动 ↔ 睡眠:通过
WEthTrcv_SetTransceiverMode
函数控制进入睡眠,或通过唤醒事件返回活动状态 - 睡眠 → 待机:通过
WEthTrcv_SetTransceiverMode
函数控制
-
错误转换路径
- 任何状态 → 错误:当发生硬件错误时
- 错误 → 系统复位:需要系统复位才能恢复
这种状态模型确保了无线以太网收发器的正确初始化、操作和错误处理,同时支持不同的功耗管理策略。
6. 总结
6.1 应用场景
无线以太网收发器驱动(WEthTrcv)适用于以下汽车应用场景:
- 车载网络通信:在车内建立无线网络连接,连接不同的电子控制单元(ECU)
- 车联网应用:提供车辆与外部网络的无线连接
- V2X通信:支持车对车(V2V)、车对基础设施(V2I)等通信
- 远程诊断:通过无线连接进行远程车辆诊断
- 车载信息娱乐系统:为多媒体和信息娱乐系统提供无线连接
- 软件更新:支持车辆软件的无线更新(OTA)
6.2 集成要点
在将WEthTrcv模块集成到AUTOSAR系统中时,应注意以下关键点:
- 硬件兼容性:确保WEthTrcv驱动与目标硬件平台兼容
- 配置优化:根据具体应用场景优化无线电参数和通道配置
- 资源管理:合理规划内存和CPU资源,特别是对于收发队列的大小
- 功耗管理:根据系统需求配置适当的功耗管理策略,利用STANDBY和SLEEP模式
- 安全考虑:实施必要的安全措施,保护无线通信
- 诊断集成:正确配置与DEM的集成,确保错误事件能够被正确报告和处理
- 调度配置:根据应用需求合理设置
WEthTrcv_MainFunction
的调用周期
通过正确集成和配置WEthTrcv模块,可以为汽车应用提供可靠、高效的无线通信能力,满足现代智能网联汽车的需求。