COM通信栈

  • 基于 AUTOSAR 架构的软件层概述
    COM通信栈_第1张图片

  • 根据分层AUTOSAR 架构,软件开发是按照以下模块(层)(自下而上)实现的:

    • 基本软件 (BSW) 层——这包括以下内容:
      • 微控制器抽象层 (MCAL)
      • 电子控制单元 (ECU) 抽象层
      • 服务层
      • 复杂的设备驱动程序
      • 运行时环境(RTE)
      • 应用层
  • 了解AUTOSAR通信堆栈(ComStack)

    • 在AUTOSAR 分层架构中,Communication Stack 或ComStack便于车辆网络通信。因此,ComStack可以定义为为基础软件模块和应用层/应用软件提供通信服务的软件栈。如下图AUTOSAR架构图所示,AUTOSAR通信栈是BSW(Basic Software)模块的一部分:
      COM通信栈_第2张图片
  • 典型的AUTOSAR 通信堆栈在基本软件层的三个子层中具有其模块:

    • 服务层
    • ECU抽象层
    • MCAL
      • 该堆栈中的一些重要软件模块如下:
      • AUTOSAR COM – 服务层的一部分
      • 内部总线驱动程序– AUTOSAR MCAL 的一部分(例如 – CANDrv、LINDrv、FRDrv)
      • 总线收发器驱动程序——ECU 抽象层的一部分
      • 外部总线驱动程序– ECU 抽象层的一部分(例如 – 外部驱动程序,如 CANDrv、LINDrv、FlexrayDrv)
      • 总线特定接口模块– ECU 抽象层的一部分(例如 -CANIF、LINIF)
    • 总线网络管理、总线状态管理器、总线传输协议、总线接口和总线驱动等子模块方便了通信。这些模块中的每一个都有特定的作用。
  • AUTOSAR 架构中的 CAN 通信堆栈是什么?

    • 当 AUTOSAR 兼容软件的目标总线类型是 CAN 时,ComStack 实现相对于CAN Bus执行。从接口 (IF) 和状态管理器到低级驱动程序,这些模块中的每一个都需要针对 CAN 总线进行配置。
    • CAN 通讯栈是一个协议栈协议网络利用和CAN协议层的消息为是一组利用CAN总线的车辆通信系统模块。这为 CAN 网络提供了一个统一的接口,同时对应用程序隐藏协议和消息属性。应用层只关心数据,而不关心低层操作,例如:使用哪条总线,或者要传输的数据是否不适合 CAN 帧等。这些低层操作由通信堆栈处理。CAN 通信栈支持标准 CAN 和 CAN FD(如果硬件支持)。
      COM通信栈_第3张图片
  • CAN通信栈的不同模块列表:

    • AUTOSAR COM(服务层)
    • PDU 路由器(服务层)
    • CAN 状态管理器(服务层)
    • CAN 网络管理器(服务层)
    • CAN 传输协议(服务层)
    • CAN 接口(ECU 抽象层)
    • CAN 收发器驱动程序(ECU 抽象层)
    • CAN 驱动程序(MCAL 层)
  • 了解有关 CAN ComStack 软件模块的更多信息:

    • AUTOSAR COM : AUTOSAR COM 是 RTE 和 PDU 路由器之间的一个模块。它基于 OSEK COM 规范,为 CAN 网络提供统一的接口。它负责提供对应用层的信号级访问和对较低层的 PDU 级访问,独立于协议。它在发送器处将信号打包到 PDU 并解包接收到的 PDU 以提供对应用程序的信号级访问收件人。在 PDU 级别,COM 负责 PDU 的分组,以及 PDU 组的启动/停止。
    • PDU 路由器:PDU 路由器是一个模块,负责将 PDU 路由到相应的总线特定接口模块。在 PDU 路由器模块之上,所有的 PDU 都是协议独立的。在PDUR之下,所有的PDU都被路由到协议特定的模块。
      • PDUR 也是PDU 级网关,用于将接收到的 PDU 从一个总线特定接口模块传输到另一个总线特定接口模块。
      • 当 PDU 通过相同的协议从一个控制器路由到另一个控制器时,PDU 路由器也完成网关功能。
    • CAN TP:CAN TP 模块提供的基本服务是对有效载荷超过 8 个字节的消息进行分段、通过流控制传输消息以及在接收器处重新组装分段消息。

很多时候需要发送或接收的PDU(消息)可能超出支持的CAN消息的最大大小。为了解决CAN的这些问题和限制,AUTOSAR实现了CanTp块。不适合单独的CAN帧的分割被分成多个部分,以便每个部分都可以 CAN 帧中传输。该块服务来大小更大的 CAN 最大的I-PDU可以在允许执行该块的消息。还提供重新接收到的接收到的 PDU 的服务,然后决定包来自应用层的信号将其进一步传输到应用层。CanTp 还提供基于 PDU 5 尺寸检测错误的服务。CanTPISO 1576是 CAN 的标准。PDUR通过来 是否通过使用该模块,如果PDU适合不同的CAN帧则直接指向下一个模块而不是CanTp模块,然后CAN帧模块可以Tp如果到那个较低的层。收到PDU时遵循相同的机制。

  • CAN接口:CAN接口(CANIF)是ECU抽象层中的一个模块,负责发送请求、发送确认、接收指示、控制器模式控制和PDU模式控制等服务。

代表上层通信接口层驱动服务它它提供了独特的接口来控制ECU硬件布局管理不同的硬件设备的类型,如CAN和CAN发送器。因此,根据内部或外部CAN控制器/CAN收发器可以由CAN状态管理器( CanSM)独立这些。它来自 CanSM 的控制上层的 CAN 控制器状态转换,以及状态变化通知。CAN 接口模块由 ECU 的 CAN 通信设备驱动程序的所有在任务组成。任务 CAN 接口模块中执行一次,如果满足 PDU 路由器和AUTOSAR COM 模块的上层要求的主要和数据要求。如:发送层处理请求、//接收指示/错误通知以及 CAN 当事人的启动/停止,重组通知/网络。

  • CAN 状态管理器 (CANSM):该模块实现相应总线的控制流。CAN 状态管理器是通信服务模块组的成员。CAN 状态管理器处理依赖于通信系统的启动和关闭功能。它还规定了 COM 用于发送 PDU 和监控信号超时的各种选项。

AUTOSAR为相应的网络网络/SAR 可以提供特定的管理。BSW可以在 ECU 中,有多个通信网络/网络的模式。ComM模块通过向这些网络句柄为相应的总线/网络提供特定的状态管理器。CanSM 用于改变 CAN 网络的模式。在 ECU 中,可以有多个通信网络/总线,每个网络都有一个与之关联的唯一网络句柄。ComM 模块通过向这些网络句柄发出 请求来跟踪网络的通信模式。ComM 通过其配置知道哪个句柄分配给 CAN 或 FlexRay 或任何其他网络类型。对于 CAN,CommM 使用 CanSM 请求 CAN 网络的模式。CanSM 模块负责控制 AUTOSAR 中 CAN 网络的流抽象。它根据来自 ComM 模块的请求改变 CAN 网络的模式。CAN SM 使用 CANIf的 API的模块中的 AUTOSAR CAN CAN 的流请求的抽象。它根据 ComM 模块的请求改变 CAN 模式 模块,CAN 控制器或 CAN 收发器模式的任何变化都将通过 CANIf 通知 CanSM。根据 CAN 网络状态机的通知和状态,CanSM 模块应为每个配置的 CAN 网络实现,CanSM 模块通知 ComM。

  • CAN NM:AUTOSAR CAN Network Management 是一个独立于硬件的协议工具,只能在 CAN 网络上使用。它协调网络正常运行和总线睡眠模式之间的转换。CAN 网络管理 (CANNM) 功能提供网络管理接口 (NMIF) 和 CAN 接口 (CANIF) 模块之间的适配。CAN NM 包含三种模式:网络模式、准备总线睡眠模式和总线睡眠模式。
  • CAN 收发器驱动程序——CAN 收发器驱动程序的主要功能包括控制外部 CAN 收发器硬件。CAN Bus 的唤醒和休眠过程由 CAN Transceiver Driver 调节。该驱动程序还观察 BUS 线路并将物理网络层诊断信息传输到上层。
  • CAN Driver (CANDrv):该模块是 MCAL 层的一部分,提供对上层服务的硬件访问和与上层的硬件无关的接口。CANIF 是唯一可以访问 CAN 驱动程序的模块。
    下面将看到CAN消息从信号到我们准备传输消息的过程:

COM通信栈_第4张图片

  • 上图是一个非常大的信号层到准备发送的CAN信号信号到好传输的过程图。PDU。因此 COM将信号进一步打包到一个 PDU中,该 PDU 传输到PduR。然后 PduR 传输到CanTp,因为在这种情况下,PDU 最大大于 CAN 允许的大小,因此将被分割为多个 PDU。您应该注意每一层的 PDU 名称更改,如果您还在更改其他 PDU 名称,我应该查看其他 PDU 名称。PDU改变链路。CAN接收时是不同的模式,除了Can PDU将段重新组装成不同的传输层消息。

你可能感兴趣的:(车载,汽车)