信息工程学院•通信工程系12020年3月1日星期日第六章输入输出和中断技术教学内容:在整体上对输入输出系统、I/O接口、基本输入输出方式及中断控制技术有一定的了解,并能够利用简单的接口芯片实现外设与系统的连接和信息传送。教学目标:了解I/O系统、I/O接口和I/O端口的一般概念了解I/O端口的编址方式深入理解基本输入输出方法及中断控制技术掌握简单接口芯片的应用信息工程学院•通信工程系22020年3月1日星期日6.1输入输出系统概述6.2简单接口电路6.3基本输入输出方法6.4中断技术6.5可编程中断控制器8259A信息工程学院•通信工程系32020年3月1日星期日6.1输入输出系统概述微型计算机中I/O接口的作用存储器MI/O接口输入设备II/O接口数据总线DB控制总线CB地址总线AB输出设备OCPU信息工程学院•通信工程系42020年3月1日星期日I/O设备,I/O接口,I/O软件信息工程学院•通信工程系52020年3月1日星期日6.1I/O系统的特点I/O接口的定义把外设连接到总线上的一组逻辑电路的总称。实现外设与主机之间的信息交换。特点:复杂性异步性实时性与设备无关性信息工程学院•通信工程系62020年3月1日星期日6.1I/O接口的基本功能I/O接口要解决的问题速度匹配(Buffer)信号电平和驱动能力(电平转换器、驱动器)信号形式匹配(A/D、D/A)信息格式(字节流、块、数据包、帧)时序匹配(定时关系)总线隔离(三态门)信息工程学院•通信工程系72020年3月1日星期日I/O接口的功能•I/O地址译码与设备选择•信息的输入输出•命令、数据和状态的缓冲与锁存•信息转换•中断或DMA管理功能•可编程功能信息工程学院•通信工程系82020年3月1日星期日6.1.3I/O端口的编址方式数据端口状态端口控制端口端口CPU数据状态控制外设统一编址独立编址信息工程学院•通信工程系92020年3月1日星期日端口与内存的统一编址特点:•也称为存储器映射编制方式,指令及控制信号统一•内存地址资源减少•从指令上不易区分当前操作内存地址960KBI/O地址64KB00000HEFFFFHFFFFFHF0000H信息工程学院•通信工程系102020年3月1日星期日端口的独立编址特点:•内存地址资源充分利用•能够应用于端口的指令较少内存地址00000HFFFFFHI/O地址FFFFH0000H信息工程学院•通信工程系112020年3月1日星期日8088总线A19-A0A15-A0MEMR、MEMWIOR、IOW存储器输入/输出信息工程学院•通信工程系122020年3月1日星期日8088/8086的I/O端口编址•采用I/O独立编址方式(但地址线与存储器共用)•地址线上的地址信号用IO/M来区分•I/O操作只使用20根地址线中的16根:A15~A0•可寻址的I/O端口数为64K(65536)个•I/O地址范围为0~FFFFH信息工程学院•通信工程系132020年3月1日星期日6.1.4I/O端口地址的译码目的:•确定端口的地址将总线上的地址信号转换为某个端口的“使能”信号,这个操作就成为端口地址的译码。参加译码的信号:•IOR,IOW,A15~A0•OUT指令将使总线的IOW信号有效•IN指令将使总线的IOR信号有效信息工程学院•通信工程系142020年3月1日星期日•当接口只有一个端口时,16位地址线一般应全部参与译码,译码输出直接选择该端口;当接口具有多个端口时,则16位地址线的高位参与译码(决定接口的基地址),而低位则用于确定要访问哪一个端口。•当CPU工作在最大模式时,对存储器的读写要求控制信号MEMR或MEMW有效,如果是对I/O端口读写,则要求控制信号IOR或IOW有效。•IO/M信息工程学院•通信工程系152020年3月1日星期日•某外设接口有4个端口,地址为2F0H~2F3H,则其基地址为2F0H,由A15~A2译码得到,而A1、A0用来确定4个端口中的某一个连接信息工程学院•通信工程系162020年3月1日星期日6.2简单接口电路掌握:•接口电路的分类及特点•两类简单接口芯片的应用信息工程学院•通信工程系172020年3月1日星期日6.2.1接口的基本构成CPUI/O接口外设数据端口地址控制数据状态控制信息工程学院•通信工程系182020年3月1日星期日接口的基本构成数据线控制线DBCBAB数据输入寄存器(or三态门)数据输出寄存器(锁存器)状态寄存器(or三态门)命令寄存器译码电路控制逻辑接外设接主机状态线信息工程学院•通信工程系192020年3月1日星期日接口的基本构成•数据输入/输出寄存器——暂存输入/输出的数据•命令寄存器——存放控制命令,用来设定接口功能、工作参数和工作方式•状态寄存器——保存外设当前状态,以供CPU读取信息工程学院•通信工程系202020年3月1日星期日输入接口输出接口接口要求对数据具有控制能力(常用三态门实现)要求对数据具有锁存能力(常用锁存器实现)信息工程学院•通信工程系212020年3月1日星期日6.2.2三态门接口高电平、低电平、高阻态信息工程学院•通信工程系222020年3月1日星期日74LS244•含8个三态门的集成电路芯片•在外设具有数据保持能力时用来输入接口信息工程学院•通信工程系232020年3月1日星期日三态门接口应用例【例】编写程序判断下图中的开关状态。如果所有的开关都闭合,则程序转向NEXT1的程序段执行,否则转向NEXT2的程序段执行。MOVDX,83FCHINAL,DXANDAL,0FFHJZNEXT1JMPNEXT2K6K7+5VI0I3D0-D7DO0DO7~74LS244E1E2≥1&A2A3A4A5A6A7A8A9A10A11A12A13A14A15IOR系统总线信号≥1K5K4K3K2K1K0I1I2I4I5I6I7占用地址为:83FCH~83FFH信息工程学院•通信工程系242020年3月1日星期日6.2.3锁存器接口•通常由D触发器构成•74LS273:不具备数据的控制能力•74LS374:具有对数据的控制能力•74LS373:具有对数据的控制能力信息工程学院•通信工程系252020年3月1日星期日25110SGNDQ2D2D3Q3Q1D1D0Q0VccCPQ5D5D4Q4Q6D6D7Q7SCPDiQi011X↑↑X1001074LS273引线图和真值表S为复位端CP为脉冲输入端信息工程学院•通信工程系262020年3月1日星期日26下图所示是应用74LS273作为输出接口的例子。8个Q端与8个发光二极管相连接,要使接到Q0端和Q6端的发光二极管发光,其对应的Q0、Q6端须为“1”状态,而其它Q端则为“0”状态。假定该输出接口的地址为0FFFFH,则程序段如下:MOVDX,0FFFFHMOVAL,01000001BOUTDX,ALp253-6-6系统总线信号D0D0D7D7~~A0A1A2A3A4A5A6A7IOW&&≥111CP+5V+5VQ0Q1Q6Q7…A8A9A10A11A12A13A14A1574LS273信息工程学院•通信工程系272020年3月1日星期日27110OEGNDQ2D2D3Q3Q1D1D0Q0VccCPQ5D5D4Q4Q6D6D7Q7DiCPOEQi10X↑↑X00110高阻DiQ(D)(CP)OE11Qi74LS374引线图和真值表74LS374内部结构信息工程学院•通信工程系282020年3月1日星期日锁存器芯片74LS374D0~D7Q0Q7...OECP译码器Q0~Q7D0D7...OECP译码器做输出口:做输入口:外设自外设信息工程学院•通信工程系292020年3月1日星期日D0D7~D0D7~D0D7~D0D7~111≥1&&IOWA0A1A2A3A4A5A6A7A8A9A10A11A12A13A14A1574LS374用作输出接口Q0Q1Q6Q7CPOED7D0D1…OEA0A15~IOR译码电路外设数据由外设提供选通脉冲74LS374用作输入接口74LS37474LS37474LS374作为输入和输出接口信息工程学院•通信工程系302020年3月1日星期日6.2.4I/O接口综合应用例abcdefgdp(a)LED显示管外形与二极管编码abcdefgdp(b)共阳极LED显示管abcdefgdp(c)共阴极LED显示管LED七段数码显示管接口信息工程学院•通信工程系312020年3月1日星期日符号形状7段码.gfedcba符号形状7段码.gfedcba’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’01110001信息工程学院•通信工程系322020年3月1日星期日•根据开关状态在7段数码管上显示数字或符号•设输出接口的地址为F0H•设输入接口地址为F1H•当开关K处于闭合状态时,在7段数码管上对应显示’0’;当开关K处于断开状态时,在7段数码管上对应显示’1’信息工程学院•通信工程系332020年3月1日星期日+5VGG2AG2BCBA≥1D0Q0|Q1D7Q2Q3Q4CPQ5Q6Q7abcdefgDP7406反相器74LS273Rx8≥174LS138D0~D7IOW#Y0Y1F1H=0000000011110001(状态端口)F0H=0000000011110000(数据端口)&≥1A7~A4A15~A8A3A2A1A0译码器KCD0IOR信息工程学院•通信工程系342020年3月1日星期日I/O接口综合应用例——程序段FOREVER:MOVDX,0F1HINAL,DXTESTAL,1MOVAL,3FH;显示“0”JZDISPMOVAL,06H;显示“1”DISP:MOVDX,0F0HOUTDX,ALJMPFOREVER信息工程学院•通信工程系352020年3月1日星期日FOREVER:MOVDX,0F1HINAL,DXTESTAL,1JZSETVALUEMOVAL,06H;显示“1”JMPDISPSETVALUE:MOVAL,3FH;显示“0”DISP:MOVDX,0F0HOUTDX,ALJMPFOREVER信息工程学院•通信工程系362020年3月1日星期日6.3基本输入/输出方法无条件传送查询式传送中断方式传送直接存储器存取(DMA)信息工程学院•通信工程系372020年3月1日星期日6.3.1无条件传送37•适用于总是处于准备好状态的外设•优点:软件及接口硬件简单•缺点:只适用于简单外设,适应范围较窄。信息工程学院•通信工程系382020年3月1日星期日DCPQD0D1输出口地址38F3H输入口地址38F0H+5V1●读取开关的状态●当开关闭合时,输出编码使发光二极管亮无条件传送例信息工程学院•通信工程系392020年3月1日星期日6.3.2查询工作方式适用场合:•外设并不总是准备好•对传送速率和效率要求不高对外设及接口的要求:•外设应提供设备状态信息•接口应具备状态端口•优点:软件比较简单•缺点:CPU效率低,数据传送的实时性差,速度较慢信息工程学院•通信工程系402020年3月1日星期日超时?READY?与外设进行数据交换超时错读入并测试外设状态YNYN传送完?防止死循环复位计时器NY单一外设时的工作流程信息工程学院•通信工程系412020年3月1日星期日查询工作方式例外设状态端口地址为03FBH,第0位(bit0)为状态标志(=1忙,=0准备好)外设数据端口地址为03F8H,写入数据会使状态标志置1;外设把数据读走后又把它置0。信息工程学院•通信工程系422020年3月1日星期日D0D7-D0A9|A3≥1&A15|A10≥1IOWD7-D03F8H外设D7D6D5D4D3D2D1