1、接口电路
输入/输出接口电路(I/O接口,也称适配器):主机对性能各异的外设进行控制,与它们交换信息,在主机与外设间设置一组电路界面,将CPU系统总线发出的控制信号、数据信号和地址信号转换成外设所能识别和执行的具体命令,而将外设发送给CPU的数据和状态信息转换成系统总线所能接受的信息,传送给CPU。
I/O接口电路位于主机和外围设备之间,起着“转换器”的作用,协助完成输入/输出过程中的数据传送和控制任务。
2、接口电路分类
(1)根据通用性,分为专用接口和通用接口
专用接口:是指针对某一种具体的外围设备而设计的接口电路。
通用接口:是可供多种外围设备使用的标准接口。
(2)根据数据传送格式,分为并行接口和串行接口
并行接口:是指接口与系统总线之间,接口与外围设备之间,都按并行方式传送数据。
串行接口:是指接口与外围设备之间用串行方式传送数据,但与系统总线之间仍按并行方式传送数据。
(3)按接口是否可编程,分为可编程接口和不可编程接口
可编程接口:是指在不改变接口硬件的情况下,可通过编程修改接口的操作参数,改变接口的工作方式和工作状态,从而提高接口功能的灵活性。
不可编程接口:是指接口的工作方式和工作状态完全由接口硬件电路决定,用户不可通过编程加以修改。
(4)按时序控制方式可分为同步接口和异步接口
同步接口:是指接口与系统总线之间信息的传送,由统一的时序信号同步控制。
异步接口:是指接口与系统总线之间、接口与外围设备之间的信息传送不受统一的时序信号控制,而由异步应答方式传送。
3、接口的基本功能
(1)数据缓冲功能:为了调节外围设备传送信息的速度与CPU处理速度较大的差异,可以在接口电路中设置数据寄存器,实现对输入/输出数据的缓冲和锁存。
(2)联络功能:接口电路接收CPU发来的控制命令,将它转换为外围设备所需的操作命令。同时,针对外围设备的不同情况,CUP应能根据当前外围设备的状态,采取相应的措施,为此接口电路就要记录外围设备送入的工作状态信息,供CPU查询。
(3)寻址功能:CPU对接口电路的访问,实际上就是对这些寄存器的访问。I/O接口内部的寄存器称为I/O端口,每个端口有一个端口地址。接口接收来自系统总线的寻址信息,经过译码电路,选择相应的寄存器,与总线进行信息交换。
(4)预处理功能:系统总线采取并行传送方式,如果是串行接口,那么接口就要完成数据的串——并转换。另外,如果外围设备与接口,接口与系统总线之间传送的数据宽度、时序、负载不匹配,则接口要进行相应的匹配;如果外围设备所用信号电平与系统总线不相同,则接口还要进行信号电平的转换。
(5)中断管理/DMA控制功能:有些接口,为了能够实现以中断方式与CPU交换信息,或以DMA方式与存储器交换信息,往往在接口电路中设置中断控制逻辑或DMA控制逻辑,以便能够向主机提出中断请求或DMA请求,反过来,对主机给与的请求应答能得到立即响应,即提供相应的处理。
4、接口电路的基本结构
5、端口的编址方式
I/O端口的两种编址方式:I/O端口和内存储器统一编址方式、I/O端口单独编址方式。
1、程序控制方式
其特点是:依靠程序的控制来实现主机和外设的数据传送。可分为无条件传送方式和查询方式。
优点:硬件、软件都比较简单,I/O接口中一般只需要数据端口
缺点:容易造成数据丢失。
缺点:CPU每传送一个数据,需要花费很多时间来等待外设进行数据传送的准备,因此CUP的效率很低,且CPU与外设不能并行工作。
优点:实现之中传送方式的硬件接口电路简单。
2、中断控制方式
中断是外围设备“主动”通知CPU准备发送或接收数据。当外设需要与CPU进行数据交换时,便由中断接口电路向CPU发出一个中断请求信号,待CPU响应这一中断请求后,便可通过中断服务程序完成I/O信息交换。
优点:由于CPU省去了对外设状态查询和等待的时间,从而使CPU与外设可以并行地工作,大大提高了CPU的效率。
缺点:中断传送每操作一次,CPU就会打断原来执行的程序去执行一段中断服务程序,时间开销比较大,对速度较高的外设可能会产生信息丢失。
3、直接存储器存取控制方式
直接存储器存取(DMA)方式是一种完全由硬件执行I/O交换的方式。在这种方式中,CPU不参与数据的传送,而是由DMA控制器来实现内存与外设之间、外设与外设之间的直接快速传送,几乎没有额外时间开销,因此传输效率很高,并且减轻了CPU的负担,这对于大批量数据块的高速传送特别有用。
4、通道方式
通道是一个具有特殊功能的处理器,某些应用中称其为输入/输出处理器(IOP),它可以实现对外围设备的统一管理和外围设备与内存之间的数据传送。这种提高CPU效率的办法是以花费更多的硬件为代价的。
5、外围处理机方式
外围处理机(PPU)方式是通道方式的进一步发展。由于PPU基本上独立于主机工作,它承担原来必须由CPU承担的I/O操作,这就大大地减轻了CPU控制外设的负担,从而有效地减少了CPU在I/O处理中的开销。
综上所述,分类如图所示:
无条件:就是假设外设已处于就绪状态,数据传送时,程序不必再去查询外设的状态,而直接执行I/O指令进行数据传输。
注意:(1)当简单外设作为输入设备时,其输入数据的保持时间相对于CPU的处理时间要长得多,故输入数据通常不用加锁存器锁存,直接使用三态缓冲器(即三态门)与系统数据总线相连即可。
(2)当简单外设作为输出设备时,由于外设的速度较慢,CPU送出的数据必须在接口中保持一段时间,以适应外设的动作,因此输出必须采用锁存器。
查询方式又称为条件传送方式,CPU通过程序不断查询相应设备的状态,若状态不符合要求,则CPU不能进行输入/输出操作,需要等待;只有当状态信号符合要求时,CPU才能进行相应的输入/输出操作。流程图如图所示:
查询方式的CPU读电路电路如图所示:
其中选通信号有两个作用:一是外设的数据送到接口的锁存器中;二是使接口中的一个D触发器置1,从而使三态缓冲的READY=1
查询方式的CPU写接口电路如图所示:
查询方式的优点:能较好地协调外设与CPU之间的定时关系,CPU和外设的操作能通过状态信息得到同步,而且硬件结构比较简单。
查询方式的缺点:CPU需要不断查询标志位的状态,这将占用CPU较多的时间,尤其是与中速或慢速的外围设备交换信息时,CPU绝大部分时间都消耗在了查询上,真正用于传送数据的时间极少,CPU效率极低;传输完全在CPU控制下完成,对外部出现的异常事件无实时响应能力。
1.中断基本概念
⑴中断:是微处理器程序运行的一种方式。指在CPU正常运行时,由于内部事件、外部事件或由程序预先安排的事件所引起的CPU暂时停止正在运行的程序,而转去执行请求CPU服务的内部/外部事件或预先安排事件的服务程序,待服务程序处理完毕后,又返回去继续执行被暂停的程序,此过程称为中断。
⑵中断的意义
1、同步操作。使得快速的CPU和慢速的外设可以同时工作;
–CPU微秒级,外设至少是毫秒级
2、实时处理。提高实时处理的响应速度;
–Hard /soft / firm real-time
3、故障处理。可以方便应用于故障处理;
–事先不预知,如电源掉电,存储错等。
1、软件查询法:由软件来安排中断源的优先级别
①屏蔽法:读取连接外部中断源端口的状态字,检查每一位,先检查到的优先级别高。
②位移法:将读取的状态字节大循环移位(RCL/RCR),每移动一位,判断被移进CF的值是否为1,若为1,转去中断;否则,继续移动一位再判断。
2、硬件判优电路法
在电路上面端口的中断请求可以屏蔽下面端口的中断请求。
3、专用硬件控制器
8259是可编程中断控制器,除了可以实现优先权的排队外,还可以提供中断类型码、屏蔽中断输入等功能。
1、8259的内部结构和引脚功能
(1)8259的内部结构
①中断请求寄存器IRR
8位的锁存寄存器,用来锁存外围设备送来的的IR0-IR7中断请求信号。
②中断服务寄存器ISR
8位寄存器,用来存放已被CPU响应的中断请求信号。
③中断屏蔽寄存器IMR
8位寄存器,用来对各中断请求设置屏蔽信息。
④优先权判别电路
识别各中断请求的优先级别。
⑤读/写控制电路
接收来自CPU的读/写控制命令和片选控制信息。
⑥数据总线缓冲器
8位的双向三态缓冲器,使8259和CPU数据总线D0-D7直接连接,完成命令和状态信息传送。
⑦控制电路
⑧级连缓冲/比较器
实现多个8259的级联连接及数据缓冲方式。
(2)8259的引脚功能
①D0-D7:双向数据总线,数据信息通道,CPU利用它传送命令、接收状态、读取中断类型码。
②CS~:片选信号线,输入低电平有效。
③WR~:写信号,输入低电平有效。
④RD~:读信号,输入低电平有效。
⑤CAS2-CAS0:级连信号。
⑥SP~/EN~:双重功能线,主片或者从片的设定/缓冲器读/ 写控制。
⑦INTA~:中断响应信号线。
⑧INT:中断请求信号线。
⑨IR0-IR7:由外设或其他8259芯片输入中断请求信号。
2、8259的中断响应过程
3、8259的工作方式
中断结束方式、缓冲方式、嵌套方式、中断屏蔽方式、优先级的控制
1)中断结束方式
(1)非自动结束方式
当中断服务程序完成时,需提供一条EOI命令,使8259中ISR的相应位清除,让ISR只记录那些正在被服务而未服务完的中断。
①一般EOI方式
在这种工作方式下,在任一级中断服务结束后,在中断返回之前,安排一条一般EOI命令。执行该命令,则8259将ISR寄存器中级别最高的置1位清0。只在当前结束的中断总是位于未服务完的中断中级别最高的中断时才使用这种方式。
②特殊EOI方式
当中断服务程序结束,给8259发送EOI命令的同时,将当前结束的中断级别也传送给8259,使8259将ISR寄存器中指定级别的相应位清0。
(2)自动EOI方式
中断服务寄存器的相应位清零由硬件自动完成。当某一级中断被CPU响应后,CPU发出的第一个INTA中断应答信号,就使ISR的对应位置1。当第二个INTA负脉冲结束时,自动将ISR的对应位清0。
2)缓冲方式
用来指定系统总线与8259数据总线之间是否需要进行缓冲。
①缓冲方式
8259A的数据线需加缓冲器予以驱动(大系统需要总线驱动),8259A把SP/EN引脚作为输出端,输出允许信号,用以锁存或开启缓冲器
②非缓冲方式
SP/EN引脚为输入端,若8259A级连,由其确定是主片或从片
3)嵌套方式
用于优先级控制
①一般全嵌套方式
指优先级高的中断可以打断低级中断服务,反之不能打断。
②特殊全嵌套方式
特殊全嵌套方式与全嵌套方式所不同的是,当CPU处理某一级中断时,若有同级中断请求,则CPU也会作出响应,从而形成了对同一级中断的特殊嵌套。此方式通常应用在有8259A级连的系统中,对主8259A编程时,通常使它工作在特殊全嵌套方式下。这样,一方面,CPU对于优先级别较高的从片的中断请求是允许的;另一方面,CPU对于来自同一从片的优先级别较高(但对于主片来讲,优先级别是相同的)的中断请求也是允许并能够响应的。
4)中断屏蔽方式
①普通屏蔽方式
8259A的每个中断请求输入,都要受到屏蔽寄存器中对应位的控制。若对应位为“1”,则中断请求无法送至CPU。屏蔽是通过对屏蔽寄存器IMR的编程,即写操作命令字OCW1来设置和改变的。
②特殊屏蔽方式
原因:能动态地改变系统中的中断优先级结构,即在中断处理的一部分,禁止低级中断;而在中断处理的另一部分,又能够允许低级中断,于是引入特殊屏蔽方式。
设置该方式后,通过OCW1对IMR中的某一位置位时,同时也会使ISR中的其它位复位,这样一方面屏蔽了正在处理的同级中断,另一方面也开放了其它优先级别低的中断请求。特殊屏蔽是在中断处理程序中使用的,对外界来讲,只有同级中断被屏蔽,即允许其它任何级别的中断请求都有机会得到响应。
5)优先级的控制
①固定优先级
IR0最高,IR7最低,顺序不变。
②循环优先级:各个中断源重要性差别不是很明显时
将中断源优先级按照下标号顺序构成一个环自动优先级循环方式。在实际应用中,若要求中断源有相同的优先级,可设置为该方式。系统启动时,8级中断优先级默认为IR0~IR7,是从高到低。而刚刚服务过的中断源,其优先级被改为最低级。
4、8259芯片初始化编程
(1)初始化命令字ICW1
作用:对8259复位。包括:对中断请求信号边沿检测电路复位,使信号低时产生中断;清除IMR;设置全嵌套方式。
(2)初始化命令字ICW2:设置中断类型号
(3)初始化命令字ICW3:主/从片初始字(单片时不用此字)
(4)初始化命令字ICW4:中断方式字。主要用于决定8259工作于8080还是8086,以及是否要EOI命令。