当前位置: 首页 > news >正文

AUTOSAR Mcal Dio - 模块介绍 + EB配置工具介绍

文章目录

  • 1. 模块简介
  • 2. 主要功能
  • 3. 缩略语
  • 4. API接口
  • 5. 功能介绍
    • 5.1. ChannelGroup
    • 5.2. Dio_MaskedWritePort
  • 6. 序列图
    • 6.1.读GPIO电平
    • 6.2. 设置GPIO电平
  • 7. EB 工具配置
    • 7.1.General
    • 7.2.DioPort
  • 8. 参考资料

1. 模块简介

Dio,全称“Digital Input Output”。Dio模块(Digital Input/Output Driver)是MCAL层(微控制器抽象层)的核心基础驱动,负责对微控制器(MCU)的数字引脚进行标准化、硬件无关的访问与控制。通俗讲就是给Pin和Port做一层抽象,可根据具体功能去命名。
在这里插入图片描述

2. 主要功能

  • 提供通道(Pin)的读写操作
  • 提供端口组(Port)的读写操作
  • 提供通道组(一个端口中相邻Pin的组合)的读写操作
  • 翻转输出端口状态,周期为T的任务中循环调用,就能得到一个周期2T,50%占空比的方波
    备注:Pin相关配置(输入/输出、上拉/下拉、推挽/开漏等配置)均在Port模块完成,Dio模块仅负责数字接口的读写操作

3. 缩略语

在这里插入图片描述

4. API接口

在这里插入图片描述
备注:除Dio_GetVersionInfo以外,其他函数的参数,均使用Dio_Cfg.h中的宏定义,就不会出现开发错误。
Eg:P00端口的P00.3是LED0的GPIO引脚,对Pin命名时即可考虑端口号 + 功能作为描述。
在这里插入图片描述
在这里插入图片描述

5. 功能介绍

主要提供数字IO读写相关的操作。此处主要讲一下Dio_ReadChannelGroup、Dio_WriteChannelGroup和Dio_MaskedWritePort三个接口,Channel和Port分别对应硬件的哪个Pin和哪个端口,无特殊讲解。

5.1. ChannelGroup

Dio_ReadChannelGroup、Dio_WriteChannelGroup传入的参数是一个结构体类型地址,而不是简单的某个ChannelId或PortId,此处结构体中包含端口号、掩码、偏移三个参数。通过三个参数去确认具体的哪个Port下的哪些相邻的Pin。
在Ifx的EB配置页面中,偏移固定为0,用户不可配,只能通过掩码确认ID号,例如下面的14对应二进制的1110B,即端口组包括P00.1~P00.3四个引脚。用户使用时同样使用Dio_Cfg.h中的宏定义。
在这里插入图片描述

5.2. Dio_MaskedWritePort

非标准接口,作为Dio_WriteChannelGroup的补充,可以同时设置任意不相邻通道的输出电平在工具配置页面只有该功能的使能开关,该接口有PorId、Level、Mask三个参数。
PortId:端口号
Level:uint16类型的变量,bit0bit15分别对应Pxx.0Pxx.15
Mask:需要操作的引脚
在这里插入图片描述

6. 序列图

6.1.读GPIO电平

在这里插入图片描述

6.2. 设置GPIO电平

在这里插入图片描述

7. EB 工具配置

Dio模块简单,只是对Channel、Channel组、Port进行抽象,无太多注意事项。

7.1.General

无特殊讲解,都是针对功能进行裁剪的开关。
在这里插入图片描述

7.2.DioPort

根据实际需要增加相应的Port组,一般情况下Port的名字与物理的端口号或某个功能保持一致,增加可读性。
在这里插入图片描述
选中某个Port组向下展开后,可配置需要使用的Channel或ChannelGroup。
在这里插入图片描述

8. 参考资料

AUTOSAR Mcal Port - 模块介绍 + EB工具配置介绍
General Purpose I/O Ports and Peripheral I/O Lines (Ports)

http://www.dtcms.com/a/304407.html

相关文章:

  • 【开源项目】轻量加速利器 HubProxy 自建 Docker、GitHub 下载加速服务
  • Doris中文检索效果调优
  • 自组织遗传算法(Self-Organizing Genetic Algorithm, SOGA)求解Rastrigin函数优化问题
  • 【Rust并发集合】如何在多线程中并发安全地使用集合
  • 【AI News | 20250728】每日AI进展
  • 接口自动化测试pytest框架
  • 网络原理--HTTPHTTPS
  • JAVA_TWENTY—ONE_单元测试+注解+反射
  • MySQL——MVCC
  • ftp加ssl,升级ftps
  • 解决Spring MVC中@PathVariable参数为null导致的404问题:全面解析与最佳实践
  • Spring MVC数据传递全攻略
  • 架构实战——互联网架构模板(“网络层”技术)
  • WINCC选项组配置
  • Spring Boot 请求限流实战:基于 IP 的高效防刷策略
  • Postgresql 查询使用正则
  • SQL158 每类视频近一个月的转发量/率
  • Java 大视界 -- Java 大数据在智能教育学习社区知识图谱构建与知识传播分析中的应用(370)
  • DeepCompare文件深度对比软件的差异内容提取与保存功能深度解析
  • Go语言新手村:轻松理解变量、常量和枚举用法
  • 论文阅读--射频电源在半导体领域的应用
  • 《从HTTP到IP证书:网络身份验证的下一站革命》
  • 如何使用 Git 钩子 hooks 自动化任务?
  • 【MySQL】数据库的简单介绍
  • [2025CVPR-图象分类]ProAPO:视觉分类的渐进式自动提示优化
  • java基础面试题(6)--Object
  • Jenkins 节点连接故障定位及解决方案总结 - PKIX path validation failed
  • 如何创建一个 Solana 钱包?
  • 在 Ubuntu 下测试单目与双目相机
  • ubuntu 25.04 自带JS引擎gjs运行GTK with JavaScript 应用