如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第三节CPU与外设间的数据传送方式一、无条件传送方式二、条件传送方式(查询方式)三、中断传送方式四、DMA传送方式(DirectMemoryAccess)概述1。无条件传送(CPU与外设同步工作):外部控制过程各种动作时间是固定的,而且是已知的。2。查询方式(CPU与外设不同步工作):传送前,先查询外设状态,准备好才传送,否则CPU处于等待状态。3。中断方式:外设与CPU处于并行工作,一旦外设准备好,外设向CPU发中断申请,条件具备,CPU暂停原程序执行,响应中断,外设与CPU串行工作。4。DMA方式(高速I/O及成组交换数据):CPU不干予,由硬件实现存储器与外设之间交换数据,称直接存取存储器。一、无条件传送方式(同步传送方式)例1无条件输入接口(参看教材图6-8)无条件输入编程:从端口200H读入100个字节到内存缓冲区buffer中。例2无条件输出:编程控制系统板上扬声器发声。1.使61H端口的0位输出0,控制8253输出1。2.使61H端口的1位按所需频率交替输出0和1,产生所需的声音。codeSEGMENTASSUMECS:codestart:MOVBX,3000H;控制脉冲个数MOVDX,6000H;控制脉冲周期INAL,61H;读入61H端口数据ANDAL,11111100b;D0为0,8253输出1sound:XORAL,00000010bOUT61H,AL;61H端口的D1交替为0和1MOVCX,DXdelay:LOOPdelay;延时DECBX;控制脉冲数JNZsoundMOVAH,4CHINT21HcodeENDSENDstart将发声程序改编为一子程:入口参数BX控制音长DX控制音高二、条件传送方式(查询传送方式)查询传送方式,编程流程:例1查询方式输入查询方式输入接口从21CH状态端口读入外设状态信息、、、MOVAX,SEGbuffer;取缓冲区首地址MOVDS,AXLEADI,bufferMOVCX,50H;传送个数next:MOVDX,21CHask:INAL,DX;从状态端口读入状态信息TESTAL,00010000B;检测D4位JZask;D4=0,继续查询MOVDX,218HINAL,DX;从数据端口读入数据MOV[DI],AL;送缓冲区INCDI;修改缓冲区指针LOOPnext;传送下一个、、、例2查询方式输出查询方式输出接口从21CH状态端口读入外设状态信息、、、MOVAX,SEGbuffer;取缓冲区首地址MOVDS,AXLEASI,bufferMOVCX,80H;传送个数next:MOVDX,21CHask:INAL,DX;从状态端口读入状态信息TESTAL,00000001B;检测D0位JNZask;D0≠0,继续查询MOVAL,[SI];从缓冲区取数MOVDX,219HOUTDX,AL;从数据端口输出数据INCSI;修改缓冲区指针LOOPnext;输出下一个、、、三、中断传送方式中断服务程序使用中断方式时:外设准备数据,CPU执行程序,CPU与外设并行工作;一旦外设准备就绪,外设向CPU发中断申请,CPU暂停原程序执行,响应中断,进行数据传输。此时,CPU与外设是串行工作。1.CPU和外设大部分时间处在并行工作状态,只在CPU响应外设的中断申请后,进入数据传送的过程2.中断传送方式提高了CPU的效率中断方式输入接口:(1)当外设数据准备好,外设向接口电路发出选通信号:将数据打入锁存器;同时将中断请求触发器置“1”,(2)若此时,中断请求屏蔽触发器置“0”,=1,Q=0,允许本接口发出中断,接口电路向CPU发出中断请求信号INTR=1;(3)CPU在运行程序时不断访问INTR,若查到INTR=1信号,且CPU内部中断允许标志IF=1,则CPU在现行指令执行完后,暂停程序的执行,向接口电路发出中断响应信号INTA(4)外设把中断类型号送上数据总线;(4N)=(IP),(4(N+2))=(CS)(5)CPU转入中断服务程序,执行IN指令,读入数据;清除中断请求标志。当中断处理完后,返回原程序。四、DMA传送方式(直接存储器存取方式)DMA传送方式过程DMA传送方式的特点1.外设和内存之间,直接进行数据传送,不通过CPU,传送效率高。适用于在内存与高速外设、或两个高速外设之间进行大批量数据传送。2.电路结构复杂,硬件开销较大。接收接口往DMA控制器发出DMA请求信号后,DMA控制器能向CPU发出总线请求信号HOLD(高电平)。当CPU向DMA发出响应信号HLDA(高电平)以后,D