我的任务是使用最新版本的 AUTOSAR (R19-11) 为 CAN 模块创建软件堆栈。我不会使用任何配置工具。根据我在 AUTOSAR网站上阅读的内容,这些是我必须实现的模块:CAN 驱动程序、接口、状态管理器、PDU 路由器和 AUTOSAR COM。因为我不打算使用超过 8 字节数据的帧,所以我不需要 CAN 传输协议模块。
在将 PDU 向下发送到堆栈时,一些模块会将元数据添加到这些接收到的 PDU(在本地称为 SDU),然后将它们发送到下一层。我读过我们必须为这些 PDU 分配唯一的 ID。此外,我们必须有一个路由表(在 PDU 路由器内部),用于根据每个 PDU 的 ID 确定其目的地。
我的问题是:
- ID是如何分配的?
- 身份证会是什么样子?
- 对于给定的 CAN 帧,我是否必须根据 PDU 在堆栈中的当前位置分配不同的 ID?(COM、状态管理器、接口或驱动程序)
- 知道用户(应用层)可以定义任意数量的 CAN 帧,PDU 路由器如何事先知道某个 PDU 的 ID 以及它的目的地是什么?
- 从应用层开始到 CAN 驱动模块结束的消息传输(或接收)是什么样的?
- 接收 PDU 的模块将添加哪些元数据(或 PCI - 协议控制信息,在 AUTOSAR 中称为)?例如:应用程序发送数据 0xAA。COM 接收到这个 PDU 并添加一个特定的 PCI,然后将其发送到 PDU 路由器等等。SDU + PCI = PDU 在每个阶段会是什么样子?