您现在的位置是:首页 >其他 >AUTOSAR COM(整体架构和模块交互)网站首页其他

AUTOSAR COM(整体架构和模块交互)

桃源乐游 2024-08-30 12:01:03
简介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整体架构中的位置如下
COM模块在AUTOSAR整体架构
知识梳理
–APPLICATION 层: 主要包括SWC、Runnable、PortInterface
–RTE层:为SWC之间、SWC对BSW层提供访问接口。
–BSW层:COM、MEM(内存管理)、DIAG、SYS、OS等,主要为上层提供基础应用(通过RTE)

二、COM层的主要接口交互图

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时,马上产生信号回调。

rte和COM层的交互,COM回调通知

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

示例流程图:诊断请求使能/禁止APP报文

Activity 8/9 COM和下层的交互
重点接口:PduR_ComTransmit
利用PDUR层下发数据,下发成功后PDUR层通过com_TxConfirmation通知Com层

COM和PDUR层交互

Activity 10 DET为COM模块(和其他各模块)提供Det_Report_error报错接口

COM模块常见问题总结(未完待续)

返回- AUTOSAR配置与实践—总目录

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。