收藏 分销(赏)

工学微机原理第六章.pptx

上传人:人****来 文档编号:4169770 上传时间:2024-08-09 格式:PPTX 页数:124 大小:754.57KB
下载 相关 举报
工学微机原理第六章.pptx_第1页
第1页 / 共124页
工学微机原理第六章.pptx_第2页
第2页 / 共124页
工学微机原理第六章.pptx_第3页
第3页 / 共124页
工学微机原理第六章.pptx_第4页
第4页 / 共124页
工学微机原理第六章.pptx_第5页
第5页 / 共124页
点击查看更多>>
资源描述

1、第六章微机接口技术概述第一节接口技术的基本概念第二节I/O端口的编址和译码第三节CPU与外设间的数据传送方式第四节接口技术的现状与发展趋势第五节接口的设计与分析1.假设假设(AL)=73H,(DX)=21CH,(端口端口21CH)=95H执行执行MOVDX,21CH作业作业:6-3,6-6,6-10INAL,DX(1)根据根据8088CPU在最小模式下的在最小模式下的I/O、存储器读存储器读/写时序,写时序,描述执行描述执行IN指令时指令时8088CPU有关引脚的具体变化过程有关引脚的具体变化过程。(2)根据根据IBMPC/XT总线的总线的I/O读、写周期时序,读、写周期时序,描述执行描述执行

2、IN指令时,指令时,IBMPC/XT总线上有关引脚的总线上有关引脚的具体过程具体过程如果执行的是如果执行的是MOVDX,21CHOUTDX,AL有关引脚的具体变化过程有关引脚的具体变化过程?2.编写程序,采用无条件传送方式,从端口编写程序,采用无条件传送方式,从端口256h读入读入100h个字节数据个字节数据3.某某I/O接口的状态寄存器接口的状态寄存器D0位存放外设位存放外设BUSY的的状态状态,其地址为其地址为2A3h,D0=1表示外设忙表示外设忙;该接口的数据寄存器的地址为该接口的数据寄存器的地址为2A1h。编写程序,编写程序,用查询方式将用查询方式将data为首地址的为首地址的100个

3、内存单元内容个内存单元内容从该从该I/O接口输出。接口输出。复习:复习:P212P224,P236P239(第二版)第二版)预习:预习:P223P236,P239P247(第二版)第二版)第一节接口技术的基本概念一、接口的概念和功能二、接口电路的典型结构一、接口的概念和功能1、接口和接口技术、接口和接口技术2、为什么要用接口电路?、为什么要用接口电路?1、接口和接口技术、接口和接口技术接口指CPU、存储器、外设之间通过总线进行连接的电路部分,是CPU与外界进行信息交换的中转站。接口技术是研究CPU如何与外部世界进行最佳耦合与匹配,实现双方高效、可靠地交换信息的一门技术,是软件、硬件结合的体现,

4、是微机应用的关键。数据总线数据总线DB控制总线控制总线CB地址总线地址总线AB存存储储器器I/O接接口口输输入入设设备备I/O接接口口输输出出设设备备CPU微型计算机的结构示意图微型计算机的结构示意图外设是用来实现人机交互的一些机电设备。外设处理信息的类型、速度、通信方式与CPU不匹配,不能直接挂在总线上,必须通过接口和系统相连2、为什么要用接口电路?二、接口电路的典型结构从编程角度看,接口内部主要包括一个或多个CPU可以进行读/写操作的寄存器,又称为I/O端口。各I/O端口由端口地址区分。I/O端口端口1I/O端口端口2I/O端口端口3地址地址译码译码数据数据缓冲缓冲控制控制电路电路外外设设

5、ABDBCBCPU按存放信息的不同,I/O端口可分为三种类型数据端口:用于存放CPU与外设间传送的数据信息状态端口:用于暂存外设的状态信息控制端口:用于存放CPU对外设或接口的控制信息,控制外设或接口的工作方式。10010101(状态状态端口端口)01101010(数据端口数据端口)11000110(控制端口控制端口)地址地址译码译码数据数据缓冲缓冲控制控制电路电路外外设设ABDBCBCPUCPU对外设输入/输出的控制,是通过对接口电路中各I/O端口的读/写操作完成。I/O端口端口1I/O端口端口2I/O端口端口3地址地址译码译码数据数据缓冲缓冲控制控制电路电路外外设设ABDBCBCPU第二节

6、I/O端口的编址和译码一、I/O端口的编址方式二、8088的输入/输出指令和时序三、I/O端口的译码一、I/O端口的编址方式1、端口与存储器分别独立编址端口与存储器分别独立编址2、端口与存储器统一编址端口与存储器统一编址特点:l端口与存储器分别独立编址端口不占用内存空间l设有专门的I/O指令对端口进行读写,对内存操作的指令不能用于I/O端口例例Intel的的80X86系列、系列、Z80系列系列I/O空空间间内内存存空空间间1、端口与存储器分别独立编址端口与存储器分别独立编址(I/O映射方式)映射方式)例例 MOV10H,AL对内存操作对内存操作IN10H,AL对端口操作对端口操作2、端口与存储

7、器统一编址、端口与存储器统一编址(存储器映射方式)(存储器映射方式)特点:lI/O端口相当于内存的一部分,使内存容量减小l对I/O端口的读/写与对存储器的读/写相同,所有可对内存操作的指令对I/O端口均可使用,指令系统中不专设I/O指令。例例 motorola的的M6800系列系列日立日立H8S单片机系列单片机系列内内存存空空间间I/O空空间间二、8088的输入/输出指令和时序1.输入指令输入指令IN2.输出指令输出指令OUT3.输入输入/输出指令时序输出指令时序输入/输出指令实现I/O端口与CPU之间的数据传送I/O端口端口1I/O端口端口2I/O端口端口3地址地址译码译码数据数据缓冲缓冲控

8、制控制电路电路外外设设ABDBCBCPU可寻址可寻址220=1M个内存单元个内存单元内存范围内存范围00000FFFFFh内存单元的地址有内存单元的地址有5种寻址种寻址可寻址可寻址216=64K个个I/O端口端口I/O端口范围端口范围0000FFFFHI/O端口的地址由端口的地址由一个一个8位二进制数直接寻址位二进制数直接寻址或或DX寄存器间接寻址寄存器间接寻址8088CPU采用采用I/O端口与存储器分别独立编址端口与存储器分别独立编址I/O空空间间内内存存空空间间1.输入指令INport为数字形式的端口地址为数字形式的端口地址,大小为大小为0255或或0FFH例 (1)INAL,28H若(2

9、8H端口)=10101111B执行后(AL)=(28H端口)=0AFH(2)INAX,28H若(28H端口)=10101111B(29H端口)=01010000B执行后(AL)=(28H端口)=0AFH(AH)=(29H端口)=50H(3)MOVDX,300HINAL,DX若(300H端口)=69H执行后(AL)=(300H端口)=69H2.输出指令OUTport为数字形式的端口地址为数字形式的端口地址,大小为大小为0255或或0FFH(1)OUT21H,AL若(AL)=11001100B执行后(21H端口)=0CCH(2)MOVDX,21BHOUTDX,AL若(AL)=10100110B执行

10、后(21BH端口)=(AL)=0A6H例例(1)累加器AL、AX的专用指令对输入指令IN,目的操作数只能为AL,或AXINAL,21HINAX,DXINBX,21H对输出指令OUT,源操作数只能为AL,或AXOUT20H,ALOUTDX,AXOUTDX,CX输入输入/输出指令(输出指令(IN、OUT)特点:特点:(2)端口地址可由直接方式或间接方式给出 例例OUT219H,ALMOVDX,219HOUTDX,AL例例 INAL,218HMOVDX,218HINAL,DX当端口号当端口号FFH,即即255时时,需把端口号放在需把端口号放在DX寄存器中,寄存器中,DX是一个是一个16位寄存器,范围

11、在位寄存器,范围在0FFFFh之间。之间。当端口号在当端口号在0FFH,即即0255时,时,可在指令中可在指令中直接直接指定端口号指定端口号例例 INAL,21HOUT20H,AL当端口号在0FFH,即0255时,可在指令中直接指定端口号,称长格式指令当端口号FFH,即255时,需把端口号放在DX寄存器中,称短格式指令原因是使用直接端口方式的指令机器码相对长例指令机器码INAL,21HE421;两个字节OUT20H,ALE620INAL,DXEC;一个字节OUTDX,ALEE(3)可进行字节或字传送可进行字节或字传送由指令中由指令中AL或或AX的类型决定的类型决定(4)注意端口地址与端口内容的

12、区别注意端口地址与端口内容的区别INAL,21H不等于不等于(AL)21HOUTDX,AL不等于不等于(DX)(AL)INAL,20H;字节传送字节传送INAX,20H;字传送字传送INAL,DX;字节传送字节传送INAX,DX;字传送字传送OUT20H,AL;字节传送字节传送OUT20H,AX;字传送字传送OUTDX,AL;字节传送字节传送OUTDX,AX;字传送字传送3.输入输入/输出指令时序输出指令时序当CPU执行IN指令时,进入I/O端口读周期当CPU执行OUT指令时,进入I/O端口写周期掌握掌握(1)在最小模式下,)在最小模式下,I/O端口的读、写周期。端口的读、写周期。(2)IBM

13、PC/XT总线上总线上I/O端口的读、写周期。端口的读、写周期。(1)在最小模式下,在最小模式下,I/O端口的读、写周期端口的读、写周期与读、写存储器的过程相似,不同之处:1IO/M变高,CPU操作I/O端口。2端口的地址信号出现在A15A0上,A19A16全为低电平。T1T2T3T4IO/MA15A8A19A16/S6S3ALERDDT/RDENCLKA7A0D7D0AD7AD08088GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCA15A16/S3A17/S4A18/S5A19/S6SSOMN/MXRDHOLDH

14、LDAWRIO/MDT/RDENALEINTATESTREADYRESET8088CPU最小模式下最小模式下,I/O端口端口读读周期时序周期时序8088CPU最小模式下最小模式下,I/O端口端口写写周期时序周期时序T1T2T3T4IO/MA15A8AD7AD0ALEWRDT/RDENCLKA7A0D7D08088GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCA15A16/S3A17/S4A18/S5A19/S6SSOMN/MXRDHOLDHLDAWRIO/MDT/RDENALEINTATESTREADYRESETA1

15、9A16/S6S3(2)IBMPC/XT总线上总线上I/O端口的读、写周期端口的读、写周期与读、写存储器的过程相似,不同之处:1IOR、IOW变低,CPU操作I/O端口。2端口的地址信号出现在A15A0上,A19A16全为低电平。3.增加了一个TW等待周期lIBMPC/XT总线上总线上I/O端口端口读读周期周期当当CPU执行执行IN指令时,进入指令时,进入I/O端口读周期端口读周期,从指定的端口读入数据到从指定的端口读入数据到CPU中。中。I/O端口端口1I/O端口端口2I/O端口端口3地址地址译码译码数据数据缓冲缓冲控制控制电路电路外外设设ABDBCBCPUI/O端口端口读读周期时序周期时序

16、D7D0IORA15A0ALECLKT4T1T2T3 TwGNDRESET+5VIRQ2-5VDRQ2-12V+12VGNDMEMWMEMRIOWIORDACK3DRQ3DACK1DRQ1DACK0CLOCKIRQ7IRQ6IRQ5IRQ4IRQ3DACK2T/CALE+5VOSCGNDI/OCHCKD7D6D5D4D3D2D1D0I/OCHRDYAENA19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0IBMPC/XT总线插槽引脚信号总线插槽引脚信号例例 假设假设端口端口218H的内容为的内容为7BHMOVDX,218HINAL,DX信号变化过

17、程:A15A0上出现地址信号0000001000011000B(由CPU发出)ALE上出现正脉冲信号IOR变低D7D0上出现有效信号01111011B(由端口送出)IOR变高,数据进入ALD7D0IORA15A0ALECLKT4T1T2T3 TwlIBMPC/XT总线上总线上I/O端口端口写写周期周期当当CPU执行执行OUT指令时,进入指令时,进入I/O端口写周期端口写周期,将数据写入指定的端口。将数据写入指定的端口。I/O端口端口1I/O端口端口2I/O端口端口3地址地址译码译码数据数据缓冲缓冲控制控制电路电路外外设设ABDBCBCPUI/O端口端口写写周期时序周期时序A15A0ALEIOW

18、CLKD7D0T4T1T2T3TwGNDRESET+5VIRQ2-5VDRQ2-12V+12VGNDMEMWMEMRIOWIORDACK3DRQ3DACK1DRQ1DACK0CLOCKIRQ7IRQ6IRQ5IRQ4IRQ3DACK2T/CALE+5VOSCGNDI/OCHCKD7D6D5D4D3D2D1D0I/OCHRDYAENA19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0IBMPC/XT总线插槽引脚信号总线插槽引脚信号例例假设假设(AL)=92HMOVDX,319HOUTDX,AL信号变化过程:A15A0上出现地址信号000000110

19、0011001B(由CPU发出)ALE上出现正脉冲信号IOW变低D7D0上出现有效信号10010010B(由CPU送出)IOW变高,数据写入319H端口A15A0ALEIOWCLKD7D0T4T1T2T3Tw三、I/O端口的译码1.译码电路的作用2.译码电路的构成3.设计译码电路的方法4.片内译码和片选译码1、译码电路的作用、译码电路的作用将CPU执行IN/OUT指令发出的地址信号,“翻译”成欲操作端口的选通信号,解决存储器、I/O设备与CPU连接时地址总线失配问题。此信号常作为接口内三态门或锁存器的控制信号,接通或断开接口数据线与系统的连接。IN指令时序指令时序A15A0IORCLKD7D0

20、T4T1T2T3TwA15A0CLKIOWD7D0T4T1T2T3 TwOUT指令时序指令时序该电路在该电路在CPU执行指令执行指令MOVDX,200HINAL,DX将输入设备的数据读入将输入设备的数据读入CPU内内AL中中图中译码电路的作用图中译码电路的作用:只当只当A15A0上出现上出现200H时,时,(即即 0000001000000000B)输出输出0,其他输出,其他输出1。例例 一个输入设备的简一个输入设备的简单单接接口口电电路路三三 态态缓冲器缓冲器输入输入设备设备数据数据线线IOR地址地址译码译码地址线地址线200H000D7D0A15A0与与非非PC总线总线执行执行:MOVDX

21、,200HINAL,DX三三 态态缓冲器缓冲器输入输入设备设备数据数据线线IOR地址地址译码译码地址线地址线200H000D7D0A15A0与与非非PC总总线线IN指令时序指令时序A15A0IORCLKD7D0T4T1T2T3Tw0000001000000000输入设备接口电路,即硬件上保证输入设备接口电路,即硬件上保证:只在只在CPU执行从执行从200H端口端口输入数据时,输入数据时,三态门处于工作状态三态门处于工作状态,使输入设备的数据送上总线侧,使输入设备的数据送上总线侧,而而CPU执行其它指令时执行其它指令时,三态门均处于高阻状态三态门均处于高阻状态,使输入设备的数据线与总线侧断开使输

22、入设备的数据线与总线侧断开三三 态态缓冲器缓冲器输入输入设备设备数据数据线线IOR地址地址译码译码地址线地址线200H000D7D0A15A0与与非非PC总总线线MOVDX,200HINAL,DX思考思考:其他的指令为什么不可以?其他的指令为什么不可以?该电路在该电路在CPU执行指令执行指令MOVDX,300HOUTDX,AL将将CPU内内AL中的数据送至输出设备中的数据送至输出设备图中译码电路的作用图中译码电路的作用:只当只当A15A0上出现上出现300H时,时,(即(即0000001100000000B)输出输出0,其他输出,其他输出1。例例 一个输出设备的简一个输出设备的简单单接接口口电

23、电路路PC总线总线锁存器锁存器输出输出设备设备数据线数据线IOW地址地址译码译码地址线地址线300H000D7D0A15A0与与非非OUT指令时序指令时序执行:执行:MOVDX,300HOUTDX,ALA15A0CLKIOWD7D0T4T1T2T3 TwPC总线总线锁存器锁存器输出输出设备设备数据线数据线IOW地址地址译码译码地址线地址线300H000D7D0A15A0与与非非0000011000000000输出设备接口电路,即硬件上保证输出设备接口电路,即硬件上保证:只在只在CPU执行从执行从300H端口端口输出数据时,输出数据时,锁存器处于触发状态,其输出随输入变化,锁存器处于触发状态,其

24、输出随输入变化,而而CPU执行其它指令时执行其它指令时,锁存器均处于锁存状态锁存器均处于锁存状态,其输出不随输入变化,其输出不随输入变化,PC总总线线锁存器锁存器输出输出设备设备数据线数据线IOW地址地址译码译码地址线地址线300H000D7D0A15A0与与非非MOVDX,300HOUTDX,AL思考思考:其他的指令为什么不可以?其他的指令为什么不可以?2、译码电路的构成译码电路的构成74LS138译码器译码器门电路:与门、非门、或门、与非门、或非门等译码器:2-4线译码器74LS1393-8线译码器74LS1384-16线译码器74LS154等可用门电路、译码器或者两者的组合实现。可用门电

25、路、译码器或者两者的组合实现。AY0BY1CY2Y3G1Y4G2AY5G2BY6Y7据端口地址确定地址信号A15A0的取值,用门电路、译码器或两者组合实现满足此取值情况的电路。3、设计译码电路的方法设计译码电路的方法设计译码电路时:1.端口的选通信号通常为低电平有效2.除端口的地址信号参加译码外,控制信号IOW、IOR(IO/M、AEN也可参加译码)译译码码电电路路A0A1A14A15IORIOWAEN译码电路示意图74LS138译码器功能表译码器功能表 旧旧P19实验附实验附474LS1383-8译码器译码器AY0BY1CY2Y3G1Y4G2AY5G2BY6Y7例例 设计端口地址为设计端口地

26、址为218H的译码电路的译码电路分析分析CPU执行执行IN/OUT指令时,发出端口的地址信号指令时,发出端口的地址信号MOVDX,218HINAL,DX或或OUTDX,AL对应对应218H端口的地址信号为(取端口的地址信号为(取A9A0):):A9A8A7A6A5A4A3A2A1A0 (地址信号地址信号)1000011000B218H只要满足此地址取值的译码电路均可只要满足此地址取值的译码电路均可方法一、方法一、用门电路实现用门电路实现218H的地址译码的地址译码数数据据线线DBRDWRCS端口端口译码译码电路电路0A9A8A7A6A5A4A3A2A1A0AENIORIOWI/O接口接口PC总

27、线总线D0D7D0D710000110000&译码电路部分满足:译码电路部分满足:只当地址信号只当地址信号A9A0为为:A9A8A7A6A5A4A3A2A1A01000011000即即218H时,输出时,输出0,使使I/O接口的接口的CS有效有效否则输出否则输出1使使I/O接口的接口的CS无效无效数数据据线线DBRDWRCS端端口口译码电路译码电路0A9A8A7A6A5A4A3A2A1A0AENIORIOWI/O接口接口PC总线总线D0D7D0D710000110000&注意译码电路中:注意译码电路中:由于高位地址线由于高位地址线A15A10未参与译码未参与译码,即即:地址地址A15A0为:为

28、:1000011000均能输出均能输出0,0,所以该电路使:所以该电路使:一个端口对应多个地址一个端口对应多个地址 共共26=64个个218,618,A18,E18等等等等采用实际芯片(参看教材旧采用实际芯片(参看教材旧P205新新P215):):PC总线总线RDWRCSI/O接口接口D0D7数数据据线线DB端端口口译码电路译码电路0A9A8A7A6A5A4A3A2A1A0AEN+5VIORIOWD0D710000110000&110074LS3074LS2074LS3274LS30为为8输入与非门输入与非门74LS20为为4输入与非门输入与非门74LS32为为2输入或门输入或门当地址信号为:

29、当地址信号为:A9A8A7A6A5A4A3A2A1A01000011000即地址为即地址为218H或门或门74LS32输出输出0,使使I/O接口的接口的CS有效。有效。当端口地址信号为当端口地址信号为:A9A8A7A6A5A4A3A2A1A01000011000即即218H时时,Y0输出输出0,使使I/O接口的接口的CS有效有效方法二方法二、用译码器、门电路组合实现、用译码器、门电路组合实现218H的地址译码的地址译码74LS1383-8译码器译码器218HAY0BY1CY2G1Y3Y4G2AY5Y6G2BY70000110000100&A0A1A2AENA3A4A5A6A7A8A9IORIO

30、WPC总线总线CSI/O接口接口D0D7&RDWR数数据据线线DBD0D7端端口口译码电路译码电路219H21AH21BH21CH21DH21EH21FH218H思考思考1:1.Y2Y7译出的端口地址各是多少?译出的端口地址各是多少?74LS1383-8译码器译码器AY0BY1CY2G1Y3Y4G2AY5Y6G2BY70110000100&端端口口译码电路译码电路A0A1A2AENA3A4A5A6A7A8A9IORIOWPC总总线线101010101100110011110000Y7Y6Y5Y4Y3Y2Y1Y0思考思考2:将将A0与与A2位置互换,位置互换,Y0Y7译出的地址各是多少?译出的地

31、址各是多少?74LS1383-8译码器译码器AY0BY1CY2G1Y3Y4G2AY5Y6G2BY70110000100&端端口口译码电路译码电路A2A1A0AENA3A4A5A6A7A8A9IORIOWPC总总线线1根据电路先确定与使能控制连接的信号:G1=1即:AEN=0A9A8A7A6A5A4A3 G2A=01 0 0 0 0 1 1G2B=0IOW或IOR为02再分析与选择控制C、B、A相连的各引脚3最后综合所有地址信号的取值,得出结论分析方法:分析方法:外部连线可变,而外部连线可变,而74LS138芯片的工作原理不变。芯片的工作原理不变。74LS1383-8译码器译码器218HAY0B

32、Y1CY2G1Y3Y4G2AY5Y6G2BY70110000100&端端口口译码电路译码电路A2A1A0AENA3A4A5A6A7A8A9IORIOWPC总总线线101010101100110011110000Y7Y6Y5Y4Y3Y2Y1Y0218H21CH21AH21EH219H21DH21BH21FH片内译码:在芯片内部的译码电路 用于区分芯片内部不同的端口片选译码:在芯片外部的译码电路 用于选择不同的芯片或端口4、片内译码和片选译码片内译码和片选译码片选译码通常译出的是一个地址范围片选译码通常译出的是一个地址范围并行接口并行接口8255ACS外外设设数数据据线线A0A1RDWRPC总线总

33、线IORA0A1IOWA2A3A4A5A6A7A8A9AEN片片选选译译码码片内片内译码译码端口端口A端口端口B端口端口C端口端口D串行接口串行接口8251数数/模转换模转换0832模模/数转换数转换080921821FH220227H22822FH230237H通常将通常将低位地址线(低位地址线(1位或几位)直接连在芯片上位或几位)直接连在芯片上,用于片内译码,而其余的高位地址线用于片选译码用于片内译码,而其余的高位地址线用于片选译码。并行接口并行接口8255ACS外外设设数数据据线线A0A1RDWRPC总总线线IORA0A1IOWA2A3A4A5A6A7A8A9AEN片片选选译译码码片内片

34、内译码译码端口端口A端口端口B端口端口C端口端口D串行接口串行接口8251数数/模转换模转换0832模模/数转换数转换0809例例 分析下图分析下图74LS138各输出端的译码地址各输出端的译码地址(片选译码例片选译码例)(旧(旧P19实验附实验附3)74LS1383-8译码器译码器218HAY0BY1CY2G1Y3Y4G2AY5Y6G2BY700010&A3A4A5+5VA6A7A8A9AENIORIOWPC总线总线&端口译码电路端口译码电路1.先确定与使能控制G1、G2A、G2B相连的各引脚G1连+5V,始终有效IOR、IOW任一为0G2A、G2B为0,则A9A8A7A6,AEN为0100

35、02.再分析与选择控制C、B、A相连的各引脚3.考虑到A2、A1、A0未参加译码,其值任意,即A2A1A0的取值为0001114.最后综合所有地址信号的取值,得出结论。A5A4A3CBA000Y0001Y1010Y2011Y3100Y4101Y5110Y6111Y7分析:分析:结论:结论:200207h20820Fh210217h21821Fh220227h22822Fh230237h23824Fh74LS1383-8译码器译码器AY0BY1CY2G1Y3Y4G2AY5Y6G2BY700010&A3A4A5+5VA6A7A8A9AENIORIOWPC总线总线&端口译码电路端口译码电路第三节CP

36、U与外设间的数据传送方式CPU与外设的工作速度不一致,如何使两者高效、可靠地进行数据传送,是本节讨论的问题。一、无条件传送方式二、条件传送方式(查询方式)三、中断传送方式四、DMA传送方式(DirectMemoryAccess)有以下几种传送方式有以下几种传送方式:概述概述1 1。无条件传送。无条件传送。无条件传送。无条件传送(CPU与外设同步工作):与外设同步工作):外部控制过程各种动作外部控制过程各种动作时间是固定的时间是固定的,而且,而且是已知的是已知的。2 2。查询方式。查询方式。查询方式。查询方式(CPU与外设不同步工作):与外设不同步工作):传送前,传送前,先查询外设状态先查询外设

37、状态,准备好才传送,否则,准备好才传送,否则CPU处于等处于等待状态。待状态。3 3。中断方式:。中断方式:。中断方式:。中断方式:外设与外设与CPU处于并行工作处于并行工作,一旦外设准备好,外设向,一旦外设准备好,外设向CPU发发中断申请,条件具备,中断申请,条件具备,CPU暂停原程序执行,响应中断,外设暂停原程序执行,响应中断,外设与与CPU串行工作串行工作。4 4。DMADMA方式方式方式方式(高速(高速I/O及成组交换数据):及成组交换数据):CPU不干予,不干予,由硬件实现由硬件实现存储器与外设之间存储器与外设之间交换数据,称直交换数据,称直接存取存储器。接存取存储器。一、无条件传送

38、方式(同步传送方式)实现方法CPU不查询外设工作状态,与外设速度的匹配通过在软件上延时完成,在程序中直接用I/O指令,完成与外设的数据传送特点1.适用于外设动作时间已知,在CPU与外设进行数据传送时,外设保证已准备好的情况2.软硬件十分简单。例例 1 无条件输入接口无条件输入接口(参看教材图(参看教材图6-8)接口电路,即硬件上保证接口电路,即硬件上保证:只在只在CPU执行从执行从200H端口端口输入数据时输入数据时,三态门处于工作状态,使输入设备的数据送上总线侧,三态门处于工作状态,使输入设备的数据送上总线侧,而而CPU执行其它指令时执行其它指令时,三态门均处于高阻状态三态门均处于高阻状态,

39、使输入设备的数据线与总线侧断使输入设备的数据线与总线侧断开开三三 态态缓冲器缓冲器输入输入设备设备数据数据线线IOR地址地址译码译码地址线地址线200H000D7D0A15A0与与非非PC总总线线无条件输入编程无条件输入编程:从端口从端口200H读入读入100个字节到内存缓冲区个字节到内存缓冲区buffer中。中。、MOVAX,SEGbufferMOVDS,AX;取缓冲区取缓冲区LEADI,buffer;首地址首地址MOVCX,100H;传送个数传送个数MOVDX,200H;端口地址端口地址next:;延时等待延时等待INAL,DX;读入数据读入数据CALLdelayMOVDI,AL;送缓冲区

40、送缓冲区INCDI;修改指针修改指针LOOPnext、;延时子程延时子程delayPROCPUSHCXMOVCX,80Hcc:LOOPccPOPCXRETdelayENDP例例2 无条件输出无条件输出:编程控制系统板上扬声器发声编程控制系统板上扬声器发声。4765321061H端口端口 8253与与门门放放大大器器扬扬声声器器01控制其它外设控制其它外设扬声器控制电路图扬声器控制电路图:T个数个数发声原理:向扬声器发送一串脉冲信号,推动扬声器内纸盆振动,发出声音脉冲的频率,控制音高;脉冲的个数,控制音长1.使使61H端口的端口的0位输出位输出0,控制控制8253输出输出1。2.使使61H端端口

41、口的的1位位按按所所需需频频率率交交替替输输出出0和和1,产生所需的声音。产生所需的声音。编程方法:编程方法:4765321061H端口端口 8253与与门门放放大大器器扬扬声声器器01控制其它外设控制其它外设扬声器控制电路图扬声器控制电路图:codeSEGMENTASSUMECS:codestart:MOVBX,3000H;控制脉冲个数控制脉冲个数MOVDX,6000H;控制脉冲周期控制脉冲周期INAL,61H;读入读入61H端口数据端口数据ANDAL,11111100b;D0为为0,8253输出输出1sound:XORAL,00000010bOUT61H,AL;61H端口的端口的D1交替为

42、交替为0和和1MOVCX,DXdelay:LOOPdelay;延时延时DECBX;控制脉冲数控制脉冲数JNZsoundMOVAH,4CHINT21HcodeENDSENDstart发声程序发声程序:61H端口端口8253与与门门放放大大器器扬扬声声器器01控制其它外设控制其它外设T个数个数将发声程序改编为一子程:将发声程序改编为一子程:入口参数入口参数BX控制音长控制音长DX控制音高控制音高思考思考:二、条件传送方式(查询传送方式)实现方法:在与外设进行传送数据前,CPU先查询外设状态,当外设准备好后,才执行I/O指令,实现数据传送特点:1.CPU通过不断查询外设状态,实现与外设的速度匹配2.

43、CPU的工作效率低查询传送方式,编程流程查询传送方式,编程流程:NY从状态端口读入状态信息从状态端口读入状态信息从数据端口传送一个数据从数据端口传送一个数据外外设设准准备备好好否否?例例1查询方式输入查询方式输入假设假设外设的外设的状态端口状态端口为为21CH,其中其中D4=1时,表示外设数据准备好时,表示外设数据准备好外设的外设的数据端口数据端口为为218H。实现从外设读入实现从外设读入50H个字节到内存缓冲区个字节到内存缓冲区buffer中。中。21CH端口端口状态端口状态端口218H端口端口数据端口数据端口地址地址译码译码数据数据缓冲缓冲控制控制电路电路输输入入外外备备CPU地址线地址线

44、数据线数据线控制线控制线查询方式输入接口查询方式输入接口,参看教材图参看教材图6-10状态端口状态端口D4=1表示外设准备好表示外设准备好三三态态缓冲器缓冲器输输入入设设备备数数 据据 线线218H数据数据端口端口地址地址译码译码地址线地址线状态状态端口端口地址地址译码译码锁锁存存器器IOR R Q D三三态态缓冲器缓冲器+5vD421CHSTBPC总线总线IORA15A0D7D0&MOVDX,218HINAL,DXMOVDX,21CHINAL,DX从从21CH状态端口状态端口读入外设状态信息读入外设状态信息从从218H数据端口数据端口读入一个字节数据读入一个字节数据YND4=1,外设准备好否

45、?外设准备好否?N50H个数据个数据传送结束?传送结束?Y编程从外设读入编程从外设读入50H个字节到内存缓冲区个字节到内存缓冲区buffer中中、MOVAX,SEGbuffer;取缓冲区首地址取缓冲区首地址MOVDS,AXLEADI,bufferMOVCX,50H;传送个数传送个数next:MOVDX,21CHask:INAL,DX;从状态端口读入状态信息从状态端口读入状态信息TESTAL,00010000B;检测检测D4位位JZask;D4=0,继续查询继续查询MOVDX,218HINAL,DX;从数据端口读入数据从数据端口读入数据MOVDI,AL;送缓冲区送缓冲区INCDI;修改缓冲区指针

46、修改缓冲区指针LOOPnext;传送下一个传送下一个、查询方式输入程序段查询方式输入程序段:例例2 查询方式输出查询方式输出假设假设外设的外设的状态端口状态端口为为21CH,其中其中D0=0时,表示时,表示外设准备好外设准备好外设的外设的数据端口数据端口为为219H。编程将缓冲区编程将缓冲区buffer的的80H个字节个字节输出到外设。输出到外设。21CH端口端口状态端口状态端口219H端口端口数据端口数据端口地址地址译码译码数据数据缓冲缓冲控制控制电路电路输输出出外外设设CPU地址线地址线数据线数据线控制线控制线查询方式输出接口查询方式输出接口,参看教材图参看教材图6-11状态端口状态端口D

47、0=0表示外设准备好表示外设准备好输输出出设设备备数数 据据 线线219H数据数据端口端口地址地址译码译码地址线地址线锁锁存存器器 RD D Q 三三 态态缓冲器缓冲器+5vACKPC总总线线IORA15A0D7D0IOW状态状态端口端口地址地址译码译码D021CH&MOVDX,219HOUTDX,ALMOVDX,21CHAsk:INAL,DXTESTAL,01hJNZask从从21CH状态端口状态端口读入外设状态信息读入外设状态信息将一字节数据送至将一字节数据送至219H数据端口数据端口YND0=0,外设准备好否?外设准备好否?N80H个数据个数据传送结束?传送结束?Y编程将缓冲区编程将缓冲

48、区buffer的的80H个字节输出到外设个字节输出到外设、MOVAX,SEGbuffer;取缓冲区首地址取缓冲区首地址MOVDS,AXLEASI,bufferMOVCX,80H;传送个数传送个数next:MOVDX,21CHask:INAL,DX;从状态端口读入状态信息从状态端口读入状态信息TESTAL,00000001B;检测检测D0位位JNZask;D00,继续查询继续查询MOVAL,SI;从缓冲区取数从缓冲区取数MOVDX,219HOUTDX,AL;从数据端口输出数据从数据端口输出数据INCSI;修改缓冲区指针修改缓冲区指针LOOPnext;输出下一个输出下一个 、查询方式输出程序段:查

49、询方式输出程序段:三、中断传送方式实现方法:1.当外设准备好,向CPU发出中断请求2.CPU在满足响应中断的条件下,发出中断响应信号;3.CPU暂停当前的程序,转去执行中断服务程序,完成与外设的数据传送;4.CPU从中断服务程序返回,继续执行被中断的程序中断服务程序中断服务程序发申请发申请中断服务程序中断服务程序发申请发申请中断方式下中断方式下CPU执行程序流程执行程序流程外外设设使用中断方式时使用中断方式时:外设准备数据,外设准备数据,CPUCPU执行程序执行程序,CPUCPU与外设并行工作;与外设并行工作;一旦外设准备就绪,外设向一旦外设准备就绪,外设向CPUCPU发中断申请,发中断申请,

50、CPUCPU暂停原程序执行,响应中断,进行数据传输。暂停原程序执行,响应中断,进行数据传输。此时,此时,CPUCPU与外设是串行工作。与外设是串行工作。1.CPU和外设大部分时间处在并行工作状态,只在CPU响应外设的中断申请后,进入数据传送的过程2.中断传送方式提高了CPU的效率中断传送方式的特点:中断传送方式的特点:中断方式中断方式输入接口输入接口:某位未屏蔽,某位未屏蔽,中断屏蔽触发器中断屏蔽触发器置置0,Q=0(1 1)当外设数据准备好,外设向接口电路)当外设数据准备好,外设向接口电路发出选通信号发出选通信号:将将数据打入锁存器;同时将中断请求触发器置数据打入锁存器;同时将中断请求触发器

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 工学

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服