AUTOSAR CANIF模块--功能描述之“硬件对象句柄”(Hardware Object Handles)

什么是“硬件对象句柄”

硬件对象句柄(Hardware Object Handles)缩写为“HOH”,对于发送来讲是HTH(Hardware Transmit Handles),对于接收来讲是HRH(Hardware Receive Handles),是代表一种对CAN邮箱结构体(包含CanId、DLC和Data)的抽象引用。基于CAN硬件缓冲抽象,CanIf 中引用每个硬件对象,与 CAN 硬件缓冲布局无关。HOH在CanDrv接口服务的调用中用作参数,由CanDrv的配置提供,并由CanDrv用作通信CAN邮箱通信缓冲区的标识符。

CANIF只是作为HOH的使用者,但是不对其进行基于硬件描述信息的转译。CANIF因此独立于底层硬件。

SWS_CANIF_00023,CANIF应避免直接访问硬件描述的通信缓冲,应仅通过CanDrv接口服务访问它。

这么做的理由是:CANIF应保持对硬件的独立性,因为CanDrv接口是使用HOH参数调用的,这些参数从具体的CAN硬件缓冲区属性中抽象出来。

每个CAN控制器在CAN邮箱中提供多个CAN发送硬件对象。这些硬件对象可以在逻辑上链接成一整个“硬件对象池”(multiplexed Hardware Objects)并且可以通过HTH进行寻址。

SWS_CANIF_00662,CANIF应使用两种HOH去使能对CanDrv的访问--HTH和HRH

HRH的概念和使用方法

SWS_CANIF_00291,HRH应为引用一个CAN邮箱的逻辑硬件接收对象的句柄。

SWS_CANIF_00665,HRH应使CanIF能够使用所引用接收单元的BasicCAN或FullCAN接收方法,并向目标上层模块指示接收的L-SDU。

SWS_CANIF_00663,如果HRH引用了为BasicCAN接收配置的接收单元,则应在CanIf中启用软件过滤。

SWS_CANIF_00664,如果使用多个HRH,则每个HRH应至少属于单个或固定的Rx L-SDU(CanRxPduIds)组。

HRH可以配置为接收--

  • 一个单独CanId(FullCAN)
  • 一组独立的CanId(BasicCAN)
  • 一个范围的CanId(BasicCAN)
  • 所有CanId。

 HTH的概念和用法

SWS_CANIF_00292,HTH应为引用逻辑硬件发送对象的句柄。

SWS_CANIF_00666,HTH应允许Canif使用所引用的传输单元的BasicCAN或FullCAN传输方法,以及确认传输L-SDU到目标上层模块。

SWS_CANIF_00466,每个CanIf Tx L-PDU应在配置时静态分配给一个CanIfBufferCfg配置容器(参考CanIfTxPduBufferRef)。

这么做的逻辑是:CANIF TX L-PDU不引用HTH,但是引用CanIfBufferCfg,间接引用HTH。

SWS_CANIF_00667,如果用到多个HTH,每个HTH应书序一个单独的或固定的TX L-PDU组(CanTxPduIds)

SWS_CANIF_00115,CANIF应可以使用所有HRH和HTH,并进行统一从0开始进行编号。

专用的HRH和HTH源自CanDrv的配置集。编号区域和硬件对象内HTH/HRH的定义取决于CanDrv。

猜你喜欢

转载自blog.csdn.net/weixin_46481662/article/details/129674138