AUTOSAR CAN 堆栈实施提示

AUTOSAR CAN Stack Implementation Hints

我的任务是使用最新版本的 AUTOSAR (R19-11) 为 CAN 模块创建软件堆栈。我不会使用任何配置工具。 根据我在 AUTOSAR website 上阅读的内容,这些是我必须实现的模块:CAN 驱动程序、接口、状态管理器、PDU 路由器和 AUTOSAR COM。由于我不打算使用超过 8 字节数据的帧,因此我不需要 CAN 传输协议模块。

当将PDU向下发送到堆栈时,一些模块将元数据添加到这些接收到的PDU(在本地称为SDU),然后将它们发送到下一层。我读到我们必须为这些 PDU 分配唯一的 ID。此外,我们必须有一个路由 table(在 PDU 路由器内部),它将用于根据每个 PDU 的 ID 确定目的地。

我的问题是:

实际上,AUTOSAR 中配置工具的优势在于,您不必一直fiddle手动编写代码及其配置。

嗯,不实施 CanTp 也意味着,您没有客户诊断 (UDS)?顺便说一句,CAN-FD 的帧最多为 64 字节。

PduIdType 的定义在 AUTOSAR_SWS_CommunicationStackTypes Ch. 8.1.1. SWS_COMTYPE_00005, SWS_COMTYPE_00006, SWS_COMTYPE_00007, SWS_COMTYPE_00014.

简而言之,它们是无符号整数,从零开始连续,以便用作模块配置的配置索引。它们是为每个 BSW 模块创建的,所以你有一组 CanIf-PduIds、PduR-PduIds、IpduM-PduIds、Com-PduIds、SecOC-PduIds,它们也可以在 Rx 和 Tx 之间拆分(所以一组RxPduIds 从 0 开始,一组 TxPduIds 也从 0 开始)。因此,一个 CanFrames PDU 可以在 CanIf、PduR、Com 等中具有不同的 PDU-ID,并且多路复用的帧被分成单独的 PDU,每个多路复用器具有不同的 PduId。

要阅读的另一章是 AUTOSAR_TPS_EcuConfiguration 章。 3.4 COM 堆栈配置。

它包含句柄 ID 的概念、它们的定义、分配、甚至命名约定和一些用例。