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