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

    文章

    5160

    浏览量

    213544
  • SPI接口
    +关注

    关注

    0

    文章

    258

    浏览量

    34348
  • ADC模块
    +关注

    关注

    1

    文章

    19

    浏览量

    11066
收藏 人收藏

    评论

    相关推荐

    I/O电路中电压比较器与I/O信号完整性介绍

    在高速I/O电路设计中,输入I/O的比较器是一个非常重要的模块
    的头像 发表于 10-30 15:02 1652次阅读
    <b class='flag-5'>I</b>/<b class='flag-5'>O</b>电路中电压比较器与<b class='flag-5'>I</b>/<b class='flag-5'>O</b>信号完整性<b class='flag-5'>介绍</b>

    I/O模块无法识别

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

    数字I/O介绍

    数字I/O脚有专用和复用。数字I/O脚的功能通过9个16位控制寄存器来控制。控制寄存器分为两类:(1)I/
    发表于 09-16 12:20 19次下载

    冗余I/O

    6.1 冗余I/O的定义当I/O模块以每两个一组组态成冗余对运行时,I/
    发表于 07-23 00:29 26次下载

    基于Rocket I/O模块的高速I/O设计

    摘要: 介绍了采用Videx-ⅡPR0系列FPCA设计的应用于下一代无线通信系统中的高速IO。由于充分利用芯片中集成的Rocket IO
    发表于 06-20 10:45 1333次阅读
    基于Rocket <b class='flag-5'>I</b>/<b class='flag-5'>O</b><b class='flag-5'>模块</b>的高速<b class='flag-5'>I</b>/<b class='flag-5'>O</b>设计

    什么是I/O地址

    什么是I/O地址 I/O地址中I是input的简写,O是output的简写,也就是输入输出地址
    发表于 02-05 10:01 1343次阅读

    I/O扩展(8255)模块

    为用户在中提供一个I/O 扩展的方法,在设计过程遇到I/O不够用时可以用此种方案。
    发表于 07-04 17:12 0次下载

    T1K系列I/O模块安装指导

      T1K系列I/O模块采用基架式安装方式。根据I/O模块所占用的
    发表于 09-22 16:04 10次下载

    介绍 I/O NI系统,C系列的I/O模块

    内容包括:理想的确定性以太网I/O,具有确定性分布式I/O的NI系统,C系列的I/O
    的头像 发表于 06-14 06:19 4565次阅读
    <b class='flag-5'>介绍</b> <b class='flag-5'>I</b>/<b class='flag-5'>O</b> NI系统,C系列的<b class='flag-5'>I</b>/<b class='flag-5'>O</b><b class='flag-5'>模块</b>

    数字I/O模块的特点介绍

    速度替高70倍的数字I/O模块 (点击CC按钮,选择中文字幕)
    的头像 发表于 10-08 03:16 5623次阅读

    新唐科技超级 I/O 系列介绍

    新唐超級I/O(Super I/O)系列芯片,被广泛的使用在主板、工业计算机、一体机(AIO)以及工作站上。除了传统输出入的功能, 例如串口、打印机接口、键盘鼠标(KBC)接口、通用型
    的头像 发表于 02-04 09:51 1897次阅读
    新唐科技超级 <b class='flag-5'>I</b>/<b class='flag-5'>O</b> 系列<b class='flag-5'>介绍</b>

    PLC的I/O模块如何选择

    一般IO模块的价格占PLC价格的一半以上。PLC的IO模块有开关量
    发表于 05-19 08:54 9404次阅读
    PLC的<b class='flag-5'>I</b>/<b class='flag-5'>O</b><b class='flag-5'>模块</b>如何选择

    CC link内置型I/O模块用户手册

    本手册介绍Control&Communication Link(以下简称为CC-Link。)本章介绍作为系统的 远程I/O站使用的CC-Link内置型
    发表于 08-26 09:22 2次下载
    CC link内置型<b class='flag-5'>I</b>/<b class='flag-5'>O</b><b class='flag-5'>模块</b>用户手册

    工业远程I/O模块CANopen I/O模块产品概述

    Mxxc系列CANopen工业I/O数据采集模块按照苛刻的工业应用环境需求而设计,广泛应用于各种工业自动化生产、安防监控系统、自动化测量与控制系统中。用户可以采用不同的I/
    发表于 12-30 14:00 990次阅读

    FANUC外部I/O点数不够用了怎么办?可以扩展I/O点数吗?

    FANUC外部I/O点数不够用了怎么办?可以扩展I/O点数吗? 扩展FANUC的外部I/O点数是
    的头像 发表于 02-18 15:21 1775次阅读