io口的作用

I/O接口的作用

主机与外界交换信息称为输入/输出(I/O)。主机与外界的信息交换是通过输入/输出设备进行的。一般的输入/输出设备都是机械的或机电相结合的产物,比方常规的外设有键盘、显示器、打印机、扫描仪、磁盘机、鼠标器等,它们相对于快速的中央处理器来说,速度要慢得多。此外,不同外设的信号形式、数据格式也各不同样。

因此,外部设备不能与CPU直接相连,须要通过对应的电路来完毕它们之间的速度匹配、信号转换,并完毕某些控制功能。

通常把介于主机和外设之间的一种缓冲电路称为I/O接口电路。简称I/O接口(Interface)。如图7.1所看到的。对于主机,I/O接口提供了外部设备的工作状态及数据。对于外部设备,I/O接口记忆了主机送给外设的一切命令和数据。从而使主机与外设之间协调一致地工作。

对于微型计算机来说,设计微处理器CPU时。并不设计它与外设之间的接口部分,而是将输入/输出设备的接口电路设计成相对独立的部件。通过它们将各种类型的外设与CPU连接起来构成完整的微型计算机硬件系统。 所以,一台微型计算机的输入/输出系统应该包含I/O接口、I/O设备及相关的控制软件。一个微机系统的综合处理能力、系统的可靠性、兼容性、性能价格比、甚至在某个场合是否能使用都和I/O系统有着密切的关系。输入/输出系统是计算机系统的重要组成部分之中的一个。不论什么一台高性能计算机,假设没有高质量的输入/输出系统与之配合工作,计算机的高性能便无法发挥出来。

7.1.2 CPU与外设交换的信息

主机与I/O设备之间交换的信息可分为数据信息、状态信息和控制信息三类。

一.数据信息

数据信息又分为数字量、模拟量和开关量三种形式。

1. 数字量

数字量是计算机能够直接发送、接收和处理的数据。

比如由键盘、显示器、打印机及磁盘等I/O外设与 CPU交换的信息,它们是以二进制形式表示的数或以ASCII码表示的数符。

2. 模拟量

当计算机应用于控制系统中时,输入的信息一般为来自现场的连续变化的物理量,如温度、压力、流量、位移、湿度等。这些物理量通过传感器并经放大处理得到模拟电压或电流。这些模拟量必需先经过模拟量向数字量的转换(A/D转换)后才干输入计算机。反过来,计算机输出的控制信号都是数字量,也必须先经过数字量向模拟量的转换(D/A转换)。把数字量转换成模拟量才干去控制现场。

3. 开关量

开关量可表示两个状态。如开关的断开和闭合,机器的运转与停止。阀门的打开与关闭等。

这些开关量通常要经过对应的电平转换才干与计算机连接。开关量仅仅要用一位二进数就可以表示。

二.状态信息

状态信息作为CPU与外设之间交换数据时的联络信息,反映了当前外设所处的工作状态。是外设通过接口送往CPU的。CPU通过对外设状态信号的读取。可得知输入设备的数据是否准备好、输出设备是否空暇等情况。

对于输入设备,一般用准备好(READY)信号的高低来表明待输入的数据是否准备就绪。对于输出设备,则用忙(BUSY)信号的高低表示输出设备是否处于空暇状态,如为空暇状态,则可接收CPU输出的信息。否则CPU要暂停送数。因此,状态信息可以保障CPU与外设正确进行数据交换。

三.控制信息

控制信息是CPU通过接口传送给外设的。CPU通过发送控制信息设置外设(包含接口)的工作模式、控制外设的工作。如外设的启动信号和停止信号就是常见的控制信息。

实际上,控制信息往往随着外设的详细工作原理不同而含义不同。

尽管数据信息、状态信息和控制信息含义各不同样,但在微型计算机系统中,CPU通过接口和外设交换信息时。仅仅能用输入指令(IN)和输出指令 (OUT)传送数据。所以状态信息、控制信息也是被作为数据信息来传送的。即把状态信息作为—种输入数据。而把控制信息作为一种输出数据,这样,状态信息和控制信息也通过数据总线来传送。但在接口中。这三种信息是在不同的寄存器中分别存放的。

7.1.3 I/O接口的基本结构

I/O接口的基本结构如图7.2所看到的。每一个接口电路中都包括一组寄存器。 CPU和外设进行信息交换时。各类信息在接口中存入不同的寄存器,一般称这些寄存器为I/Oport,简称为口(Port)。用来保存CPU和外设之间传送的数据(如数字、字符及某种特定的编码等)、对输入/输出数据起缓冲作用的数据寄存器称为数据port;用来存放外设或者接口部件本身状态的状态寄存器称为状态port。用来存放CPU发往外设的控制命令的控制寄存器称为控制port。

正如每一个存储单元都有一个物理地址一样,每一个port也有一个地址与之相相应,该地址称为port地址。有了port地址,CPU对外设的输入/输出操作实际上就是对I/O接口中各port的读/写操作。数据port通常是双向的,数据是输入还是输出,取决于对该port地址进行操作时CPU发往接口电路的读/写控制信号。因为状态port仅仅作输入操作、控制port仅仅作输出操作,所以。有时为了节省系统地址空间,在设计接口时往往将这两个port共用一个port地址,再用读/写信号来分别选择訪问。

应该指出,输入/输出操作所用到的地址总是对port而言,而不是对接口而言的。

接口和port是两个不同的概念。若干个port加上对应的控制电路才构成接口。

7.1.4 I/Oport的编址

微型计算机系统中I/Oport编址方式有两种:即I/Oport与内存单元统一编址和 I/Oport与内存单元独立编址。

一.I/Oport与内存单元统一编址

这样的编址方式,是对I/Oport和存储单元依照存储单元的编址方法统一编排地址号,由I/Oport地址和存储单元地址共同构成一个统一的地址空间,比如,对于一个有16根地址线的微机系统。若採用统一编址方式,其地址空间的结构如图7.3所看到的。

採用统一编址方式后,CPU对I/Oport的输入/输出操作如同对存储单元的读/写操作一样,全部訪问内存的指令相同都可用于訪问I/Oport。因此无需专门的I/O指令,从而简化了指令系统的设计;同一时候。对存储器的各种寻址方式也相同适用于对I/Oport的訪问。给使用者提供了非常大的方便。但因为
I/Oport占用了一部分存储器地址空间。相对降低了内存的地址可用范围。

二.I/Oport与内存单元独立编址

在这样的编址方式中,建立了两个地址空间。一个为内存地址空间,一个为I/O地址空间。

内存地址空间和I/O地址空间是相对独立的。通过控制总线来确定CPU究竟要訪问内存还是I/Oport。

为确保控制总线发出正确的信号,除了要有訪问内存的指令之外,系统还要提供用于CPU与I/Oport之间进行传输数据的输入/输出指令。

80x86CPU组成的微机系统都採用独立编址方式。

在8086/8088系统中,共同拥有20根地址线对内存寻址,内存的地址范围是00000H~FFFFFH;用地址总线的低16位对I/Oport寻址,所以I/Oport的地址范围从 0000H~FFFFH,如图7.4所看到的。CPU在訪问内存和外设时,使用了不同的控制信号来加以区分。比如,当8086CPU的M/IO信号为1时,表示地址总线上的地址是一个内存地址。为0时,则表示地址总线上的地址是一个port地址。

採用独立编址方式后,存储器地址空间不受I/Oport地址空间影响,专用的输入/输出指令与訪问存储器指令有明显差别。便于理解和检查。可是,专用I/O指令添加了指令系统复杂性,且I/O指令类型少,程序设计灵活性较差;此外。还要求CPU提供专门的控制信号以区分对存储器和I/Oport的操作,添加了控制逻辑的复杂性。

三、I/Oport的地址译码

微机系统经常使用的I/O接口电路一般都被设计成通用的I/O接口芯片。一个接口芯片内部能够有若干可寻址的port。

因此,全部接口芯片都有片选信号线和用于片内port寻址的地址线。比如,某接口芯片内有四个port地址。则该芯片外就会有两根地址线。

本书第八章中将具体介绍几种经常使用的I/O接口芯片。

I/Oport地址译码的方法多样,一般的原则是把CPU用于I/Oport寻址的地址线分为高位地址线和低位地址线两部分。将低位地址线直接连到I/O接口芯片的对应地址引脚,实现片内寻址,即选中片内的port;将高位地址线与CPU的控制信号组合。经地址译码电路产生I/O接口芯片的片选信号。

时间: 2024-07-30 00:06:25

io口的作用的相关文章

单片机小白学步系列(二十二) IO口:蜂鸣器的使用/三极管的工作原理

2014-11-22更新:感谢Ireland同学的提醒,修改了PNP型三极管驱动电路,蜂鸣器从三极管的发射极改到了集电极,这样效果会更好,电路也更合理.同时增加了备注4. ====================================== 这一篇继续上一篇的内容,我们来做实验四:按键控制有源蜂鸣器,按下按键蜂鸣器响,释放按键不响. 蜂鸣器 实验四之前简单介绍下蜂鸣器.蜂鸣器有两种,无源蜂鸣器和有源蜂鸣器,一般用于发出报警的声音.声音是由震动产生的,大家都见过喇叭,喇叭里面有磁铁和线圈.

单片机小白学步系列(二十) IO口原理

IO口操作是单片机实践中最基本最重要的一个知识,本篇花了比较长的篇幅介绍IO口的原理.也是查阅了不少资料,确保内容正确无误,花了很长时间写的.IO口原理原本需要涉及很多深入的知识,而这里尽最大可能做了简化方便理解.这样对于以后解决各种IO口相关的问题会有很大的帮助. IO口等效模型是本人独创的方法,通过此模型,能有效的降低对IO口内部结构理解的难度.并且经查阅资料确认,这种模型和实际工作原理基本一致. ========================================== 前面说了

51单片机:IO口扩展芯片用法(74HC165,74HC595)

IO口扩展芯片,主要是解决单片机IO口太少. 74HC165:数据从并转串 74HC595:数据从串转并 两种芯片,都是通过时序电路,加上移位功能,进行数据传输 74HC165:数据从并转串.以下实例,实现8个独立按键,控制数码管的8段 #include <reg52.h> #include <intrins.h> typedef unsigned char u8; typedef unsigned int u16; void delay( u16 i ){ while( i--

掌握所有IO口的外部中断

外部中断配置流程 1.初始化IO口工作在普通IO.上拉输入状态. 2.首先开IO口组中断(P0IE=1.P1IE=1.P2IE=1): 3.开组内对应的具体某IO口中断(P0IEM.P1IEM.P2IEM该寄存器里面的对应位对应相应的IO口): 4.上升沿还是下降沿触发(PICTL寄存器): 5.开CPU总中断EA=1; #include <cc2530.h> void main() { //步骤1 P0SEL &=0xDF;//P05口表示为普通IO口 P0DIR &=0xD

STM32的IO口

STM32 的 IO 口 可以由软件配置成如下 8 种模式: 1.输入浮空 2.输入上拉 3.输入下拉 4.模拟输入 5.开漏输出 6.推挽输出 7.推挽式复用功能 8.开漏复用功能 每个 IO 口可以自由编程,但 IO 口寄存器必须要按 32 位字被访问.STM32 的很多 IO 口都是 5V 兼容的,这些 IO 口在与 5V 电平的外设连接的时候很有优势,具体哪些 IO 口是 5V 兼容的,可以从该芯片的数据手册管脚描述章节查到(I/O Level 标 FT 的就是 5V 电平兼容的). S

单片机IO口标准双向,推挽,高阻,开漏模式 ,LED感应亮灭实验【原创!】

单片机IO口标准双向,推挽,高阻,开漏模式 ,LED感应亮灭实验  十一长假在家快烂了,没事儿做,DIY技术搞起来!  [关于12C增强型单片机I/O口的工作类型实验研究] 文中动画视频效果下载: STC单片机头文件[51CTO-->单片机-->LED感应亮灭实验] 下载链接 链接:http://pan.baidu.com/s/1pJKK4w7   密码:a0re  1.用强推模式,点亮一个LED  /* 工程创建MCU选取,Atmel 89C55 单片机:STC12C4052AD 晶振:无要

巧妙的IO口按键扫描方法

在做项目的时候,我们经常要用到比较多的按键,而且IO资源紧张,于是我们就想方设法地在别的模块中节省IO口,好不容易挤出一两个IO口,却发现仍然不够用,实在没办法了就添加一个IC来扫键.一个IC虽然价格不高,但对于大批量生产而且产品利润低的厂家来说,这是一笔不菲的开支!那,我们能不能想到比较好的扫键方法:用最少的IO口,扫最多的键?可以吗?举个例:给出5个IO口,能扫多少键?有人说是2*3=6个,如图一: 对,大部分技术参考书都这么做,我们也经常这样做:用3个IO口作行扫描,2个IO作列检测(为方

【STM】IO口配置库函数、寄存器、位操作方式

库函数函数: 一个初始化函数:初始化一个或者多个IO口(同一组)的工作模式.输出类型.速度以及上下拉方式 1 void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); 2 typedef struct 3 { 4 uint32_t GPIO_Pin//指定要初始化的端口 5 GPIOMode_TypeDef GPIO_Mode;//端口模式 6 GPIOSpeed_TypeDef GPIO_Speed;//速度

FPGA静态时序分析——IO口时序(Input Delay /output Delay)(转载)

转载地址:http://www.cnblogs.com/linjie-swust/archive/2012/03/01/FPGA.html 1.1  概述 在高速系统中FPGA时序约束不止包括内部时钟约束,还应包括完整的IO时序约束和时序例外约束才能实现PCB板级的时序收敛.因此,FPGA时序约束中IO口时序约束也是一个重点.只有约束正确才能在高速情况下保证FPGA和外部器件通信正确. 1.2  FPGA整体概念 由于IO口时序约束分析是针对于电路板整个系统进行时序分析,所以FPGA需要作为一个