AUTOSAR CAN堆栈实现提示

问题描述 投票:0回答:1

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

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

我的问题是:

  • 如何分配ID?
  • ID会是什么样?
  • 对于给定的CAN帧,我是否必须根据PDU在设备中的当前位置分配一个不同的ID。堆? (COM,状态管理器,接口或驱动程序)
  • 知道用户(应用层)可以定义任意数量的CAN帧,PDU路由器预先知道某个PDU的ID是什么,目的地是什么?
  • [从应用层开始,消息的发送(或接收)是什么样子?结束于CAN Driver模块?
  • 什么元数据(或在AUTOSAR中称为PCI-协议控制信息)将由哪些模块正在接收PDU?例如:应用程序发送数据0xAA。 COM接收此PDU并添加特定的PCI,然后发送直到PDU路由器等等。在每个阶段,SDU + PCI = PDU是什么样的?
driver can-bus autosar communication-protocol
1个回答
0
投票

实际上,AUTOSAR中的配置工具的优势在于,您不必一直在代码和配置中花时间。

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

PduIdType的定义在AUTOSAR_SWS_CommunicationStackTypes

中。 8.1.1。 SWS_COMTYPE_00005, SWS_COMTYPE_00006, SWS_COMTYPE_00007, SWS_COMTYPE_00014

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

要阅读的另一章是AUTOSAR_TPS_EcuConfiguration

章。 3.4 COM-Stack配置。

它包含Handle-ID的概念,它们的定义,分配,甚至命名约定和一些用例。

© www.soinside.com 2019 - 2024. All rights reserved.