本文主要是介绍Autosar-CanIf模块介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
4.1CanIf模块简介
CanIf模块是为了要隔离MCal层与服务层,因此CanIf不可直接操作硬件资源。然而CanIf传输数据、接收数据要使用到Can模块的缓存,如果直接使用Can模块的缓存的话,那CanIf就与MCal层耦合在一起了。
为了解决这个问题,CanIf层使用了一个HOH的概念:Hardware Object。HOH根据发送与接收的不同,又分为HTH和HRH: Hardware Transmit Handle, Hardware Receive Handle。那HTH、HRH应该怎么理解呢?
Can Mcal层负责定义Can数据的发送、接收缓存(通常我们称它们为邮箱)数组,而HTH、HRH则代表的是数组的下标。这样HTH、HRH就与缓存对应起来了。
下图直观展示了HTH、HRH与Can模块缓存的关系:
4.2CanIf调用的驱动
Canif需要调用两个驱动:Can Controller(Can控制器), Can Transceiver(Can收发器)。Can控制器是MCU中can模块,can收发器则是外部对Can信号进行差分转换的控制器。
4.3关于FullCan与Basic Can
配置为FullCan的邮箱只能接收、发送一个Can Id,而配置为Basic Can的邮箱可发送、接收一个范围段的CanId。
4.4CanIf发送缓存
CanIf可以配置发送缓存,也可以不配置。<
这篇关于Autosar-CanIf模块介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!