IO接口与端口

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IO接⼝与端⼝
输⼊输出接⼝
⾼速的微处理器与低速的外设能够协调的⼯作,需要有⼀个具有数据缓冲和锁存能⼒、数据格式转换能⼒、定时控制能⼒并且能够提供外设状态的连接电路,我们把它叫做输⼊输出接⼝。

I/O接⼝应具有以下的功能:
(1)地址译码
CPU通过给接⼝分配地址识别接⼝,并通过地址总线将地址信息传送给接⼝。

接⼝应该具有地址译码的能⼒。

(2)数据传送
(3)提供握⼿联络信号
外部设备的⼯作速度往往远低于CPU的处理速度,CPU发送的数据不能被外设及时读取,造成数据丢失,因此需要握⼿联络信号(当设备准备好,CPU就与其交换信息,否则就等待),使CPU与I/O设备同步。

(4)数据格式转换
I/O接⼝必须能够提供外部设备的状态信息,同时能够根据CPU的命令输出控制信号,对外设实施控制。

(5)信号电平转换
外部设备多是复杂的机电设备,其信号电平多数与TTL或者MOS电路不兼容,需要接⼝来完成信号的电平转换。

(6)错误检测功能
接⼝和设备间的数据传输经常受到⼲扰,导致信息出错,接⼝应具备⼀定的错误检测能⼒,对传输信息进⾏校验。

I/O接⼝的分类
按数据传送⽅式,I/O接⼝分为并⾏接⼝和串⾏接⼝两类。

(1)并⾏接⼝,⼀次传送⼀个字节或多个字节的所有位。

(2)串⾏接⼝,⼀次传送⼀位,数据的所有位逐位传送。

CPU与I/O接⼝之间通过系统总线传输信息,包括地址信息、控制信息和数据信息。

I/O接⼝与设备之间通过串⾏或并⾏⽅式交换信息,包括数据信息、控制信息和状态信息。

I/O端⼝
I/O接⼝电路需要设置若⼲专⽤寄存器,缓冲输⼊输出数据,设定控制⽅式,保存输⼊输出状态信息等,这些寄存器可被CPU直接访问,常称为端⼝。

根据端⼝传输的信息,端⼝可分为数据端⼝、状态端⼝和控制端⼝,⽤以传输数据信息、状态信息和控制信息。

状态信息是由外设提供,CPU适时读取,因此状态端⼝为信息输⼊端⼝。

I/O接⼝在开始⼯作前,CPU需要设定它的⼯作⽅式,这些信息存放在控制端⼝。

根据信息传输⽅向,端⼝⼜可以分为输⼊端⼝、输出端⼝或着是输⼊/输出的双向端⼝。

只⽤来输出数据的数据端⼝称为数据输出端⼝,只⽤来输⼊数据的数据端⼝称为数据输⼊端⼝。

输⼊端⼝具有的能⼒:
CPU从输⼊端⼝输⼊数据时,要求外部设备事先将数据准备好,当外设有数据要发给CPU时,数据应先保存在输⼊端⼝上,不能直接进⼊系统的数据总线上,当需要读取数据时,输⼊端⼝就把数据放到数据总线上,这就是输⼊端⼝必须具有的通断控制能⼒。

总线结构的计算机系统,除了CPU任何其他部件都不能直接加载数据到数据总线上。

设备的接⼝电路挂接在系统总线上,但是设备输出的数据不能直接加载到数据总线。

所以,接⼝上需要有⼀个“开关”⼀样的电路,当CPU读取外部设备的数据时,这个“开
关”就将设备的数据加载到数据总线上,然后CPU通过数据总线接收数据。

也就是书评输⼊端⼝必须具有“通断”控制能⼒。

输出端⼝具有的能⼒:
CPU向输出端⼝输出数据时,由于外设的速度慢,数据必须在输出端⼝保持⼀定的时间,使外设能够正确接收,所以输出端⼝应具备数据
锁存能⼒。

I/O端⼝的编址⽅式
CPU通过地址识别端⼝,端⼝地址也称为端⼝号。

为I/O端⼝分配地址称为编址。

I/O端⼝的编址⽅式有两种:
与存储器统⼀编址
独⽴编址⽅式
1. 与存储器统⼀编址
这种⽅式⼜称为存储器映射编址⽅式。

它将I/O端⼝作为内存单元对待,由CPU统⼀分配地址。

通常在CPU的地址空间中划出⼀部分作为输⼊输出系统的端⼝地址范围,不再作为内存地址使⽤。

通常为⼀个外设的各个端⼝分配连续的地址
优点:访问I/O端⼝和访问内存单元⼀样,所有访问内存的指令都可以访问I/O端⼝,不⽤设置专门的I/O指令;也不需要专⽤的I/O端⼝控制信号,简化了系统总线。

利⽤数据传送指令就可以实现 CPU 与 I/O 端⼝的数据交换;
⽤测试指令可以测试端⼝的状态位,了解外设的状态,判断输⼊输出操作的执⾏情况。

缺点:占⽤⼀部分CPU地址空间。

划出的端⼝地址范围,不能再作为内存地址使⽤,所以减少了内存地址空间。

2. 独⽴编址⽅式
CPU给I/O端⼝分配⼀个独⽴的地址空间,提供专⽤的控制信号。

I/O端⼝地址空间与内存地址空间隔离。

优点:不占⽤内存空间,⽽且I/O端⼝地址线根数少,因为I/O端⼝地址空间不像内存那么⼤,不需要那么⼤的空间,所以译码电路简单。

缺点:需要专⽤的控制信号和专⽤的I/O指令。

3. 8088/8086CPU的编制⽅式
8088/8086CPU采⽤独⽴编址⽅式管理I/O端⼝,内存空间00000H FFFFFH(1MB),使⽤A0A19 全部20根地址线寻址。

它使⽤地址信号线
A0~A15,最多能够管理64K个端⼝,端⼝地址范围0000H~FFFFH,有专⽤的控制信号 IOR 和 IOW 或IO/ M 、 RD 和 WR ;专⽤指令IN和OUT。

CPU通过总线与存储器、I/O交换⼀个数据所需要的时间称为总线周期
M/IO:=1,表明该总线周期,CPU与存储器交换信息
=0,表明该总线周期,CPU与I/O接⼝交换信息
W/R: =1,表明该总线周期,CPU进⾏写操作
=0,表明该总线周期,CPU进⾏读操作
D/C :=1,表明该总线周期,传输的是数据
=0,表明该总线周期,传输的是指令代码
这三个信号的组合,决定当前总线周期所完成的操作
I/O地址空间中000003FFH区间通常留给系统设备和ISA总线的端⼝使⽤。

其中000000FFH区间的端⼝地址,⽤于访问系统板上的设备,如时钟、定时器、键盘接⼝、中断控制器和DMA控制器等。

这个区间的地址信号中A8~A15都为0,所以为了使⽤⽅便,这个区间的端⼝地址在IN、OUT 指令中以8位地址的形式出现,只体现了A0~A7的内容。

0100~03FFH区间⽤于磁盘控制器、显⽰器、串⾏⼝和并⾏⼝等接⼝。

0400H~FFFFH地址区间⽤于⽤户应⽤、主板功能和PCI总线
CPU数据传送控制⽅式
微处理器与I/O设备之间的信息必须同步进⾏。

常⽤的数据传送控制⽅式包括⽆条件传送⽅式、程序查询传送⽅式、中断传送⽅式、直接存储器存取⽅式(DMA)。

1. ⽆条件传送⽅式
⽆条件传送⽅式⼜称同步⽅式,适合简单外设的数据输⼊输出,例如开关、继电器、步进电机、发光⼆极管等。

这些外设随时可以接收数据、随时可以提供数据,永远与CPU同步,CPU可直接与其进⾏数据交换,数据输⼊输出的控制程序很简单。

2. 程序查询传送⽅式
在实际应⽤中,多数I/O设备接收或发送信息的速度⽐微处理器慢很多,需要降低CPU数据传输的速度以匹配设备。

CPU与它们交换信息时,⾸先要查询设备⽬前的⼯作状态,当设备准备好,CPU就与其交换信息,否则就等待,这种⼯作⽅式称为程序查询⽅式或握⼿。

例如,打印机每秒可打印200个字符,显然微处理器发送字符的速度远⼤于打印机打印字符的速度。

微处理机与打印机连接需要进⾏速度匹配。

过程:
CPU通过数据端⼝DataP传送数据(D0~D7),并产⽣⼀个STB信号作为数据选通信信号发给打印机。

打印机设置BUSY信号为逻辑1表⽰打印机“忙”,CPU通过状态端⼝StateP读取状态信息BUSY。

CPU发送信息前⾸先查询或测试BUSY信号,如果BUSY为逻辑1,表明打印机正在忙,CPU就等待;否则就发送⼀个字符到数据端⼝,然后再STB引脚设置⼀个脉冲信号。

打印机利⽤STB脉冲信号接收D0~D7的数据。

打印机收到数据后将BUSY信号置1并进⾏打印,打印结束后再将BUSY信号置为逻辑0.
缺点:
在这种传送⽅式下,CPU每传送⼀次数据,都要查询外设状态,外设⼯作速度慢,CPU只好反复查询,或延时等待以匹配外设。

CPU 花费很多时间完成与外设的时序匹配,因此CPU的⼯作效率很低。

3. 中断传送⽅式
当输出设备处于空闲状态或者输⼊设备数据准备好时,接⼝向CPU发出中断请求信号,CPU收到申请后及时响应接⼝的中断请求,暂停执⾏主程序,转去执⾏中断服务程序,完成数据传输之后再返回到主程序继续执⾏
优点:
这种⽅式,CPU不再检测或查询外设的状态,设备具有了主动反映其状态的能⼒,消除了程序查询⽅式的盲式测试,这种数据传送⽅式称为中断⽅式。

与程序查询⽅式相⽐,中断传送⽅式实时性好、节省 CPU时间、外设具有申请服务的主动权,并且在⼀定程度上实现设备与CPU并⾏⼯作。

缺点:
中断⽅式仍需要通过CPU执⾏程序来实现外设与CPU之间的信息传送;CPU每次中断都需要花费时间保护断点和现场,⽆法满⾜⾼速I/O设备的速度要求。

⽆条件传送⽅式、程序查询⽅式和中断⽅式在数据传送过程中,都需要经过CPU处理,CPU 从内存读出数据,再输出到外部设备,因此,这三种⽅式被统称为程序控制下的输⼊输出⽅式(Programmed input and output),简称 PIO⽅式
4.DMA⽅式
直接存储器存取(Direct Memory Access)⽅式简称为DMA⽅式。

是在内存储器和I/O设备之间建⽴数据通路,不经过CPU的⼲预,实现内存与设备之间的快速数据传送。

实现DMA⽅式需要专门的硬件装置DMA控制器(DMAC),控制外设与内存之间的数据传输。

DMA数据传输的⼯作流程
①外设向DMAC发出“DMA传送请求”信号(DRQ);
② DMAC收到请求后,向CPU发出“总线请求”信号HOLD,表⽰希望占⽤总线;
③ CPU将数据总线、地址总线和相应的控制信号线均置为⾼阻态,表⽰让出三⼤总线的使⽤权,向DMA 控制器发出“总线响应”信号(HLDA)。

④ DMAC收到HLDA信号后,就开始控制总线,并向外设发出DMA响应信号DACK;
⑤ DMAC送出地址信号和相应的控制信号,实现外设与内存或内存与内存之间的直接数据传送;
⑥规定的数据传送完后,DMAC就撤销发往CPU的HOLD信号。

CPU检测到HOLD失效后,紧接着撤销HLDA信号,并在下⼀时钟周期重新开始控制总线。

相关文档
最新文档