CPU与外设间的数据传送方式.ppt
《CPU与外设间的数据传送方式.ppt》由会员分享,可在线阅读,更多相关《CPU与外设间的数据传送方式.ppt(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三节第三节CPU与外设间的数据传送方式与外设间的数据传送方式CPU与外设的工作速度不一致,与外设的工作速度不一致,如何使两者高效、可靠地进行数据传送,如何使两者高效、可靠地进行数据传送,是本节讨论的问题。是本节讨论的问题。1一、一、无条件传送方式无条件传送方式二、二、条件传送方式条件传送方式(查询方式查询方式)三、三、中断传送方式中断传送方式四、四、DMA传送方式传送方式(DirectMemoryAccess)有以下几种传送方式有以下几种传送方式:2概述概述1 1。无条件传送。无条件传送。无条件传送。无条件传送(CPU与外设同步工作):与外设同步工作):外部控制过程各种动作外部控制过程各种动
2、作时间是固定的时间是固定的,而且,而且是已知的是已知的。2 2。查询方式。查询方式。查询方式。查询方式(CPU与外设不同步工作):与外设不同步工作):传送前,传送前,先查询外设状态先查询外设状态,准备好才传送,否则,准备好才传送,否则CPU处于等处于等待状态。待状态。3 3。中断方式:。中断方式:。中断方式:。中断方式:外设与外设与CPU处于并行工作处于并行工作,一旦外设准备好,外设向,一旦外设准备好,外设向CPU发发中断申请,条件具备,中断申请,条件具备,CPU暂停原程序执行,响应中断,外设暂停原程序执行,响应中断,外设与与CPU串行工作串行工作。4 4。DMADMA方式方式方式方式(高速(
3、高速I/O及成组交换数据):及成组交换数据):CPU不干予,不干予,由硬件实现由硬件实现存储器与外设之间存储器与外设之间交换数据,称直交换数据,称直接存取存储器。接存取存储器。3一、无条件传送方式一、无条件传送方式(同步传送方式同步传送方式)实现方法实现方法CPU不查询外设工作状态,不查询外设工作状态,与外设速度的匹配通过在软件上延时完成,与外设速度的匹配通过在软件上延时完成,在程序中直接用在程序中直接用I/O指令,完成与外设的数据传送指令,完成与外设的数据传送特点特点1.适用于外设动作时间已知,适用于外设动作时间已知,在在CPU与外设进行数据传送时,外设保证已准备好的情况与外设进行数据传送时
4、,外设保证已准备好的情况2.软硬件十分简单。软硬件十分简单。4例例 1 无条件输入接口无条件输入接口(参看教材图(参看教材图6-8)接口电路,即硬件上保证接口电路,即硬件上保证:只在只在CPU执行从执行从200H端口端口输入数据时输入数据时,三态门处于工作状态,使输入设备的数据送上总线侧,三态门处于工作状态,使输入设备的数据送上总线侧,而而CPU执行其它指令时执行其它指令时,三态门均处于高阻状态三态门均处于高阻状态,使输入设备的数据线与总线侧断开使输入设备的数据线与总线侧断开三三 态态缓冲器缓冲器输入输入设备设备数据数据线线IOR地址地址译码译码地址线地址线200H000D7D0A15A0与与
5、非非PC总总线线5无条件输入编程无条件输入编程:从端口从端口200H读入读入100个字节到内存缓冲区个字节到内存缓冲区buffer中。中。、MOVAX,SEGbufferMOVDS,AX;取缓冲区取缓冲区LEADI,buffer;首地址首地址MOVCX,100H;传送个数传送个数MOVDX,200H;端口地址端口地址next:;延时等待延时等待INAL,DX;读入数据读入数据CALLdelayMOVDI,AL;送缓冲区送缓冲区INCDI;修改指针修改指针LOOPnext、;延时子程延时子程delayPROCPUSHCXMOVCX,80Hcc:LOOPccPOPCXRETdelayENDP6例例
6、2 无条件输出无条件输出:编程控制系统板上扬声器发声编程控制系统板上扬声器发声。4765321061H端口端口 8253与与门门放放大大器器扬扬声声器器01控制其它外设控制其它外设扬声器控制电路图扬声器控制电路图:T个数个数发声原理:发声原理:向扬声器发送一串脉冲信号,向扬声器发送一串脉冲信号,推动扬声器内纸盆振动,发出声音推动扬声器内纸盆振动,发出声音脉冲的频率,控制音高;脉冲的频率,控制音高;脉冲的个数,控制音长脉冲的个数,控制音长71.使使61H端口的端口的0位输出位输出0,控制控制8253输出输出1。2.使使61H端端口口的的1位位按按所所需需频频率率交交替替输输出出0和和1,产生所需
7、的声音。产生所需的声音。编程方法:编程方法:4765321061H端口端口 8253与与门门放放大大器器扬扬声声器器01控制其它外设控制其它外设扬声器控制电路图扬声器控制电路图:8codeSEGMENTASSUMECS:codestart:MOVBX,3000H;控制脉冲个数控制脉冲个数MOVDX,6000H;控制脉冲周期控制脉冲周期INAL,61H;读入读入61H端口数据端口数据ANDAL,11111100b;D0为为0,8253输出输出1sound:XORAL,00000010bOUT61H,AL;61H端口的端口的D1交替为交替为0和和1MOVCX,DXdelay:LOOPdelay;延
8、时延时DECBX;控制脉冲数控制脉冲数JNZsoundMOVAH,4CHINT21HcodeENDSENDstart发声程序发声程序:61H端口端口8253与与门门放放大大器器扬扬声声器器01控制其它外设控制其它外设T个数个数9将发声程序改编为一子程:将发声程序改编为一子程:入口参数入口参数BX控制音长控制音长DX控制音高控制音高思考思考:10二、条件传送方式二、条件传送方式(查询传送方式查询传送方式)实现方法:实现方法:在与外设进行传送数据前,在与外设进行传送数据前,CPU先查询外设状态先查询外设状态,当外设准备好后,才执行当外设准备好后,才执行I/O指令,实现数据传送指令,实现数据传送特点
9、:特点:1.CPU通过不断查询外设状态,实现与外设的速度匹配通过不断查询外设状态,实现与外设的速度匹配2.CPU的工作效率低的工作效率低11查询传送方式,编程流程查询传送方式,编程流程:NY从状态端口读入状态信息从状态端口读入状态信息从数据端口传送一个数据从数据端口传送一个数据外外设设准准备备好好否否?12例例1查询方式输入查询方式输入假设假设外设的外设的状态端口状态端口为为21CH,其中其中D4=1时,表示外设数据准备好时,表示外设数据准备好外设的外设的数据端口数据端口为为218H。实现从外设读入实现从外设读入50H个字节到内存缓冲区个字节到内存缓冲区buffer中。中。21CH端口端口状态
10、端口状态端口218H端口端口数据端口数据端口地址地址译码译码数据数据缓冲缓冲控制控制电路电路输输入入外外备备CPU地址线地址线数据线数据线控制线控制线13查询方式输入接口查询方式输入接口,参看教材图参看教材图6-10状态端口状态端口D4=1表示外设准备好表示外设准备好三三态态缓冲器缓冲器输输入入设设备备数数 据据 线线218H数据数据端口端口地址地址译码译码地址线地址线状态状态端口端口地址地址译码译码锁锁存存器器IOR R Q D三三态态缓冲器缓冲器+5vD421CHSTBPC总线总线IORA15A0D7D0&MOVDX,218HINAL,DXMOVDX,21CHINAL,DX14从从21CH
11、状态端口状态端口读入外设状态信息读入外设状态信息从从218H数据端口数据端口读入一个字节数据读入一个字节数据YND4=1,外设准备好否?外设准备好否?N50H个数据传送结束?个数据传送结束?Y编程从外设读入编程从外设读入50H个字节到内存缓冲区个字节到内存缓冲区buffer中中15 、MOVAX,SEGbuffer;取缓冲区首地址取缓冲区首地址MOVDS,AXLEADI,bufferMOVCX,50H;传送个数传送个数next:MOVDX,21CHask:INAL,DX;从状态端口读入状态信息从状态端口读入状态信息TESTAL,00010000B;检测检测D4位位JZask;D4=0,继续查询
12、继续查询MOVDX,218HINAL,DX;从数据端口读入数据从数据端口读入数据MOVDI,AL;送缓冲区送缓冲区INCDI;修改缓冲区指针修改缓冲区指针LOOPnext;传送下一个传送下一个、查询方式输入程序段查询方式输入程序段:16例例2 查询方式输出查询方式输出假设假设外设的外设的状态端口状态端口为为21CH,其中其中D0=0时,表示时,表示外设准备好外设准备好外设的外设的数据端口数据端口为为219H。编程将缓冲区编程将缓冲区buffer的的80H个字节个字节输出到外设。输出到外设。21CH端口端口状态端口状态端口219H端口端口数据端口数据端口地址地址译码译码数据数据缓冲缓冲控制控制电
13、路电路输输出出外外设设CPU地址线地址线数据线数据线控制线控制线17查询方式输出接口查询方式输出接口,参看教材图参看教材图6-11状态端口状态端口D0=0表示外设准备好表示外设准备好输输出出设设备备数数 据据 线线219H数据数据端口端口地址地址译码译码地址线地址线锁锁存存器器 RD D Q 三三 态态缓冲器缓冲器+5vACKPC总总线线IORA15A0D7D0IOW状态状态端口端口地址地址译码译码D021CH&MOVDX,219HOUTDX,ALMOVDX,21CHAsk:INAL,DXTESTAL,01hJNZask18从从21CH状态端口状态端口读入外设状态信息读入外设状态信息将一字节数
14、据送至将一字节数据送至219H数据端口数据端口YND0=0,外设准备好否?外设准备好否?N80H个数据传送结束?个数据传送结束?Y编程将缓冲区编程将缓冲区buffer的的80H个字节输出到外设个字节输出到外设19、MOVAX,SEGbuffer;取缓冲区首地址取缓冲区首地址MOVDS,AXLEASI,bufferMOVCX,80H;传送个数传送个数next:MOVDX,21CHask:INAL,DX;从状态端口读入状态信息从状态端口读入状态信息TESTAL,00000001B;检测检测D0位位JNZask;D00,继续查询继续查询MOVAL,SI;从缓冲区取数从缓冲区取数MOVDX,219HO
15、UTDX,AL;从数据端口输出数据从数据端口输出数据INCSI;修改缓冲区指针修改缓冲区指针LOOPnext;输出下一个输出下一个 、查询方式输出程序段:查询方式输出程序段:20三、中断传送方式三、中断传送方式实现方法:实现方法:1.当外设准备好,向当外设准备好,向CPU发出中断请求发出中断请求2.CPU在满足响应中断的条件下,发出中断响应信号;在满足响应中断的条件下,发出中断响应信号;3.CPU暂停当前的程序,转暂停当前的程序,转去执行中断服务程序,去执行中断服务程序,完成与外设的数据传送;完成与外设的数据传送;4.CPU从中断服务程序返回,继续执行被中断的程序从中断服务程序返回,继续执行被
16、中断的程序21中断服务程序中断服务程序发申请发申请中断服务程序中断服务程序发申请发申请中断方式下中断方式下CPU执行程序流程执行程序流程外外设设22使用中断方式时使用中断方式时:外设准备数据,外设准备数据,CPUCPU执行程序执行程序,CPUCPU与外设并行工作;与外设并行工作;一旦外设准备就绪,外设向一旦外设准备就绪,外设向CPUCPU发中断申请,发中断申请,CPUCPU暂停原程序执行,响应中断,进行数据传输。暂停原程序执行,响应中断,进行数据传输。此时,此时,CPUCPU与外设是串行工作。与外设是串行工作。231.CPU和外设大部分时间处在并行工作状态和外设大部分时间处在并行工作状态,只在
17、只在CPU响应外设的中断申请后,响应外设的中断申请后,进入数据传送的过程进入数据传送的过程2.中断传送方式提高了中断传送方式提高了CPU的效率的效率中断传送方式的特点:中断传送方式的特点:24中断方式中断方式输入接口输入接口:某位未屏蔽,某位未屏蔽,中断屏蔽触发器中断屏蔽触发器置置0,Q=025(1 1)当外设数据准备好,外设向接口电路)当外设数据准备好,外设向接口电路发出选通信号发出选通信号:将将数据打入锁存器;同时将中断请求触发器置数据打入锁存器;同时将中断请求触发器置“1”“1”,(2 2)若此时)若此时,中断请求屏蔽触发器置中断请求屏蔽触发器置“0”“0”,=1=1,Q=0Q=0,允许
18、本接口允许本接口发出发出中断中断,接口电路向接口电路向CPUCPU发出中断请求信号发出中断请求信号INTR=1INTR=1;(3 3)CPUCPU在运行程序时不断访问在运行程序时不断访问INTRINTR,若查到,若查到INTR=1INTR=1信号,信号,且且CPUCPU内部中断允许标志内部中断允许标志IF=1IF=1,则则CPUCPU在现行指令执行完后,在现行指令执行完后,暂停程序的执行,向接口电路发出中断响应信号暂停程序的执行,向接口电路发出中断响应信号 。(4 4)外设把)外设把中断类型号送上数据总线;中断类型号送上数据总线;(4 4 N N)=(IPIP),(),(4 4 (N+2N+2
19、)=(CSCS)(5 5)CPUCPU转入中断服务程序,转入中断服务程序,执行执行ININ指令,读入数据;指令,读入数据;清除中断请求标志清除中断请求标志。当中断处理完后,返回原程序。当中断处理完后,返回原程序。26四、四、DMA传送方式传送方式(直接存储器存取方式直接存储器存取方式)实现方法:实现方法:1.由专用接口芯片由专用接口芯片DMA控制器控制器(称称DMAC)控制传送过程,控制传送过程,2.当外设需传送数据时,通过当外设需传送数据时,通过DMAC向向CPU发出总线请求;发出总线请求;3.CPU发出总线响应信号,释放总线;发出总线响应信号,释放总线;4.DMAC接管总线,控制外设、内存
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CPU 外设 数据 传送 方式
限制150内