AXI GPIO IP核配置详解

AXI GPIO(AXI General-Purpose Input/Output)设计提供了一个通用的输入/输出接口,该接口连接到一个AXI4-Lite接口。AXI GPIO可以被配置为单通道或双通道设备,每个通道的位宽可以独立配置。

端口(即GPIO引脚)可以通过启用或禁用三态缓冲器来动态配置为输入或输出。这些通道还可以配置为当它们的任何一个输入发生转变时生成中断。

1  功能

AXI GPIO IP核的顶层框图(如下图所示)通常包含几个关键模块,这些模块协同工作以实现其通用输入/输出功能。

以下是根据通常的AXI GPIO设计对顶层框图的简要描述:

AXI4-Lite接口

AXI4-Lite是AXI协议的一个子集,特别适用于需要简单、轻量级通信的场景。在这个设计中,AXI4-Lite接口模块作为一个从设备(slave)实现,提供32位的数据通道,允许主设备(如处理器或控制器)通过AXI4-Lite协议访问GPIO通道寄存器。这些寄存器用于控制GPIO通道的配置、输入/输出状态等。

中断控制

负责从GPIO通道获取中断状态,并在满足条件时向主机生成中断信号。当中断使能选项在Vivado集成设计环境(IDE)中设置时,中断控制模块将被启用。这样,当GPIO通道的输入发生变化时,中断控制模块可以检测到这种变化,并生成一个中断信号通知主机。主机可以响应这个中断信号,执行相应的中断处理程序。

GPIO 核

GPIO核包含用于读写AXI GPIO通道寄存器的寄存器和多路复用器。这些寄存器用于存储GPIO通道的配置信息、输入/输出状态等。多路复用器用于在读取或写入操作时选择正确的寄存器。此外,GPIO核还包括必要的逻辑来识别当通道输入发生变化时的中断事件。

上图中的三态缓冲器(3-state buffers)并不是GPIO核的一部分。这些三态缓冲器是在使用Vivado设计套件生成输出产品时自动添加到顶层设计包装文件中的。它们用于控制GPIO引脚的输入/输出状态,并提供与外部电路的接口。

2 配置

(1)打开一个工程或生成一个新的工程;

(2)如下图所示,找到AXI GPIO IP核;

(3) 双击IP,或从工具栏或右键菜单中选择“Customize IP”命令,打开该IP核的配置页。

GPIO

All Inputs

  • 功能:将所有GPIO通道位设置为输入模式。当选中此选项时,所有相关的GPIO引脚都将被配置为接收外部信号,而不是发送信号。
  • 默认状态:此选项是未选中的(unchecked),意味着GPIO通道位不会默认被配置为输入模式。

All Outputs

  • 功能:将所有GPIO通道位设置为输出模式。当选中此选项时,所有相关的GPIO引脚都将被配置为发送信号到外部设备,而不是接收信号。
  • 默认状态:此选项是未选中的(unchecked),意味着GPIO通道位不会默认被配置为输出模式。

GPIO Width

  • 功能:定义了GPIO通道的位宽,决定了GPIO IP核可以管理的GPIO引脚数量。例如,如果GPIO Width设置为8,那么GPIO IP核就可以控制8个GPIO引脚。
  • 默认状态:其值可以从1到32,默认值是32。

Default Output Value

  • 功能:设置此通道所有启用位的默认值。当GPIO引脚被配置为输出模式时,这个值决定了它们在上电或复位后的初始状态。例如,如果Default Output Value设置为0xFF(8位模式),那么所有GPIO引脚在上电后都将输出高电平。
  • 默认状态:此参数设置为0x0(即所有位都是0)。

Default Tri State Value

  • 功能:配置了GPIO通道每个位的输入或输出模式。这里的“Tri State”可能指的是GPIO引脚的初始状态或默认模式,其中“0”代表输出模式,“1”代表输入模式。但具体实现可能因不同的IP核而异。
  • 默认状态:这个字段的值为0xFFFFFFFF,将所有GPIO位配置为输入模式。

Enable Dual Channel

  • 功能:启用第二个GPIO通道(GPIO2),当此参数被启用时,GPIO2选项被激活,并配置Channel-2 (GPIO2)寄存器。允许使用同一个AXI GPIO IP核来控制两个独立的GPIO通道。这在需要管理大量GPIO引脚时特别有用。
  • 默认状态:此参数是未选中的,将AXI GPIO配置为单通道模式。

GPIO2

仅在“Enable Dual Channel”被选中时激活。此参数组中的所有字段都与GPIO选项组相似。

当启用双通道模式时,可以为第二个GPIO通道(GPIO2)配置与第一个通道相同的参数,如GPIO Width、Default Output Value等。

Enable Interrupt

启用了GPIO模块中的中断控制逻辑和中断寄存器。默认情况下,此选项是未选中的,即中断未被启用。

当希望GPIO引脚能够产生中断信号以通知处理器或控制器外部事件时,需要启用此选项。一旦启用,可以配置GPIO引脚在特定条件下产生中断,例如输入电平变化或超时等。

3 编程序列

当启用中断时的输入端口

(1)配置端口为输入

         将GPIOx_TRI寄存器中对应的位写入1,以将端口配置为输入模式。

(2)启用通道中断

        通过设置IP中断使能寄存器中对应的位来启用该通道的中断,同时,也需要通过设置全局中断寄存器(通常是某个处理器或微控制器的寄存器)的第31位为1来启用全局中断。

(3)接收并处理中断

       ① 当接收到中断时,读取GPIOx_DATA寄存器中对应的位,以获取输入值。

      ②清除IP中断状态寄存器中对应的中断状态位,通过将对应位写入1来实现。这通常是中断服务程序(ISR)的一部分。

当未启用中断时的输入端口

(1)配置端口为输入

       将GPIOx_TRI寄存器中对应的位写入1,以将端口配置为输入模式。

(2)读取输入值

       直接读取GPIOx_DATA寄存器中对应的位,以获取输入值。

输出端口

(1)配置端口为输出

       将GPIOx_TRI寄存器中对应的位写入0,以将端口配置为输出模式。

(2)写入输出值

       将要输出的值写入GPIOx_DATA寄存器中对应的位。这会将该值输出到对应的GPIO引脚上。

注意事项

  • 确保在尝试访问GPIOx_TRI或GPIOx_DATA寄存器之前,AXI GPIO IP核已经正确配置并初始化。
  • 当配置GPIO端口时,请确保不要同时将其配置为输入和输出,这可能会导致未定义的行为。
  • 当启用中断时,请确保系统(例如处理器或微控制器)可以正确地处理这些中断,并有一个有效的中断服务程序来清除中断状态位并处理中断事件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/12638.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

02-WPF_基础(一)

1、基础 各模块类型 链接:如何:向 Viewbox 的内容应用 Stretch 属性 - WPF .NET Framework | Microsoft Learn WPF基础以及事件绑定与数据绑定的情况,,在学习XAML,数据结构以及一个项目学习平台来练手,网络…

儿童社交恐惧:关爱与引导,帮助孩子走出阴霾

引言 儿童的社交能力是其心理健康和全面发展的重要组成部分。然而,有些儿童会表现出社交恐惧,这种情况不仅影响他们的日常生活和学习,还可能对其长远发展产生不利影响。本文将探讨儿童社交恐惧的注意事项,并提供实用的建议和方法…

百面算法工程师 | YOLOv6面试考点原理全解析

本文给大家带来的百面算法工程师是深度学习目标检测YOLOv6面试总结,文章内总结了常见的提问问题,旨在为广大学子模拟出更贴合实际的面试问答场景。在这篇文章中,我们还将介绍一些常见的深度学习目标检测面试问题,并提供参考的回答…

压力给到 Google,OpenAI 发布 GPT-4o 来了

北京时间5月14日凌晨1点,OpenAI 开启了今年的第一次直播,根据官方消息,这次旨在演示 ChatGPT 和 GPT-4 的升级内容。在早些时候 Sam Altman 在 X 上已经明确,「我们一直在努力开发一些我们认为人们会喜欢的新东西,对我…

jar包安装成Windows服务

一、前言 很多年前写过一篇《使用java service wrapper把windows flume做成服务》的文章,也是把jar包安装成windows服务,今天介绍另外一种更简便的方案。 二、正片 这次使用的工具是 winsw,一个Windows服务包装器。下面看详细介绍 首先从g…

momentjs

Moment.js 是一个用于处理日期和时间的 JavaScript 库,它提供了许多方便的函数和方法来操作、格式化和解析日期时间。官网 常见用法 格式化日期时间:可以使用format方法将日期时间格式化为指定的字符串格式,例如YYYY-MM-DD HH:mm:ss。获取日…

中国CEO直播简史

图片|电影《教父》截图 ©自象限原创 作者丨罗辑 编辑丨程心 领导人爱对外发言这事,是中国的一个传统文化。 从乾隆爱往名画上盖章上,就可见一斑。 3Q大战时代,微博成了大佬“吵架”的战场,饭否变成了部分爱…

Digimat在电池壳体SMC复合材料成型工艺中的应用

SMC工艺介绍及挑战 SMC(Sheet Molding Compound的缩写,即片状模塑料)是一种复合材料制造工艺。该工艺可以有效地代替金属,实现车辆轻量化目标。该工艺不仅能够显著降低车身重量,而且设计灵活,操作简单、易…

社交媒体的探索者:探寻Facebook的发展历程

在当今数字化时代,社交媒体已经成为了人们日常生活中不可或缺的一部分,而Facebook作为最具影响力的社交平台之一,其发展历程承载着无数的探索与创新。本文将深入探讨Facebook的发展历程,从其创立初期到如今的全球化影响&#xff0…

数据结构与算法学习笔记九---循环队列的表示和实现(C++)

目录 前言 1.为什么要使用循环队列 2.队列的顺序存储方式的实现 1.定义 2.队列初始化 3.销毁 4.清空队列 5.队列是否为空 6.队列长度 7.队头 8.入队 9.出队 10.遍历队列 11.完整代码 3.参考资料 前言 这篇文章介绍循环队列的表示和用法。 1.为什么要使用循环队…

OpenAI 重磅发布:ChatGPT Mac 桌面应用震撼上线!

OpenAI 重磅发布:ChatGPT Mac 桌面应用震撼上线! 博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典&#xff0…

51单片机:点亮一个LED灯

1.新建工程 选择AT89C52&#xff0c;在Atmel下显示的是See Microchip 并不需要添加启动文件到文件夹中。 添加main.c文件&#xff0c;c比cpp效率高&#xff0c;.asm汇编即更底层 程序编写好后 nop(); 该函数在这个头文件里面 #include <INTRINS.H> #include <R…

Java JDK下载安装教程(2024年)

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…

2024 Google I/O Android 相关内容汇总

2024 Google I/O Android 相关内容汇总 本次 Google I/O 的核心虽然是 AI &#xff0c;但是 Android 也是作为主要议题出现&#xff0c; Android 部分可以简单分为产品和开发相关内容&#xff0c;接下来主要介绍这两部分的相关更新。 重点开始开发相关&#xff0c;内容不少 产…

业务系统加固和安全设备加固

业务系统加固 业务系统包含哪些系统? 业务系统漏洞面临的风险 1web风险 2漏洞扫描&#xff0c;端口扫描 3系统漏洞 4逻辑漏洞 5 信息泄露 6拒绝服务 7口令爆破 加固方式&#xff1a; 在风险加上修复 1web漏洞&#xff1a; 包括csrf,xss&#xff0c;口令破解等等 修…

koa2 + jsonwebtoken + koa-jwt:实现node token验证

一、koa token生成、验证 koa-jwt官网 https://github.com/koajs/jwt 推荐一个koa-jwt学习文档&#xff1a; https://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html jsonwebtoken方法添加 const { sign, verify } require(jsonwebtoken); const secretKey …

ICode国际青少年编程竞赛- Python-4级训练场-列表综合练习

ICode国际青少年编程竞赛- Python-4级训练场-列表综合练习 1、 Flyer[3].step(1) Flyer[7].step(2) Flyer[11].step(1) for i in range(4):Flyer[i * 2].step(1) Flyer[8].step(3)for i in range(3):Dev.turnRight()Dev.step(-5)2、 for i in range(5):Flyer[i5].step(Flyer[…

JavaWeb--18 tlias-web-management 登录认证

登录认证 1 登录功能功能开发 2 登录校验2.1 问题分析2.2 会话技术CookieSession令牌技术 2.3 JWT令牌介绍生成和校验登录下发令牌 2.4 过滤器Filter拦截路径过滤器链 登录校验-Filter 2.5 拦截器InterceptorInterceptor详解执行流程 登录校验- Interceptor 3 异常处理3.1 当前…

【会议征稿】2024年机器人前沿技术与创新国际会议(FTIR 2024, 7/19-21)

2024年机器人前沿技术与创新国际会议&#xff08;FTIR 2024&#xff09;将于2024年7月19-21日在中国杭州举行。FTIR 2024聚焦前沿技术与创新&#xff0c;将把机器人领域的创新学者和专家聚集到一个共同的论坛。会议的主要目标是促进机器人的研究和开发活动&#xff0c;另一个目…

基于EBAZ4205矿板的图像处理:11阈值系数可调的图像局部阈值二值化

基于EBAZ4205矿板的图像处理&#xff1a;11阈值系数可调的图像局部阈值二值化 先看效果 还是一样拿我的pynq当模特&#xff0c;然后用usb——HDMI采集卡把输出图像采集到电脑上。 注意看右边mobelxtem中的通过串口调节的参数&#xff0c; 我这里是实现了阈值系数可调的局部阈…