您现在的位置是:首页 >其他 >AUTOSAR COM(整体架构和模块交互)网站首页其他
AUTOSAR COM(整体架构和模块交互)
一、COM层主要功能和架构
一、COM层主要功能和架构(参考MICROSAR COM Technical Reference CFG5 Version 9.00.01)《TechnicalReference_Com.pdf》
1.1 COM模块的主要功能:
为上层提供信号接口(无符号/有符号)
I-PDUs 中信号的打包和解包
处理传输模式
I-PDUs 间传输最小间隔
I-PDU组的通信控制
接收的deadline监控
发送的deadline监控
通知的机制
对初始值的支持
信号网关
1.2 COM模块在AUTOSAR整体架构中的位置如下
知识梳理
–APPLICATION 层: 主要包括SWC、Runnable、PortInterface
–RTE层:为SWC之间、SWC对BSW层提供访问接口。
–BSW层:COM、MEM(内存管理)、DIAG、SYS、OS等,主要为上层提供基础应用(通过RTE)
二、COM层的主要接口交互图
接口交互详解:
Activity 1 通过RTE调用COM接口
常见接口有Com_SendSignal/Com_SendSignalGroup/Com_ReceiveSignal/Com_SetIpduGroup等
但是此类接口一般不通过SWC直接调用,而是通过RTE的mapping 的方式由SWC调用较为规范,否则无法做到SWC和BSW的隔离。
Activity 2 COM对RTE的回调
常见的接口有Com_RxIndication、Com_TxConfirmation
对于非诊断报文报文上传路径 CAN(Driver)-->CANIF---->PDUR---->COM , Com_RxIndication表示PDUR对COM的回调。
**I-PDU级别的回调通知配置**:配置通知函数后,Com_RxIndication调用时候直接调用通知函数。
I-PDU级别callout
信号级别callout
**信号级别的回调通知配置**:配置通知函数后,回调的时机取决于配置的类型。
以RX PDU为例(Tx PDU同理,使用的是com_TxConfirmation函数,在Com_MainfunctionTx轮询配置为defer属性的报文),
deffered----->COM层收到com_Rxindication时候,不会马上产生信号回调,而是在Com_MainfunctionRx中产生信号回调函数。
inmediate----->COM层收到com_Rxindication时,马上产生信号回调。
Activity 3 COM和DEM的交互
暂未发现两者交互,可看到CANSM和DEM的交互
Dem_ReportErrorStatus( CanSM_EventID, CanSM_EventStatus );
CANSM和DEM的交互-1
CANSM和DEM的交互-2
Activity 4 COM和DET交互
DET(开发错误跟踪),各模块均和DET有交互,用于识别开发中的错误,详细见后续DET章节
Activity 5: Com_Init函数
—> COM层内外接口和变量初始化
---->此项初始化完成不表示COM模块通讯使能
---->需在Com_InitMemory()后执行(主要初始化启动代码中不能初始化的变量,使Com处于初始化状态以便执行Com_Init)
Com_Init执行时机:由用户选择,一般在CAN相关芯片上电完成后,在BSM TASK某个状态中执行
Activity 6/ 7: Com_IpduGroupControl ---->BSWM模块控制PDUGroup的使能/禁止
IPDU 控制的几个关键函数
函数:BswM_SetIpduGroup 检测条件满足后, BSWM模块设置对应的IPDUGroup的使能标志
函数:BswM_SetIpduDMGroup:检测条件满足后,BSWM模块设置对应的IPDU DMGroup的使能标志
函数:BswM_ExecuteIpduGroupControl
功能:BSWM主函数执行,轮询检测PDU控制请求,根据BswM_SetIpduGroup函数设置的PDUGroup使能标志
设置组内对应PDU的使能/禁止
子函数:**Com_IpduGroupControl**(Com_IpduGroupVector ipduGroupVector, boolean initialize)
功能:BSWM调用COM接口,寻找ipduGroupVector中TXIpduGroup和RXIpduGroup的使能状态,并对应使能/禁止 对应IpduGroup中的各个PDU。
子函数:**Com_IpduGroupControl_UpdateRxComIPduState**(ipduGroupVector, initialize);
功能 :BSWM调用COM接口,根据RxPDUgroup状态使能/禁止内部RXPDU
子函数:**Com_IpduGroupControl_SetRequestedActiveState**(ComTxPduId, initialize, bRequestedActiveState);
功能 :BSWM调用COM接口,根据TxPDUgroup状态逐一使能/禁止对应PDUgroup中的RXPDU
Activity 8/9 COM和下层的交互
重点接口:PduR_ComTransmit
利用PDUR层下发数据,下发成功后PDUR层通过com_TxConfirmation通知Com层
Activity 10 DET为COM模块(和其他各模块)提供Det_Report_error报错接口
COM模块常见问题总结(未完待续)