输入输出接口技术_第1页
输入输出接口技术_第2页
输入输出接口技术_第3页
输入输出接口技术_第4页
输入输出接口技术_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,主要内容 第六章 输入/输出与中断技术,主要内容: 输入输出数据的传送方式 可编程并行接口芯片8255A 可编程定时计数器8253,重点: 输入输出数据的传送方式 8255A、8253的各种工作方式的特点、应用时的硬件连接和软件编程方法,第六章 输入/输出与中断技术,2,一、接口是一组电路,存储器接口,存储器,I/O接口,I/O设备,CPU,数据、地址、控制总线,概述 第六章 输入/输出与中断技术,3,二、输入输出接口的功能 (1)设置数据缓冲器或数据锁存器以解决两者速度差异所带来的速度不协调问题 (2)设置信号电平转换电路 (3)设置信息转换逻辑以满足对各自格式的要求 (4)设置时序控制

2、电路来同步CPU和外设的工作 (5)提供地址译码电路,概述 第六章 输入/输出与中断技术,4,三、接口电路基本结构,CPU,I/O 设备,译码,数据端口,状态端口,控制端口,DB,AB,CB,一个典型的I/O接口,数据口(输入/输出):双向 状态口:只能由CPU读入。 控制口:只能由CPU写出。 每个口由译码电路分配一个唯一的地址。,概述 第六章 输入/输出与中断技术,5,四、CPU与外设之间传递的信息类型,1数据信息 (1)数字量: (2)模拟量: (3)开关量: 2状态信息 状态信息反映接口或外设的当前状态。 3控制信息 控制信息是CPU发送给接口电路的,用于控制外设的启动或停止,设置接口

3、的工作方式等。,概述 第六章 输入/输出与中断技术,6,五、I/O端口的寻址方式,(1)I/O 统一编址(存储器影像寻址,不需要专用I/O指令) (2)I/O 端口单独寻址 (专门指令,64K端口地址) 六、I/O端口地址译码方法 独立编址时,一般用地址线的高位部分和控制信号(如RD、WR、M/IO)进行组合(译码)产生 I/O接口电路的片选信号(CS),用地址线的低位部分直接连到 I/O接口芯片实现端口的选择。 (1)逻辑门电路译码(适用口地址单一或固定的) (2)译码器译码(适用电路需多个口地址) (3)可编程逻辑器件PLD(适用口地址保密,可变灵活) 如PAL、GAL,概述 第六章 输入

4、/输出与中断技术,7,第二节 CPU与接口之间传送信息的方式,一、CPU与外设交换的数据信息从广义上来讲包括数据信息、状态信息、控制信息。这三者都用IN和OUT指令来传送的,只不过是 分别送入不同的部件,起不同的作用。 数据信息:数字量、开关量、模拟量。 状态信息:BUSY,READY等,反映外设的状态。 控制信息:CPU发出的命令如读写等。 二、CPU与外设数据传送方式 无条件传送 中断方式 程序方式 查询方式(条件传送) 存储器直接存取方式 (DMA方式),.,.,.,CPU与接口之间传送信息的方式 第六章 输入/输出与中断技术,8,1、无条件传送 在该方式中,外设总被任为已处于准备就绪和

5、准备接收状态,程序不必查验外设的状态, 当需要与之交换数据时,直接执行输入输出指令,就开始接收和发送数据。,CPU与接口之间传送信息的方式 第六章 输入/输出与中断技术,9,O,O,O,O,O,+ 5V,K,与非,与非,或, D0 = 1, K打开,A2,A3,A4,.,.,O,例 1:无条件输入,CPU与接口之间传送信息的方式 第六章 输入/输出与中断技术,10,例 2 无条件输出,CPU与接口之间传送信息的方式 第六章 输入/输出与中断技术,11,2、查询方式 (条件传送),查询方式输入过程的流程图,(1),(1)CPU从接口(状态口)中 读取状态字 (2)CPU检测状态字,满足条 件,C

6、PU从数据口输入 (输出)数据 (3)不满足条件,CPU重新读 取状态字 (3)输入数据查外设是否“准备 就绪 ”。 输出数据时查外设是否处于 “忙”或“空闲”,CPU与接口之间传送信息的方式 第六章 输入/输出与中断技术,12,AWAIT:IN AL,02H TEST AL,01H JZ AWAIT INAL,01H,查询式输入,CPU与接口之间传送信息的方式 第六章 输入/输出与中断技术,13,AWAIT:IN AL,04H TEST AL,80H JZ AWAIT MOVAL,BL OUT03H, AL,查询式输出,CPU与接口之间传送信息的方式 第六章 输入/输出与中断技术,14,中断

7、传送方式:目的:提高CPU的效率、使系统具有实时性。,DMA方式,CPU与接口之间传送信息的方式 第六章 输入/输出与中断技术,15,DMA方式和DMA控制器,一、什么是DMA传送方式? 在查询和中断方式下,数据传送:,CPU,M,外设,M,O,V,O,U,T,I,N,外设与存储器数据的传送, 都需要用IN和OUT指令经CPU, 并且,一次只能传送一个字节,CPU,M,外设,DMA (存储器直接存取方式),在存储器与外设之间建一高速通路 直接进行数据传送,不经CPU,并且 可一次传送数据块,地址、字节数的 修改由硬件完成。DMAC管理总线,DMAC,CPU与接口之间传送信息的方式 第六章 输入

8、/输出与中断技术,16,三、缺点 (1)DMA期间,CPU不占总线,因而不能做其它工作。 (2)CPU对DMAC初始化占有额外时间。 (3)增加硬件,提高成本,使电路复杂。 因此对于数据块短,需频繁DMAC初始化的场合,对于CPU来得及处理的情况,就 不必采用DMA方式。,1、硬盘和软盘的输入 / 输出 2、快速通信通道输入 / 输出 3、多处理机和多程序数据块传送 4、扫描操作(图象显示) 5、高速数据采集,二、在什么情况下用DMA,CPU与接口之间传送信息的方式 第六章 输入/输出与中断技术,17,主要内容 第六章 输入/输出与中断技术,主要内容: 中断的基本概念、中断处理过程 8086C

9、PU中断系统 中断控制器8259A,重点: 8086CPU中断向量与中断向量指针的关系,难点: 中断控制器8259A的编程,18,中断系统,中断源:有硬件故障、外部设备、CPU内部三种中断源。,中断的分类,中断响应过程,中断处理过程,中断优先级判断,中断系统 第六章 输入/输出与中断技术,19,硬件排队电路法 1、多线中断优先排队电路,中断系统 第六章 输入/输出与中断技术,20,2、串行排队链与向量中断,中断系统 第六章 输入/输出与中断技术,21,软件查询法,中断系统 第六章 输入/输出与中断技术,22,8086/8088的中断系统,分类,8086/8088的中断系统 第六章 输入/输出与

10、中断技术,23,8086/8088的中断系统,分类,中断向量的装入: 在程序初始化部分进行。,中断向量和中断向量表 中断向量就是中断服务程序的入口地址,它包括中断服务程序的段基址CS和偏移地址IP,每个中断向量在内存中占4个连续的字节单元。,8086/8088的中断系统 第六章 输入/输出与中断技术,24,例如软磁盘INT 13H,它的中断向量为0F000H(CS):0EC59H(IP),当CPU执行该中断指令时,提供13H的中断类型号,CPU根据中断类型号13H形成中断向量的第一个字节的指针,即13H4=004CH,从它开始连续4个字节单元用来存放INT 13H的中断向量.,8086/808

11、8的中断系统 第六章 输入/输出与中断技术,25,例如,假设中断类型号为60H,中断服务程序的段基址是1000H,偏移地址是0030H,则填写中断向量表的程序段为: CLI;关中断(IF=0) MOVAX,0 MOVDS,AX MOVDI,4*60H;中断向量指针DI MOVAX,0030H;中断服务程序偏移值AX MOVDI,AX;(AX)DI DI1中 MOVAX,1000H ;中断服务程序的段基址AX MOVDI2,AX ;(AX)DI2 DI3 STI;IF=1,开中断,26,8255A,INTEL8255A,可编程并行输入输出接口芯片 基本特性: 具有两个8位(A口、B口)和两个4位

12、(C口高、低四位)并行输入输出口。每个口都有数据输入输出寄存器。 具有三种工作状态。 C口较为特殊,在不同的方式下,其作用不完全相同。,8255A,27,A组 控制,B组 控制,端口C (上半部),端口C 下半部,端口B,O,O,O,数据总线 缓冲器,读 / 写 控制逻辑,端口A,数据总线,D0 D7,RD WR A0 A1,RESET,CS,PA0 PA7,PC4 PC7,PC0 PC3,PB0 PB7,CPU接口,外设接口,一、8255A内部结构及引线,内部数据总线,A1 A0 0 0 A口 0 1 B口 0 C口 1 1 控制口,8255A,28,二、8255的编程,1、8255的工作方

13、式控制字(写入 A1、A0 = 11),D0,D1,D2,D3,D4,D5,D6,D7,PC3 PC0 1:输入 0:输出,B口 1:输入 0:输出,B组工作方式 0:方式0 1:方式1,PC7 PC4 1:输入 0:输出,A口 1:输入 0:输出,A组工作方式 00:方式0 01:方式1 1:方式2,D7 = 1 为工作方式控制字有效,B组,A组,例如,要使A组工作方式0,A口输入,C口高4位输出,B组工作在方式1,B口输出,C的低4位输出,则工作方式字为:,10010100,8255A,29,2、C口的置位/复位字 (写入 A1A0 = 11),D0,D1,D2,D3,D4,D5,D6,D

14、7,1:置位 0:复位,C口选择,000:PC0 001:PC1 010:PC2 011:PC3 100:PC4 101:PC5 110:PC6 111:PC7,无效,D7 = 0 (置位/复位标志),方式0:基本 I/O 方式 (查询时,任选C口做连络信号) 方式1:选通I/O 方式(可查询或中断,固定C口做连络信号) 方式2:双向I/O方式(只用于A口,PC3 PC7做连络信号),8255A,30,三、8255A的工作方式,方式0-基本输入输出方式 A、B、C口作为基本输入输出口 输入有缓冲,输出有锁存 在方式0下,直接采用无条件读写方式与CPU 交换数据。,8255A,31,应用举例,8

15、255A,如图8-15所示,8255A的C口连接4个开关K0K3,A口连接一个共阳极七段数码管,假设8255A的端口地址为60H63H。要求将C口输入的开关状态(0FH)显示在数码管上,试编写程序。,8255A的工作方式控制字为:10001000B(88H),32,8255A,8255A的工作方式控制字为:10001000B(88H),PORTAEQU60H PORTBEQU61H PORTCEQU62H PCTRLEQU63H DISPROC MOVAL,88H OUTPCTRL,AL;初始化8255 INAL,PORTC;读开关状态 MOVCL,4 SHRAL,CL;转成低4位 LEABX

16、,SH_TAB XLATSH_TAB;查表 OUTPORTA,AL;显示输出 RET SH_TABDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB80H,98H,88H,83H,0C6H,0A1H,86H,8EH DISENDP,33,图811 打印机接口工作时序图,图812 打印机接口原理图,8255A,34,MOVCX,256 MOV AL,10000001B OUT83H,AL MOV AL,00001111B OUT83H,AL WAITK: INAL,82H TESTAL,04H JNZWAITK MOVAL,BX OUT80H,AL MOV AL,

17、00001110B OUT83H,AL NOP NOP MOV AL,00001111B OUT83H,AL INCBX LOOP WAITK MOVAH,4CH INT21H,例: 8255与打印机的连接,1。8255工作于方式0 用PC7、PC2做联络线,8255A,35,方式1-选通输入输出方式 基本特点 1、方式1下,A口、B口作为数据输入、输出口,C口的某些位作为控制或状态信息。 2、输入输出均有锁存。,8255A,36,A口方式 1 ,输入,INTE A,PA0 PA7,PC4,PC5,PC3,STB,IBF,INTR,I / O,PC6 PC7,O,RD,STB:选通输入,外设发

18、出 IBF:输入缓冲器满,8255发出 INTE:内部中断允许,设置PC4 = 1 可使INTE A = 1 INTR:中断请求,当INTE = 1 且 IBF = 1时,INTR = 1,当外设准备好数据,在送出数据的同时,送出一个选通信号。8255A输出IBF高电平信号,通知外设送来的数据已收到。外设收到信号后将变成高电平。若此时8255A处于中断允许状态,即INTE,STB 的上升沿使INTR变为高电平,向CPU发出中断请求。CPU执行IN指令从8255A中读取数据时,RD的下降沿使INTR复位,清除中断请求,RD的上升沿使IBF复位,一次数据输入过程结束。外设在检测到IBF为零后,可以

19、开始下一个字节的传送。,8255A,37,A口方式 1 ,输出,INTE A,PA0 PA7,PC6,PC7,PC3,PC4 PC5,ACK,OBF,INTR,I / O,O,WR,ACK:外设应答 OBF:输出缓冲器满 INTE:中断允许,设置PC6 = 1,可使INTE A = 1 INTR:中断请求,当INTE = 1且OBF = 1时,INTR = 1,CPU首先将要输出的数据写入8255A的端口,/WR的上升沿使/OBF有效,表示输出缓冲器已满,通知外设取走数据,同时使中断请求信号INTR变低。当外设取走数据后,8255A收到外设的应答信号/ACK,即变为低电平。/ACK的下降沿将置

20、/OBF为高电平,为下一次输出作准备。在8255A中断允许时,即INTE,的上升沿使INTR变为高电平,产生中断请求,请求CPU向8255A端口再写入一个数据。,8255A,38,8255A,例,如图所示,8255A的A口连接打印机的数据口,工作于方式1输出,用查询方式将内存输出缓冲区OBUF中的256个字节数据送打印机打印,假设8255A的端口地址为80H83H,编制打印驱动程序。,DATASEGMENT OBUFDB256 DUP (?) DATAENDS,8255A工作方式字 10101000B,39,8255A,CODESEGMENT ASSUMECS:CODE,DS:DATA STA

21、RT: MOVAX,DATA MOVDS,AX MOVCX,256;设置计数器 MOV AL,10101000B;8255A工作方式字 OUT83H,AL LEABX,OBUF;设置输出缓冲器地址指针 WAITK:INAL,82H;读C口 TESTAL,10H;测试PC4 JNZWAITK;打印机忙,重新读状态 MOVAL,BX;不忙,将一个字节数据送入A口 OUT80H,AL INCBX;修改地址指针 LOOPWAITK;未完,继续 MOVAH,4CH;返回DOS INT21H CODEENDS ENDSTART,40,方式2 双向选通输入输出方式,1、基本特点 方式2只限于A组使用。 输入

22、、输出均有锁存功能 与方式1类似,设置了专用的联络控制信号和中断请求信号线,提供了A口输入、输出操作时的状态信息。,8255A,41,方式输入输出操作时序关系,8255A,42,可编程定时器/计数器,实现定时和计数的三种方法: 软件定时 不可编程硬件定时 可编程硬件定时,8253的特点: 三个独立的十六位计数器 最高计数频率达到2MHz 可进行二进制或BCD码计数 6种工作方式,定时的作用: 用作时间标准; 作为一些接口的工作节拍; 信息传输时的同步。,8253,43,计数器 / 定时器 8253,8253基本原理图 8253内部结构及引脚,数据 总线 缓冲器,读 / 写 控制逻辑,控制 寄存

23、器,计数器 0,计数器 1,计数器 2,O,O,O,计数器 0,计数初值寄存器,高8,低8,执行部件,输出锁存寄存器,D0 D7,CLK0 GATE0 OUT0,CLK1 GATE1 OUT1,CLK2 GATE2 OUT2,D0 D7,RD WR A0 A1,CS,8253,44,二、8253的编程,1、写 8253的控制字,写入控制寄存器(A1,A0 = 11) 2、写入计数值,写到相应的计数器。 3、计数过程中读计数值 8253控制寄存器格式,D0,D1,D2,D3,D4,D5,D6,D7,BCD,M1,M2,M3,RW0,RW1,SC0,SC1,计数值形式 0:二进制 1:BCD码,工

24、作方式选择 000:方式0 001:方式1 010:方式2 101:方式5,.,.,计数值写入顺序,00:锁存计数值 01:读写低8位, 10:读写高8位, 11:先读写低8位,后读写高8位,计数器选择 00:计数器0 01:计数器1 10:计数器2,8253,45,例:若8253的三个计数器和方式控制寄存器的端口地址分别为70H、71H、72H、73H,选择计数器0,工作在方式0,计数初值为500。采用二进制计数。写出初始化程序段。,MOV AL,00110000B OUT 73H, AL MOV AX, 500 OUT 70H, AL MOV AL, AH OUT 70H, AL,8253

25、,46,例:若8253的三个计数器和方式控制寄存器的端口地址分别为70H、71H、72H、73H,选择计数器0,工作在方式0,计数初值为500。采用BCD码计数。写出初始化程序段。,MOV AL,00110000B OUT 73H, AL MOV AX, 500H OUT 70H, AL MOV AL, AH OUT 70H, AL,8253,47,(2) 读操作,1、停止计数器读 2、锁存后读 (也称“飞读”),例如:要读取2号计数器的当前计数值,采用“飞读”方法。设2号计数器当前的工作方式0,且规定读两个字节,先读低字节后读高字节。,MOV AL, 1011 0000B OUT 73H,

26、AL,MOV AL, 1000 0000B OUT 73H, AL IN AL, 72H MOV BL, AL IN AL, 72H MOV BH, AL,8253,48,8253工作方式,1、方式 0 (计数结束产生中断),WR,N = 4,初始低电平,4 3 2 1 0,OUT,GATE = 1,计数到0产生高电平,写入计数值 开始计数,计数值一次有效,2、方式1(可编程单拍脉冲),WR,GATE,OUT,N = 3,3 2 1 0,3 2 1 0,计数值,写入计数值 不计数,GATE触发 开始计啥,初始高电平,GATE再次触发 再计数,计数值多次有效,8253,49,3、方式2(分频器或

27、脉冲信号发生器),N = 4,WR,OUT,4 3 2 1,(4) 0,3 2 1,周期等于计数值,N,GATE = 1,1个CLK,自动连续循环计数不用触发 计数值多次有效,写入计数值 开始计数,4、方式3(方波发生器),4 3 2 1 0,(4),3 2 1 0,5 4 3 2 1 0,计数值N = 偶数,输出对称的方波,N 2,4 2,4 2,N = 奇数,,高电平,N+1 2,低电平,N 1 2,5+1 2,5 - 1 2,其它同方式 2,8253,50,5、方式4(软件触发选通),WR,OUT,N = 3,3 2 1 0,GATE = 1 软件触发,写入计数值 开始计数,1个CLK,

28、计数值一次有效, 再计数需再次写入计数值,6、方式5(硬件触发选通),WR,N = 3,GATE,OUT,3 2 1 0,写入计数值 不计数,GATE触发 计数,3 2 1 0,GATE再次触发, 再次计数,计数值多次有效,1个CLK,8253,51,工作方式小结: 1、输出信号OUT的波形 在6种方式中,只有方式0,在写入控制字后输出OUT为低电平。其他5种方式,都是在写入控制字后输出为高电平 。 方式2、4和5的输出波形是相同的,都是宽度为一个CLK周期的负脉冲。但方式2是连续工作,方式4由软件触发启动,而方式5由门控脉冲触发启动。 2、 计数值的设置 任一种方式,只有在写入计数值才能开始

29、计数。方式0、2、3和4都是在写入计数值后,计数过程就开始了;而方式1和5需要外部触发启动,才开始计数。,8253,52,3、门控信号GATE的作用。,8253,53,4、计数过程中改变计数值的结果。,8253,54,方式0 时序,8253,55,方式1 时序,8253,56,方式2 时序,8253,57,方式3 时序,8253,58,方式4 时序,8253,59,方式5 时序,8253,60,8253,某系统使用一片8253,要求完成如下功能: (1)计数器0对外部事件计数,计满50次向CPU发中断请求; (2)计数器1产生频率为1KHz的方波信号,设输入计数频率1MHz; (3)计数器2作为标准时钟,每秒钟向CPU发一次中断请求,输入计数频率由OUT1提供。 (8253的端口地址为40H43H),确定相应通道的控制字及计数初值为: 计数器0: 初值为50,控制字为00010000B(方式0、二进制计数) ; 计数器1: 初值1000,控制字为01110110B(方式3、二进制计数); 计数器2: 初值1000,控制字为10110001B(方式0、BCD码计数)。,61,8253,MOVAL,10H OUT43H,AL MOVAL,50 OUT40H,AL MOVAL,76H OUT43H,AL MOVAX,1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论