《第六章输入输出及接口精选文档.ppt》由会员分享,可在线阅读,更多相关《第六章输入输出及接口精选文档.ppt(73页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章输入输出及接口1本讲稿第一页,共七十三页第六章 输入输出及接口教学重点教学重点n I/O接口电路的典型结构n无条件传送方式n查询传送方式n中断工作过程本讲稿第二页,共七十三页教学要求1.了解I/O接口电路的主要功能、内部和外部特点、端口编址方法、I/O地址译码特点2.掌握输入输出指令3.掌握无条件、查询传送方式4.理解中断、中断源、中断工作过程、中断源识别、优先权排队和中断嵌套5.理解DMA传送的工作过程本讲稿第三页,共七十三页6.1 I/O接口概述为什么需要I/O接口(电路)?n微机的外部设备多种多样n工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大n它们不能与CPU直接相连
2、n必须经过中间电路再与系统相连n这部分电路被称为I/O接口电路多种外设多种外设本讲稿第四页,共七十三页6.1 I/O接口概述(续1)什么是I/O接口(电路)?nI/O接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路nPC机系统板的可编程接口芯片、I/O总线槽的电路板(适配器)都是接口电路CPUCPU接口接口接口接口电路电路电路电路 I/OI/O设备设备设备设备本讲稿第五页,共七十三页6.1 I/O接口概述(续2)什么是微机接口技术?n处理微机系统与外设间联系的技术n注意其软硬结合的特点n根据应用系统的需要,使用和构造相应的接口电路,编制配套的接口程序,支持和连接有关的设备本讲稿
3、第六页,共七十三页6.1.1 I/O接口的主要功能 对输入输出数据进行缓冲和锁存缓冲只是一个笼统说法,具体的场合可能指锁存、隔离、驱动或它们的组合q输出接口有锁存环节、输入接口有缓冲环节q实际的电路常见:输出锁存缓冲环节、输入锁存缓冲环节q由于某个时刻只能有一个设备向总线发送数据,所以在输入接口中,至少要安排一个隔离环节(如三态门)本讲稿第七页,共七十三页6.1.1 I/O接口的主要功能(续1)对信号的形式和数据的格式进行变换微机直接处理:数字量、开关量、脉冲量q如电平信号转为电流信号、弱电信号转为强电信号、数字信号转为模拟信号、并行数据格式转为串行数据格式 对I/O端口进行寻址 与CPU和I
4、/O设备进行联络本讲稿第八页,共七十三页6.1.2 I/O接口的典型结构控制总线控制总线CB地址总线地址总线ABI/O接口电路接口电路数据数据控制控制状态状态数据总线数据总线DBCPU外设外设控制寄存器控制寄存器状态寄存器状态寄存器数据寄存器数据寄存器1.接口电路的内部结构2.接口电路的外部特性3.接口电路芯片的分类4.接口电路的可编程性本讲稿第九页,共七十三页1.接口电路的内部结构nCPU与外设主要有数据、状态和控制信息需要相互交换,于是从应用角度看内部:数据寄存器q输入数据寄存器:保存外设给CPU的数据q输出数据寄存器:保存CPU给外设的数据状态寄存器q保存外设或接口电路的状态控制寄存器q
5、保存CPU给外设或接口电路的命令这3类寄存器分别称为数据端口、状态端口和控制端口,或数据口、状态口和控制口,每类端口的数量可能不止一个本讲稿第十页,共七十三页2.接口电路的外部特性n主要体现在引脚上,分成两侧信号面向CPU一侧的信号:q用于与CPU连接q主要是数据、地址和控制信号面向外设一侧的信号:q用于与外设连接q提供的信号五花八门q功能定义、时序及有效电平等差异较大本讲稿第十一页,共七十三页3.接口电路芯片的分类n早期接口电路由分立元件构成,目前接口电路核心部分往往是一块或数块大规模集成电路芯片(接口芯片),按功能分为:n通用接口芯片q支持通用的数据输入输出和控制的接口芯片n面向外设的专用
6、接口芯片q针对某种外设设计、与该种外设接口n面向微机系统的专用接口芯片q与CPU和系统配套使用,以增强其总体功能本讲稿第十二页,共七十三页4.接口电路的可编程性n许多接口电路具有多种功能和工作方式,可以通过编程的方法选定其中一种n接口需进行物理连接,还需编写接口软件n接口软件有两类:q初始化程序段设定芯片工作方式等q工作程序(驱动程序)操作接口芯片完成具体工作的程序本讲稿第十三页,共七十三页6.1.3 I/O端口的编址接口电路占用的I/O端口有两类编排形式nI/O端口单独编址qI/O地址空间独立于存储地址空间q如8086/8088nI/O端口与存储器统一编址q它们共享一个地址空间q如M6800
7、本讲稿第十四页,共七十三页 I/O端口单独编址n优点:qI/O端口的地址空间独立q控制和地址译码电路相对简单q专门的I/O指令使程序清晰易读n缺点:qI/O指令没有存储器指令丰富内存内存空间空间I/O空间空间FFFFF0FFFF80 x86采用采用I/O端口独立编址端口独立编址本讲稿第十五页,共七十三页 I/O端口与存储器统一编址n优点:q不需要专门的I/O指令qI/O数据存取与存储器数据存取一样灵活n缺点:qI/O端口要占去部分存储器地址空间q程序不易阅读(不易分清访存和访问外设)内存内存部分部分I/O部分部分存储器空间存储器空间00000FFFFF本讲稿第十六页,共七十三页6.1.4 80
8、88/8086的输入输出指令n输入指令(IN:将外设数据传送给CPU内的AL/AX)INAL,i8;AL(i8),字节输入,直接寻址INAL,DX;AL(DX),字节输入,寄存器间接寻址INAX,i8;AL(i8),AH(i8+1),字输入,直接寻址INAX,DX;AL(DX),AH(DX+1)字输入,寄存器间接寻址n输出指令(OUT:将CPU内的AL/AX数据传送给外设)qOUTi8,AL;(i8)AL,字节输出,直接寻址qOUTDX,AL;(DX)AL,字节输出,寄存器间接寻址qOUTi8,AX;(i8)AL,(i8+1)AH,字输出,直接寻址qOUTDX,AX;(DX)AL,(DX+1)
9、AH,字输出,寄存器间接寻址演示演示演示演示本讲稿第十七页,共七十三页8088/8086的I/O端口n8088只能通过输入输出指令与外设进行数据交换;呈现给程序员的外设是端口(Port),即I/O地址n8086用于寻址外设端口的地址线为16条,端口最多为21665536(64K)个,端口号为0000HFFFFHn每个端口用于传送一个字节的外设数据本讲稿第十八页,共七十三页8088/8086的输入输出指令与存储器指令n8088/8086访问存储器可使用众多MOV指令,访问I/O端口只能使用少量的IN和OUT指令nIN和OUT左操作数是目的,右操作数是源,但有一个操作数被限定为寄存器AX(AL),
10、在IN中是左操作数,在OUT中是右操作数。而MOV指令可以使用各种寄存器本讲稿第十九页,共七十三页8088/8086的输入输出指令与存储器指令n8088/8086寻址存储单元五种方式。当寻址I/O只有直接寻址和DX间接寻址q8088/8086的端口有64K个,无需分段,设计有两种寻址方式q直接寻址:只用于寻址00HFFH前256个端口,操作数i8表示端口号q间接寻址:可用于寻址全部64K个端口,DX寄存器的值就是端口号q对大于对大于FFH的端口只能采用间接寻址方式的端口只能采用间接寻址方式本讲稿第二十页,共七十三页8088/8086的输入输出指令与存储器指令n8088/8086的I/O指令分为
11、字型和字节型两类,因为8088外部数据线是8位,所以它只使用字节型的输入输出指令,而8086外部数据总线16位,可以使用两类的I/O指令n在正常设计16位端口情况下,每次I/O访问将吞吐16位数据,此时AL与偶地址I/O端口进行数据交互,AH与奇地址I/O端口进行数据交互,继续保持“低对低高对高”的数据形式本讲稿第二十一页,共七十三页IN指令实例(从20H端口输入一个字);方法1:直接寻址,字量输入in ax,20h;方法2:间接寻址,字量输入mov dx,20hin ax,dx;方法3:直接寻址,字节量输入in al,21hmov ah,alin al,20h;方法4:间接寻址,字节量输入m
12、ov dx,21hin al,dxmov ah,aldec dxin al,dx本讲稿第二十二页,共七十三页OUT指令实例(向300H端口输出一个字节);唯一的方法:间接寻址,字节量输出mov al,bvar;bvar是字节变量mov dx,300hout dx,al本讲稿第二十三页,共七十三页6.1.5 I/O地址的译码nI/O地址的译码方法与存储器地址的译码方法一样,但:qI/O地址空间足够大,可以容忍一定程度的浪费qI/O访问的频度远低于存储器访问,而且不同的外设其操作相互独立,编址无需强调地址的连续q大多数采用部分译码,从而节省译码的硬件开销n通常是高端若干地址线参与片选译码n低端若干
13、地址线参与片内译码n位于中间段的若干址线线不参与译码,有时位于最低端的地址线也不参与译码qP157图6-2、P158图6-3本讲稿第二十四页,共七十三页逻辑门电路进行I/O地址译码A9A8A7A6A5A2A4A3AENA1A074LS303E7H本讲稿第二十五页,共七十三页IBM PC/XT主机板的I/O译码电路Y0 Y1 Y2 Y3 Y4 Y5Y6 Y7A5A6 A7A8A9 AENIOWAB CG2BG2AG174LS138DMA CS(8237)INTR CS(8259)T/C CS(8253)PPI CS(8255)WRTDMAPG(写(写DMA页面寄存器)页面寄存器)WRTNMIRE
14、G(写(写NMI屏蔽寄存器)屏蔽寄存器)本讲稿第二十六页,共七十三页IBM PC/AT主机板的I/O译码电路接口芯片内部译码接口芯片内部译码A0A4DMA控制器控制器1中断控制器中断控制器1定时计数器定时计数器并行接口电路并行接口电路DMA页面寄存器页面寄存器中断控制器中断控制器2DMA控制器控制器2协处理器协处理器A5A6A7A8A9ALS138译码器译码器HLDAMASTERABCE1E2E3Y0Y1Y2Y3Y4Y5Y6Y7本讲稿第二十七页,共七十三页6.1.7 数据传送方式n程序控制下的数据传送通过CPU执行程序中的I/O指令来完成传送,又分为:q无条件传送q查询传送q中断传送n直接存储
15、器存取(DMA)传送请求由外设向DMA控制器(DMAC)提出,后者向CPU申请总线,最后DMAC利用系统总线来完成外设和存储器间的数据传送nI/O处理机CPU委托专门的I/O处理机来管理外设,完成传送和相应的数据处理本讲稿第二十八页,共七十三页6.2 无条件传送方式及其接口n无条件传送、立即传送、同步传送q在CPU与慢速变化的设备交换数据时,可以认为它们总是处于“就绪”状态,随时可以进行数据传送q适合于简单设备,如LED数码管、按键或按纽等q接口和操作均十分简单n传送有前提:外设必须随时就绪n应用面较窄流程流程本讲稿第二十九页,共七十三页无条件传送:输入示例MOV DX,160HIN AL,D
16、X本讲稿第三十页,共七十三页无条件传送:输出示例MOVDX,160HMOVAL,BXOUTDX,AL本讲稿第三十一页,共七十三页无条件传送:输入输出接口K7K1K0+5VD0D7A0A15CLKLS06反相反相驱动器驱动器LS2738D锁存器锁存器LS244三态三态缓冲器缓冲器8000H译码译码+5VLED0LED7GIOWIOR;程序不断扫描8个开关,开关闭合,相应LED点亮next:movdx,8000h;DX指向数据端口inal,dx;从输入端口读开关状态notal;反相outdx,al;送输出端口显示calldelay;调子程序延时jmpnext;重复本讲稿第三十二页,共七十三页6.3
17、 查询传送方式及其接口nCPU需要先了解(查询)外设的工作状态,然后在外设可以交换信息的情况下(就绪)实现数据输入或输出n对多个外设的情况,则CPU按一定顺序依次查询(轮询)。先查询的外设将优先进行数据交换n查询传送的特点:工作可靠,适用面宽,但传送效率低就绪?就绪?本讲稿第三十三页,共七十三页查询传送的两个环节 查询环节q寻址状态口q读取状态寄存器的标志位q若不就绪就继续查询,直至就绪 传送环节q寻址数据口q是输入,通过输入指令从数据端口读入数据q是输出,通过输出指令向数据端口输出数据输入状态输入状态就绪?就绪?数据交换数据交换YN流程流程死循环问题本讲稿第三十四页,共七十三页6.3.1 查
18、询输入接口IOR+5V8D锁存器锁存器8位位三态三态缓冲器缓冲器译码译码1位位三态三态缓冲器缓冲器RQ A0A158000H8001HD0D7D0D输入输入设备设备IORSTBmovdx,8000h;DX指向状态端口status:inal,dx;读状态端口testal,01h;测试标志位D0jzstatus;D00,未就绪,继续查询incdx;D01,就绪,DX指向数据端口inal,dx;从数据端口输入数据本讲稿第三十五页,共七十三页6.3.2 查询输出接口8D锁存器锁存器译码译码1位位三态三态缓冲器缓冲器RQ A0A158000H8001HD0D7D7D+5V输出输出设备设备ACKIOWIO
19、Rmovdx,8000h;DX指向状态端口status:inal,dx;读取状态端口的状态数据testal,80h;测试标志位D7jnzstatus;D71,未就绪,继续查询incdx;D70,就绪,DX指向数据端口moval,buf;变量buf送ALoutdx,al;将数据输出给数据端口本讲稿第三十六页,共七十三页6.3.3 用查询方式对EEPROM进行编程;对芯片中所有单元写55H本讲稿第三十七页,共七十三页6.3.3 用查询方式对EEPROM进行编程;向所有存储单元写55H:movax,0e00h;段地址为0E00Hmovds,ax;段寄存器赋值movbx,000h;偏移地址为0000H
20、movdx,8000h;状态口地址movcx,0800h;2817A有2KB的字节,即0800H,写循环次数next:moval,55h;写入内容55Hmovbx,al;写入存储单元nop;空操作指令,起延时作用nopnext1:inal,dx;查询状态口testal,01h;测试D0jznext1;D00,芯片还在写入incbx;D01,写毕,指针移动loopnext;循环至全部字节写完本讲稿第三十八页,共七十三页6.4 中断传送方式断点断点主程序主程序中断服务程序中断服务程序中断请求中断请求对外设对外设进行处理进行处理继续执行继续执行返回断点返回断点nCPU在执行程序中,被内部或外部的事件
21、所打断,转去执行一段预先安排好的中断服务程序;服务结束后,又返回原来的断点,继续执行原来的程序流程流程本讲稿第三十九页,共七十三页中断源n凡是能引起中断的事件或原因都称为“中断源中断源”,外部中断可进一步分:q可屏蔽中断:可以被CPU屏蔽n对80 x86来说q设置中断标志位IF=1,则允许中断(开中断)q设置IF=0,则中断被屏蔽(禁止,关中断)n可屏蔽中断用于处理一般随机事件,可以利用它为外设提供服务,包括通过中断完成数据传送,即“中断传送”方式q不可屏蔽中断:也称非屏蔽中断,该中断不能被CPU屏蔽n一旦有效信号到达CPU引脚,CPU必须响应n常用于处理紧急事件,如掉电断电、奇偶校验出错、浮
22、点运算出错等本讲稿第四十页,共七十三页6.4.1 中断传送与接口n中断传送是一种效率更高的程序传送方式qCPU一直处理自己的事务,外设在需要时通过引脚信号主动向CPU提出服务请求q如果CPU有更紧迫的任务,可以暂不响应,否则将响应q服务完毕后,CPU回到断点,继续被打断的工作本讲稿第四十一页,共七十三页中断的特点n进行传送的中断服务程序是预先设计好的,其入口地址已知n中断请求是外设随机向CPU提出的,而中断发生时CPU程序执行到什么位置(断点)是不确定的,对CPU来说是随机的nCPU对请求的检测是有规律的:一般是在每条指令的最后一个时钟周期采样中断请求输入引脚n在中断方式下,除了执行中断服务程
23、序那段时间,CPU和外设各自独立工作,大大提高了CPU工作效率,使得CPU能为多个外设工作本讲稿第四十二页,共七十三页中断输入接口D0D7+5V8D锁存器锁存器8位位三态三态缓冲器缓冲器三态缓冲器三态缓冲器RQ 译码译码 8001H中断向量号中断向量号D0D7INTRD输入输入设备设备中断允许触发器中断允许触发器A0A15中断请求触发器中断请求触发器IORINTASTB图6-12本讲稿第四十三页,共七十三页6.4.2 中断工作过程n中断请求n中断响应中断响应n关中断关中断n断点保护断点保护n中断识别中断识别n现场保护现场保护n中断服务中断服务n恢复现场恢复现场n开中断开中断n中断返回中断返回中
24、断服务是进行数据交换的实质性环节中断服务是进行数据交换的实质性环节满足一定要求:当前指令执行完;开中断;没有更高级别请求;中断请求维持到被响应为止;隔离两个中断CPU响应中断后自动关中断,不经用户打开不受理其他中断自动保护断点地址,有的CPU还保护PSW用户保护现场本讲稿第四十四页,共七十三页中断源的识别中断源的识别6.4.3 中断源识别和中断优先权管理1.中断源识别问题1:系统有多个中断请求,CPU如何识别中断源?解解答答1:向向量量中中断断:CPU响响应应中中断断时时,通通过过中中断断响响应应信信号号选选定定中中断断接接口口,中中断断接接口口把把中中断断向向量量号号送送至至数数据据总总线线
25、,CPU读读取取后后获获知知相相应应的的中中断断服服务程序入口务程序入口(图图6-12)解答解答2:中断查询中断查询(图(图6-14)本讲稿第四十五页,共七十三页中断查询接口(图6-14)A0A15锁锁存存器器INTR三态三态缓冲器缓冲器译码译码 8001HD0D7中断中断A中断中断B中断中断CIOR多个中断源通过同一引脚向CPU申请中断时采用此方法本讲稿第四十六页,共七十三页中断优先权排队中断优先权排队6.4.3 中断源识别和中断优先权管理2.中断优先权排队中断优先权中断优先权,系统设计者事先为每个中断源所确定的优先顺序问题2:有多个中断同时请求,CPU如何应对?除了上述中断查询法外,还可采
26、用纯硬件方法除了上述中断查询法外,还可采用纯硬件方法解答解答1:链式优先权排队电路链式优先权排队电路(图(图6-15)解答解答2:优先权编码电路优先权编码电路(图(图6-16)本讲稿第四十七页,共七十三页链式中断优先权排队电路(图(图6-15)B请求B、D同时请求本讲稿第四十八页,共七十三页中断优先权编码电路(图(图6-16)比较器失效信号比较器失效信号比较器比较器8:3优先权优先权编码器编码器优先权优先权寄存器寄存器D0D721AB中断请求中断请求0中断请求中断请求1中断请求中断请求2A0A1A2INTRB0B1B2假设:中断2有请求a.没有正在服务的b.正在为中断1服务c.正在为中断7服务
27、本讲稿第四十九页,共七十三页6.4.3 中断源识别和中断优先权管理3.中断嵌套中断嵌套中断嵌套问题3:中断处理过程中,又有中断提出请求,怎么办?解答解答1:链式优先权排队电路链式优先权排队电路(图(图6-15)解答解答2:优先权编码电路优先权编码电路(图(图6-16)除了硬件上能够识别更高级中断请求外,软件上在中断服务程序中需要开放中断,才能实现中断嵌套本讲稿第五十页,共七十三页6.5 DMA传送方式n希望克服程序控制传送的不足:外设CPU存储器外设CPU存储器n直接存储器存取DMA:外设存储器外设存储器nCPU释放总线,由DMA控制器管理本讲稿第五十一页,共七十三页定义nDMA(Direct
28、MemoryAccess),直接存储器存取,是不经CPU和程序,直接用硬件实现的存储器访问nDMA传送的专门硬件装置为DMA控制器(DMAC),它要借用系统总线作为信息传送通道qDMAC具有双重身份q典型DMA传送中,DMAC同时访问两个对象n除了事先设置DMAC需要CPU介入外,一旦启动DMA传送,完全由硬件自动操作完成,整个过程无需CPU干预,传送速率很高本讲稿第五十二页,共七十三页DMA传送的工作过程 CPU对DMA控制器进行初始化设置 外设、DMAC和CPU三者通过应答信号建立联系:CPU将总线交给DMAC控制外设向DMAC发出DMA请求DMAREQ,该信号应维持到DMAC响应为止。D
29、MAC收到请求后,向CPU发出总线请求HOLD,申请借用总线,该信号应该在整个传送过程中一直维持有效CPU在当前总线周期结束后响应该请求,向DMAC发出HLDA总线响应信号,表示放弃对总线的控制(CPU向总线输出高阻)DMAC向外设发回DMA响应(DMAACK)信号,DMA传送即可开始 DMA传送qDMA读(存储器):存储器 外设qDMA写(存储器):存储器 外设 DMAC可以对存储器地址自动增减地址和计数,判断传送完成否本讲稿第五十三页,共七十三页DMA传送流程HLDA发存储器地址发存储器地址传送数据传送数据传送结束?传送结束?DMA结束结束修改地址指针修改地址指针流程流程本讲稿第五十四页,共七十三页DMA传送的实现方式 nCPU停机方式n周期挪用方式n周期扩展方式本讲稿第五十五页,共七十三页传送方式的比较n无条件传送:慢速外设需与CPU保持同步n查询传送:简单实用,效率较低n中断传送:外设主动,可与CPU并行工作,但每次传送需要大量额外时间开销nDMA传送:DMAC控制,外设直接和存储器进行数据传送,适合大量、快速数据传送本讲稿第五十六页,共七十三页本讲稿第五十七页,共七十三页
限制150内