0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

介绍建立I/O Driver与上层交互的中间模块I/O Hardware Abstraction

冬至子 来源:Vehicle软件开发 作者:Vehicle软件开发 2023-01-18 12:09 次阅读

**AutoSAR I/O Hardware Abstraction **概述

I/O Hardware Abstraction在整个AutoSAR中属于ECU抽象层的一部分。在AutoSAR架构中的位置如下面绿色显示的部分所示。I/O Hardware Abstraction并不是仅仅作为一个模块使用,在实际的开发中,通常所有的I/O Driver模块(ADC、DIO、ICU、PWM、OCU等)都可以采用I/O Hardware Abstraction实现与上层应用间的交互和处理。

2.jpg

I/O Hardware Abstraction是从外围I/O设备(片上或板上)的位置和ECU硬件布局(例如μC引脚连接和信号电平反转)抽象出来的一组模块,不同的I/O设备可以通过I/O信号接口进行访问。I/O Hardware Abstraction的目的是通过将I/OHardware Abstraction端口映射到ECU信号来提供对MCAL驱动程序的访问,实现软件组件的数据完全从物理层中抽象出来,使软件组件设计者不再需要详细了解MCAL驱动程序的API和物理层值的单位。

I/O Hardware Abstraction提供初始化整个I/O硬件抽象的服务。I/O HardwareAbstraction将调用驱动程序的API管理片上设备。MCAL驱动程序的配置取决于SWC所需的ECU信号的数量。

I/O Hardware Abstraction****交互模块

I/O Hardware Abstraction在使用的时候主要处理的是MCAL层的各个模块,I/O HardwareAbstraction可以访问的MCAL层的接口如下所示。

2.jpg

I/O Hardware Abstraction在与MCAL的交互过程中可以调用所有MCAL的API接口,同时可以接收除了DIO和PORT以外的所有模块的回调函数。

I/O Hardware Abstraction除了调用MCAL中I/O Driver的模块,同时可以调用Communication的Driver接口,比较常用的就是SPI接口,在使用外部的ADC芯片的时候同时会用到相关的SPI通信协议,这个时候I/O Hardware Abstraction可以直接调用在SPI配置的参数和相关的接口实现对外部ADC芯片的电压采集。如下图所示

2.jpg

I/O Hardware Abstraction还会有系统服务模块相互关联,主要表现为在ECUM中调用相关的初始化函数,调用DET接口实现错误的追溯,调用Bsw Scheduler等。

I/O Hardware Abstraction还可以直接与DCM模块建立交互,用于对ECU相关的数据和信号做诊断处理。

I/O Hardware Abstraction****主要定义参数

I/O Hardware Abstraction采用的是AutoSAR Interface与SWC进行数据交互,处理的信号为ECU的Input/Output Signal,在AutoSAR中Port属于典型的AutoSAR Interface,用于处理ECU的Input/OutputSignal。

一般来说ECU信号与一个典型的Pin相互对应。同时ECU信号在I/O HardwareAbstraction有两个特性,Filter和Age。对于Filter属性一般适用于Input Signal,通过对原始输入信号的Fliter/Debuance处理将Input Signal的Raw值进行转换处理给上层应用模块处理。

对于Age属性,对于Input Signal来说,Lifetime决定了该信号的处理方式,如果为0,则表示该信号要立刻处理,如果大于0,则表示该信号的有效时间。对于Output Signal来说决定信号外发的Delay,如果为0,表示立马将数据写入到相应的寄存器,如果大于0,表示Delay时间到达后操作。

I/O Hardware Abstraction的实现一般需要EcuAbstractionComponentType的实体,同时建立起相关的Port通过RTE与SWC进行交互,除了定义Port还要定义Runnable以及Internal behavior等。I/O Hardware Abstraction可以提供SC Port和SR Port进行数据的交互。在SC Port中一般采用Set Operation和Get Operation进行数据操作,也可以采用Notification或者Callback进行操作。

I/O Hardware Abstraction一般包括多个BSW I/O模块,对于每一个BSW模块一般建立一个I/OHardware Abstraction的实体实现特定的功能。对于特定的功能可以创建调度的函数实现与下层模块的同步,例如可以根据ADC触发转换的时间定义对应的调度函数进行转换数据的读取。

I/O Hardware Abstraction没有具体配置条目,它的实现主要和SWC的实现相似,在使用的时候根据需要定义相关的函数以及交互的接口,实现对MCAL层I/O相关模块的数据处理。

最常用的功能就是将采集到的原始数据转化为直接可以供SWC使用的数据,如将ADC寄存器的值根据硬件转换电路实现真实的物理数值以及做相关的滤波处理;将从SWC接收的PWM的周期和占空比转换为寄存器中对应的时钟参数输出PWM等。

审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PWM
    PWM
    +关注

    关注

    114

    文章

    4960

    浏览量

    210885
  • SPI接口
    +关注

    关注

    0

    文章

    256

    浏览量

    34093
  • ADC模块
    +关注

    关注

    1

    文章

    19

    浏览量

    11002
收藏 人收藏

    评论

    相关推荐

    晶体型I/O模块和继电器型I/O模块的差别

    求教!请问“晶体型I/O模块和继电器型I/O模块的差别是什么?”有没有哪位大虾能够发一份
    发表于 10-24 09:55

    type里的I*或者O*什么意思????

    某芯片里的 type项,不知道对应的I* 或者O*是什么意思????I或者O或者I/O倒是知道的
    发表于 07-08 20:06

    8255 I/O扩展

    我用8255扩展51单片机的I/O口,A0、A1、CS分别接P2.0、P2.1、P2.7,虽然可以算出PA、PB、PC的地址,但需要对PA、PB、PC口中单独的I/O控制。能定义单独里
    发表于 03-12 11:26

    I/O标准有哪些

    有份作业要求查I/O标准有哪些,及其电平指标和使用场合,百度谷歌不到详细介绍的,有可以推荐的地址或是书本么?感激不尽哈,或者直接回我下,拜托了
    发表于 09-13 20:58

    2I/OI2C 通信 4I/O口 SPI

    的哦!          上传了几张大家可以大概看一下 ,这个4口的 , 本店来提供蓝牙模块 ,以及蓝牙串口通信软件, 相信制造屌丝的工程师之路的博客的朋友 这这个一定不会陌生,这里也顺便
    发表于 11-04 19:37

    基于LabVIEW的PLC_I_O模块测试

    基于LabVIEW的PLC_I_O模块测试
    发表于 12-15 20:06

    MidRange MCU硬件如何执行I/O功能

    , and studying how hardware work to perform I/O function. I cannot figure out how this do, p
    发表于 09-27 15:04

    I/O模块无法识别

    我已经成功地编程了CyPress I/O模块,但是当我进入驱动站时,诊断标签中的I/O LED不会变成绿色。 以上来自于百度翻译 以下为原
    发表于 01-09 14:11

    如何TRIS未使用的I/O引脚

    大家好,我使用PIC18F4620 40PIN DIP封装,大约30的I/O引脚没有使用。我不知道我应该把它们留在硬件中,还是应该把它们绑定到VDD或VSS?在软件中也推荐使用未使用的I/O
    发表于 01-25 14:33

    建立专属的LabVIEW FPGA I/O

    与成本。  图 3. NI FlexRIO 系统中的 FPGA,透过 CLIP Node 整合其他制造商的 IP 核心,并沟通转接器模组于 LabVIEW FPGA 中建立客制 I/O 节点  透过
    发表于 04-28 10:04

    针对功耗和I/O而优化的FPGA介绍

    FPGA怎么选择?针对功耗和I/O而优化的FPGA介绍
    发表于 05-06 09:20

    DVI I/O FMC具有哪些特性参数应用?

    本文介绍了DVI I/O FMC模块主要特性,框图,DVI输入和输出框图,DisplayPort输出框图,以及模块电路图和材料清单(BOM)
    发表于 06-02 07:06

    什么是 I/O 口?I/O 具体能做什么呢

    I/O控制对于单片机而言是最基础最核心的东西,其实单片机除了模/数转换之外的事情。其他大部分的事情I/O口都能做的到。I/
    发表于 11-24 06:47

    为什么称为I/O编程

    Linux C 文件编程 – Linux I/O编程1.为什么称为I/O编程? Linux一点哲学:一切皆为文件。2.硬件设备也被抽象为文件:对硬件的操作=对硬件
    发表于 12-15 07:07

    PLC I/O模块阵的解决方案

    工业4.0指出了结合智能通信进行深入自动化趋势。因此,在过程工程、工业自动化和设备管理中,PLC需要配备更多的I/O端口。如果空间有限,控制器无法放入更多基板面,那么,我们必须增加模块密度才能支持
    发表于 11-16 07:41