第三节 CPU与外设间的数据传送方式 CPU与外设的工作速度不一致, 如何使两者高效、可靠地进行数据传送, 是本节讨论的问题。
一、 无条件传送方式 二、 条件传送方式 ( 查询方式 ) 三、 中断传送方式 四、 DMA传送方式 ( Direct Memory Access ) 有以下几种传送方式:
一、无条件传送方式 (同步传送方式) 实现方法 特点 CPU不查询外设工作状态, 与外设速度的匹配通过在软件上延时完成, 在程序中直接用I/O指令,完成与外设的数据传送 特点 1. 适用于外设动作时间已知, 在CPU与外设进行数据传送时,外设保证已准备好的情况 2. 软硬件十分简单。
例 1 无条件输入接口(参看教材图6-8) 三 态 缓冲器 输入 设备 数据 线 IOR 地址 译码 地址线 200H D7 ~ D0 例 1 无条件输入接口(参看教材图6-8) 接口电路,即硬件上保证: 只在CPU执行从200H端口输入数据时, 三态门处于工作状态,使输入设备的数据送上总线侧, 而CPU执行其它指令时, 三态门均处于高阻状态, 使输入设备的数据线与总线侧断开 三 态 缓冲器 输入 设备 数据 线 IOR 地址 译码 地址线 200H D7 ~ D0 A15 A0 与 非 PC 总 线
无条件输入编程: 从端口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
例2 无条件输出 : 编程控制系统板上扬声器发声。 例2 无条件输出 : 编程控制系统板上扬声器发声。 4 7 6 5 3 2 1 61H 端口 8253 与 门 放 大 器 扬 声 控制其它外设 扬声器控制电路图: T 个数 发声原理: 向扬声器发送一串脉冲信号, 推动扬声器内纸盆振动,发出声音 脉冲的频率,控制音高; 脉冲的个数,控制音长
扬声器控制电路图: 1. 使61H端口的0位输出0,控制8253输出1。 2. 使61H端口的1位按所需频率交替输出0和1, 产生所需的声音。 编程方法: 4 7 6 5 3 2 1 61H 端口 8253 与 门 放 大 器 扬 声 控制其它外设 扬声器控制电路图:
发声程序: 1 code SEGMENT ASSUME CS:code start: MOV BX, 3000H ;控制脉冲个数 MOV DX, 6000H ;控制脉冲周期 IN AL, 61H ;读入61H端口数据 AND AL, 1111 1110b ;D0为0,8253 输出1 sound: XOR AL, 0000 0010b OUT 61H, AL ; 61H端口的D1交替为0和1 MOV CX, DX delay: LOOP delay ;延时 DEC BX ;控制脉冲数 JNZ sound MOV AH, 4CH INT 21H code ENDS END start 发声程序: 61H 端口 8253 与 门 放 大 器 扬 声 1 控制其它外设 T 个数
将发声程序改编为一子程: 入口参数 BX 控制音长 DX 控制音高 思考:
二、条件传送方式(查询传送方式) 实现方法: 特点: 在与外设进行传送数据前,CPU先查询外设状态, 当外设准备好后,才执行I/O指令,实现数据传送 特点: 1. CPU通过不断查询外设状态,实现与外设的速度匹配 2. CPU的工作效率低
查询传送方式,编程流程: N Y 从状态端口读入状态信息 从数据端口传送一个数据 外设准备好否?
C 输入 P 外 备 U 例1 查询方式输入 假设 外设的状态端口为21C H, 其中D4=1时,表示外设数据准备好 例1 查询方式输入 假设 外设的状态端口为21C H, 其中D4=1时,表示外设数据准备好 外设的数据端口为218 H。 实现从外设读入50H个字节到内存缓冲区buffer中。 21CH端口 状态端口 218H端口 数据端口 地址 译码 数据 缓冲 控制 电路 输入 外 备 C P U 地址线 数据线 控制线
输 入 设 备 查询方式输入接口, 参看教材图6-10 状态端口 D4=1 表示外设准备好 218H 地址线 IOR +5v D4 21CH 三 态 缓冲器 输 入 设 备 数 据 线 218H 数据 端口 地址 译码 地址线 状态 锁 存 器 IOR R Q D +5v D4 21CH STB PC总线 A15 ~ A0 D7 D0 & MOV DX, 218H IN AL, DX MOV DX, 21CH
编程从外设读入50H个字节到内存缓冲区buffer中 从21CH状态端口 读入外设状态信息 从218H数据端口 读入一个字节数据 Y N D4=1, 外设准备好否? 50H个数据传送结束? 编程从外设读入50H个字节到内存缓冲区buffer中
查询方式输入程序段: 、、、 MOV AX, SEG buffer ;取缓冲区首地址 MOV DS, AX LEA DI, buffer MOV CX, 50H ;传送个数 next: MOV DX, 21CH ask: IN AL, DX ;从状态端口读入状态信息 TEST AL, 0001 0000B ;检测D4位 JZ ask ;D4=0,继续查询 MOV DX, 218H IN AL, DX ;从数据端口读入数据 MOV [DI], AL ;送缓冲区 INC DI ;修改缓冲区指针 LOOP next ;传送下一个 查询方式输入程序段:
C 输出 P 外 备 U 例2 查询方式输出 假设 外设的状态端口为21C H, 其中D0 = 0时,表示外设准备好 例2 查询方式输出 假设 外设的状态端口为21C H, 其中D0 = 0时,表示外设准备好 外设的数据端口为219 H。 编程将缓冲区buffer的80H个字节输出到外设。 21CH端口 状态端口 219H端口 数据端口 地址 译码 数据 缓冲 控制 电路 输出 外 备 C P U 地址线 数据线 控制线
输 出 设 备 查询方式输出接口, 参看教材图6-11 MOV DX, 219H 状态端口 D0 = 0 OUT DX, AL 表示外设准备好 输 出 设 备 数 据 线 219H 数据 端口 地址 译码 地址线 锁 存 器 R D Q 三 态 缓冲器 +5v ACK PC 总 线 IOR A15 ~ A0 D7 D0 IOW 状态 21CH & MOV DX, 219H OUT DX, AL MOV DX, 21CH IN AL, DX
编程将缓冲区buffer的80H个字节输出到外设 从21CH状态端口 读入外设状态信息 将一字节数据送至 219H数据端口 Y N D0=0, 外设准备好否? 80H个数据传送结束? 编程将缓冲区buffer的80H个字节输出到外设
查询方式输出程序段: 、、、 MOV AX, SEG buffer ;取缓冲区首地址 MOV DS, AX LEA SI, buffer MOV CX, 80H ;传送个数 next: MOV DX, 21CH ask: IN AL, DX ;从状态端口读入状态信息 TEST AL, 0000 0001B ;检测D0位 JNZ ask ;D0≠0,继续查询 MOV AL, [SI] ;从缓冲区取数 MOV DX, 219H OUT DX, AL ;从数据端口输出数据 INC SI ;修改缓冲区指针 LOOP next ;输出下一个 查询方式输出程序段:
三、中断传送方式 实现方法: 1. 当外设准备好,向CPU发出中断请求 2. CPU在满足响应中断的条件下,发出中断响应信号; 完成与外设的数据传送; 4. CPU从中断服务程序返回,继续执行被中断的程序
中断方式下 CPU执行程序流程 外 设 中断服务程序 发申请 发申请 中断服务程序
中断传送方式的特点: 1. CPU和外设大部分时间处在并行工作状态, 2. 中断传送方式提高了CPU的效率 只在CPU响应外设的中断申请后, 进入数据传送的过程 2. 中断传送方式提高了CPU的效率 中断传送方式的特点:
四、DMA 传送方式(直接存储器存取方式) 实现方法: 1. 由专用接口芯片DMA控制器 (称DMAC) 控制传送过程, 2. 当外设需传送数据时,通过 DMAC向CPU发出总线请求; 3. CPU发出总线响应信号,释放总线; 4. DMAC接管总线,控制外设、内存之间直接数据传送
DMA 传送方式过程 CPU DMAC 内存 外设 总线 响应 请求
DMA传送方式的特点 1. 外设和内存之间,直接进行数据传送, 不通过CPU, 传送效率高。 适用于在内存与高速外设、 或两个高速外设之间进行大批量数据传送。 2. 电路结构复杂,硬件开销较大。
第四节 接口技术的现状与发展趋势 一、接口技术的现状 二、接口技术的发展趋势
一、接口技术的现状 1.用简单的逻辑电路 2.用可编程集成接口芯片 3.用多功能的芯片组
1. 用简单的逻辑电路 例1 无条件输入接口 注意: 采用简单的逻辑部件完成接口电路 特点:原理清楚,但实际少用。 例2 无条件输出接口 例1 无条件输入接口 例2 无条件输出接口 例3 查询输入接口 例4 查询输出接口 注意: 教材中控制信号采用的是8088CPU工作于最小模式下的信号 讲义中控制信号采用的是IBM PC/XT总线上的信号
8088CPU 8088 在最小模式下的典型配置 内 存 +5V I/O 接口 8284A A15~A8 S6~S3/A19~A16 地址锁存器 8282(两片) STB OE 数据收发器 OE 8286 T A15~A8 S6~S3/A19~A16 AD7~AD0 ALE CLK RESET READY MN/MX VCC GND DEN DT/R IO/M WR RD HOLD HLDA INTR INTA NMI TEST SSO 8088CPU 地址总线 数据总线 控制总线 8284A +5V 内 存 I/O 接口
8088 CPU 8088 在最大模式下的典型配置 内 存 I/O 接口 A15~A8 S6~S3/A19~A16 地址总线 AD7~AD0 +5V CLK RESET READY MN/MX VCC RD QS0 QS1 LOCK TEST HIGH NMI GND 地址锁存器 8282(两片) STB 数据收发器 OE 8286 T MRDC 8288 MWTC 总线 IORC 控制器 IOWC INTA 8259A 及有关电路 DT/R DEN ALE 地址总线 数据总线 控制总线 PC 总 线 A15~A8 S6~S3/A19~A16 AD7~AD0 8088 CPU S0 S1 S2 INTR RQ/GT0 RQ/GT1 内 存 I/O 接口 8088 在最大模式下的典型配置
北桥 440BX 南桥 PIIX4E 超级I/O 显 示 器 显卡 550MHz IDE2 Pentium III 北桥 440BX AGP 南桥 PIIX4E CMOS & RTC USB 超级I/O IDE1 COM1 COM2 LPT1 L1 Cache L2 处理机总线 100MHz 100MHz PCI 总线 33MHz PCI 插槽 ISA插槽 硬件实验箱 ISA总线 8MHz 内存条 ROM BIOS 显 示 器 硬盘 光驱 软驱 键盘鼠标 打印机 MODEM 66MHz 显卡
例 1 无条件输入接口(参看教材图6-8) 注意: 三 态 缓冲器 输入 设备 数据 线 IOR 地址 译码 地址线 200H D7 ~ 例 1 无条件输入接口(参看教材图6-8) 三 态 缓冲器 输入 设备 数据 线 IOR 地址 译码 地址线 200H D7 ~ D0 A15 A0 与 非 PC 总 线 注意: 在逻辑门前输入信号的 ,表示对信号求反。 与锁存器、三态门等控制端的意义不同。
例 2 无条件输出接口(参看教材图6-9) PC总线 锁存器 输出 设备 数据线 IOW 地址 译码 地址线 300H D7 ~ D0 例 2 无条件输出接口(参看教材图6-9) PC总线 锁存器 输出 设备 数据线 IOW 地址 译码 地址线 300H D7 ~ D0 A15 A0 与 非
例3 查询输入接口(参看教材图6-11) 输 入 设 备 状态端口 D4=1 表示外设准备好 218H 地址线 IOR +5v D4 例3 查询输入接口(参看教材图6-11) 状态端口 D4=1 表示外设准备好 三 态 缓冲器 输 入 设 备 数 据 线 218H 数据 端口 地址 译码 地址线 状态 锁 存 器 IOR R Q D +5v D4 21CH STB PC总线 A15 ~ A0 D7 D0 & MOV DX, 218H IN AL, DX MOV DX, 21CH
例4 查询输出接口(参看教材图6-12) 输 出 设 备 MOV DX, 219H 状态端口 D0 = 0 OUT DX, AL 例4 查询输出接口(参看教材图6-12) 状态端口 D0 = 0 表示外设准备好 输 出 设 备 数 据 线 219H 数据 端口 地址 译码 地址线 锁 存 器 R D Q 三 态 缓冲器 +5v ACK PC 总 线 IOR A15 ~ A0 D7 D0 IOW 状态 21CH & MOV DX, 219H OUT DX, AL MOV DX, 21CH IN AL, DX
2. 用可编程集成接口芯片 特点: 将完成某一功能的接口电路集成在一个芯片上, 通过对接口芯片编程,设置接口芯片的工作状态。 1. 体积小、功能强、可靠性高 2. 通常是专门为配合微机系统中的各种适配器设计, 不必增加或增加很少的电路,就可直接与总线连接, 使用方便。 3. 应用时,应掌握芯片的工作原理、外部特性、编程方法。
接口芯片举例: 并行接口芯片 8255A、8155A、Z80-PIO 串行接口芯片 8251A、8250、Z80-SIO 定时/计数器 8253、8254、Z80-CTC 中断控制器 8259A DMA控制器 8237A、Z80-DMA 键盘控制器 8279 CRT控制器 8275、6845 硬盘控制器 6843 D/A转换器 DAC0832 A/D转换器 ADC0809
例 用可编程并行接口芯片8255A做打印机的接口。 查询方式接线图 A0 A1 CS 并行接口8255A 打 印 机 PC总线 数 据 线 IOR RD WR IOW 片选 译码 PA0 ~ PA7 PC0 PC4 A2 A9 数据线 STROBE BUSY D0 D7
打 印 机 片选 译码 中断方式接线图 CS 并行接口8255A PC总线 数 据 线 IOR RD WR IOW PA0 ~ PA7 数据线 STROBE ACK D0 D7 PC3 IRQ3
3. 用多功能的芯片组 例 82206集成外设控制器,内部包含: 特点:可靠性更高、功能更强 将完成多个功能的接口电路集成在一个芯片上, 通过编程,设置控制字,改变接口芯片的工作状态。 例 82206集成外设控制器,内部包含: 2个8237DMA控制器 2个8259A中断控制器 1个8254定时/计数器 1个MC 146818实时时钟 以及其他接口芯片 特点:可靠性更高、功能更强 3. 用多功能的芯片组
将主板上的外围芯片集成在一组(2~4片)超大规模集成芯片上, 构成芯片组。 芯片组是主板的关键部件,通常固定在主板上, 不象CPU、内存条或其他插卡等可进行简单的替换和升级。 芯片组提供主板的核心逻辑,影响主板的性能和功能, 决定主板所支持的CPU 类型、内存类型、 总线类型、总线速度等关键技术配置
北桥 440BX 南桥 PIIX4E 超级I/O 显 示 器 显卡 550MHz IDE2 Pentium III 北桥 440BX AGP 南桥 PIIX4E CMOS & RTC USB 超级I/O IDE1 COM1 COM2 LPT1 L1 Cache L2 处理机总线 100MHz 100MHz PCI 总线 33MHz PCI 插槽 ISA插槽 硬件实验箱 ISA总线 8MHz 内存条 ROM BIOS 显 示 器 硬盘 光驱 软驱 键盘鼠标 打印机 MODEM 66MHz 显卡
二、接口技术的发展趋势 集成化 多功能化 标准化 智能化
第五节 接口的设计与分析 一、基本方法 二、注意事项
一、基本方法 1. 了解外设工作原理,明确接口功能,选择接口芯片 2. 设计接口与系统的连接 3. 分析和设计接口程序 4. 接口的调试
1. 了解外设工作原理,明确接口功能,选择接口芯片
外 设 接 口 电 总 路 线 片 选 译 码 2. 设计接口与系统的连接 控制线 PC 低位地址线 数据线 地址线 状态线 C P U 高 位 地址线 控制线 低位地址线 状态线 C P U 辅助 电路 2. 设计接口与系统的连接
(2) 接口的地址线与总线的低位地址连 接口电路实现计算机与外设间的数据传送功能 接口电路的一般连接方法: 接口与计算机的连接 (1) 接口的数据线与计算机的数据线连 (2) 接口的地址线与总线的低位地址连 由接口的片内译码确定接口内不同的端口 接口的片选信号由总线的高位地址经译码电路得到 (3) 接口的控制线与计算机相应的控制线连 如接口的 RD 与总线的 IOR 连 接口的 WR 与总线的 IOW 连 接口与外设的连接 (1) 接口的数据端口与外设的数据线、状态线连 (2) 接口与外设控制线的连接据设计确定。
3. 分析和设计接口程序 采用可编程接口芯片,步骤: (1) 掌握接口芯片的编程结构、编程方法 包括: 确定各端口地址; 包括: 确定各端口地址; 了解控制字各位的含义和设置控制字的方法 (2) 确定接口的工作方式,设计接口工作过程 包括: CPU与外设的数据传送方式 (3) 据硬件连接关系,编写接口程序 包括:可编程芯片的初始化程序 CPU与外设间数据传送的输入/输出程序 3. 分析和设计接口程序
单独调试硬件 单独调试软件 综合调试硬件、软件 4. 接口的调试 实验指导书中给出了每个硬件实验的一些调试经验, 可供大家实验时参考
二、注意事项 等不匹配,需转换匹配后,方能连接。 1. 软、硬件应综合考虑 2. 注意信号的转换 3. 注意数据线的连接 在逻辑上(高电平、低电平、边沿信号) 当信号 在电平上( TTL电平、非TTL电平 ) 在时序上 等不匹配,需转换匹配后,方能连接。 3. 注意数据线的连接 考虑是否需加三态缓冲、锁存器等