第三节CPU与外设间的数据传送方式CPU与外设的工作速度不一致,如何使两者高效、可靠地进行数据传送,是本节讨论的问题
第三节 CPU与外设间的数据传送方式 CPU与外设的工作速度不一致, 如何使两者高效、可靠地进行数据传送, 是本节讨论的问题
有以下几种传送方式:无条件传送方式二条件传送方式(查询方式)三、中断传送方式四、DMA传送方式(Direct Memory Access)
一、 无条件传送方式 二、 条件传送方式 ( 查询方式 ) 三、 中断传送方式 四、 DMA传送方式 ( Direct Memory Access) 有以下几种传送方式:
一、无条件传送方式(同步传送方式)实现方法CPU不查询外设工作状态,与外设速度的匹配通过在软件上延时完成,在程序中直接用I/O指令,完成与外设的数据传送特点1.适用于外设动作时间已知,在CPU与外设进行数据传送时,外设保证已准备好的情况2.软硬件十分简单
一、无条件传送方式 (同步传送方式) 实现方法 CPU不查询外设工作状态, 与外设速度的匹配通过在软件上延时完成, 在程序中直接用I/O指令,完成与外设的数据传送 特点 1. 适用于外设动作时间已知, 在CPU与外设进行数据传送时,外设保证已准备好的情况 2. 软硬件十分简单
例1无条件输入接口(参看教材图6-8)数据线输入三态D7设备缓冲器PCDO地址线A15200H总地址译码A0o线与00dIOR非接口电路,即硬件上保证:只在CPU执行从200H端口输入数据时三态门处于工作状态,使输入设备的数据送上总线侧,而CPU执行其它指令时三态门均处于高阻状态,使输入设备的数据线与总线侧断开
例 1 无条件输入接口(参看教材图6-8) 接口电路,即硬件上保证: 只在CPU执行从200H端口输入数据时, 三态门处于工作状态,使输入设备的数据送上总线侧, 而CPU执行其它指令时, 三态门均处于高阻状态, 使输入设备的数据线与总线侧断开 三 态 缓冲器 输入 设备 数据 线 IOR 地址 译码 地址线 200H 0 0 0 D7 ~ D0 A15 ~ A0 与 非 PC 总 线
无条件输入编程:从端口200H读入100个字节到内存缓冲区buffer中MOVAX.SEGbuffer;取缓冲区MOVDS,AX;延时子程;首地址LEADL, bufferPROCdelay;传送个数MOVCX, 100HPUSH CX;端口地址MOVDX,200H;延时等待CALL next:delayMOVCX,80HIN读入数据AL, DXLOOPcccc:;送缓冲区MOV[DI], ALCXPOPDIINC;修改指针RETLOOPnextENDPdelay
无条件输入编程: 从端口200H读入100个字节到内存缓冲区buffer中。 、 MOV AX, SEG buffer MOV DS, AX ;取缓冲区 LEA DI, buffer ;首地址 MOV CX, 100H ;传送个数 MOV DX, 200H ;端口地址 next: CALL delay ;延时等待 IN AL, DX ;读入数据 MOV [DI], AL ;送缓冲区 INC DI ;修改指针 LOOP next 、 ;延时子程 delay PROC PUSH CX MOV CX, 80H cc: LOOP cc POP CX RET delay ENDP