我的任务是使用最新版本的AUTOSAR(R19-11(为CAN模块创建软件堆栈。我不会使用任何配置工具。从我在AUTOSAR网站上读到的内容来看,这些是我必须实现的模块:CAN驱动程序、接口、状态管理器、PDU路由器和AUTOSAR COM。由于我不会使用数据超过8字节的帧,我不需要CAN传输协议模块。
当向下发送PDU时,一些模块会将元数据添加到这些接收到的PDU(在本地称为SDU(中,然后将它们发送到下一层。我已经读到,我们必须为这些PDU分配唯一的ID。此外,我们必须有一个路由表(在PDU路由器内(,用于根据每个PDU的ID确定其目的地。
我的问题是:
- 如何分配ID
- 身份证会是什么样子
- 对于给定的CAN帧,我是否必须根据PDU在堆栈(COM、状态管理器、接口或驱动程序(
- 知道用户(应用层(可以定义任意数量的can帧PDU路由器事先知道某个PDU的ID和目的地是什么
- 从应用层和终止于CAN驱动器模块
- 将由正在接收PDU的模块?例如:应用程序发送数据0xAA。COM接收此PDU并添加特定PCI,然后发送它向下到PDU路由器等等。SDU+PCI=PDU在每个阶段会是什么样子
实际上,AUTOSAR中的配置工具的优势在于,您不必一直手动处理代码及其配置。
好吧,不实现CanTp也意味着,你没有客户诊断(UDS(?顺便说一句,CAN-FD具有高达64字节的帧。
PduIdType的定义见AUTOSAR_SWS_CommunicationStackTypes第8.1.1章。CCD_ 1。
简而言之,它们是无符号整数,从零开始并且连续,以便用作模块配置的配置索引。它们是为每个BSW模块创建的,因此您有一组CanIf-PduIds、PduR-PduIds、IpduM-PduId、Com-PduId、SecOC-PduId,它们也可以在Rx和Tx之间拆分(因此一组RxDuId从0开始,一组TxPduId也从0开始(。因此,CanFrames PDU可以在CanIf、PduR、Com等中具有不同的PDU ID,并且多路复用的帧被分割成单独的PDU,每个多路复用器具有不同的PduId。
关于它的另一章是AUTOSAR_TPS_EcuConfiguration第3.4章COM堆栈配置。
它包含句柄ID的概念、它们的定义、分配,甚至命名约定和一些用例。