第3章 IO地址译码_第1页
第3章 IO地址译码_第2页
第3章 IO地址译码_第3页
第3章 IO地址译码_第4页
第3章 IO地址译码_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 基本的I/O接口本章内容提要: 什么叫接口技术? 接口具有哪些功能? 接口与CPU如何交换数据? I/O端口及其编址方式 I/O地址译码电路原理3.1 I/O接口概述一一、接口(、接口(InterfaceInterface) 就是就是CPUCPU与外界的连接电路与外界的连接电路, ,或者说是与外或者说是与外界进行信息交换的界面。界进行信息交换的界面。CPU接口接口I/O设备设备I/OI/O设备设备: : 键盘、显示器、打印机、硬盘、键盘、显示器、打印机、硬盘、 光驱、控制设备、测量设备、光驱、控制设备、测量设备、 通讯设备通讯设备接口接口: 硬件硬件 支撑作用;支撑作用; 软件软件 驱

2、动控制驱动控制。什么叫接口技术?什么叫接口技术? 采用硬件与软件相结合的方法,研究微处理器如何与采用硬件与软件相结合的方法,研究微处理器如何与外界进行最佳连接,实现高效可靠的信息交换的一门技术外界进行最佳连接,实现高效可靠的信息交换的一门技术。举例:显示卡接口总线接口串行接口并行接口USB接口键盘接口硬盘接口为什么要引入接口?1.微机和I/O设备的信息类型和格式可能不一样。2.微机和I/O设备信号传输处理的速度可能不匹配。3.不用接口,I/O直接接CPU,随着外设增加,会大大降低CPU的效率。4.I/O直接接CPU,会使外设硬件结构过于依赖CPU,对外设本身发展不利。I/OI/O设备与I/OI

3、/O接口1.I/O接口受CPU控制,I/O设备受I/O接口控制。2.为增加通用性,I/O接口的接口电路一般均具有可编程功能。3.微机的应用离不开与外部设备接口的设计、选用和连接。说明:2. 接口组成(1)接口硬件(2)接口软件(设备驱动程序) 初始化程序段:设置接口工作方式及初始条件。传送方式处理程序段:CPUCPU针对不同的I/OI/O设备有不同的处理方式。 主控程序段:完成接口任务的程序。程序终止与退出程序段:接口电路硬件保护及操作系统中数据恢复。 辅助程序段:提供人- -机对话手段。 数据缓冲功能:通过寄存器或锁存器实现。存放数据的寄存器或锁存器称之为数据口。 接受和执行CPU命令功能:

4、存放CPUCPU命令代码的寄存器称之为命令口,存放执行状态信息的寄存器称之为状态口。 设备选择功能:CPUCPU通过地址译码选择不同外设。即CPUCPU通过地址译码选择不同I/OI/O接口。 信号转换功能:协调总线信号与I/OI/O设备信号。转换包括信号的逻辑关系、时序配合和电平转换。 可编程功能:增加接口的灵活性和智能性。3、接口的功能1 1、接口信息、接口信息 数据信息数据信息: 如如:数字量、模拟量、开关量数字量、模拟量、开关量; 状态信息状态信息: 表示外设是否准备好信号。表示外设是否准备好信号。 如:如:READY、BUSY、ACK 控制信息控制信息: 表示启动、停止外设之类的信号表

5、示启动、停止外设之类的信号. (STROBE)3.1.13.1.1 CPU与I/O之间的接口信息CPU地址数据控制数据控制状态 I/O设备接口电路一、I/O端口1.接口电路中的端口是能被CPU直接存取访问的寄存器。2. CPU通过端口地址向接口电路中的寄存器发送命令,读取状态和传送数据。3.一个接口可以有几个端口。 如命令口、状态口和数据口,分别对应于命令寄存器、状态寄存器和数据寄存器。 3.1.2 I/O端口及其访问方式状态寄存器数据寄存器命令寄存器CPU发送传送读取30h31h32hCPU对I/O端口的访问举例:1.统一编址 从存储器空间划出一部分地址空间给I/O设备,把I/O接口中的端口

6、当作存储器单元一样进行访问。 优点: 不设置专门的I/O指令,指令类型多,功能齐全。 缺点: 1、占用了存储器的地址空间,使存储器容量减小。 2、另外指令长度比专门I/O指令要长,因而执行速度较慢。3.1.3 I/O端口的编址方式2.独立编址 这种方式是接口中的端口地址单独编址,而不与存储空间合一起。 如:IBM-PC系列、Z-80系列机 主要优点: 1、I/O端口地址不占用存储器空间; 2、I/O指令短,执行速度快; 3、I/O操作和存储器操作层次清晰,程序的可读性强。3 3、IntelIntel系列微机I/OI/O编址 Intel系列微处理器支持I/O独立编址方式和I/O统一编址(存储器映

7、象编址)方式。I/O统一编址时,I/O地址不能缓存。Intel系列微机系统仅支持I/O独立编址方式。1. I/O指令中端口地址的宽度 IBM-PC系列采用I/O(input/output)指令访问端口,实现数据的I/O传送。在I/O指令中可采用单字节地址或双字节地址寻址方式。 单字节地址指令单字节地址指令 其指令格式为: IN AL, PORT ;输入 OUT PORT, AL ;输出 这里,PORT是一个8位的字节地址,则最多可访问256个端口。例如: IN AL, 60H ;60H为系统板8255A的PA端口地址 OUT 61H, AL ;61H为系统板8255A的PB端口地址三、独立编址

8、方式的端口访问 双字节地址作为端口地址双字节地址作为端口地址 MOV DX, H IN AL, DX ;8位传送 MOV DX, H OUT DX,AL ;8位传送 这里, H 为16位的两字节地址。则最多可寻址216=64K个端口。例如:例如:MOV DX,300H ;300H为扩展板8255A的PA端口IN AL,DX MOV DX,301H ; 301H为扩展板8255A的PB端口OUT DX,AL 所谓对端口的访问就是CPU对端口的读/写,将端口的数据传送存储器。例如:例如:输入时 MOV DX,300H ;I/O端口 IN AL,DX ;从端口读数据到AL MOV DI,AL ;将数

9、据从AL存储器输出时 MOV DX,301H ;I/O端口 MOV AL,SI ;从内存取数到AL OUT DX,AL ;数据从AL端口2. I/O2. I/O端口访问端口访问 C语言有强大的I/O操作功能,利用c语言可方便地设计操作界面,同时也可以对外设进行直接控制. I/O命令 端口输出 outportb(port,value)/从port端口输出字节型数据 value outportw (port,value)/从port端口输出字型数据value 端口输入:Value=inportb(port) /从port端口输入字节型数据, 并存储在 value变量中;Value=inportw(

10、port) /从port端口输入字型数据, 并存储在value变量中;注意: PASCAL语言,Turbo C语言都有类似的I/o命令.3. C3. C语言语言I/OI/O语句语句3.2 I/O3.2 I/O数据传输方式数据传输方式 无条件传送方式(同步传送) 条件传送方式(查询方式); 中断传送方式 直接存储器存取(DMA)传送方式 条件是己知的情况; 外部设备是准备好的; 不用查询外设的状态信息; 直接使用IN或OUT指令完成数据传送一、无条件传送方式(同步传送)缓冲器CE地址译码器IO/MRD数据总线数据来自外设8位地址总线(a)(a)无条件输入无条件输入8位缓冲器CE地址译码器IO/M

11、WR数据总线数据到外设地址总线(b)无条件输出 先查询外设的状态信息是否准备好; 准备好,就传送数据; 否则,继续查询.二、条件传送方式(查询方式)输出设备数据锁存器(8)数据总线数据口选中WRIO/M状态标志QDR+5V接数据总线DO位0为空闲ACKIO/MRD状态口选中地址译码器地址总线准备好为“1”三、中断传送方式 由外设向由外设向CPUCPU发出中断请求;发出中断请求; CPUCPU暂停原程序执行,转入中断服务;暂停原程序执行,转入中断服务; 完成后返回原程序继续执行。完成后返回原程序继续执行。主程序执行子程序转向返回继续执行优点: CPU不用等待外设,提高CPU的利用率。四、DMA传

12、送方式由外设与计算机内存直接进行数据交换,而不是通过CPU,即DMA传送;在DMA传送期间,DMA控制器接管了总线控制权,而CPU处在停机方式,即处于等待状态;在DMA传送完成后,CPU再恢复对总线的控制权,进入工作状态。RAMCPU外设DMA控制器I/ODMACRAMCPUDREQHRQHLDADACKDMAR/W3.3 I/O端口地址分配及地址译码一、I/O接口硬件分类I/O接口的硬件分成两类:1. 系统板上的I/O芯片 如: 定时/计数器、中断控制器、DMA 控制器,并行接口等。2. I/O扩展槽上的接口控制卡 如: 软驱卡、硬驱卡、图形卡、声卡、打印卡、串行通信卡等。 表表3.1 3.

13、1 系统板上接口芯片的端口地址系统板上接口芯片的端口地址 I/O芯片名称芯片名称 端口地址端口地址DMA控制器1 00001FHDMA控制器2 0C00DFH DMA页面寄存器 08009FH中断控制器1 02003FH中断控制器2 0A00BFH 定时器 04005FH并行接口芯片(键盘接口) 06006FHRT/CMOS RAM 07007FH 协处理器 0F00FFH表表3.2 .2 扩展槽上接口控制卡的端口地址扩展槽上接口控制卡的端口地址 I/0 I/0接口名称接口名称 端口地址端口地址游戏控制卡 20020FH并行口控制卡1 37037FH并行口控制卡2 27027FH串行口控制卡1

14、 3F83FFH串行口控制卡2 2F02FFH原型插件板(用户可用) 30031FH同步通信卡1 3A03AFH同步通信卡2 38038FH单显MDA 3B03BFH彩显CGA 3D03DFH彩显EGG/VGA 3C03CFH硬驱控制卡 1F01FFH软驱控制卡 3F03F7HPC网卡 36036FH二、I/O端口地址分配1. PC微机I/O地址线有16根,对应的I/O端口编址可达64K字节。2. 其端口地址译码是采用非完全译码方式,即只考虑了低10位地址线A0A9,而没 有考虑高6位地址线A10A15。3.I/0端口地址范围是0000H003FFH,总共只有1024个端口。三、I/O端口地址

15、选用的原则凡是被系统配置占用了的地址一律不能使用;未被占用的地址,用户可以使用。但申明保留的地址,不要使用。用户可使用300H-31FH地址。3.3.2 I/O3.3.2 I/O端口地址译端口地址译码码一、一、I/OI/O地址译码电路原理地址译码电路原理 译码电路的输入信号译码电路的输入信号 I/OI/O地址译码电路不仅仅与地址地址译码电路不仅仅与地址信号有关,而且与控制信号有关信号有关,而且与控制信号有关 . .例如,例如, 用用AENAEN信号控制非信号控制非DMADMA传送;传送; 用用IOR_IOR_和和IOW_IOW_信号控制对端口的读信号控制对端口的读/ /写等。写等。 用用I/O

16、CSI/OCS1616信号控制信号控制8 8位或位或1616位位I/OI/O端端口口GND32RESDRV33+5V34IRQ935-5V36DREQ237-12V38-0WS39+12V40GND41-SMEMW42-SMEMR43-IOW44-IOR45-DACK346DREQ347-DACK148DREQ149-REFSH50SYSCLK51IRQ752IRQ653IRQ554IRQ455IRQ356-DACK257TC58ALE59+5V6014.3MHZ61GND62-IOCHCK1D72D63D54D45D36D27D18D09IOCHRDY10AEN11A1912A1813A17

17、14A1615A1516A1417A1318A1219A1120A1021A922A823A724A625A526A427A328A229A130A031J?PC62A0二、二、I/OI/O地址译码电路中的地址线分配方法地址译码电路中的地址线分配方法 高位地址线与CPU的控制信号进行组合,经译码电路产生I/O接口芯片CS的片选。 低位地址线不参加译码,直接连到I/O接口芯片,进行I/O接口芯片的片内端口寻址,即寄存器寻址。地址线地址线 0 0 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 控控 制制 片片 选选 片内端口寻址片内端口寻址 1.固定式端口地址译码 固定式是指接口中用

18、到的端口地址不能更改。例例1 1:设计I/O端口地址为2F8H的只读译码电路。 分析: 若要产生2F8H端口地址,则译码电路的输入地址线就应具有如表2.3所示的值。 三、I/O端口地址译码电路设计 表2.3 译码电路输入地址线的值地址线 0 0 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 二进制 0 0 1 0 1 1 1 1 1 0 0 0 十六进制 2 F 8 固定式端口地址译码123U3A74LS321274LS0412345611128U474LS3012345611128U474LS301274LS0474LS0412VCCA9A1A2A3A4A5A6A7A0A8AE

19、NIOR-VCCVCC2F8H例例2 2: 使用74LS138设计一个系统板上接口芯片的I/O端口地址译码电路,并且让每个接口芯片内部的端口数目为32个。 分析:由于系统板上的I/O端口地址分配在0000FFH范围内,只使用低8位地址线。 表3.4 译码电路输入地址线的值地址线 0 0 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 位功能 控 制 片 选 片内端口寻址 十六进制 0 H 0 7 H 0 1F H I/O I/O芯片名称芯片名称 端口地址端口地址DMA控制器1 00001FHDMA控制器2 0C00DFH DMA页面寄存器 08009FH中断控制器1 02003FH

20、中断控制器2 0A00BFH 定时器 04005FH并行接口芯片(键盘接口) 06006FHRT/CMOS RAM 07007FH协处理器 0F00FFHA1B2C3E14E25E36Y015Y114Y213Y312Y411Y510Y69Y77U374LS13874LS138译码电路多端口地址译码电路2.可选式端口地址译码例3: 设计扩展板上的I/O端口地址译码电路,要求让扩展板上每个接口芯片的内部端口数目为4个,并且,端口地址可选。例如,选择地址范围为300H31FH. 分析: 对于DIP开关,有两种状态:合(ON)和断(OFF)。 对于比较器有两点要考虑,一是比较的对象,二是比较的结果。A

21、0A1A2A3A9AENABCGG2BG2AY0Y1Y2Y3Y4Y5Y6Y7P0P7 74LS688比较器Q0Q7 .DIP+5VIOR/IOW.P=Q74LS138译码输出AENA9J10A8A7A6A4A5A3J1274LS30U2INS8250CS2U2I/OI/O地址译码电路地址译码电路EDAEDA设计设计 现在通过逻辑电路来实现一个简单的I/O译码电路实例,以系统的10位I/O地址(A0A9)的外设地址空间280H2BFHen硬件描述语言硬件描述语言VHDLVHDL方法设计方法设计library ieee;use ieee.std_logic_1164.all;entity iode

22、coder is port ( a: in std_logic_vector(3 to 9); aen,iow,ior: in std_logic; y: out std_logic_vector(7 downto 0) );end entity iodecoder;iodecoderA3-9AENIOWIORY0-7译码器端口描述库(librarylibrary)、程序包(package)调用关键字实体(entity)部分 端口(port)端口信号名 (in,out、inout、buffer)端口模式 (Bit、integer、booleanstd-logic、std-logic-vecte

23、r)端口数据类型 architecture iodecoder_body of iodecoder issignal en: std_logic;signaly_temp: std_logic_vector (7 downto 0); begin y_temp(7 downto 0) = 11111110“ when a(3 to 5) = 000 else 11111101 when a(3 to 5) = 100 else 11111011 when a(3 to 5) = 010 else 11110111 when a(3 to 5) = 110 else 11101111 when

24、a(3 to 5) = 001 else 11011111 when a(3 to 5) = 101 else 10111111 when a(3 to 5) = 011 else 01111111 when a(3 to 5) = 111; en = not (not a(6) and a(7) and (not a(8) and a(9)and (not aen) and (not (iow and ior); process(en) begin if (en = 0) theny = y_temp; else y = 11111111;end if;end process;end arc

25、hitecture iodecoder_body;结构体结构体(architecture)描述实体的结构或行为。描述实体的结构或行为。可以采用行为描述、结构可以采用行为描述、结构描述或数据流描述。描述或数据流描述。一个实体可以有多个结构一个实体可以有多个结构体。体。数据对象:存放指定类型的一些值的容器。有四种:常量(constant)变量(variable)信号(signal)文件(file)条件信号赋值语句 目标信号=表达式1 when 条件1 else表达式2 when 条件2 else. 表达式n when 条件n else进程语句I/OI/O地址译码电路仿真地址译码电路仿真电路设计完成后需要验证设计逻辑上的正确性,验证的方法主要有两种:功能仿真和下载代码到芯片测试。通常功能仿真的方法简单直观,这里通过使用modelsim软件来仿真,通过观察输入输出和内部的信号波

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论