微机原理与接口技术 第03章 输入输出系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第三章输入输出系统3.1输入输出系统综述3.28259A中断控制器3.1输入输出系统综述3.1.1输入/输出系统概述3.1.2输入/输出控制方式3.1.3输入/输出指令3.1.1输入/输出系统概述1.I/O接口输入输出设备与CPU都是通过接口相连CPU存储器接口存储器输入/输出接口外部设备数据总线地址总线控制总线计算机硬件系统结构图3.1.1输入/输出系统概述外设之间存在巨大的差异外设的种类繁多,性能各异外设输入输出的数据信号不同外设的工作速度差异很大综上,要实现CPU与外设的数据交互,必须有专门的硬件电路实现硬件信号的连接,该硬件电路即是接口电路。3.1.1输入/输出系统概述接口电路是CPU与外设数据交互的中转站,它的作用和位置如下:控制寄存器数据寄存器状态寄存器CPU外部设备地址数据控制信号数据状态信号控制信号接口电路控制逻辑电路3.1.1输入/输出系统概述接口电路的功能如下:数据缓存或锁存为了缓解CPU与外设之间速度差异的矛盾,通常都在接口电路中设置有数据缓冲器或者锁存器地址译码和端口读写设置、保存控制命令和译码数据转换功能并行数据串行数据中断管理功能通信联络功能接口中常设置有状态寄存器,用于保存外设的状态,供主机在查询方式时使用,能够保证接口和外设高效可靠的传输数据3.1.1输入/输出系统概述接口分类:按照数据传送方式分类并行接口:如显示器接口、并行打印机接口等。常用芯片如8255,8155、8755、串行接口:如串行通信接口、鼠标接口等。常用芯片如8250、16550按照是否可编程控制分类不可编程接口:如Intel8212通过连线确定是用于输入还是输出可编程接口按照接口的通用性分类通过接口:按照某种标准为多类外设设计的标准接口。如USB接口专用接口:专门为某种外设而设计的专用接口。如Intel的8279是键盘/显示器接口芯片,而8257是CRT控制接口芯片。按输入输出信号的类型分类数字接口:处理数字信号模拟接口:处理模拟信号3.1.1输入/输出系统概述2.端口端口概念接口电路中通常都设计有多个寄存器,CPU对接口电路的控制和访问,实际上就是对这些寄存器的访问。每个寄存器都有特定的地址,CPU通过地址选定要访问的寄存器。这些寄存器被称为端口寄存器,简称为端口3.1.1输入/输出系统概述按照端口中存放信息意义的不同,可分为3类控制端口:存放控制信息,由CPU通过控制命令写入数据端口:即数据缓存器或锁存器,存放CPU与外设要交互的数据信息状态端口:即状态寄存器,存放状态信息,反映出外设当前的工作状态。状态信息由接口电路自动生成,该端口只能由CPU读出而不能写入端口编址方式存储器统一编址方式独立编址方式3.1.1输入/输出系统概述按照端口中存放信息意义的不同,可分为3类控制端口:存放控制信息,由CPU通过控制命令写入数据端口:即数据缓存器或锁存器,存放CPU与外设要交互的数据信息状态端口:即状态寄存器,存放状态信息,反映出外设当前的工作状态。状态信息由接口电路自动生成,该端口只能由CPU读出而不能写入端口编址方式存储器统一编址方式独立编址方式3.1.1输入/输出系统概述3.端口地址译码CPU是通过地址对不同的接口或端口加以区分的。把CPU送出的地址转变为芯片选择和端口区分的依据就是地址译码电路。地址译码概念译码电路结构3.1.1输入/输出系统概述地址译码说明在微机系统中,I/O译码电路除了受A0-A9这10根地址线所确定的地址范围的限制之外,还要用到其他一些控制信号。如:利用IOR或IOW信号控制对端口的读写。利用AEN信号控制非DMA传送。用IOCS16控制对8位还是16位端口操作。Ø用信号SBHE控制端口的奇偶地址。可见,在设计地址译码电路时,不仅要选择地址范围,还要根据CPU与I/O端口交换数据时的流向(读/写)、数据宽度(8位/16位),以及是否采用奇偶地址等要求来引入相应的控制信号,从而形成地址译码电路。3.1.1输入/输出系统概述地址译码-线选法高位地址线不经过译码,直接(或经反相器)分别接各存储器芯片或者端口的片选端来区别各芯片或端口的地址。3.1.1输入/输出系统概述地址译码-全译码法最终目标是唯一确定一个端口或寄存器的地址,需要所有地址线都参加译码。A9A8A7A6A5A4A3A2A1A0=1011110000=2F0H74LS20:2个4输入端与非门;74LS32:4个2输入端或门3.1.1输入/输出系统概述地址译码-部分译码法用片内寻址外的高位地址的一部分译码产生片选信号。例:设计一片内拥有8个端口的接口电路的I/O地址译码电路,其端口地址为310H―――317H。分析:1、由于接口芯片内部包含8个端口地址,应先选中芯片,再从选中的芯片内部选端口,因此,需要产生片选信号,故采用部分译码法。这理:只有高位地址线参加译码,产生片选信号,而低位地址线不经过译码电路,直接引入接口芯片,作为产生多个端口(地址范围)之用。3.1.1输入/输出系统概述地址译码-部分译码法题目要求端口地址范围是310H―――317H可知,其输入地址线的取值为:00A9A8A7A6A5A4A3A2A1A01100010???其中,低3位地址A2A1A0不参加译码电路译码。其值可变,用???示。A2A1A0000001010011100101110111000―――111B是A2A1A0地址变化范围。正好满足在接口芯片内部寻址8个端口的要求。高7位地址A9A8A7A6A5A4A3的取值为1100010B,并且是固定不变的,作为门电路的输入。因此保证这7根输入线取值不变的条件下,输出线为低电平(即=0)的任何一种逻辑组合电路,都能满足本例设计要求。3.1.1输入/输出系统概述地址译码-部分译码法设计:符合上述译码要求的电路有许多,考虑到是单个接口(芯片),只需一个片选信号,故采用IC门电路来组成译码电路。•74LS30:8输入端与非门•74LS27:3个三输入端或非门设计一片内拥有8个端口的接口电路的I/O地址译码电路,其端口地址为310H―――317H。3.1.1输入/输出系统概述地址译码-部分译码法设计一片内拥有8个端口的接口电路的I/O地址译码电路,其端口地址为310H―――317H。设计:如果我们用74LS30,和74LS04(6个非门芯片)来实现可以吗3.1.1输入/输出系统概述I/O端口地址译码电路一般有两种结构形式固定式端口地址译码电路:硬件电路不改动,译码输出的地址或地址范围不变。门电路组合法译码器译码法可选式(开关式)端口地址译码:电路中有若干个DIP开关,硬件电路不改动,只改变开关的状态,就可以使译码输出的地址或地址范围发生变化。3.1.1输入/输出系统概述门电路组合法(门电路译码法)门电路译码就是采用与门、与非门、反相器及或非门等简单逻辑门器件构成译码电路。例:设计一个端口地址为2FBH的译码电路分析:由于是单个端口地址的译码电路,不需要产生片选信号,故采用全译码方法。10根地址线全部作为译码电路的输入线,参加译码。要求的端口地址是2FBH,可知,10位输入地址线的取值是:3.1.1输入/输出系统概述门电路组合法(门电路译码法)例:设计一个端口地址为2FBH的译码电路设计:能实现上述地址线取值的译码电路有很多种,一般采用门电路有与门、或门、非门及与非、或非等。下面电路固定式单个端口地址译码电路3.1.1输入/输出系统概述门电路组合法(门电路译码法)例:设计一个能能执行读/写操作的2E2H端口地址的译码电路。设计:00A9A8A7A6A5A4A3A2A1A010111000103.1.1输入/输出系统概述译码器译码电路如果接口电路需要使用多个端口地址,则采用译码器译码比较方便。如:双2-4译码器74LS139;3-8译码器74LS138,4-16译码器74LS154,等3.1.1输入/输出系统概述译码器译码电路PC机中3-8译码器74LS138的译码实例3.1.1输入/输出系统概述译码器译码电路PC机中3-8译码器74LS138的译码实例3.1.1输入/输出系统概述比较器比较法例:设计一个I/O地址可以改变的端口地址译码电路,并且在300H――3FFH范围内可以任意选译某一个端口地址。设计:确定地址开关的位数题目要求256种选译,故采用8位地址开关DIP8,其次,地址开关不能直接在系统地址线上,需通过中介元件(比较器或异或门)进行地址转移,我们采用比较器74LS688。从题目要求的地址范围300H――3FFH可知,译码电路的输入地址的取值为:3.1.1输入/输出系统概述比较器比较法。。。Q0Q1Q2Q3Q4Q5Q6Q7P0P1P2P3P4P5P6P7........GNDVCCS0S1S2S3S4S5S6S7........AENA0A1A2A3A4A5A6A7P=QA9A8&。CSG74LS688........DIP开关74LS103.1.2输入/输出控制方式无条件传送方式程序查询方式中断控制方式DAM方式3.1.3输入/输出指令1.IN(INputwordorinputbyte)输入指令指令格式:INAX/AL,端口地址操作:将指定端口的内容(字或字节)读入到累加器AX或AL中受影响的标志位:无说明:目标操作数一定是AX或者AL。当端口为16位时,一定是AX;当端口是8位时,一定用AL当端口地址在0~255之间时,可以在指令中直接给出端口地址,也可以使用DX,让DX中存放端口地址;当端口地址大于255时,必须使用DX。举例:INAL,20;把地址为20的端口中的内容(8位端口)传送到AX中INAX,20;把地址为20的端口中的内容(16位端口)传送到AX中INAL,DX;把DX指出的端口内容(8位端口)传动到AL中INAX,DX;把DX指出的端口内容(16位端口)传动到AL中3.1.3输入/输出指令2.OUT(OUTputwordoroutputbyte)输出指令指令格式:OUT端口地址,AX/AL操作:将累加器AX或AL的内容传送到指定的端口中受影响的标志位:无说明:同IN指令举例:OUT20,AL;把地址为20的端口中的内容(8位端口)传送到AX中OUT20,AX;把地址为20的端口中的内容(16位端口)传送到AX中OUTDX,AL;把DX指出的端口内容(8位端口)传动到AL中OUTDX,AX;把DX指出的端口内容(16位端口)传动到AL中3.28259A中断控制器3.2.18259A中断控制器结构介绍3.2.28259A工作原理介绍3.2.38259A编程控制方式3.2.4PC机中可屏蔽中断的硬件结构3.2.5硬件中断服务程序设计3.2.18259A中断控制器结构介绍8259A用于管理可屏蔽中断其主要任务是接收外部设备的中断请求,然后根据优先级的高低和预先规定的排优规则决定哪个设备能够申请中断,由8259A向CPU发中断请求信号。当CPU响应此请求并给出中断应答之后,8259A还要把一个中断方式码通过数据总线交给CPU,供CPU识别是谁发出的中断请求。8259A引脚图每个8259A有8个中断请求输入端,因此单个8259A可以处理8级中断。在不增加任何硬件线路的情况下,通过级连8259A最多可以管理64级中断。8259AINTAINTIR0IR1IR2IR3IR4IR5IR6IR7SP/EN到8086INTACAS0CAS1INTCAS2IR0IR1IR2IR3IR4IR5IR6IR7SP/EN到8086IR0INTAIR1IR2INTIR3IR4CAS0IR5CAS1IR6CAS2IR7SP/ENIR0INTAIR1IR2INTIR3IR4CAS0IR5CAS1IR6CAS2IR7SP/EN8259A:::中断请求输入(最多64条)8259A8259ACPU对可屏蔽中断的响应。当外设通过8259A向CPU提出申

1 / 74
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功