【AUTOSAR CanDrive 2.了解通信Hoh、CanId与PduID的Mapping关系】

CAN接口模块设计的初衷就是不能直接访问硬件,与硬件保持独立,这也就意味着CAN接口层只能通过CAN模块的接口去获取硬件有关的内容,主要使用的CAN模块接口有Hth和Hrh。关于Hth和Hrh,首先涉及一个软件过滤选择问题,即当Hth和Hrh配置成BasicCAN(此寄存器能够接收任意的Canid 报文),则需要在CanIf模块执行软件过滤;当Hrh和Hth配置成FullCAN(此寄存器只能接收对应配置的一个Canid 报文),则不需要在在CanIf模块执行软件过滤,而是在硬件过滤。然后进入上述提到的CanId映射方式,即不同CanId如何映射到Hrh和Hth,以及Hrh和Hth又如何映射到更上层模块(暂称为PDU Id),如下图13所示
在这里插入图片描述
图13 PDU Ids和Hoh的映射,引自[1]
总的来说上图非常清晰地展现了各种Id的映射,但为了更好理解,下面详细介绍:

首先,我们知道CAN Controller中有很多硬件对象处理器(Hoh), 在CAN Driver中将Hoh作为接收和发送用途,接收的叫做Hrh, 发送的叫做Hth。然后将Hrh和Hoh分别与对应的CanId映射起来,如下图14所示。

在这里插入图片描述
图14 Hoh–(Hrh, Hth)-- CanId映射示意
再分别定义CAN模块与CAN接口模块的Hrh和Hth的映射,如下图15

在这里插入图片描述
图15 (Hrh–CanIf Hrh), (Hth–CanIf Hth)
最后建立CanIf Hrh与RxPduID,CanIf Hth与TxPduID的映射,如图16,即对于CAN通讯功能,建立起了CAN接口模块与PduR模块的ID映射

在这里插入图片描述
图16 (CanIf Hrh–RxPdu ID), (CanIf Hth–TxPdu ID)
建立了上述几种映射后,就非常好理解不同模块的相关函数的参数关系(比如indication函数和confirmation函数)。以接收indication函数说明,如下图17所示。

在这里插入图片描述
图17
即CAN模块读取相关寄存器的数据,其中建立CanId与Hrh的映射1,且两者均为Mailbox的元素;数据长度和数据为PduInfoPtr的元素。将这些信息传递给上一层CAN接口模块,CAN接口模块根据建立的Hrh与CanIf Hrh的映射获取CanIf Hrh,CanIf Hrh根据建立的CanIf Hrh与RxPduId的映射2获取RxPduId。最后,将RxPduId和CAN模块传输的数据传递给PduR模块。通过这个过程不难发现,如果已知RxPduId,则可知对应CanId是多少,反之亦然。

如果有过AUTOSAR工具配置经验,不难发现配置过程大体是按照这种逻辑去建立各种映射关系,且配置过程中Id设置要特别注意,必须得对应正确,才能保证功能正确。

通过这两篇文章对CAN模块和CAN接口模块的介绍,基本理顺了从硬件到软件的数据传输和软件实现的过程,如下图18上半部分。也就是软件在这个部分已经获得了相应CanId的8个字节数据,那么下一步自然要做的就是将接收的这8个字节数据解析成相应报文协议定义的各个信号,或将发送的信号打包成8个字节的数据。从下篇文章开始介绍图18的下半部分内容。

在这里插入图片描述
Link:
AUTOSAR中CAN通信协议栈配置详解
基于Autosar的Can通信协议栈原理

  • 19
    点赞
  • 94
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 《ECU软件的AUTOSAR分层架构》是一篇详细探讨AUTOSAR(汽车开放系统架构)的文章。AUTOSAR是一种标准化的软件架构,旨在提高汽车电子系统的可重用性和可扩展性,提高生产效率并减少成本。 AUTOSAR由多个层次组成,每个层次都有特定的功能。文章详细介绍了以下六个AUTOSAR层次: 1. 底层驱动:该层次提供底层硬件驱动,包括设备驱动程序和通信模块,支持高效的通信和数据传输,确保系统稳定性和安全性。 2. MCAL(微控制器抽象层):这一层次抽象了底层驱动,并提供了与硬件相关的功能。它可以处理芯片特定的低级别细节,并提供基本的软件驱动程序和芯片初始化设置。 3. 操作系统:这一层次提供针对开发和管理自动化软件的操作系统功能。它使用了任务的概念,可以将系统操作细节与应用程序分离。 4. RTE(运行时环境):这一层次是应用程序和底层驱动程序之间的接口。它提供数据传输和错误管理功能。 5. 服务层:这一层次为应用程序提供服务。服务层包括通信协议,错误管理以及高级驱动程序,以提高汽车电子系统的可重用性和可扩展性。 6. 应用程序:最后一层是应用程序。它包含客户端和服务器端应用程序,完成特定的任务,如ADAS(高级驾驶辅助系统)、车辆诊断和车载娱乐等。 总的来说,本文详细介绍了AUTOSAR的分层架构,每个层次的功能和作用。AUTOSAR的采用将更好地促进汽车电子系统的发展,使系统更加稳定和安全。 ### 回答2: Ecu软件的autosar分层架构.pdf是一篇关于汽车电控单元软件的文章。该文章介绍了AutosarAutomotive Open System Architecture)分层架构的原理和特点,并且讲述了Autosar在汽车电控单元软件开发中的应用。 Autosar分层架构是一种基于模块化开发的设计思想,它将汽车电控单元软件分解成不同的功能层,每一层都具有特定的功能和接口。这种设计能够提高软件的可重用性和可维护性,并且适应不同制造商之间的互操作性。 该文章详细介绍了Autosar分层架构的五个层次:应用层、服务层、复合器层、基础软件驱动层和微控制器抽象层。每一个层次都有不同的功能和任务。例如,应用层是最高层,它负责应用程序的实现;服务层提供了针对通信和访问硬件的服务接口;复合器层主要处理多路信号的复合;基础软件驱动层抽象了硬件接口;微控制器抽象层负责操纵微控制器的硬件和软件。 此外,文章也讲述了Autosar分层架构在汽车电控单元软件开发中的具体应用,例如在系统配置、软件开发、软件测试和生命周期管理等方面的应用。最后,文章强调了Autosar分层架构的优势,包括可重用性、可维护性、互操作性和可扩展性。 总之,Ecu软件的autosar分层架构.pdf提供了关于汽车电控单元软件开发的宝贵信息,可以为汽车制造商和软件开发者提供帮助和指导。 ### 回答3: Ecu软件的autosar分层架构.pdf文件主要介绍了汽车电子控制单元(ECU)中,使用AUTOSARAutomotive Open System Architecture)标准进行软件分层的架构。该标准旨在加强汽车电子系统的可重用性、互换性和可扩展性。该文档介绍了AUTOSAR软件分层架构的组成和层次结构,并详细说明了每个层次的作用和职责。 该文档介绍了AUTOSAR的三个主要层次:应用层、运行时环境层和基础设施层。 应用层是用户编写的应用程序模块。 运行时环境层为应用程序提供运行所需的基本服务。 基础设施层提供基本软件组件(例如操作系统、电源管理、通信协议等)的服务。 该文件还介绍了ECU内两个重要模块:BSW(Basic Software Module)和MCAL(Microcontroller Abstraction Layer)。 BSW层实现了AUTOSAR标准中定义的所有服务,并提供了ECU软件的基本功能。 MCAL层为硬件平台提供适配层,以实现与不同硬件的兼容性。 BSW和MCAL共同构成了ECU软件的底层实现。 此外,该文件还讨论了AUTOSAR的组件构建,即将不同的软件组件组合为一个整体系统的过程。 该文件强调了AUTOSAR分层结构的优点,包括提高软件开发效率、简化软件维护和升级、降低成本和提高可靠性等。 总之,ECU软件的AUTOSAR分层架构.pdf文件系统地介绍了汽车电子系统的软件体系结构,详细说明了每个层次的作用和职责。 汽车制造商和软件开发人员可以借鉴该文件,有效提高软件开发效率和软件系统的稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值