购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.1 通用I/O接口的基本概念及连接方法

本章利用 GPIO编程作为第一个程序入门样例,并以此为基础给出工程框架,阐述基本的编程规范。

4.1.1 I/O接口的概念

I/O接口,即输入/输出(Input/Output)接口,是MCU同外界进行交互的重要通道,MCU与外部设备的数据交换是通过I/O接口来实现的。I/O接口是一电子电路,由若干专用寄存器和相应的控制逻辑电路构成。接口的英文单词是 Interface,另一个英文单词是 Port,但有时把Interface翻译成“接口”,而把Port翻译成“端口”,从中文字面看,接口与端口似乎有点区别,但在嵌入式系统中它们的含义是相同的。有时把I/O引脚称为接口(Interface),而把用于对I/O引脚进行编程的寄存器称为端口(Port),实际上它们是紧密相连的,有些书中甚至直接称I/O接口(端口)为I/O口,因此不必深究它们之间的区别。在嵌入式系统中,接口千变万化,种类繁多,有显而易见的人机交互接口,如操纵杆、键盘、显示器;也有无人介入的接口,如网络接口、机器设备接口等。

4.1.2 通用I/O

所谓通用I/O,也称为通用输入/输出(General Purpose Input/Output,GPIO),即基本的输入/输出,有时也称为并行I/O或普通I/O,它是I/O的最基本形式。本书介绍的MCU使用正逻辑,电源(V CC )代表高电平,对应数字信号“1”;地(GND)代表低电平,对应数字信号“0”。作为通用输入引脚时,MCU 内部程序可以通过端口寄存器获取该引脚的状态,以确定该引脚是“1”(高电平)或“0”(低电平),即开关量输入;作为通用输出引脚时, MCU内部程序通过端口寄存器控制该引脚状态,使得引脚输出“1”(高电平)或“0”(低电平),即开关量输出。大多数GPIO可以通过编程来设定其工作方式为输入或输出,因此也称为双向GPIO。

4.1.3 上拉/下拉电阻与输入引脚的基本接法

芯片输入引脚的外部有三种不同的连接方式:带上拉电阻的连接、带下拉电阻的连接和悬空连接。通俗地说,若MCU的某个引脚通过一个电阻接到电源(V CC )上,这个电阻称为上拉电阻;与之相对应,若MCU的某个引脚通过一个电阻接到地(GND)上,则相应的电阻称为下拉电阻。这种做法使得悬空的芯片引脚被上拉电阻或下拉电阻初始化为高电平或低电平。根据实际情况,上拉电阻与下拉电阻可以取值为1~10 kΩ,其阻值大小与静态电流及系统功耗有关。

图4-1给出了一个MCU的输入引脚的三种外部连接方式,假设MCU内部没有上拉或下拉电阻,图中的引脚I3上的开关K3采用悬空方式连接就不合适,因为当K3断开时,引脚I3的电平不确定。在图4-1中,R 1 ≫R 2 ,R 3 ≪R 4 ,各电阻的典型取值为:R 1 =20 kΩ,R 2 =1 kΩ, R 3 =10 kΩ,R 4 =200 kΩ。

图4-1 MCU的输入引脚的三种外部连接方式

4.1.4 输出引脚的基本接法

作为输出引脚时,MCU 内部程序向该引脚输出高电平或低电平来驱动外部器件工作,即开关量输出。通用I/O引脚输出电路如图4-2所示,输出引脚O1和O2采用了不同的方式驱动外部器件。一种接法是O1直接驱动发光二极管(LED),当O1引脚输出高电平时,LED不亮;当O1引脚输出低电平时,LED点亮。这种接法的驱动电流一般为2~10 mA。另一种接法是O2通过一个NPN三极管驱动蜂鸣器,当O2引脚输出高电平时,三极管导通,蜂鸣器响;当O2引脚输出低电平时,三极管截止,蜂鸣器不响。这种接法可以用O2引脚上的几毫安的控制电流驱动高达100 mA 的驱动电流。若负载需要更大的驱动电流,就必须采用光电隔离外加其他驱动电路,但对MCU编程来说,没有任何影响。

图4-2 通用I/O引脚输出电路 9MZJ6HbS4/CNClNDS/YVlfn5FVLBloM+o67kfHFe8fsC1K1HP7VIj8gcowU4P2G8

点击中间区域
呼出菜单
上一章
目录
下一章
×