正在学习接口技术和计算机组成原理,中间有一些重叠的部分就放在一起了,至于DMA,中断之类的会放在后面讲解

6.1 接口综述

硬件接口通常称为I/O接口,把外围设备同微型计算机连接起来的电路称为外设接口电路,简称外设接口。I/O接口是CPU同外界进行信息交换的中转站

使用接口的原因

* 速度不匹配 外设外慢
* 时序不匹配 各个外部设备都有自己的定时控制电路,以自己的速度进行传输,同CPU的时序不匹配
* 信息格式不匹配,不同的外设存储和处理信息的格式不同
* 信息类型不匹配,有些是数字电路,有些是模拟电路
 

CPU与外设之间所传送的数据类型

* 数据信息 包括模拟量,数字量,开关量,可以输入也可以输出
* 状态信息 这是I/O端口送给CPU的有关本端口所对应的外设当前状态的信息,供CPU参考分析
* 控制信息 这是CPU送给I/O设备的控制命令,使相应的外部设备完成特定的操作
在8086/8088中,这三种信息的输入输出基本一致,可以分发不同的端口地址,在端口地址相同的情况下,可以规定操作的顺序,或者在输入输出的数据中设置特征位

 

接口的功能(背)

* 执行CPU命令 CPU将对外设的控制命令发到接口电路的命令寄存器中,以便控制外设按要求进行工作
* 返回外设状态 通过外设寄存器(状态口)完成,包括正常工作状态和故障状态
* 数据缓冲的功能 (平滑作用)接口电路中的数据寄存器(数据口)对CPU与外设设备之间的数据进行中转
* 设备寻址的功能 CPU在某些时刻只能和一台外设交换数据,CPU发给的地址信息经过接口电路中的地址译码选中I/O设备
* 信号转化的功能 ADC转化啊,电平转化啊之类的
* 数据宽度与数据格式转换的功能 串并行转化的功能之类的
 

 

端口及编址方式

端口是指接口电路中能被微处理器直接访问的寄存器的地址

微处理器通过这些地址(端口)向接口电路中的寄存器发送命令、读取状态、和传送数据。


计算机给接口电路中的每一个寄存器都分配一个端口,CPU在访问的时候,只需要指明他们的端口地址,不需要知道是访问什么寄存器。这样,在输入输出程序中访问端口就是访问接口电路的寄存器,通常所说的IO操作就是对IO端口的操作,即CPU所访问的是与IO设备相关的端口,而不是IO设备本身

 



 

 

 

 

输入输出的方式

输入/输出接口分类:

       1、按数据传送方式分:串行、并行

       2、按CPU访问外设的控制方式:

          程序查询、中断、DMA、通道控制、I/O处理机

       3、按是否需要统一的控制时钟:同步、异步

       4、按通用性:通用、专用

 

IO端口的编址方式

寄存器映像编址和独立编址

寄存器编址就是把IO端口地址置于存储器空间,和存储单元统一编制

优点:存储器的各种寻址方式都可以用来寻址端口(可以用一个指令系统),缺点:占用存储器地址,而且端口地址必须和存储器长度一样,运行速度慢


独立编址:把接口的端口地址单独编址,在计算机中形成两个独立的编址空间。优点:不占用存储器空间,有专门的IO指令,IO指令,运行的快,而且IO操作和存储器操作分开,程序可读性好,缺点就是要重新设计一个新的指令系统

 

IO端口地址译码

三种译码电路——固定端口地址译码,固定多端口译码电路和可选式地址译码电路

 

* 固定式单端口地址译码电路
固定式单端口地址译码电路是指该译码电路只能产生一个不可更改的端口地址

见课本240页及笔记

 

* 固定式多端口地址译码电路
固定式多端口地址译码电路能同时译出多个地址,但每个地址是固定不变的

如74LS138(38译码器),74LS154(4-16译码器),74LS139(2-4译码器)

 

74138的符号图如下

 



 

 

 

 

A0-A2是输入端,Y0-Y7是输出端,E2a和E2b低电平有效,E1高电平有效,这三个是使能端,E2A和E2B都是低电平有效,E1是高电平有效

* 可选式地址译码电路
如果用户要求接口电路的端口地址能适应不同的地址分配场合,或者系统以后扩展留下空间

介绍一种由比较器组成的可选式译码电路

 

 

 

首先要知道这个如何工作,就得先知道比较器和三八译码器如何工作

三八译码器的工作原理在上面,不赘述了

下面来讲讲74LS85比较器

这玩意有八个端子,A0-A3,B0-B3,我们观察到,A=B是连在了VCC上,所以这个玩意的功能是要求A和B要想等

那这个东西的比较法则如何呢

真值表如下

 



首先比较高位,高位不相等直接输出

然后逐位开始比较,到最后都相等的时候,输出A=B端口为1

如果A=B,则输出和输入是相等的

如果A<B,  则输出中A<B is high with A=B and A>B is low

反之亦然

所以该比较器可选译码电路就是如下原理

A8-A11连接了74LS85芯片的A0-A3,现在当S0-S3的开关都打开,则B0-B3为1111,则A0-A3为1111,则A8-A11为1111

A6,A7为38译码器的使能端,为00

A3-A5为选择端口,如果选择Y2,则A5-A3为010

A0-A2为任意

 

IO指令

* IO端口寻址 分为两种,直接寻址和间接寻址
* 直接寻址,范围是0-255
指令格式 IN AL,32H ;32H为8为端口地址

* 间接端口寻址
间接端口寻址由DX寄存器指出端口地址

指令格式为 IN AL,DX

记住,间接端口寻址的范围是0-65535,必须要通过DX来间接寻址

2 IO操作指令

* 输入指令
格式: IN 累加器,端口

例如:IN AL ,21H ;把端口21H的8位数据放入AL中

         MOV DX,210H

         IN AX ,DX;把端口210H和202H放入AX中

* 输出指令
格式 OUT 端口,累加器

OUT 22H,AL;把AL的内容放入22H中

MOV DX,511H

OUT DX,AX

 

 

 

 

CPU与外设数据的传输控制方式

有三种形式:程序查询,中断,DMA,(大型机巨型机的通道)

程序控制方式是指输入输出指令实现信息传输的方式,是一种软件控制方式,根据程序控制的方法不同,可以分为无条件传输方式和有条件传输方式

 

无条件传输

 

 

 


这个无条件选择就是当RD为低电平(非门转化为1),IO/M(上划线)为高电平的时候,与门为1,经过两个非门后为1,到三态缓冲器,三态缓冲器打开,数据经数据总线送到CPU中

输出类似

 

在这种方式下,CPU不需要知道外设的工作状态,只需每隔一段时间,CPU与外设进行数据交换,进行数据的发送和接受

 

有条件程序查询式

条件传送方式又称查询方式,即通过程序查询相应设备的状态,如果该设备未处于“准备好的状态”则CPU不能进行输入输出操作

逻辑图如下:

 

 

具体电路图如下:

 


当输入设备准备好数据之后,发出选通信号。它一方面把输入数据锁存到数据锁存器中,另一方面使状态标志触发器置1。状态标志是一位信号,通过缓冲器后,接到CPU数据总线的某一位上,假设接至D7位。CPU先读状态口,查询D7是否为1。若D7=1,表示输入数据已经准备好,再读数据口,取走输入数据,同时使状态标志触发器复位。

 

数据传送过程的3个步骤:

①CPU先读取状态字

②检查状态字是否表明数据准备就绪

③如果准备就绪,则执行输入指令读取数据,且使状态位清零。这样便开始下一个数据传输过程。

 

/*****自我总结

输入的工作原理如下:


当外设准备好的时候,会发送选通信号,一方面数据进入锁存器,另一方面触发器D,使READY信号发送。当CPU来读的时候,IO/M选通,RD为0,地址译码,与门输出为1,经过两个非门为1,三态缓存器选通,READY信号通过数据总线送到CPU,然后开始开始读锁存器内的数据,同时状态位清零

******/

输出的电路图如下

 

输出过程:

  当前输出设备空闲时,状态标志触发器清0。

  CPU在输出数据之前,先读取状态信息。假设忙闲标志接至数据线D0位,当D0=0时,表示输出设备空闲,CPU再对数据口执行输出指令。


  数据口选中信号一方面把输出数据写入锁存器,一方面使状态标志触发器置1,通知输出设备。当输出设备取走当前数据后,向接口发出确认信号ACK,使状态标志触发器清0,
表示输出设备空闲。

 

/******自我总结


工作原理:CPU通过地址总线,经过地址译码器,输出数据端口,IO/M为0,WD为1,发送选通信号,数据进入接口锁存器和触发器D为1,这个D有两个作用,一个告诉外设可以读取数据了,另一个让状态寄存器为BUSY,防止CPU继续写数据。

当外设把数据都读完后,回送一个ACK,让触发器复位,D为0,清空状态寄存器。

*******/

总结:得多看看,每次传送数据的时候都会有一个状态信息,然后读完数据都会复位

优点:软件比较简单

缺点:CPU效率低,数据传送的实时性差,速度较慢

 

中断


   中断控制的输入和输出方式,也称中断传送方式,即当外设的输入数据准备好或接收数据的锁存器为空时,主动向CPU发出中断请求,使CPU中断原来执行的程序(主程序),转去执行为外设服务的输入或输出操作,服务完毕,CPU再继续执行原来的程序。 

   中断传送方式中, CPU和外设(甚至多个外设)可同时工作,
从而大大提高了CPU的效率和控制程序执行的实时性。必须经过 (1)暂停主程序,实现程序的转移,即中断响应。(2)保护和恢复有关寄存器内容。(3)执行I/O操作,并实现内存到累加器再到端口之间的传送。(4)实现中断返回。

 


输入设备将数据送到锁存器中,同时发送选通信号,选通信号一方面让数据进入三态缓冲期,另一方面令D为1,经过与门让INTR为1,发送中断请求。当CPU收到中断请求之后,会通过地址译码器和读写信号,经过与非门。与非门发送的信号一方面打开三态缓冲期,让数据进入数据总线,另一方面复位触发器,D为0.中断完成。

DMA

数据在I/O接口与存储器之间的传送,不经CPU的干预,而是在专用硬件电路的控制下直接传送。这种方法称为DMA 。在这种方式下,传送的速度就只取决于存储器和外设的工作速度。这大大提高了数据传送速度。

DMA传送主要应用于高速度大批量数据传送的系统中,如磁盘存取、图像处理、高速数据采集系统等,以提高数据的吞吐量。

DMA传送一般有三种形式

①存储器与I/O设备之间的数据传送;

②存储器与存储器之间的数据传送;

③I/O设备与I/O设备之间的传送。

 

DMA控制器必须有以下功能:

①能接收外设发出的DMA 请求信号,然后向CPU 发出总线接管请求信号。

②当CPU发出总线请求允许信号并放弃对总线的控制后,DMAC能接替对总线的控制,进入DMA方式。

③DMAC得到总线控制权后,要往地址总线发送地址信号,能修改地址指针,并能发出读/写控制信号。

④能决定本次DMA传送的字节数,判断DMA传送是否结束。

⑤DMA过程结束时,能发出DMA 结束信号,将总线控制权交还给CPU

 

计原中一些概念

输入输出系统:主要作用是连通计算机的各个功能部件和设备,在它们之间进行数据交换。


输入输出系统的基本功能:是管理主机和外设以及外设与外设之间的信息交换,由硬件和软件共同完成此项任务,基本原则是:不丢失数据,快速传输数据,成本低廉,主机和外设、外设和外设之间尽可能并行工作已充分发挥各自的潜力

输入输出设备的重要任务

* 将用户编写的程序/数据输入至主机
* 将计算结果输出给用户
* 实现输入/输出系统与主机协调工作
 

计算机总线:计算机各部件之间的公共通道(包括数据总线,控制总线和地址总线)

主机与外设的接口信息

* 数据信息 可以通过输入设备送到计算机的输入数据
* 控制信息 CPU对外设的控制信息或管理命令
* 状态信息 表示外设的状态
* 联络信息 主机和外设间工作的时间配合信息
* 外设识别信息 I/O寻址的信息
 

数据传送的方式:异步和同步

CPU访问的方式:程序查询式,中断式,DMA式,通道式