概述
概括来说,IO的功能模式大致可以分为输入、输出以及输入输出双向三大类。其中作为基本输入IO,相对比较简单,主要涉及的知识点就是高阻态;作为输出IO,相比与输入复杂一些,工作模式主要有开漏(Open Drain)模式和推挽(Push-Pull)模式;对于输入输出IO,容易产生疑惑的地方是准双向和双向端口的区别。
输入IO
基本输入电路的类型大致可以分为三类:基本输入IO电路,施密特触发输入电路以及弱上拉输入电路;对input引脚的要求就是高阻(高阻与三态是同一个概念)。
基本输入IO电路如下图所示:
其中的缓冲器U1是具有控制输入端,且具有高阻抗特性的三态缓冲器;通俗地说就是这个缓冲器对外来说是高阻的, 相当于在控制输入端不使能的情况下,物理引脚与内部总线之间是完全隔离的,完全不会影响内部电路;而控制输入端的作用就是可以发出读Pin状态的操作指令,其过程如下图所示:
这种基本电路的一个缺点是在读取外部信号的跳变沿时会出现抖动,如下图所示:
施密特触发输入电路就解决了这种抖动问题,其经过施密特触发器后的信号如下图所示:
对于输入电路还存在一个问题,就是当输入悬空(Floating)的时候,输入引脚上任何的噪声都会改变输入端检测到的电平,如下图所示:
为了解决这个问题,可以在输入引脚处加一个弱上拉电阻,如图所示:
输出IO
IO输出店里最主要的两种模式分别是推挽输出(Push-Pull Output)和开漏输出(Open Drain Output).
推挽输出(Push-Pull Output)
推挽输出的结构是由两个三极管或者MOS管受到互补信号的控制,两个管子始终一个处于截止,另外一个处于导通的状态,如下图所示:
推挽输出的最大特点是可以真正输出高电平和低电平,在两种电平下都具有驱动能力。
开漏输出(Open Drain Output)
对于开漏输出和推挽输出的区别最普遍的说法就是开漏输出无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动。
最后
以上就是激昂眼神为你收集整理的嵌入式之GPIO输入输出模式学习笔记的全部内容,希望文章能够帮你解决嵌入式之GPIO输入输出模式学习笔记所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复