页汇编C及C+对IO的访问

上传人:san****019 文档编号:20625222 上传时间:2021-04-05 格式:PPT 页数:25 大小:328.60KB
返回 下载 相关 举报
页汇编C及C+对IO的访问_第1页
第1页 / 共25页
页汇编C及C+对IO的访问_第2页
第2页 / 共25页
页汇编C及C+对IO的访问_第3页
第3页 / 共25页
点击查看更多>>
资源描述
1 第四节 接口分析与设计方法 一、 x86系列微机接口分析 1.I/O接口硬件分类 系统板上 I/O芯片和 I/O扩展槽接口卡。 2.I/O端口地址分配 PC系列 I/O地址线有 16根,对应 64K空间; PC/XT的 I/O端口译码只使用了 A0-A9,共 1024个端口, 地址范围为 0000H03FFH。 不同的微机系统对 I/O端口地址的分配不同。 初期: A9=0端口 (512个 )为系统板所用,其他端口 (512个 )为扩展槽所用。 2 I/O芯片名称 地址范围 DMAC1 DMAC2 DMA页面寄存器 0000-001FH 00C0-00DFH 0080-009FH 中断控制器 1 中断控制器 2 0020-003FH 00A0-00BFH 定时器 并行接口芯片 (键盘接口 ) RT/CMOS RAM 协处理器 0040-005FH 0060-006FH 0070-007FH 00F0-00FFH 系统板 I/O接口芯片端口地址 (0000H-00FFH): PC/AT: A8=A9=0端口 (256个 )为系统板所用, 其他端口 (768个 )为扩展槽所用。 返回 29页 3 扩展槽 I/O接口卡端口地址 (0100H-03FFH): I/O接口名称 地址范围 游戏控制卡 0200-020FH 并行口控制卡 1 并行口控制卡 2 0370-037FH 0270-027FH 串行口控制卡 1 串行口控制卡 2 03F8-03FFH 02F8-02FFH 原型插件板 (用户可用 ) 0300-031FH 同步通信卡 1 同步通信卡 2 03A0-03AF 0380-038FH 单显 MDA 彩显 CGA 彩显 EGA/VGA 03B0-03BFH 03D0-03DFH 03C0-03CFH 软驱控制卡 硬驱控制卡 03F0-03FFH 01F0-01FFH PC网卡 0360-036FH 4 用户 I/O端口地址选用原则: 系统配置占用的端口地址一律不能用; 厂家声明保留的端口地址不要用; 其余端口地址可用,为避免冲突最好采用 DIP。 3.I/O端口地址译码方法 一个 I/O接口对应多个连续 I/O端口。 I/O接口芯片片选( CS)译码: IOW/IOR信号 (有效 )、 AEN信号 (无效 )和 I/O端口地 址高位。 I/O接口芯片内部端口译码: I/O端口地址低位。 5 例 1: 并行接口使用 8255A芯片,地址空间 60H-63H。 A1 A0 A9-A2 地址总线 RD WR RESET IO/M AEN 控制总线 CS D0-D7 数据总线 RD WR RESET A1 A0 8255A PA0-7 PB0-7 PC0-7 多个接口时,采用单独译码 /集中译码? 返回下页 6 数据总线 地址总线 控制总线 CPU D7-D0 CS Ax-A0 WR RD 设 备 侧 信 号 D7-D0 CS Ax-A0 WR RD 设 备 侧 信 号 8259 8253 MEM Y0 Y7 A B C G2B G2A G1 15 14 13 12 11 10 9 7 1 2 3 4 5 6 74LS138 DMA 8259 8253 8255 系统 空闲 00H 20H 40H 60H 3FFH 1FH 3FH 5FH 7FH : : : : 例 2: 多个接口集中译码。 如何区分 MEM和 I/O? 转上页 返回 26页 7 4.I/O端口访问 CPU通过 I/O指令对 I/O接口进行访问。 汇编语言指令: IN、 OUT。 C语言指令: inportb(inport)、 outportb(outport)。 VC+指令: _inp(_inpw)、 _outp(_outpw)。 例: 读取 CMOS信息。 main() int i; unsigned char c_CmosMessage64; for (i=0;i=63;i+) outportb(0 x70,i); c_CmosMessagei=inportb(0 x71) ; printf(CMOS信息读取完毕 。 n); ;功能:读取 CMOS信息 ;调用: AL=CMOS地址 ;返回: AL=CMOS内容 proc_read_cmos proc cli or al,80h ;屏蔽 NMI out 70h,al jmp $+2 ;延迟 in al,71h ;读 CMOS数据 sti ret proc_read_cmos endp 8 5.I/O指令与接口实现 执行 CPU指令: MOV DX, 42H OUT DX, 8AH 控制总线: IOW有效、 IOR无效、 MEMR/MEMW无效、 AEN无效。 地址总线:将 42H写入 A9 A0。 译 码 器:根据 DX高位译码, Y2有效,其他 Yx无效。 接口芯片: 8253工作,其他接口芯片不工作。 接口电路: 8253对应接口电路应答选中信号, 8253 根据 DX低位选择相应的寄存器。 8253: 接受数据总线 (D7 D0)数据 (8AH),写入 所选寄存器。 转 24页 9 二、 I/O端口地址译码电路的几种形式 1.固定式端口地址译码 接口中只有一个端口时可采用门电路构成。 接口中有多个端口时一般采用译码器电路构成,常 见的译码器有 74LS138、 74LS154等。 74LS138译码器: 工作条件: G1=1, G2A=G2B=0。 Y0 Y7 A B C G2B G2A G1 15 14 13 12 11 10 9 7 1 2 3 4 5 6 74LS138 工作原理: 将复合的输入信号变为枚举的 输出信号。 10 输 入 输 出 G1G2AG2B C B A Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0 X X X X X 1 1 1 1 1 1 1 1 X 1 X X X X 1 1 1 1 1 1 1 1 X X 1 X X X 1 1 1 1 1 1 1 1 输入 /输出真值表: CBA连续时, Y0 Y7亦为连续的。 11 Y0 Y7 A B C G2B G2A G1 15 14 13 12 11 10 9 7 1 2 3 4 5 6 74LS138 A5 A6 A7 A8 A9 AEN DMACS(8237) INTRCS(8259) T/C CS(8253) PPICS(8255) WRTDMAPG 1 1 WRTNMIREG IOW 74LS138在 PC机系统板端口译码的应用: 转 20页 为何中断控制 1端口地址为 0020H-003FH? AEN=AENIO/M 。 12 Y0 Y7 A B C G2B G2A G1 15 14 13 12 11 10 9 7 1 2 3 4 5 6 74LS138 A3 A4 A5 A8 A9 AEN ? ? 1 A6 每个出端对应接口的端口数量? Y1、 Y4对应端口地址? 8个 08H(88H)、 20H(A0H) 13 7.2 微机系统与与输入 /输出设备信息交换 7.2.1 无条件传送方式 特点: I时假设外设已准备好, O时假设外设空闲。 要求: 接口 I时加缓冲器, O时加锁存器。 应用: 对简单外设的操作。 7.2.2 查询方式 工作原理: CPU查询外设已准备好后,才传送数据。 特点: CPU与外设间自然同步。 要求: 不需要增加额外的硬件电路。 应用: 适用在 CPU不太忙且传送速度要求不高时。 14 7.2.3 中断传送方式 特点: CPU与外设可同时工作。 要求: 接口中需要中断控制逻辑支持。 应用: 适用于非高速度大量数据传送时。 7.2.4 直接存储器存取 (DMA)方式 特点: 数据的传送不经过 CPU, I/O设备管理由 CPU控 制,简化 CPU对 I/O的控制。 要求: 需要 DMA控制器及相关逻辑支持。 应用: 适用与高速度大量数据传送时。 15 7.2.5 I/O处理机( IOP)方式 特点: I/O处理机接管了 CPU的各种 I/O操作及 I/O控制功能, CPU能与 IOP并行工作。 要求: 需要 IOP支持。 应用: 高速 I/O归 IOP管理,低速 I/O设备归 CPU管理。 16 8253的组成与功能 1 3个独立的 16位计数器 3个计数器分别为计数器 0、计数器 1、 计数器 2,每个计数器的内部逻辑结构如图 4.8所示。 如图 4.6、 图 4.7所示为 8253/8254的 内部结构及引脚图 。 7.3 可编程计数 /定时器 8254 17 图 4.6 8253/8254的内部结构示意图 18 图 4. 7 82 53 引 脚 图 19 图 4.8 8253/8254计数器内部逻辑图 20 2 控制命令寄存器 此寄存器用来保存来自 CPU送入的控制字 。 每个计数器都有一个控制命令寄存器 , 用于保 存该计数器的控制信息 。 控制字将决定计数器 的工作方式 、 计数形式及输出方式 , 也能决定 应如何装入计数器初值 。 8253的 3个控制寄存器 只占用一个地址号 , 而靠控制字中最高二位来 指定当前的控制字是发给哪一个计数器的 。 控 制寄存器只能写入 , 不能读取 。 21 3读 /写逻辑 读 /写逻辑的任务是接收来自 CPU的控 制信号 , 完成对 8253各计数寄存器的读 /写 操作 。 这些控制信号包括读信号 RD、 写信 号 WR、 片选信号 CS和片内寄存器对址信 号 A0、 A1。 22 4 数据总线缓冲器 这是一个双向 、 三态 8位缓冲器 。 它用于 8253和系统数据总线连接 。 CPU通过数据总线 缓冲器将控制命令字和计数值写入 8253计数器 , 或者从 8253计数器读取当前计数值 。 8253的 8位数据线 D0D7通常与系统数据总 线 D0D7相连。 8253共占用 4个 I/O地址。 8253 各端口的地址分配见表 4.8所示。 23 表 4.8 8253端口的地址分配 返回本节 24 8253与系统的连接应用实例 图 4.9为 8253用作方波发生器与 8088 总线的接口方法 。 图中仅用了 A7A2作为 8253片选地址线 , 产生片选信号 Y1与 8253 的 CS端相连 。 要求计数器 2用作方波发生 器产生 40KHz方波输出 。 已知 CLK2时钟端 输入信号频率为 2MHz。 25 图 4.9 8253与 8088总线的连接 返回本节
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!