MCAL配置之Port和Dio模块及IO抽象层源码分析

这篇具有很好参考价值的文章主要介绍了MCAL配置之Port和Dio模块及IO抽象层源码分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Port及Dio模块是独立于MCU时钟的两个模块,因此最容易上手,不过在配置前需要充分了解硬件原理图以及硬件手册中的接口相关内容。

1. Port界面分析

在Port界面中,分为General及PortContainer两个配置选项卡。其中Genaral选项卡中可配置是否使用DET监控(DevErrorDetect)、是否使能SafetyCheck(PortSafetyEnable)以及相关API是否能使用。

MCAL配置之Port和Dio模块及IO抽象层源码分析,Autosar架构MCAL配置及相关源码分析,单片机,网络,嵌入式硬件,Powered by 金山文档

在PortContainer选项卡中,显示了TC377的所有Port号以及相关pin脚数量。

MCAL配置之Port和Dio模块及IO抽象层源码分析,Autosar架构MCAL配置及相关源码分析,单片机,网络,嵌入式硬件,Powered by 金山文档

在每一个Port选项卡中,包含了其中每一个Pin脚的方向、复用模式、初始电压状态等属性。在下一节中将结合数据手册和硬件原理图对部分重要选项作详细介绍。

MCAL配置之Port和Dio模块及IO抽象层源码分析,Autosar架构MCAL配置及相关源码分析,单片机,网络,嵌入式硬件,Powered by 金山文档

2. Port关键配置选项

①PortPinDirection

这个选项的含义很好理解,讨论这个选项的目的是区别PORT_PIN_OUT和PORT_PIN_IN两种配置对其他选项的影响。两者的其余可配置项基本是相反的,暗显的选项在生成代码时不会被包含,在配置时可以不予考虑。

MCAL配置之Port和Dio模块及IO抽象层源码分析,Autosar架构MCAL配置及相关源码分析,单片机,网络,嵌入式硬件,Powered by 金山文档

②PortPinInitialMode

该选项对PORT_PIN_OUT有作用,选项中包含GPIO和ALT1~ALT7,分别对应数据手册中的O0至O7部分。以P00.0为例,针对原理图中的定义,该引脚用作CAN10的TXD口,在数据手册中对应于O5类型的复用模式,故选择ALT5。

MCAL配置之Port和Dio模块及IO抽象层源码分析,Autosar架构MCAL配置及相关源码分析,单片机,网络,嵌入式硬件,Powered by 金山文档
MCAL配置之Port和Dio模块及IO抽象层源码分析,Autosar架构MCAL配置及相关源码分析,单片机,网络,嵌入式硬件,Powered by 金山文档

③PortPinLevelValue

该选项对PORT_PIN_OUT有作用,指定该Pin脚的初始输出电压状态,和其他连接芯片的输入初始状态有关,一般配置为PORT_PIN_LEVEL_LOW。但也有特殊情况,比如某个唤醒引脚,工作时处于低电压,上电时需要在程序中手动将该引脚拉至低电压,故配置时将其置为PORT_PIN_LEVEL_HIGH。

④PortPinOutputPadDriveStrength

该选项对PORT_PIN_OUT有作用,指定输出端口的驱动强度。在当前的TC3XX系列芯片中,大多数引脚都可配置为PORT_PIN_DEFAULT_DRIVER。特例为:RGMII的以太网数据发送端口配置为PORT_PIN_RGMII_DRIVER、PWM波输出端口需配置为PORT_PIN_MEDIUM_DRIVER。

⑤PortPinOutputPinDriveMode

该选项对PORT_PIN_OUT有作用,指定输出端口的驱动模式,分为推挽输出和开漏输出。两种模式的区别如下:1.推挽输出:能输出真正的高低电平,两种电平都具有驱动能力;2.开漏输出:默认只能输出低电平,没有能力输出高电平驱动负载,需借助外部上拉电阻才可输出高电平。

在配置时一般会选择推挽输出,并将初始电压设置为低电频。若芯片在上电时发生漏电现象,则需将初始电压配置为高电压,并设置开漏输出以组成高阻态。

⑥PortPinInputPullResistor

指定输入引脚电压在处理时按照上拉、下拉或按照实际电压值处理。一般此项配置为NO PULL,读取实际电压值即可。

⑦PortPinInputPadLevel

指定输入电平的类型,当前默认选择为CMOS类型,但在千兆以太网输入的前提下,该选项应当为RGMII类型。

3. Dio界面分析

Dio模块存在的目的是可通过上层控制Port口的电平值,同时也可读出该电平值。在Dio界面中,分为General及DioPort两个配置选项卡。其中General选项卡中包含了DET使能、SafetyCheck等类似于Port界面的选项。

MCAL配置之Port和Dio模块及IO抽象层源码分析,Autosar架构MCAL配置及相关源码分析,单片机,网络,嵌入式硬件,Powered by 金山文档

在DioPort选项卡中,显示了TC377的所有能够被上层访问的DioPort信息。

MCAL配置之Port和Dio模块及IO抽象层源码分析,Autosar架构MCAL配置及相关源码分析,单片机,网络,嵌入式硬件,Powered by 金山文档

4. Dio关键配置选项

①DioPortId

需要被上层访问的Port ID号。

②DioChannelId

需要被上层访问的Channel ID号,也就是Pin脚号。

5. IoHwAb层相关源码

DIO部分包含输入和输出部分的引脚编号定义。值得注意的是,管理它们使用的是枚举体,最后会使用IoHwAb_Dx_Signal_MAX得到引脚总数。之后定义了状态的输入和输出函数。这两个函数会被其他模块使用,比如电源管理模块、CAN TRCV模块等等。

typedef enum
{
    MCU_CAN00_DIS_FB,
    MCU_CAN00_ERR_N,
    AURIX_HWCONFIG_4,
    AURIX_HWCONFIG_5,
    MCU_J3_SW_IRQOUT_N,
    MCU_J3_TICKOUT_MCU,
    AURIX_HWCONFIG_2,
    AURIX_HWCONFIG_3,
    AURIX_HWCONFIG_6,
    AURIX_HWCONFIG_1,
    
    IoHwAb_DI_Signal_MAX
} IoHwAb_DI_Signal;

typedef enum
{
  MCU_CAN00_EN,
  MCU_CAN00_STB_N,
  MCU_9000BR_DISB,
  MCU_9000BR_PHYRSTB,
  MCU_7920_EN,
  MCU_2179_Power_Down,
  MCU_RSTOUT_J3,
  MCU_J3_WKUPIN_N,
  MCU_SYS_5V0_EN,
  MCU_SYS_1V2_EN,
  MCU_SYS_0V9_EN,
  MCU_WDO,
  MCU_SMU_FSP,
  MCU_CAM_3V3_EN,
  MCU_J3_SPI2_M_INT,
  MCU_J3_SPI0_M_INT,
  
  IoHwAb_DO_Signal_MAX
} IoHwAb_DO_Signal;

extern Std_ReturnType IoHwAb_DIO_GetStatus(IoHwAb_DI_Signal in_signal, IOHWAB_DIO_Status* out_status);
extern Std_ReturnType IoHwAb_DIO_SetStatus(IoHwAb_DO_Signal in_signal, IOHWAB_DIO_Status in_status);

在输入和输出函数中,核心的函数是Dio_ReadChannel和Dio_WriteChannel。文章来源地址https://www.toymoban.com/news/detail-602701.html

Std_ReturnType IoHwAb_DIO_GetStatus(IoHwAb_DI_Signal in_signal, IOHWAB_DIO_Status* out_status)
{
    Std_ReturnType op_status = E_OK;

    if (in_signal > IoHwAb_DI_Signal_MAX)
    {
        op_status = E_NOT_OK;
    }
    else
    {
        *out_status = (IOHWAB_DIO_Status)Dio_ReadChannel(IoHwAb_DI_Channels[in_signal]);
    }

    return op_status;
}

Std_ReturnType IoHwAb_DIO_SetStatus(IoHwAb_DO_Signal in_signal, IOHWAB_DIO_Status in_status)
{
    Std_ReturnType op_status = E_OK;

    if (in_signal > IoHwAb_DO_Signal_MAX)
    {
        op_status = E_NOT_OK;
    }
    else
    {
        Dio_WriteChannel(IoHwAb_DO_Channels[in_signal], (Dio_LevelType)in_status);
    }

    return op_status;
}

到了这里,关于MCAL配置之Port和Dio模块及IO抽象层源码分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一步一步搭建S32K14x的AutoSar项目----MCAL之MCU模块

    1-1、时钟对于任何一款微控制器是很重要的,所以我们首先要了解S32K144的时钟树,才能为后续的MCAL中MCU模块配置做好准备,废话不多说,先上一张图片,聊了解下 对应芯片手册的第27章 Clock Distribution 。 1、SOSC 就是连接外部的高速时钟,我们一般情况下会优先选择它,精准

    2024年01月22日
    浏览(48)
  • Autosar MCAL-S32K324 MCU配置-基于EB

    2023年07月02日
    浏览(66)
  • 【AUTOSAR】RH850(F1KM) MCU PWM配置(MCAL)

    前言 在嵌入式项目中,我们经常需要使用到PWM信号。本文将基于汽车电子AUTOSAR架构下的软件开发方式。以RH850为例进行说明,介绍如何查阅芯片参考文档,并结合项目原理图,使用Davinci工具配置MCAL PWM模块,输出PWM波形。 仅供大家学习参考。 其他MCU的配置方法类似,需要找

    2024年02月13日
    浏览(45)
  • Autosar MCAL-RH850P1HC Mcu配置

    2024年01月18日
    浏览(45)
  • AUTOSAR规范与ECU软件开发(实践篇)7.1 MCAL配置工具安装方法

         目录  MCAL配置工具入门 1 MCAL配置工具安装方法 (1) EB tresos Studio工具安装方法

    2024年02月11日
    浏览(56)
  • Flutter网络请求框架Dio源码分析以及封装(一)--请求流程分析

    利用flutter开发app也已经有些时间了,这个过程中最多接触到的就是网络请求相关的代码。自己目前项目中使用的是现在市面上最流行的网络请求库-dio,相对于flutter自带的HttpClient来说,dio使用起来更简单,功能更强大,支持全局配置、Restful API、FormData、拦截器、 请求取消、

    2024年02月09日
    浏览(41)
  • Flutter网络请求框架Dio源码分析以及封装(二)--Cookie管理分析

    上一篇文章我们简单分析了一下Dio发出请求时的大致工作流程,这个只是Dio最基本的功能,而且我们还没有分析走到httpClientAdapter之后的内容。不过不用着急,这次我们先接着上一次的内容,看一下Dio当中Cookie管理的问题,因为之前在项目中碰到了这个问题,回过头来再从源

    2024年02月08日
    浏览(42)
  • Autosar MCAL软件架构基本概念

    MCAL 架构介绍 Autosar整体架构图如下所示: MCAL是MicroController Abstraction Layer(微控制器抽象层)的缩写。如下图所示,MCAL位于AUTOSAR软件架构中基本软件(Basic Software,BSW)的底层,是可以直接访问MCU寄存器和内部外设的底层驱动。这样划分的目的是使上层软件(如ECU抽象层、系

    2024年02月01日
    浏览(42)
  • 7、AUTOSAR MCAL入门-实战:I/O驱动组

    在第三节中有介绍 AUTOSAR 把 MCAL 抽象分为4个驱动组,分别为:**微控制器驱动组,存储器驱动组,通信驱动组、输入/输出驱动组。**这一节将具体介绍 MCAL 微控制器驱动组的内容。 2.4、I/O驱动组 I/O 驱动组完成 MCU 片上以下输入/输出模块的驱动:端口控制(PORT)驱动、数字I/O引

    2024年02月10日
    浏览(39)
  • AUTOSAR合集 1、基于EB的MCAL --- MCU驱动开发手册

    整体将采用自底向上的方式进行讲解,开发路线可能会做略微调整。 工程搭建---BSW(MCAL---通信协议栈(CAN/LIN))---SWC---代码集成---测试。 追求:干扰最小化,极简且正确。 建成一套高质量的开发参考文档。 1、基于EB的MCAL---MCU驱动开发手册 AUTOSAR系列教程合集项目 版本 编

    2024年02月05日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包