4166am备用网址统称为编辑器)以及计算机

当前位置:4166am备用网址 > 4166am备用网址 > 4166am备用网址统称为编辑器)以及计算机
作者: 4166am备用网址|来源: http://www.91ylmf.com|栏目:4166am备用网址

文章关键词:4166am备用网址,译码网络

  第3章地址译码技术及存储器接口_计算机硬件及网络_IT/计算机_专业资料。微机接口技术

  第 3章 第3章 地址译码技术及存储器接口 学习目标: ◆ 掌握I/O端口的概念及端口地址的编址方式; ◆ 掌握访问I/O端口的指令; ◆ 掌握固定式端口地址译码、开关式可选端口地 址译码的实现方法。重点掌握地址译码的原则和 端口地址范围的计算方法; ◆ 了解 GAL 器件的特点及其在地址译码电路中的 作用。掌握用GAL16V8进行译码设计的过程以及 应注意的问题; ◆ 掌握 SRAM 、 DRAM 、 EPROM 与 CPU 典型的 连接方式。重点掌握三总线的连接以及采用不同 的连接方法时地址范围的计算方法。 第3章 地址译码技术及存储器接口 本章目录: 3.1 I/O端口 3.2 I/O端口地址译码 3.3 GAL器件在I/O地址译码电路中应用 3.4 半导体存储器接口 习题与思考题 3.1 I/O端口 3.1.1 3.1.2 3.1.3 3.1.4 I/O端口概述 端口编址方式 端口访问指令 I/O端口地址分配 3.1.1 I/O端口概述 I/O端口 微处理器 CPU 与 I/O 设备直接通信的地 址。实际应用中,通常把 I/O接口电路中能 被 CPU 直接访问的寄存器或某些特定器件 称为端口。 3.1.2 端口编址方式 1.统一编址 从存储空间划出一部分地址空间给 I/O 设备,把 I/O接口中的端口当作存储器单元一样进行访问, 不设置专门的I/O指令。与地址线结合,形成一个 独立的I/O空间。 优点:使用访问存储器的指令,指令类型多,功 能齐全;给端口有较大的编址空间。 缺点:端口占用了存储器的地址空间,使存储器 容量减小;指令长度比专门I/O指令要长,因而执 行时间较长。 2.独立编址 微处理器设置专门的输入/输出指令来访问端口, 产生专用访问检测信号,与地址线结合,形成一 个独立的I/O空间。 优点:( 1 )输入 / 输出指令和访问存储器的指令 有明显的区别,可使程序编制清晰,便于理解。 (2)使用专门的控制信号。4166am备用网址 缺点是:输入/输出指令类型少,一般只能对端口 进行传送操作。 3.1.3 端口访问指令 1 . 8086/8088 采用 I/O 端口与累加器传送数据; 2 . 80286 和80386 支持 I/O 端口直接与 RAM之 间的传送数据; 3.C语言中的端口读/写函数; 4 .运行于 Windows 9X 环境下的 VC(Visual C++)程序; 5.Win2K下VC++与VB。 1.8086/8088采用I/O端口与累加器传送数据 在 I/O 指令中可采用单字节地址或双字节地址 寻址方式。 若用单字节地址,则最多可访问 256个端口。 系统主机板上的I/O端口,采用单字节地址,并且 是直接寻址方式: 输入 IN AX,PORT (输入16位数据) IN AL,PORT (输入8位数据) 输出 OUT PORT,AX (输出16位数据) OUT PORT,AL (输出8位数据) 这里,PORT是一个8位的字节地址。 若用双字节地址作为端口地址,则最多可寻 址64K个端口。I/O扩展的接口控制卡,采用双字 节地址,并且是寄存器间接寻址方式,端口地址 放在寄存器DX中: 输入 MOV DX,XXXXH IN AX,DX ;16位传送 或 IN AL,DX ;8位传送 输出 MOV DX,XXXXH OUT DX,AX ;16位传送 或 OUT AL,DX ;8位传送 这里,XXXXH为16位的两字节地址。 2.80286和80386I/O端口直接与RAM之间传送数据 输入 MOV DX,PORT LES DI,BUFFER_IN INSB ;8位传送 (INSW) ;16位传送 输出 MOV DX,PORT LDS SI,BUFFER_OUT OUTSB ;8位传送 (OUTSW) ;16位传送 这 里 的 输 入 / 输 出 是 对 RAM 而 言 的 。 在 INS 和 OUTS 指令前加上重复前缀 REP,则可实现 I/O设 备与RAM之间成批数据的传输。 3.C语言中的端口读/写函数 C语言中的几个库函数就是为端口读写设置的, 这些库函数实际上是调用了汇编的IN/OUT指令。 在接口设计中,常用到的Turbo C函数如下: inportb( ) outport( ) clrscr( ) getch( ) kbhit( ) delay( ) sound( ) C语言中的端口读/写函数举例 【例】 利用inportb( )函数从指定的输入端口2F0H 读取一个字节的数据,4166am备用网址并显示在屏幕上。 Inportb( )的原型为:inport(int port),头文件为dos.h main( ) { unsigned char c; c=inport(0x2f0); printf(“data=%0x”,c); } 【例】 将一个字节输出到输出端口360H。 outport( )的原型: void outportb(int port,unsigned char value); 头文件为dos.h 程序: main( ) { outport(0x360,0x55);} 4. Win98下VC(Visual C++)程序 一是在C源程序中嵌入汇编代码: … _asm { mov dx,264h mov al,100 out dx,al } … 第二种方法是调用函数 _inp 和 _outp ,前者用来 读字节型端口的数据,后者将数据输出到字节型 端口。 5.Win2K下VC++与VB 在Windows 2000环境下,要和端口打交 道,必须编写相应的设备驱动程序。 在将编好的设备驱动程序安装之后: VC++ 源程序中对 I/O 端口最直接的访问是 调 用 控 制 I/O 操 作 的 API 函 数 (DeviceIoControl); VB本身不支持对I/O端口的访问,可以编写 动态链接库的方法,使其能实现对 I/O端口 的访问。 3.1.4 I/O端口地址分配 不同的微机系统对I/O端口地址的分配是 不同的。 PC/XT 和 PC/AT 系统提供了 A0~A9 这 10 位地址线作为 I/O端口地址,总共 1024个端 口。其中,前256个端口(000~0FFH)供系统 板上的I/O接口芯片使用;后756(100~3FFH) 为扩展槽上的I/O接口控制卡使用。 系统主板上I/O接口芯片的端口地址 I/O扩展槽上接口控制卡的端口地址 选I/O端口地址时注意问题 (1)凡是已被系统配置所占用的地址一律不 能使用。 (2)原则上讲,未被占用的地址用户可以使 用,但对计算机厂家申明保留的地址,不 要使用,否则,会发生 I/O端口地址重叠和 冲突造成你开发的产品与系统不兼容而失 去使用价值。 (3)一般用户可使用300~31FH地址。在用 户可用的 I/O地址范围内,为了避免与其他 用户开发的插板发生地址冲突,最好采用 地址开关。 3.2 I/O端口地址译码 3.2.1 I/O端口地址译码方法 3.2.2 固定式端口地址译码 3.2.3 开关式可选端口地址译码 3.2.1 I/O端口地址译码方法 I/O 端口地址译码的方法,通常是由地址信号 和控制信号的不同组合来选择端口地址。 一般把地址信号分为两部分: 1、高位地址线与CPU或总线的控制信号组合,经 过译码电路产生一个片选信号去选择某个I/O接口 芯片,从而实现接口芯片的片间寻址; 2 、低位地址线直接连到 I/O 接口芯片,经过接口 芯片内部的地址译码电路来选择该接口电路的某 个寄存器端口,即实现接口芯片的片内寻址。 I/O端口地址译码相关信号 I/O地址译码电路: 用A0~A910根地址线对端口地址范围限定 利用IOR、IOW信号控制对端口的读写。 用AEN信号控制非DMA传送。 用I/O CS16信号控制是8位还是16位的I/O端口 用 SBHE (或 BHE )信号控制端口奇偶地址。 3.2.2 固定式端口地址译码 所谓 固定译码 是指接口中用到的端口地 址不能更改。 一般接口卡中大部分都采用固定式译码。 (1)用门电路进行端口地址译码 (2)用译码器进行端口地址译码 门电路-2F8H端口读译码电路 门电路-2E2H端口读写译码电路 3-8译码器74LS138的真值表 PC/XT系统板上的端口地址译码电路 3.2.3 开关式可选端口地址译码 使用开关式端口地址译码的优点: ? 适应不同的地址分配方法 ? 便于系统以后的扩充 电路结构形式: (1)用比较器和地址开关进行地址译码 (2)使用跳线 GAL器件应用 3.3.1 GAL器件的特点 3.3.2 GAL器件的开发过程及工具 3.3.3 采用 GAL 的 I/O 地址译码电路的设 计 3.3.1 GAL器件的特点 可编程逻辑器件 PLD ( Programmable Logic Device ) , 专 用 集 成 电 路 ASIC ( Application Specific Integrated Circuit)中的一个重要分支。 灵活的现场可编程特性,较高的功能集成度 和较快的速度。简化了电路设计,降低了成本, 提高了系统的可靠性和保密性,而且对数字系统 的设计方法带来了革命性的变化。 应 用 较 多 的 PLD 器 件 有 GAL(Generic Array Logic , 通 用 阵 列 逻 辑 ) , EPLD(Erasable Programmable Logic Device) 和 FPGA(Field Programmable Gate Array)。 1.GAL的基本结构 GAL 主 要 是 由 可 编 程 的与阵列、固定(不可编 程)的或阵列、可编程的 输出逻辑宏单元( OLMC ) 三部分电路组成。 GAL 是 利 用 EEPROM 浮栅技术制成的器件。 ( 1 ) GAL16V8 的 1~9 和 11 引脚固定作输入使用, 13~18 也可以配置成输入引脚,因此输入最多可 为 16 个。 GAL16V8 最多可配置 8 个输出逻辑宏单 元(OLMC12-OLMC19)。 ( 2 ) GAL16V8 的与阵列有 64 条行线 条列输入 线 个阵列块。每个阵列块有 8 条行 线系列器件的OLMC共有3种工作模式, 它们是寄存器模式、复杂模式、简单模式。 (4)行线是与门的输入线,列输入线是输入信号提 供线。与门输出的乘积项由行线和列输入线交叉 点处的可编程单元的编程情况决定。 ( 5 ) 1 号引脚( I/CLK )经一级缓冲器引至 OLMC 的CK端和OLMC19的M端。 2. GAL的特点 (1)实现多种逻辑功能,它可以实现组合逻辑电路 和时序逻辑电路的多种功能。经过编程可以构成 多种门电路触发器、寄存器、计数器、比较器、 译码器、多路开关或控制器等。使系统缩小体积, 提高可靠性,并简化了印刷电路板的设计。 (2)采用电擦除工艺,门阵列的每个单元可以反复 改写(至少100次)。 (3)具有硬件加密单元,可以防止抄袭电路设计和 非法复制。 (4)速度高而功耗低。 3.3.2 GAL器件的开发过程及工具 必须借助GAL的开发软件和硬件(编程 写入器,统称为编辑器)以及计算机,对 其编程写入后,才能使空白的 GAL 芯片具 有预期的逻辑功能。 由GAL的阵列结构决定,除了对GAL的 与阵列需要编程外,还需要对其结构控制 字阵列、用户标签阵列、整体擦除位、加 密位等进行编程。 1.PLD(GAL)开发工具 PLD开发系统主要由两部分组成: 硬件,微机计算机及编程器; PLD开发软件。 常用的HDL语言有ABEL、VHDL等。 设计方法: 逻辑方程(布尔方程)、线.PLD(GAL)器件设计的一般步骤 (1)设计构思。即用真值表、逻辑方法和状态图这 三种方法中的任一种,将所要设计的问题变为设 计文件。 (2)选择器件型号。根据设计文件的要求,选择合 适的工业器件型号,要考虑到输入、输出的引脚 数目,是组合逻辑器件还是时序逻辑器件等。 ( 3 )将设计文件按照所应用的 HDL 语言的要求, 写成源文件,然后上机编译、仿线)编程器编程。将生成的编程文件下载到编程器, 对器件编程。此处的编程器件是最终所使用的器 件,如GAL16V8、GAL20V8等。 3.采用逻辑方程的设计方法 逻辑方程也叫布尔方程。它是在逻辑表 达式的基础上以方程式的形式列写了逻辑 函数的输入变量与输出变量之间的逻辑关 系。 在采用逻辑方程的设计方法时,又采用 了一些高级设计语言所能接受的语句,将 逻辑方程加以简化,使其形成了一套简炼 的设计方程。 设计时注意问题 (1)逻辑方程分为两种:非时钟控制的组合输出方 程和时钟控制的状态输出方程。组合输出方程用 等号“=”连接,而状态输出方程则用“:=”连接。 例: F=ABC 为组合逻辑输出方程,其中 A , B , C 是输入 变量, F 是输出变量;而 F : ABC 是状态输出方程,也简 称为状态方程。当输入变量A,B,C状态改变后,只有时 钟信号作用后F才改变。 (2)在方程式中的元素,既可以是输入的单个变量, 也可以是一个用标识符所代表的集合。 设计时注意问题(续) (3)在采用逻辑方程时,允许使用语句: IF…THEN…;ELSE…。 IF后面的内容是逻辑方程实施的条件,一般为工 作状态的控制信息,当用表达式列写时要用小括 号括起来。THEN和ELSE后面是输出方程或状态 方程。“ELSE…;”是语句的转移部分,没有转 移时可以不用。 例:IF( A=1) THEN Q: =B; ELSE Q: =C; 其含义是当A=1时,Q在时钟作用下转换为状态B; A#1时Q在时钟作用下转换为状态C。 4.ABEL语言的源文件及特点 ABEL 语言是美国 DATA I/O 公司开发的一种 逻辑设计软件,它具有如下特点: (1)语言适用与各种型号的PLD器件。 (2)语言本身高度结构化。 (3)逻辑描述的形式灵活多样,可用高级布尔方程、 真值表与状态图三种方法输入。 (4)具有仿真和测试的测试向量。 (5)具有有效的宏指令及指示。 ABEL 源文件是设计者按 ABEL 语言编写的设 计文件,文件中包含了器件及逻辑设计的全部描 述。 ABEL 源文件是有若干个相互独立的模块组 成的,每个模块又具有自己特定的语法结构。 ABEL源文件 module… 模块开始 flag’… …’ 标记 title’… …’ 标题 ”name DEVICE’device type’; 说明使用的工业器件型号 …device’… …’; ”pin and node declarations 引脚和节点定义 ”names PIN pin #s; ”names NODE node #s; … …pin… …; … …pin… …; ”constant declarations 常量说明 H,L,X=1,0, · X· ; … …=….… .; equations 布尔方程 ”name=expression; …=…; enable…=…; …=…; test-vectors 向量测试 ”inputs outputs ([… …]-[… ….]) … …. end… 3.3.3 采用GAL的I/O地址译码电路设计 在使用GAL设计地址译码器时应注意以下几点: 一是根据选定的 GAL 器件,根据 ABEL 源文件的结 构、格式及要求实现的逻辑功能,编写出 ABEL 源文件; 二是利用ABEL软件,4166am备用网址对ABEL文件进行编译、化简、 仿真等,最后生成JED编程器下载文件; 三是利用编程器把 JED文件写入(烧入) GAL器件 中。 例GAL设计,实现对端口2F0H的读/写控制 输入: 10条地址线条控 制线IOR、IOW、AEN 输出: 端口2F0H的读控制信号 R2F0和写控制信号W2F0 选用GAL16V8,R2F0 、W2F0 的逻辑表达式如下描述: R2F0=A9.A8.A7.A6.A5.A4.A3.A2.A1.A0.IOR.AEN W2F0=A9.A8.A7.A6.A5.A4.A3.A2.A1.A0.IOW.AEN 例题ABEL源文件 modul -decoder title’address decoder for port 2f0h’ decoder device ‘P16V8C’; X,C,L,H = · X· ,· C· ,0,1; A0,A1,A2,A3,A4,A5,A6 pin 1,2,3,4,5,6,7; A7,A8,A9,AEN,IOR,IOW pin 8,9,11,13,14,15; W2f0,R2f0 pin 18,19; Add=[A9,A8,A7,A6,A5,A4,A3,A2,A1,A0]; ”R2F0=2f0h*/IOR*/AEN ”W2F0=2f0h*/IOW*/AEN equations !R2F0=A9&!A8&A7&A6&A5&A4&!A3&!A2&!A1&!A0&!AEN !W2F0=A9&!A8&A7&A6&A5&A4&!A3&!A2&!A1&A0&!AEN end-decoder 其中,文件中的P16V8C为工业器件型号, 符号“&”为逻辑与运算符,“!”为逻辑非运算符。 GAL的开发及使用中应注意的问题 (1)建立,编译用户源文件 (2)器件编程 ①在专用的软件系统环境下,启动编程器,使计算机和编 程器进行通信,将JEDEC数据文件下载到编程器上。 ②选择目标器件的制造厂家、型号进行器件匹配。 ③将 GAL器件插入插座并锁紧,这一步必须注意芯片引脚 序号与插座引脚号要对应,否则器件可能被毁坏。 ④下载编程,即将下载到编程器上的 JEDEC 数据文件写入 到GAL芯片中。 (3)功能验证 (4)GAL器件的供电电源要加去耦电容 (5)GAL器件不用端, 一律要求接地或接VCC (6)充分利用内部反馈 (7)防止I/O引脚过压 (8)保证GAL输入引脚的信号上升沿和下降沿 (9)必须严格遵循GAL电源的最大上升时间规定 (10)注意GAL输入端参数对外电路的影响 (11)修改GAL逻辑设计 (12)选用合适的GAL编程写入器 (13)解决乘积项不足的问题 (14)GAL的上电复位,实际功能验证 3.4 半导体存储器接口 3.4.1 3.4.2 3.4.3 3.4.4 半导体存储器接口的基本技术 SRAM与CPU的连接 DRAM与CPU的连接 ROM与CPU的连接 3.4.1 半导体存储器接口的基本技术 存储器与CPU的连接: 1.信号线连接要求 CPU与存储器的连接是指地址线、数据线.地址分配要求 针对存储器地址的分配,要知道哪些地址区域需要 ROM,哪些区域需要RAM,即在具体电路中需要明确地 址译码与片选信号的产生。 3.驱动能力考虑,是否需要加缓冲器 外部译码电路的三种译码方法 (1)线性选择法: 直接用CPU地址总线中的某一高位线作为存储器芯片 的片选信号。连接简单;易出现地址的不连续和多义性且 寻址能力有限 (2)部分译码法 用部分高位地址进行译码产生片选信号 (3)全译码法: 将高位地址全部作为译码器输入,用译码器的输出作 为片选信号 线性选择法 例:某一计算机共有16条地址线KB的ROM,字选线作片选,则地址范围为图中的第一组; 当用A11作片选时,地址范围如图中的第二组。 部分译码法 采 用 6116 存 储 器 芯 片 ( 2K×8 ) 实现8KB存储器 全译码法 12KB存储系统: ? 低8KB为EPROM 两片2732A(4KB×8位)芯片组成 地址范围为0000H ~ 1FFFH A0~A11作片内字选,A12~A15作片选 ? 高4KB为RAM 两片6116(2KB×8位)芯片组成 地址范围为2000H ~ 2FFFH A0~A10作片内字选,A11~A15作片选 全译码法例图 3.4.2 SRAM与CPU的连接 通常一片存储器芯片的存储容量不可能正 好是CPU的内存寻址范围。 1.位扩展,对数据线.字扩展,对地址线.字扩展 典 型 的 8KB×8 的 SRAM 芯 片 6264 , 有 数 据 线 , 内 部 主 要 包 括 256×256 的存储器矩阵、行列 地址译码器以及数据 输入输出控制逻辑电 路。 6264 6264SRAM构成16KB存储器 3.4.3 DRAM与CPU的连接 64KB×1的DRAM芯片4164 A7~A0:地址输入; DIN: 数据输入线; DOUT: 数据输出线; RAS:行地址选通,该信号有 效,地址线输入行地址; CAS:列地址选通,该信号有 效,地址线 WE: 写信号,当芯片选中时, 低电平表示写状态,高电 平表示读状态。 4164芯片的内部结构图 构成DRAM存储器系统考虑问题 (1)DRAM芯片的地址是行地址、列地址分 时输入的; (2)DRAM有刷新要求。 DRAM与CPU的接口电路 3.4.4 ROM与CPU的连接 ROM包括掩膜式只读存储 器、一次性编程 ROM 、可多 次擦写的 ROM 、闪存、铁电 存储器(FRAM)等。 27128 是一种 16KB×8 的紫 外线可改写只读存储器芯片 , 与 SRAM 相比,具有编程逻辑 电路而没有一般写控制电路。 27128 PC/XT的ROM系统控制电路图 译码器管理的存储器地址 习题与思考题 1.试比较两种端口地址编址方式各自的有缺点。 2 .试用比较器和地址开关设计 8 个读写端口地址的 译码电路,要求在A9=1、AEN=0时译码有效。 3.GAL器件有哪些特点?有何优点进行I/O地址译码? 开发一个I/O地址译码电路的步骤和方法如何? 4 .若用 4KB×1 的 RAM 芯片组成 8KB×8 的存储器,需 要多少芯片? A0-A19 地址线中的那些参与片内寻 址?那些用做芯片组的片选信号? 5 .请设计一个 12KB 存储容量的存储系统,其中低 8KB 为 ROM 区域 (地址范围 4000 ~ 5FFFH ),采用 EPROM 2732芯片构成;高4KB为 RAM区域(地址范 围6000~6FFFH),采用6116 芯片构成。

网友评论

我的2016年度评论盘点
还没有评论,快来抢沙发吧!