第6章 输入输出和中断技术(及DMA)

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

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

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

资源描述

第六章输入输出和中断技术本章内容基本概念I/O端口的编址输入输出的基本方法:无条件、查询、中断、DMA中断中断基本概念8086/8088中断系统8259中断控制器*DMA*DMA的基本概念DMA工作过程DMA的三种传输方式微型计算机中I/O接口的作用存储器MI/O接口输入设备II/O接口数据总线DB控制总线CB地址总线AB输出设备OCPU什么是I/O接口(电路)?I/O接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路,I/O接口就是CPU与外设的连接部件。PC机系统板的可编程接口芯片、I/O总线槽的电路板(适配器)都是I/O接口电路CPUI/O接口电路I/O设备接口在CPU与外设之间6.1输入/输出接口(I/O接口)6.1.1概述I/O接口的定义把外设连接到总线上的一组逻辑电路的总称。实现外设与主机之间的信息交换。I/O接口要解决的问题速度匹配(Buffer)信号电平和驱动能力(电平转换器、驱动器)信号形式匹配(A/D、D/A)信息格式(字节流、块、数据包、帧)时序匹配(定时关系)总线隔离(三态门)I/O地址译码与设备选择把选中的与总线相接,未选中的与总线隔离(高阻态)数据的缓冲与暂存缓解接口与CPU工作速度的差异输出接口有锁存环节输入接口有缓冲环节对外设进行监测、控制与管理,中断处理信号电平与类型的转换形式、格式、电平、功率、码制等I/O接口的功能I/O端口:I/O信息的三种类型:数据、命令、状态。传送这三类信息的通道分别称为:数据端口(I、O)、命令端口(O)、状态端口(I)。不同外设具有的端口数各不相同,计算机中为每一个端口都赋予一个惟一编号——称为端口地址(或端口号)。端口有两种编址方式:统一编址和独立编址。6.1.2I/O接口的编址方式I/O接口电路的基本结构定义把外设接口与内存统一进行编址。各占据统一地址空间的不同部分。优点指令统一,灵活;访问控制信号统一,使用同一组的地址/控制信号。缺点内存可用地址空间减小例如:MCS-51单片机0地址空间(共1MB)内存地址(960KB)I/O地址(64KB)FFFFFHEFFFFHF0000H1.统一编址定义:外设地址空间和内存地址空间相互独立。优点:内存地址空间不受I/O编址的影响缺点:I/O指令功能较弱,使用不同的读写控制信号00000H内存地址空间内存空间(1MB)I/O空间(64KB)FFFFHFFFFFHI/O地址空间0000H2.独立编址例如:8088/8086微机系统MCS-51单片机8088/80862016例如:8088/8086系统8088/8086总线A19-A0A15-A0MEMR、MEMWIOR、IOW、AEN存储器访问I/O访问D15/D7~D0D15/D7~D0采用I/O独立编址方式(但地址线与存储器共用)地址线上的地址信号用来区分:/0时为I/O地址/M地址I/O操作只使用20根地址线中的16/8根:A15/7~A0可寻址的I/O端口数为64K(65536)/256个I/O地址范围为0~FFFFH/0~FFHIBMPC只使用了10根A9~A01024个I/O地址(0~3FFH)原因:够用为度,简化电路IO/M=1IO/M8088/8086CPU的I/O编址方式、、A15~A0OUT指令将使总线的信号有效IN指令将使总线的信号有效当接口只有1个端口(仅数据口,无状态口和控制口)时,16位地址线一般应全部参与译码,译码输出直接选择该端口;下面先介绍这种简单情况当接口具有多个端口时,则16位地址线的高位参与译码(决定接口的基地址),而低位则用于确定要访问哪一个端口。IORIOWIOWIOR6.1.3I/O端口地址的译码例如:某外设接口有4个端口(如8255/8253),地址为2F0H~2F3H,则其基地址为2F0H,由A15~A2译码得到,而A1、A0用来确定4个端口中的某一个。请思考:A0~A15=?I/O接口(4端口)A0A1CS译码器…A0A1A2~A15I/O接口(1端口)CS译码器A0~A15并行定义:一个数据单位(通常为字节)的各位同时传送特点:速度快、距离短、成本高例如:PC机的并行接口(通常用于连接打印机)串行定义:数据按位进行传送特点:速度慢、距离远、成本低例如:PC机的串行接口(通常用于串行通信)6.1.4I/O数据的传送方式6.2.1接口电路的基本结构6.2简单接口电路数据线控制线状态线DB(D0-D7)CB(IOR、IOW)AB(A0-A15)数据输入寄存器(or三态门)数据输出寄存器(锁存器)状态寄存器(or三态门)命令寄存器译码电路控制逻辑接外设接主机接口电路的典型结构从编程角度看,接口内部主要包括一个或多个CPU可以进行读/写操作的临时寄存器,又称I/O端口(Port)。各I/O端口由端口地址区分(80X8664K)----编址方式I/O端口1(状态端口)I/O端口2(数据端口)I/O端口3(控制端口)地址译码数据缓冲控制电路外设ABDBCBCPU数据端口:用于存放CPU与外设间传送的数据信息状态端口:用于暂存外设的状态信息控制端口:用于存放CPU对外设或接口的控制信息,控制外设或接口的工作方式。按存放信息的不同分类CPU对外设输入/输出的控制,通过对接口电路中各I/O端口的读/写操作完成。端口地址编号可用普通逻辑芯片(本章)也可用专用接口芯片(下章)数据输入/输出寄存器(缓冲器/锁存器)——暂存输入/输出的数据。命令寄存器(锁存器)——存放控制命令,用来设定接口功能、工作参数和工作方式。状态寄存器(缓冲器)——保存外设当前状态,以供CPU读取。一个外设一般占用端口地址情况——数据I/O、命令、状态三个寄存器各占一个端口地址(共3个);有时把命令、状态两个寄存器共占一个端口地址(共2个);一些简单外设只有数据寄存器一个端口(共1个)。接口电路的基本结构(续)I/O接口可用普通门电路或专用电路制作T1T2T3T4IO/MA15~A8A19~A16/S6~S3ALERDDT/RDENCLKA7~A0D7~D0AD7~AD08088GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCA15A16/S3A17/S4A18/S5A19/S6SSOMN/MXRDHOLDHLDAWRIO/MDT/RDENALEINTATESTREADYRESET8088CPU最小模式下,I/O端口读周期时序8088CPU最小模式下,I/O端口写周期时序T1T2T3T4IO/MA15~A8AD7~AD0ALEWRDT/RDENCLKA7~A0D7~D08088GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCA15A16/S3A17/S4A18/S5A19/S6SSOMN/MXRDHOLDHLDAWRIO/MDT/RDENALEINTATESTREADYRESETA19~A16/S6~S3CPU总线I/O读、写时序(简化)IN指令时序A15~A0IORCLKD7~D0T4T1T2T3TwA15~A0CLKIOWD7~D0T4T1T2T3TwOUT指令时序简单接口电路(无条件传输)数据输入接口必须具有三态输出能力,以便与总线挂接外设有数据保持能力时—可用三态门实现外设无数据保持能力时—用三态输出的锁存器实现数据输出接口常用锁存器实现三态门:高电平、低电平、高阻态通常一个器件中包含8个三态门常用芯片:74LS244(教材图6.3)应用例子:开关接口工作波形图如下:A0~A15IOR译码输出D0~D7开关状态地址有效简单数据输入接口电路ABE简单的输入接口举例K6K7+5VI0I3D0-D7DO0DO7~74LS244E1E2≥1&A2A3A4A5A6A7A8A9A10A11A12A13A14A15IOR系统总线信号≥1K5K4K3K2K1K0I1I2I4I5I6I7接口电路83FCH~83FFH译码器编程实现如果所有开关都闭合,则程序转向标号NEXT1,否则转向NEXT2。MOVDX,83FCHINAL,DXANDAL,0FFHJZNEXT1JMPNEXT2000000000111111110输入设备系统总线锁存器:由D触发器构成通常一个器件包含:8个D触发器(+8个三态门)常用芯片:(教材图6.5、图6.6)74LS273(具有二态输出的D锁存器,内部结构见图6.5)74LS374(具有三态输出的D锁存器,内部结构见图6.8)应用例子:发光二极管接口简单的输出接口举例译码器=1=1.........+5VRD0|D7CPQ0Q7...D0~D7A0~A15IOW74LS273R译码器具体连接见图6-6MOVDX,0FFFFHMOVAL,01000001BOUTDX,AL功能:第1、7个发亮,其余不亮74LS374使用见图6-9接口电路输出设备系统总线无条件传送方式(包括I/O)选中地址数据写信号读信号输出端口无条件传送(I/O)输入端口输入/输出接口综合应用例子根据开关状态在7/8段数码管上显示数字或符号共阳极7段数码管结构见p255图6.10用74LS273作为输出接口,把数据送到7段数码管74LS273的地址假设为F0H用74LS244作为输入口,读入开关K0~K3的状态74LS244的地址假设为F1H当开关的状态分别为0000~1111时,在7段数码管上对应显示’0’~’F’7段码表见下面共阳极、共阴极两种abcdefghabCdefghcomabcdefghcom共阳极共阴极符号形状7段码hgfedcba符号形状7段码hgfedcba’0’00111111’8’01111111’1’00000110’9’01100111’2’01011011’A’01110111’3’01001111’B’01111100’4’01100110’C’00111001’5’01101101’D’01011110’6’01111101’E’01111001’7’00000111’F’011100010~F的共阳极7段显示码表(已反相)O1I1O2I2O3I3O4I4E1K0~K3+5VG1G2AG2BCBA≥174LS244D0Q0|Q1D7Q2Q3Q4CPQ5Q6Q7abcdefgh74068个反相器74LS273Rx8≥174LS138D0~D7IOWIORY0Y174LS273的端口地址:00F0H=0000000011110000B74LS244的端口地址:00F1H=0000000011110001B&≥1A7~A4A15~A8A3A2A1A0D0D1D2D3译码电路共阳极7段数码管开关相应程序段如下:……Seg7DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,67H,77H,7CH,39H,5EH,79H,71H……LEABX,Seg7;取7段码表基地址MOVAH,0GO:MOVDX,0F1H;开关接口的地址为F1HINAL,DX;读入开关状态ANDAL,0FH;保留低4位MOVSI,AX;作为7段码表的表内位移量MOVAL,[BX+SI];取7段码思考:可否改用XLAT?MOVDX,0F0H;7段数码管接口的地址为F0HOUTDX,ALJMPGOCPU与外设间的数据传送方式I/O接口电路基础:三态缓冲器/锁存器问题:CPU与外设的工作速度不一致,尤其是当外设由其他CPU或时序电路控制时更加明显,应如何解决效率和可靠性。数据传送控制:使两者高效、可靠地进行数据传送(1)无条件传送方式(2)条件传送方式(查询方式)(3)中断传送方式(4)DMA传送方式(DirectMemoryAccess)存贮器直接存取方式四种传送方式(程序方式)典型无条件传送方式接口电

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

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

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

×
保存成功