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


  

关键词

嵌入式、C语言、autosar、OS、BSW

平台说明

项目Value
OSautosar OS
autosar厂商vector , EB
芯片厂商TI 英飞凌
编程语言C,C++
编译器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,具有唯一性,并且只有在模块配置完成后才能生成。
整体概讲人话就是:假如有两个相邻模块例如DCM,COM,PDUR,PDUR如何知道数据是从DCM来的还是COM来的。只要我们将COM的局部PDU和PDUR的局部PDU通过Handle ID 绑定在在全局PDU中,那么PDUR就知道这个数据是从COM来的了,同理DCM也如此。
在这里插入图片描述
绑定的结构如下图所示:CanIf 和PDUR 的局部PDU绑定到ECUC的全局PDU。
在这里插入图片描述

二、API的使用和形参

  以PduR,CANif为例传输函数如下:

Std_ReturnType PduR_ComTransmit(PduIdType ComTxPduId, const PduInfoType* PduInfoPtr);
Std_ReturnType CanIf_Transmit(PduIdType CanTxPduId,const PduInfoType *PduInfoPtr)

第一个形参即表示PDU的Handle ID,根据Handle ID判定传输目标模块。
第二个形参表示指向SDU的指针。

三、Handle ID 唯一性特例

  Handle ID 在有种情况下可以重复。在PDUR中可能会具有相同的Handle ID,但是PDUR 提供了两个API:PduR_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中。
在这里插入图片描述
在这里插入图片描述
>>>>>回到总目录<<<<<<

  • 28
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老灰╮(╯-╰)╭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值