我的任务是使用最新版本的AUTOSAR(R19-11)为CAN模块创建软件堆栈。我不会使用任何配置工具。根据我在AUTOSAR website上阅读的内容,这些是我必须实现的模块:CAN驱动程序,接口,状态管理器,PDU路由器和AUTOSAR COM。由于我将不使用具有超过8个字节数据的帧,因此不需要CAN传输协议模块。
[向下发送PDU时,某些模块将元数据添加到这些接收的PDU(在本地称为SDU)中,然后将它们发送到下一层。我已经读到我们必须为这些PDU分配唯一的ID。另外,我们必须有一个路由表(在PDU路由器内部),该表将用于根据每个PDU的ID确定其目的地。
我的问题是:
实际上,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的概念,它们的定义,分配,甚至命名约定和一些用例。