尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

GPIO的理解

GPIO的理解 1.GPIO是什么字面意思就是通用输入输出是一个MCU内部用来做输入输出的控制器电路;2.GPIO初步理解本质就是输入输出高低电平模拟信号达到获取外设信息控制外设的⽬的。“通⽤”意思就是⼀个东西被发明出来就是未来给“⼤家”⽤的。这里的大家指的是MCU内部的其他片上外设我们把其他片上外设使用GPIO这个来输出高低电平或者模拟信号这样一种工作就叫复用GPIO。3.GPIO 引脚与IOMCU 上⾯的引脚通常会外接各种外设⽐如LED灯、按键蜂鸣器 EEROM 等,⽽未来MCU 内部会有对应的输⼊输出寄存器向对应的寄存器写或者读取对应的寄 存器就可以从引脚中输出⾼低电平或者获取引脚⾼低电平。输⼊(Input)⽐如外接“按钮” MCU 主要通过感知外部世界的状态变化⽐如按键是否被按 下某个信号是⾼电平还是低电平来获取外部信息。按键不摁下针脚接⼊ VDD GPIO 就会获取到⾼电平当按键摁下针脚接⼊ GND/VSS GPIO 就会获取到低电平输出(Output)⽐如外接发光⼆极管(LED)。 鸣器响控制继电器通断GPIO 输出低电平 VDD 反向导通⼩灯泡点亮GPIO 输出⾼电平⼩灯泡左右电压⼀致没有定压差就没有电流⼩灯泡熄灭注意GPIO 不⼀定输出⾼电平就会“有效”⽐如输出⾼电平⽆法点亮⼩灯泡⼀样。MCU 芯⽚上的这些GPIO 管脚⼜是怎么和外围器件产⽣关联的呢MCU 上⾯的引脚通常会外接各种外设⽐如LED灯、按键蜂鸣器 EEROM 等 MCU 内部会有对应的输⼊输出寄存器向对应的寄存器写或者读取对应的寄 存器就可以从引脚中输出⾼低电平或者获取引脚⾼低电平。pin就是引脚的意思port端口的意思在计算机科学中引申为“数据交换的 ⼊⼝或出⼝”现代微控制器如 STM32 继承了这⼀概念将⼀组GPIO 引脚称为“GPIO PORT ”如GPIOA 、 GPIOB 因为它们本质上是芯⽚与外部世界的“数据交换接⼝”。GPIO Pin一个硬件电路的位置上I下O4.GPIO工作模式GPIO 主要是负责 MCU 的输⼊和输出即 I/O 问题⽽ GPIO 输⼊和输出会存在很多的⼯作模 式。输出通⽤推挽输出通⽤开漏输出复⽤推挽输出复⽤开漏输出输入浮空输⼊上拉输⼊下拉输⼊模拟输⼊GPIO 不仅仅给ARM-CPU 直接做输⼊输出也会被其他⽚上外设使⽤换句话说 GPIO 是⼤家的满足不同片上外设在不同场景下的IO需求所以有八种工作模式。通⽤与复⽤是什么意思所谓通⽤就是通常使⽤指的是由ARM-CPU 直接控制 GPIO 输出所谓复⽤复⽤的意思就重复使⽤指的就是MCU 内部的⽚上外设复⽤GPIO进⾏输⼊输出简化成输出角度GPIO输出电路中包含输出数据寄存器未来被arm-cpu进行写入的从而实现控制pin输出高低电平的目的。复用器多组输入信号中选择一个作为有效输入GPIO到底是被ARM-CPU直接使⽤还是被其他⽚上外设使⽤达到复⽤效果就由它说了算P-MOS从S到DN-MOS从D到SP-MOS和N-MOS本质就是一个开关通过小电压通过控制开关的手段达到控制大电流的目的。GPIO 输出电路图中上⽅是 P-MOS ,下⽅是 N-MOS两者 D 极相接P-MOS S 极接 VDD(3.3V) ,N-MOS S 极接地(GND ,当成 0V 就可以)再次简化通⽤推挽输出(Push-PullOutput)交替闭合或者开启 P-MOS 和 N-MOS 即可输出数据寄存器写1闭合 P-MOS 断开 N-MOS 输出⾼电平输出数据寄存器写0断开 P-MOS 闭合 N-MOS 输出低电平推挽模式输出寄存器上的 0 激活 N-MOS 而输出寄存器上的 1 将激活 P-MOS 。使⽤⼀对互补的晶体管通常是 CMOS ⼯艺的 P-MOS 和 N-MOS 管来输出⾼电平 提供电流“推”或 输出低电平吸收/拉取电流“挽”。本质是交替闭合断开 P-MOS 和 N-MOS 开关让外部引脚接⼊ VDD 或者接地进 ⽽对外呈现出⾼电压和低电压然后因为电路通路形成有输出电流(推)和吸收(挽)电 流的效果推挽模式下向输出寄存器写 输出电压打开指定 1/0 的本质是让输出控制器选择 P-MOS 还是 N-MOS 进⽽ MOS 管.通⽤开漏输出(Open-DrainOutput)去掉 P-MOS 让 P-MOS 永远都关闭只使用N-MOS在开漏模式下 MCU 针对特定引脚的输出都是该引脚对应的 N-MOS 的漏极输出向输出数据寄存器写 1 最终表⽰的是 N-MOS 断开向输出数据寄存器写 0 表⽰ N-MOS 管闭合输出数据寄存器写0 N-MOS 闭合输低电平输出数据寄存器写1 N-MOS 断开输出⾼阻抗所谓⾼阻抗只是⼀种说法真实情况其实是MCU和外部针脚彻底断开相当于开路了或 者 N-MOS D 漏极和外部引脚互相悬空了对于针脚⽽⾔如果内部 MCU 断开了和外部引脚的连接可以把 MCU 认为成为⼀个阻值⽆穷⼤的设备我们把这种情况叫做输出⾼阻抗开漏模式输出只能输出低电平和⾼阻抗⽆法输出⾼电平开漏输出开漏输出全称叫做漏极开路输出没有了 P-MOS 那么 N-MOS 的D 漏极 就相当于什么都没有接所以叫做漏极开路简称开漏不要把引脚当做设备引脚当做 D 漏极线的延伸推挽输出下P-MOS 和 N-MOS 互为彼此D漏极接⼊的设备不属于开漏因此可以知道开漏输出电路有输出低电平和开路⾼阻2个状态。那如何才能输出 ⾼电平呢通过上拉电阻将 I/O ⼝接通到上拉的电压。因为 拉的电压必须是开发板设计者在 MCU 内部电路已经设计好所以往往这个所谓的上 MCU 外部根据⾃⼰的需求设计的。注意单⽚机内部不是只有 MCU 内部有 VDD 供电其他MCU 外部的设备或者 MCU 内部的其他设备也可能会有⾃⼰的供电源提供⾼电压。比如你家(单⽚机)⾥有很多家⽤电器(外设控制器和外设)不⽌电视要供电冰箱洗⾐机也要的那么在开漏模式下要输出⾼电平就必须在引脚位置设置上拉电阻来提供⾼电压了。新增上拉电阻之后输出数据寄存器写 0 N-MOS 闭合输低电平图略输出数据寄存器写 1 N-MOS 断开输出⾼阻抗外部引脚在外部上拉电阻的影响(或者上拉) 下输出⾼电平开漏输出⾼阻抗之后引脚就是⾼电平⼀个电路回路中电压会被各个元器件承接电阻值越⾼承压越⾼
返回列表