【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

相关文章
|
数据格式
一文读懂A2L文件和ASAP2 Studio的使用
一文读懂A2L文件和ASAP2 Studio的使用
一文读懂A2L文件和ASAP2 Studio的使用
|
边缘计算 网络协议 网络架构
DoIP看这篇就够了,吐血整理
DoIP看这篇就够了,吐血整理
DoIP看这篇就够了,吐血整理
交流电路理论:峰值、平均值和RMS值的计算公式
除了频率和周期之外,AC 波形的一个关键属性是振幅,它表示交变波形的最大值,或者更广为人知的是峰值。
11735 1
交流电路理论:峰值、平均值和RMS值的计算公式
|
存储 安全 算法
一文理解UDS安全访问服务(0x27)
一文理解UDS安全访问服务(0x27)
一文理解UDS安全访问服务(0x27)
|
运维 监控
浅析SPI与CAN通信
SPI是一种常用的MCU与外设的通信方式,英文全称Serial Peripheral Interface。与之前介绍过的UART不同,SPI是串行,全双工,同步通信方式。SPI通常有4根物理连接线,分别是CS片选,SCK时钟,MOSI主机输出从机输入和MISO主机输入从机输出。CS片选是从机选择信号线,低电平有效。当CS为低电平时认为主机目前选中的本从机。SCK是串行时钟线,同步通信需要主从机时钟同步,主机利用SCK线与从机实现时钟同步。时钟由主机产生,决定了通讯的速率。
546 0
|
存储 供应链 监控
做了那么多架构,你真的懂 SOA 了吗?
如何统一看待和区别分层架构、微服务架构、分布式架构等主流架构?什么是 SOA?我们采用 SOA 的目的是什么?什么是服务化的本质?如何设计服务以及服务化架构呢?阿里高级技术专家程彦分享他对面向服务架构的一些看法,并给出相关的步骤和方案,较长,同学们可收藏后再看。
3959 0
做了那么多架构,你真的懂 SOA 了吗?
|
11月前
|
网络协议 Java 程序员
【网络】局域网LAN、广域网WAN、TCP/IP协议、封装和分用
【网络】局域网LAN、广域网WAN、TCP/IP协议、封装和分用
423 2
|
11月前
|
存储 开发工具 C#
Git Extensions:一个.NET开源的 Git 图形用户界面(GUI)工具
Git Extensions:一个.NET开源的 Git 图形用户界面(GUI)工具
384 0
|
存储 安全
[UDS] --- ECUReset 0x11
[UDS] --- ECUReset 0x11
340 0