【AutoSAR实战订阅系列】Handle-ID分配和 PDU之间的链接关系

简介: 【AutoSAR实战订阅系列】Handle-ID分配和 PDU之间的链接关系

1、 COM-Stack API中的两类参数

有粉丝@leilei,问我PDUID怎么这么绕?这就帮你分析一波,嘿嘿。。

我们在「Autosar通信协议栈-AutoSAR通信模块的架构AutosarComStack001 」可以知道,COM-Stack  数据传输和数据接收中的 API 定义的函数参数主要是两类参数:如下述API所示:

//一般通信发送
Std_ReturnType PduR_ComTransmit(PduIdType ComTxPduId, const PduInfoType* PduInfoPtr);
Std_ReturnType CanIf_Transmit(PduIdType CanTxPduId,const PduInfoType *PduInfoPtr)
//  诊断发送
Std_ReturnType PduR_DcmTransmit(PduIdType DcmTxPduId, const PduInfoType* PduInfoPtr);
Std_ReturnType CanTp_Transmit( PduIdType CanTpTxSduId, const PduInfoType * CanTpTxInfoPtr );
  • 一类是指向 PDU 数据缓冲区的指针,其中数据缓冲区包含要传输的信息(也就是当前层的SDU)
  • 用于识别 PDU的句柄 ID(也称为 PDU-ID)

2、 局部PDU和全局PDU的定义及联系

为了使通信堆栈正常运行,相邻模块(例如Com和PduR )必须就在这些模块之间交换的 PDU-ID 约定一套规则,以确保这些相邻模块之间交换的 PDU-ID是同一个东西。有如下三个规则:

1. 每个模块都有自己的 PDU-ID ,独立于其他模块,可自由选择。

如有一个PDU,不妨叫他为【韭菜PDU】;【韭菜PDU】在Com模块的PDU-ID = 3;PduR 将【韭菜PDU】 传输到CanIf,而此时【韭菜PDU】在CanIf模块的PDU-ID = 6;但是请注意:韭菜PDU在Com模块/CanIf模块的句柄PDU-ID 是唯一的,否则用Davinci/EB工具配置的时候就会报错。但是有一种情况就是:两个不同的 API:PduR_ComTransmit()和PduR_- DcmTransmit()。即使它们在PduR模块中具有相同的句柄 PDU-ID,PduR 模块能够区分两个 PDU,因为可以根据其 API不同来区分,具有唯一的句柄 ID这一限制只在同一个 API 的范围适用。

2. 句柄 ID 由提供 API 的模块定义,并由调用 API 的模块使用。在PduR模块和Com模块交互的情况下,。。。。

3. 全局PDU的定义怎么样实现两个相邻模块使用的 PDU 的绑定呢?也就是【韭菜PDU】的两个影分身如何确保是同一个本体分解出来的呢?。。。。

3 、PDU之间的链接关系的传输接收配置的实例

3.1 Tx from Com to CanIf

。。。。。。。。

bbfd573514812f7578a4786dc2b2a4f8_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

3.2 Rx from CanIf to Com

。。。。。。

c209e1f99eddb843e90495a28d5df355_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

相关文章
|
数据库
主题域、概念、逻辑、物理四种模型有什么区别与联系?
主题域、概念、逻辑、物理四种模型有什么区别与联系?
|
3月前
|
API 数据安全/隐私保护 开发者
【优秀程序设计】【good-practice】聚合系统如何实现通道侧回调的业务结果通知?
【8月更文挑战第3天】本文介绍了公司短信平台聚合系统中,短信通道回调的业务处理方法。文章详细描述了如何通过统一回调接口与合理分层设计优化代码结构,避免烟囱式代码堆砌,提高扩展性和维护性。
47 2
|
5月前
|
JavaScript 前端开发
大事件项目55----基地址优化封装和便于以后服用
大事件项目55----基地址优化封装和便于以后服用
|
6月前
LabVIEW使用多个事件结构来处理同一个事件
LabVIEW使用多个事件结构来处理同一个事件
187 0
|
6月前
|
存储
一文搞清楚字节的名称和关系,告诉你ib和B有什么区别?
一文搞清楚字节的名称和关系,告诉你ib和B有什么区别?
|
消息中间件 定位技术 调度
《移动互联网技术》第八章 消息与服务:掌握不同类型广播监听方式,以及创建通知的方法
《移动互联网技术》第八章 消息与服务:掌握不同类型广播监听方式,以及创建通知的方法
52 0
|
安全
RxSwift特征序列Driver的使用,以及共享附加作用与非共享附加作用的区别?
RxSwift特征序列Driver的使用,以及共享附加作用与非共享附加作用的区别?
174 0
[ROS通信机制] ---话题通信之自定义msg类型
[ROS通信机制] ---话题通信之自定义msg类型
149 0
SAP WM 共用同一个仓库号的2个存储地点之间转库
SAP WM 共用同一个仓库号的2个存储地点之间转库
SAP WM 共用同一个仓库号的2个存储地点之间转库
|
移动开发 小程序 iOS开发
小程序和h5之间的通讯及注意事项
起因:在小程序中嵌入已有的h5页面,用于快速开发。但是h5和小程序中的事件通讯是需要解决的问题。参照官网后实践之后得出结论。
1068 0