[AutoSar]BSW_Com020 Handle_ID,Global_PDU,Local_PDU的联系

📅 2026/8/22 16:09:15
[AutoSar]BSW_Com020 Handle_ID,Global_PDU,Local_PDU的联系
目录关键词平台说明一、概念二、API的使用和形参三、Handle ID 唯一性特例四、PDU和handle ID关联用例关键词嵌入式、C语言、autosar、OS、BSW平台说明项目ValueOSautosar OSautosar厂商vector EB芯片厂商TI 英飞凌编程语言CC编译器HighTec (GCC)autosar版本4.3.1回到总目录一、概念1.Global_PDU在ECUC模块中EcucPduCollection定义用于绑定Local_PDU使被绑定到一起的Local_PDU产生联系。2.Local_PDU在COM_Stack模块配置完成后会生成local_PDU用于绑定到Global_PDU。3.Handle_ID用于标识Global_PDU和Local_PDU具有唯一性并且只有在模块配置完成后才能生成。整体概讲人话就是假如有两个相邻模块例如DCMCOMPDURPDUR如何知道数据是从DCM来的还是COM来的。只要我们将COM的局部PDU和PDUR的局部PDU通过Handle ID 绑定在在全局PDU中那么PDUR就知道这个数据是从COM来的了同理DCM也如此。绑定的结构如下图所示CanIf 和PDUR 的局部PDU绑定到ECUC的全局PDU。二、API的使用和形参以PduRCANif为例传输函数如下Std_ReturnTypePduR_ComTransmit(PduIdType ComTxPduId,constPduInfoType*PduInfoPtr);Std_ReturnTypeCanIf_Transmit(PduIdType CanTxPduId,constPduInfoType*PduInfoPtr)第一个形参即表示PDU的Handle ID根据Handle ID判定传输目标模块。第二个形参表示指向SDU的指针。三、Handle ID 唯一性特例Handle ID 在有种情况下可以重复。在PDUR中可能会具有相同的Handle ID但是PDUR 提供了两个APIPduR_ComTransmit 和PduR_DcmTransmit就算Handle ID一样但是可以通过不同的API来区分。四、PDU和handle ID关联用例101_dc8a7f01_Rx的帧在CanIf中PDU handle ID 是0在PDUR 中 handle ID是1.如下图所示通过PDU ref 都绑定到了ECUC中的全局PDU中。回到总目录