AUTOSAR中的IoHwAb是干啥的,怎么创建使用?

前言

IoHwAb原理应用和配置步骤讲解,附PDF版下载(限时)。

1.概念和应用

平时我们常见的IoHwAb这个名称,就是I/O Hardware Abstraction的缩写。从字面理解,它就是叫I/O硬件抽象层,就是用来访问底层I/O驱动的。

从架构图上看,IoHwAb在这个位置:

但是,这里要注意了,IoHwAb是ECU Abstraction Layer的一部分,但它也不是一个单独的模块,而是一组模块。

AUTOSAR定义这个IoHwAb并非旨在标准化此模块或模块组。相反,它旨在成为实现其与其他模块的功能接口的指南。

IoHwAb的目的是通过将IoHwAb端口映射到 ECU 信号来提供对 MCAL 驱动程序的访问。提供给软件组件的数据完全从物理层的值中抽象出来。因此,软件组件设计人员不再需要有关 MCAL 驱动程序的 API 和物理层值的单位的详细信息。

AUTOSAR_SWS_IOHardwareAbstraction

换句话说,IoHwAb是对底层驱动的抽象,让上层的设计者不要太关注底层的细节。

因此,每个ECU的需求和功能都不一样,所以这个IoHwAb的实现是跟着ECU走的,而无法做成像其他模块那样的标准化,因为软件组件对基本软件的要求必须适合于某个MCAL实现的功能。

IoHwAb位于MCAL驱动程序上方。这意味着 IoHwAb将调用驱动程序的API 来管理片上设备。MCAL 驱动器的配置取决于 SWC 所需的 ECU 信号质量。例如,当硬件Pin脚发变化时,可能需要发出通知(例如上升沿、下降沿)。系统设计人员必须配置 MCAL 驱动程序以允许给定信号的通知。通知由 MCAL 驱动程序生成,并在 IoHwAb中处理。

讲了这么多,还是用一个图解释更合适。

从这个图也可以看到,实际上IoHwAb是可以访问所有的MCAL驱动的。但实际上,像GPT这种的话,不会用IoHwAb的方式访问,CAN/LIN/Ethernet这些也不会用IoHwAb来访问。

也许,你会问,IoHwAb可以用来访问Communication Driver吗,例如SPI,答案是肯定的。

那么UART和IIC呢?因为这两个驱动没有在MCAL标准化,直接在CDD(Complex Device Driver)层实现就可以了,不需要用到IoHwAb。

除了MCAL驱动,IoHwAb可以访问System的接口吗?也是可以的。

另外,以下是IoHwAb的头文件关系和接口关系图。

2. 实战配置

IoHwAb的配置,跟CDD以及普通的SWC配置是类似的。

方法1:

(部分内容已省略……)

请关注同名公众号查看。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值