对通用输入输出GPIO的深入理解

上传人:鲁** 文档编号:510604448 上传时间:2023-02-17 格式:DOCX 页数:4 大小:63.69KB
返回 下载 相关 举报
对通用输入输出GPIO的深入理解_第1页
第1页 / 共4页
对通用输入输出GPIO的深入理解_第2页
第2页 / 共4页
对通用输入输出GPIO的深入理解_第3页
第3页 / 共4页
对通用输入输出GPIO的深入理解_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《对通用输入输出GPIO的深入理解》由会员分享,可在线阅读,更多相关《对通用输入输出GPIO的深入理解(4页珍藏版)》请在金锄头文库上搜索。

1、对通用输入输出GPIO的深入理解 http:/ 一.GPIO简介I/O ( Input/Output )接口是一颗微控制器必须具备的最基本外设功能。 通常在ARM里,所有I/O都是通用的,称为GPIO (General PurposeInput/Output)。每个GPIO端口包含8个管脚,如PA端口是PA0PA7。GPIO 模块支持多个可编程输入/输出管脚(具体取决于与GPIO复用的外设的使用情 况)。GPIO模块包含以下特性:1)可编程控制GPIO中断- 屏蔽中断发生-边沿触发(上升沿、下降沿、双边沿)- 电平触发(高电平、低电平)2)输入/输出可承受 5V3)在读和写操作中通过地址线进行

2、位屏蔽4)可编程控制GPIO管脚配置:-弱上拉或弱下拉电阻2mA、4mA、8mA驱动,以及带驱动转换速率(Slew Rate)控制的8mA 驱动-开漏使能-数字输入使能二.GPIO的各种模式GPIO管脚可以被配置为多种工作模式,其中有3种比较常用:高阻输入、推挽 输出、开漏输出1. 高阻输入(Input)XTU1Internal BusRead PulseCEn图1.1 GPIO高阻输入模式结构示意图为减少信息传输线的数目,大多数计算机中的信息传输线采用总线形式,即 凡要传输的同类信息都在同一组传输线,且信息是分时传送的。在计算机中一般 有三组总线,即数据总线、地址总线和控制总线。为防止信息相

3、互干扰,要求凡 挂到总线上的寄存器或存储器等,它的输入输出端不仅能呈现 0、 1 两个信息状 态,而且还应能呈现第三个状态高阻抗状态,即此时好像它们的输出被开关 断开,对总线状态不起作用,此时总线可由其他器件占用。三态缓冲器即可实现 上述功能,它除具有输入输出端之外,还有一控制端。如图 1.1 所示,为 GPIO 管脚在高阻输入模式下的等效结构示意图。这是一个 管脚的情况,其它管脚的结构也是同样的。输入模式的结构比较简单,就是一个 带有施密特触发输入(Schmitt-triggered input)的三态缓冲器(Ul),并具 有很高的输入等效阻抗。施密特触发输入的作用是能将缓慢变化的或者是畸变

4、的 输入脉冲信号整形成比较理想的矩形脉冲信号。执行 GPIO 管脚读操作时,在读 脉冲(Read Pulse)的作用下会把管脚(Pin)的当前电平状态读到内部总线上(Internal Bus)。在不执行读操作时,外部管脚与内部总线之间是隔离的。2. 推挽输出(Output)图1.2 GPIO推挽输出模式结构示意图推挽输出原理:在功率放大器电路中大量采用推挽放大器电路,这种 电路中用两只三极管构成一级放大器电路,两只三极管分别放大输入信号的正半 周和负半周,即用一只三极管放大信号的正半周,用另一只三极管放大信号的负 半周,两只三极管输出的半周信号在放大器负载上合并后得到一个完整周期的输 出信号。

5、推挽放大器电路中,一只三极管工作在导通、放大状态时,另一只三极管 处于截止状态,当输入信号变化到另一个半周后,原先导通、放大的三极管进入 截止,而原先截止的三极管进入导通、放大状态,两只三极管在不断地交替导通 放大和截止变化,所以称为推挽放大器( )。如图 1.2 所示,为 GPIO 管脚在推挽输出模式下的等效结构示意图。 U1 是输出锁存器,执行GPIO管脚写操作时,在写脉冲(Write Pulse)的作用下, 数据被锁存到Q和/Q。T1和T2构成CMOS反相器,T1导通或T2导通时都表现出 较低的阻抗,但 T1 和 T2 不会同时导通或同时关闭,最后形成的是推挽输出。在 推挽输出模式下,

6、GPIO 还具有回读功能,实现回读功能的是一个简单的三态门 U2。注意:执行回读功能时,读到的是管脚的输出锁存状态,而不是外部管脚 Pin 的状态。3开漏输出(0utputOD)DT1CpECP QReadPulse u2Internal BusWrite Pulse图 1.3 GPIO 开漏输出结构示意图如图 1.3所示,为 GPIO 管脚在开漏输出模式下的等效结构示意图。开 漏输出和推挽输出相比结构基本相同,但只有下拉晶体管T1而没有上拉晶体管。 同样,T1实际上也是多组可编程选择的晶体管。开漏输出的实际作用就是一个 开关,输出“ 1”时断开、输出“0”时连接到GND (有一定内阻)。回读

7、功能: 读到的仍是输出锁存器的状态,而不是外部管脚 Pin 的状态。因此开漏输出模式 是不能用来输入的。开漏输出结构没有内部上拉,因此在实际应用时通常都要外接合适的上 拉电阻(通常采用4.710kQ)。开漏输出能够方便地实现“线与”逻辑功能, 即多个开漏的管脚可以直接并在一起(不需要缓冲隔离)使用,并统一外接一个 合适的上拉电阻,就自然形成“逻辑与”关系。开漏输出的另一种用途是能够方 便地实现不同逻辑电平之间的转换(如3.3V到5V之间),只需外接一个上拉电 阻,而不需要额外的转换电路。典型的应用例子就是基于开漏电气连接的 I2C 总线。4 钳位二极管GPIO内部具有钳位保护二极管,如图1.4

8、所示。其作用是防止从外部管 脚Pin输入的电压过高或者过低。VDD正常供电是3.3V,如果从Pin输入的信号 (假设任何输入信号都有一定的内阻)电压超过VDD加上二极管D1的导通压降 (假定在0.6V左右),则二极管D1导通,会把多于的电流引到VDD,而真正输 入到内部的信号电压不会超过3.9V。同理,如果从Pin输入的信号电压比GND 还低,则由于二极管D2的作用,会把实际输入内部的信号电压钳制在一0.6V左 右。VDDInternal图 1.4 GPIO 钳位二极管示意图假设VDD = 3.3V, GPIO设置在开漏模式下,外接10kQ上拉电阻连接到 5V电源,在输出“ 1”时,我们通过测

9、量发现:GPIO管脚上的电压并不会达到 5V,而是在4V上下,这正是内部钳位二极管在起作用。虽然输出电压达不到满 幅的5V,但对于实际的数字逻辑通常3.5V以上就算是高电平了()。图 1.5 解决开漏模式上拉电压不足的方法DQ1 1*CPQ1T1 2W :如果确实想进一步提高输出电压,一种简单的做法是先在 GPIO 管脚上串 联一只二极管(如1N4148),然后再接上拉电阻。参见图1.5,框内是芯片内部 电路。向管脚写“ 1”时,1关闭,在Pin处得到的电压是3.3+VD1+VD3 = 4.5V, 电压提升效果明显;向管脚写“0”时,T1导通,在Pin处得到的电压是VD3二 0.6V,仍属低电平

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号