Autosar - 【6 AUTOSAR中的I-PDU】

PDU是Protocol Data Unit的缩写,而我们又知道,协议有很多种,不同的功能簇,分层的每一层都可能有一种协议的定义,因此PDU是一个相对广泛的概念。例如Com模块中组合了signal的PDU,CanIf模块中为使用CAN通信而创建的PDU等等。

基于分层的不同,在AUTOSAR中一般将PDU分为三类:I-PDU, N-PDU, L-PDU。

Autosar - 【6 AUTOSAR中的I-PDU】_第1张图片

I,N,L分为代表交互层,网络层,数据链路层。

至于PDU之间的关系,我们可以借用这张图来理解:

Autosar - 【6 AUTOSAR中的I-PDU】_第2张图片

PDU主要包含两部分信息,PCI(协议控制信息)也即常说的头部信息,而SDU(服务数据单元)则是具体的payload。像刚才提到的N-PDU,他对于CanIf来说就是L-PDU中的SDU。

AUTOSAR I-PDU (Inter Process Data Unit) 是一种数据单元,用于在 AUTOSAR 系统中传输数据。它是一种用于在不同的软件组件之间交换数据的通用格式。

AUTOSAR I-PDU 的作用是将数据从一个发送器组件传输到一个或多个接收器组件。它可以在 AUTOSAR 系统中的任何层中使用,从而实现各种不同的通信需求。I-PDU 可以包含一个或多个数据元素,每个数据元素都有一个唯一的标识符。这些标识符用于将数据元素与特定的软件组件关联起来。

6.1 I-PDU工作原理

AUTOSAR I-PDU 包含两个主要部分:元数据和有效载荷。元数据描述了 I-PDU 的属性,例如 I-PDU 的长度、发送器 ID、接收器 ID 等等。有效载荷是实际的数据内容。AUTOSAR I-PDU 可以是定长或变长的,这取决于具体的需求。

当一个软件组件需要发送数据时,它将数据写入到一个 AUTOSAR I-PDU 中,并指定接收器的 ID。然后,这个 I-PDU 会被发送到一个通信簇 (Communication Cluster) 中,该簇可以是一个 CAN 总线、一个以太网、一个 FlexRay 等等。通信簇会将 I-PDU 传输到与接收器 ID 匹配的接收器组件。

当一个软件组件需要接收数据时,它会创建一个 I-PDU 缓冲区,并指定发送器的 ID。当一个 I-PDU 被接收到并传输到该组件时,该组件会检查 I-PDU 的发送器 ID 是否与其所期望的发送器 ID 匹配。如果匹配,则 I-PDU 的有效载荷会被写入到接收缓冲区中。

6.2 I-PDU工作过程

AUTOSAR I-PDU 的工作过程可以分为三个主要阶段:发送阶段、传输阶段和接收阶段。

  1. 发送阶段:发送软件组件将数据写入到一个 I-PDU 中,并将其发送到通信簇中。发送软件组件需要指定接收器 ID,以便通信簇可以将 I-PDU 传输到正确的接收器组件。
  2. 传输阶段:通信簇负责将 I-PDU 传输到与接收器 ID 匹配的接收器组件。传输过程可能会包括一些网络协议,例如 CAN 协议或以太网协议。
  3. 接收阶段:接收软件组件从通信簇中接收 I-PDU,并将其写入到接收缓冲区中。接收软件组件需要检查 I-PDU 的发送器 ID 是否与其所期望的发送器 ID 匹配。如果匹配,则 I-PDU 的有效载荷会被写入到接收缓冲区中,否则 I-PDU 将被丢弃。

在 AUTOSAR 系统中,I-PDU 通常是由 RTE (Runtime Environment) 或 PDU Router (Protocol Data Unit Router) 管理的。RTE 用于在软件组件之间传输数据,而 PDU Router 用于将数据从一个网络层传输到另一个网络层。当 RTE 或 PDU Router 收到一个 I-PDU 时,它会将其发送到一个适当的发送队列中,以便进行进一步的处理。在发送队列中,I-PDU 可以被编码、解码或转换成其他格式。

总之,AUTOSAR I-PDU 是一种用于在 AUTOSAR 系统中传输数据的通用格式。它允许不同的软件组件之间进行可靠的通信,并在传输过程中保持数据的完整性和可靠性。I-PDU 的工作原理和工作过程相对简单,但需要软件组件和通信簇之间的协同工作来实现可靠的数据传输。

你可能感兴趣的:(Autosar,网络,网络协议,系统架构)