
第07章基本输入输出接口(7.3).ppt
29页1,§7.3 CPU与外设之间的数据传送方式,CPU与I/O、M与I/O间传送数据时的时序配合方式三种: 程序控制方式 中断控制方式 DMA方式,2,§7.3.1 程序控制方式,分为:无条件传送方式条件传送(查询传送)方式,3,1、无条件传送方式 (同步传送 ),实现方法无需时间配合控制,不测试外设状态,直接执行I/O指令完成数据传送 适用场合: 用于简单外设(如开关,LED显示器,继电器等),或传递时间已知的场合4,例:发光二极管的亮、灭指示开关的开、合,,5,确定端口地址,输入口和输出口共用一个地址,用读写控制区别,6,程序:PORT=0128HNEXT:MOV DX,PORT IN AL,DX ;读入开关状态 NOT AL ;闭合对应LED亮 OUT DX,AL ;输出数据控制LED CALL DELAY ;延时再查,稳定发光 JMP NEXT ;循环,7,说明:在IN、OUT指令前没有检查外设状态8,特点:优点:硬件(无需数据端口)和软件都简单缺点:应用场合有很大的局限性9,2、条件传送方式(查徇式传送),实现方法增加状态端口,数据传送前,先通过程序检查外设状况,以决定数据传送是否进行。
适用场合: 当CPU和外设的I/O传送不同步时,即传送数据的时间不固定或未知10,11,12,例1 查询方式输入,设 状态端口地址为21C H,为8位端口 其D7=1时,表示外设数据准备好 数据端口地址为218 H 实现从外设读入1个字节到AL中13,查询方式输入接口,14,程序:STATUS_PORT = 21CHDATA_PORT1 = 218HIN_TEST: MOV DX, STATUS_PORT IN AL, DX TEST AL ,80H ;检查READY JZ IN_TEST MOV DX, DATA_PORT1 IN AL, DX,15,思考:还可用什么方法检测D7=1??,16,例2 查询方式输出 (自学),设 状态端口地址为20 H,为8位端口 其D0=0时,表示外设数据准备好 数据端口地址为22 H 实现输出一个数据 。
17,18,程序:STATUS_PORT = 20HDATA_PORT1 = 22HLEA BX, STORE;输出数据缓冲区OUT_TEST: IN AL, STATUS_PORT SHR AL,1;检查BUSY JC OUT_TEST MOV AL, [BX] OUT DATA_PORT, AL,19,特点:优点:硬件电路较简单,且可实现异步传送控缺点:CPU效率低 CPU与外设间串行工作; 有多个外设时,各个外设之间串行工作 实时性差:服务方式慢,举例说明:晚自习答疑一个同学时,反复问是否有问题要问,直到回答为有,进行交流;多个同学时按照一定顺序逐一询问,20,§7.3.2 中断控制方式,图示,21,,,,22,,,,主程序,中断服务子程序,,中断请求,,,继续执行,中断响应,中断服务,中断返回,中断,详细过程图解,23, 实现方法: 1. 当外设准备好,向CPU发出中断请求 2. CPU在满足响应中断的条件下,发出中断响应信号; 3. CPU暂停当前的程序,转 去执行中断服务程序, 完成与外设的数据传送; 4. CPU从中断服务程序返回,继续执行被中断的程序,24,特点:提高CPU效率:CPU执行速度快,CPU与外设可实现并行工作。
增加了实时性: 能及时检测到准备好的外设,多个外设可以并行工作举例说明:晚自习答疑 谁有疑问谁举手,25,§7.3.3 DMA(直接存储器存取)控制方式,问题的提出:,将硬盘或者光盘中一个4M的MP3读入内存,中断传送方式和查询方式都不适合,因为都是通过执行程序来实现的数据传送,速度太慢IN 和 OUT一次只能读入最多一个字,26,注意:,外设和内存间直接进行数据交换的方式,用于需要高速成批数据传递的场合27,28, 实现方法:总线夺权 1. 由专用接口芯片DMA控制器 (称DMAC) 控制传送过程,2. 当外设需传送数据时,通过 DMAC向CPU发出总线请求;3. CPU发出总线响应信号,释放总线;4. DMAC接管总线,控制外设、内存之间直接数据传送,29,说明: 随着大规模集成电路的发展,DMA传送已不局限于内存与外设之间的数据交换,而扩展到内存的两个区域之间,或两种高速外设之间进行DMA传送。












