资源描述:
《CPU与外设间的数据传送方式ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三节CPU与外设间的数据传送方式CPU与外设的工作速度不一致,如何使两者高效、可靠地进行数据传送,是本节讨论的问题。1一、无条件传送方式二、条件传送方式(查询方式)三、中断传送方式四、DMA传送方式(DirectMemoryAccess)有以下几种传送方式:2概述1。无条件传送(CPU与外设同步工作):外部控制过程各种动作时间是固定的,而且是已知的。2。查询方式(CPU与外设不同步工作):传送前,先查询外设状态,准备好才传送,否则CPU处于等待状态。3。中断方式:外设与CPU处于并行工作,一旦外设准备好,外
2、设向CPU发中断申请,条件具备,CPU暂停原程序执行,响应中断,外设与CPU串行工作。4。DMA方式(高速I/O及成组交换数据):CPU不干予,由硬件实现存储器与外设之间交换数据,称直接存取存储器。3一、无条件传送方式(同步传送方式)实现方法CPU不查询外设工作状态,与外设速度的匹配通过在软件上延时完成,在程序中直接用I/O指令,完成与外设的数据传送特点1.适用于外设动作时间已知,在CPU与外设进行数据传送时,外设保证已准备好的情况2.软硬件十分简单。4例1无条件输入接口(参看教材图6-8)接口电路,即硬
3、件上保证:只在CPU执行从200H端口输入数据时,三态门处于工作状态,使输入设备的数据送上总线侧,而CPU执行其它指令时,三态门均处于高阻状态,使输入设备的数据线与总线侧断开三态缓冲器输入设备数据线IOR地址译码地址线200H000D7~D0A15~A0与非PC总线5无条件输入编程:从端口200H读入100个字节到内存缓冲区buffer中。、、、MOVAX,SEGbufferMOVDS,AX;取缓冲区LEADI,buffer;首地址MOVCX,100H;传送个数MOVDX,200H;端口地址next:;延时等
4、待INAL,DX;读入数据CALLdelayMOV[DI],AL;送缓冲区INCDI;修改指针LOOPnext、、、;延时子程delayPROCPUSHCXMOVCX,80Hcc:LOOPccPOPCXRETdelayENDP6例2无条件输出:编程控制系统板上扬声器发声。4765321061H端口8253与门放大器扬声器01控制其它外设扬声器控制电路图:T个数发声原理:向扬声器发送一串脉冲信号,推动扬声器内纸盆振动,发出声音脉冲的频率,控制音高;脉冲的个数,控制音长71.使61H端口的0位输出0,控制8253
5、输出1。2.使61H端口的1位按所需频率交替输出0和1,产生所需的声音。编程方法: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:LO
6、OPdelay;延时DECBX;控制脉冲数JNZsoundMOVAH,4CHINT21HcodeENDSENDstart发声程序:61H端口8253与门放大器扬声器01控制其它外设T个数9将发声程序改编为一子程:入口参数BX控制音长DX控制音高思考:10二、条件传送方式(查询传送方式)实现方法:在与外设进行传送数据前,CPU先查询外设状态,当外设准备好后,才执行I/O指令,实现数据传送特点:1.CPU通过不断查询外设状态,实现与外设的速度匹配2.CPU的工作效率低11查询传送方式,编程流程:NY从状态端
7、口读入状态信息从数据端口传送一个数据外设准备好否?12例1查询方式输入假设外设的状态端口为21CH,其中D4=1时,表示外设数据准备好外设的数据端口为218H。实现从外设读入50H个字节到内存缓冲区buffer中。21CH端口状态端口218H端口数据端口地址译码数据缓冲控制电路输入外备CPU地址线数据线控制线13查询方式输入接口,参看教材图6-10状态端口D4=1表示外设准备好三态缓冲器输入设备数据线218H数据端口地址译码地址线状态端口地址译码锁存器IORRQD三态缓冲器+5vD421CHSTBPC总线IO
8、RA15~A0D7~D0&&MOVDX,218HINAL,DXMOVDX,21CHINAL,DX14从21CH状态端口读入外设状态信息从218H数据端口读入一个字节数据YND4=1,外设准备好否?N50H个数据传送结束?Y编程从外设读入50H个字节到内存缓冲区buffer中15、、、MOVAX,SEGbuffer;取缓冲区首地址MOVDS,AXLEADI,bufferMOVCX,50H;传送个数ne