




已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章地址译码技术及存储器接口,3.1I/O端口编址方式3.2I/O端口地址译码3.3半导体存储器接口,学习目的,通过对本章的学习,您应该能够达到下列要求:描述端口的编址方式说明端口地址译码的作用端口地址译码电路的设计重点与难点存储器地址译码电路的设计,3.1I/O端口,3.1.1.概述I/O端口:是微处理器与输入输出设备直接通信的寄存器或某些特定的器件。一个接口可以有多个端口,如命令端口、状态端口和数据端口等。I/O操作:CPU对I/O接口电路(与设备相关)的操作.不是访问I/O设备.,计算机给接口电路中的每个寄存器分配一个端口,因此,CPU在访问这些寄存器时,只需指明它们的端口,不需指出是什么寄存器。CPU对数据端口进行一次读或写操作,也就是与该接口连接的外设进行一次数据传输CPU对状态端口进行一次读操作,就可以获得外设或接口自身的状态代码CPU把若干位控制代码写入控制端口,则意味着对该接口或外设发出一个控制命令,要求该接口或外设按规定的要求工作,3.1I/O端口,3.2.2.端口编址方式CPU寻址外设有两种方式:端口地址和存储器地址统一编址,也称存储器映射方式I/O端口地址和存储器地址分开独立编址,也称I/O映射方式,统一编址方式,从存储器空间划出一部分地址空间给I/O设备,把I/O接口中的端口当作存储器单元一样进行访问,不设置专门的I/O指令优点:访问I/O端口可实现输入/输出操作,还可以对端口内容进行算术逻辑运算、移位等等;能给端口有较大的编址空间,这对大型控制系统和数据通信系统是很有意义的;缺点:端口占用了存储器的地址空间,使存储器容量减小;指令长度比专门I/O指令要长,因而执行速度较慢;,独立编址方式,I/O端口地址空间和存储器地址空间是独立的、分开的,即I/O端口地址不占用存储器地址空间。优点I/O端口地址不占用存储器空间;使用专门的I/O指令对端口进行操作,I/O指令短、执行速度快;并且由于专门I/O指令与存储器访问指令有明显的区别,使程序中I/O操作和存储器操作层次清晰,程序的可读性强。缺点这种编址方式中,微处理器对存储器及I/O端口是采用不同的控制线进行选择的,因而接口电路比较复杂。,3.1.3I/O端口访问指令,80 x86CPU构成的计算机,其CPU外围接口芯片及I/O接口部件皆采用独立编址方式,采用IN和OUT指令实现数据的输入和输出操作。1)8086/8088采用I/O端口与累加器传送数据。若端口地址在0FFH范围内,则用直接寻址INAL,端口地址(输入)OUT端口地址,AL(输出)执行的操作为:(AL)(PORT)(字节操作)(AX)(PORT+1,PORT)(字操作)如:INAL,20HOUT80H,AXOUT84H,AL,3.1.3I/O端口访问指令,若端口地址在0100FFFFH范围内,则用DX间接寻址:MOVDX,端口地址INAL,DXOUTDX,AL如:MOVDX,300HINAL,DX,3.1.3I/O端口访问指令,2)80286和80386还支持I/O端口直接与RAM之间传送数据。输入:MOVDX,PORTLESDI,BUFFER_ININSB(INSW)输出:MOVDX,PORTLESSI,BUFFER_OUTOUTSB(OUTSW),3.1.3I/O端口访问指令,3)c语言中的端口读写函数4)VC+程序,3.1.4.I/O端口地址分配,IBMPC/XTI/O端口地址分配图,3.2I/O端口地址译码,3.2.1.I/O端口地址译码方法端口地址译码:就是把地址信号与控制信号进行逻辑组合,产生对芯片的选择信号.例:用BHE信号控制奇偶地址用AEN信号控制非DMA传送,AEN=1,CPU掌管总线,可以进行I/O端口访问.用IOR和IOW控制读写用I/OCS16来控制是8位还是16位在设计地址译码电路时,除了要精心选择地址范围外,还有根据CPU与I/O端口交换数据时的数据流向(读/写)、数据宽度(8位/16位)以及是否采用奇偶地址的要求来引入相应的控制信号,从而形成地址译码电路。各个外设本身都有一个控制信号,如片选信号CS,低电平有效。,AEN是DMA控制器的地址锁存输出,3.2.2.固定式端口地址译码,由地址信号和控制信号的不同组合来选择端口把地址信号分为两部分:一部分是高位地址线与CPU或总线的控制信号组合,经过地址译码电路产生片选信号CS以选择某个I/O接口芯片,从而实现接口芯片的片间寻址;另一部分是地位地址线直接连至I/O接口芯片,经过芯片内部的地址译码电路来选择某个寄存器接口,及时性接口芯片的片内选择。所谓固定式端口地址译码是指接口中用到的端口地址不能更改。一般的接口卡中大都采用固定式端口地址译码。,3.2.2.固定式端口地址译码,(1)用门电路进行端口地址译码这是一种最简单、最基本的端口地址译码电力,一般采用与门、与非门、反相器及或门等实现,如74LS08/32/30等。例3-1:用74LS20/30/32和74LS04设计端口地址为2E2的只读译码电路1)分析:地址线的状态如:00A9A8A7A6A5A4A3A2A1A00010111000102E22)设计:了解器件外部特性,作设计图,端口地址为2E2H的译码电路,Y(读)Y(写),001011100010,例3-3,例3-3使用74LS20/30/32和74LS04设计I/O端口地址为3D8H的只读译码电路。若要产生3D8H端口地址,则译码电路的输入地址线就应具有如表3-1所示的值。,表3-1译码电路输入地址线的值,例3-3设计,按照表3-1中地址线的值,采用门电路就可以设计出译码电路,如图3-2所示。,图3-2简单译码电路,(2)译码器译码,若接口电路中需使用多个端口地址,则采用译码器译码比较方便。译码器的型号很多,如38译码器74LS138;416译码器74LS154;双24译码器74LS139、74LS155等。这些译码器通常由三个部分组成:译码控制端,选择输入端,译码输出端。,地址范围:00001FH02003FH0E00FFH,用译码器进行端口地址译码,表4-274LS138的真值表,当G1=1、G2A+G2B=0时,译码器处于工作状态,否则译码器被禁止,所有的输出端被封锁在高电平。这三个控制端也叫片选输入端,利用片选的作用可以将多片连接起来以扩展译码器的功能。,74LS138,3.2.3.开关式可选端口地址译码,这种地址译码方式可以通过开关使接口卡的I/0端口地址根据也要求加以改变而无须更改电路。(1)用比较器和地址开关进行地址译码将比较器的A(或B)输入端输入地址信号,B(或A)端接一组DIP(DualIn-linePackage)开关。地址总线所送的地址与DIP所设置的地址相等时,产生一选通信号输出。特点:可以通过改变DIP开关的设置,很容易地改变接口的地址。不但同一功能的模块在不同微型计算机应用中可以被分配不同的地址,而且即使在同一微型计算机系统中,也可通过改变DIP开关的设置而控制不同的设备.。这种译码电路应用非常广泛,常用的比较器有四位比较器74LS85和八位比较器74LS688。,使用比较器+地址开关译码,图3-4由比较器组成的可选式译码电路,图3-4所示为由比较器74LS688与3-8译码器组成的I/O芯片地址可选的译码电路。8位比较器74LS688对两组8位的输入端P0P7和Q0Q7信号进行比较。其比较规则为:当P0P7Q0Q7时,P=1,输出高电平;当P0P7=Q0Q7时,P=0,输出低电平。,应用时,可将P0P7与地址线及控制线相连,Q0Q7连接地址开关,而将比较器输出端P接到74LS138的控制端,如G2A上。根据比较器的特性,当输入端P0P7的地址与输入端Q0Q7的开关状态一致时,输出为低电平,打开译码器74LS138允许进行译码。因此,使用时可预置微型拨动开关DIP为某一值,得到一组所要求的口地址。图中让IOW和IOR信号参加译码,可分别产生8个读或写的端口地址。从图中连线可以看出,仅当A9=1(因Q6接+5V),AEN=0(因Q7接地)才使译码有效。,四位比较器译码电路,本章主要介绍端口地址译码电路的设计方法.,1.I/O端口:是接口电路中CPU能访问的寄存器的地址.2.端口编址方式CPU寻址外设有两种方式:将存储器与外设端口统一编址外设端口单独编址3.译码电路的设计1).固定式译码2).IBMPC/XTI/O端口地址译码方法,3.3GAL器件在I/O地址译码电路中的应用,3.3.1GAL器件的特点可编程逻辑器件(PLD)应用较多的有GAL(通用阵列逻辑)器件。1.GAL的基本结构主要由可编程的与阵列、固定(不可编程)的或阵列、可编程的输出宏阵列单元(OLMC)3部分电路组成。,2.GAL的特点GAL(GenericArrayLogic)是美国LATTICE公司80年代提出的可编程逻辑器件PLD。(1)实现多种逻辑功能。它可以实现组合逻辑电路和时序逻辑电路的多种功能。经过编程可以构成多种门电路触发器、寄存器、计数器、比较器、译码器、多路开关或控制器等,代替常用的54系列和74系列的TTL器件或CD4000系列的CMOS芯片。据统计,一个GAL器件在功能上可以代替412个中小规模集成芯片,从而使系统缩小体积,提高可靠性,简化了印刷电路板的设计。(2)采用电擦除工艺,门阵列的每个单元可以反复改写(至少100次),因此整个器件的逻辑功能可以重新配置,所以它是产品开发研制中的理想工具。(3)具有硬件加密功能,可以防止抄袭电路和非法复制。(4)速度高且功耗低,具有高速电擦写能力,改写整个芯片只需数秒,而功耗只有双极型逻辑器件的1/2或1/4,缓解了温度升高的问题。,3.3.2GAL的开发过程和工具,1、开发工具硬件工具:编程器EXPRO-4、ALL-03、ALL-07软件工具:编译型CUPL、ABEL及汇编型FM。2、设计的一般步骤1)设计构思2)选择器件的型号3)将设计文件按照硬件描述语言的要求写成源文件,然后再计算机上进行编译、仿真和测试。4)编程器编程。,3.3.2GAL的开发过程和工具,3.采用逻辑方程的设计方法逻辑方程(或布尔方程),是指逻辑表达式的基础上以方程式的形式列出逻辑函数的输入变量和输出变量之间的逻辑关系。在采用逻辑方程设计时,还可以采用高级语言所能接受的一些语句将逻辑方程加以简化,形成一套简练的设计方程。,3.3.2GAL的开发过程和工具,4.ABEL语言的源文件及特点1)适应于各种型号的PLD。2)语言本身高度结构化3)逻辑描述的形式灵活多样,可用逻辑方程、真值表与状态图3种方法输入。4)具有用于仿真和测试的测试向量。5)具有有效的宏指令及指示。,3.3.3采用GAL的I/O端口地址译码电路设计,1、要求利用GAL器件设计MFID多功能微机接口实验平台的I/O端口地址译码电路,地址范围300H-3FFH,分成16段,每段包含接口4片,每个接口拥有4个端口。2、分析1)地址线的分配与使用最高两位地址线A9=A8=1,其次,分成16段,由A7A6A5A4四位地址线组合实现段选,每段包含4片,用A3A2实现片选,每片有4个端口,用A1A0直接寻址端口。2)参加译码的控制线IOW、IOR、AEN,3)GAL器件的选择除A1A0外,其余地址线A7-A4经DIP开关和比较器进行段选,比较器输出线只有一根A=B,送到GAL输入线为A9、A8、A-B、A3、A2,三根控制线,共有8根。GAL输出线有四根片选Y0、Y1、Y2、Y3,一根LS245选通线DS,一根方向控制线DIR,所以可选GAL16V8。4)GAL16V8输入脚8个(2-9),输出脚8个(12-19),时钟脚1脚,输出允许11脚,输出12-19可配置成输入,因此最多有16个输入。,3、设计1)硬件设计DS线控制245的E端,DIR控制245的传送方向,Y0-Y3作为平台上4个接口的片选。电路如图2-11。2)软件设计编些输入源文件,产生.JED文件,然后写到GAL中。,4、GAL器件译码电路的编程1)编写GAL输入源文件GAL16V8ADDRESSDECODERXH2/24/2001DECODERNCA9A8A3A2IORIOWAENABGNDNCDSDIRNCNCY0Y1Y2Y3VCC/DS=A9*A8*/AEN*AB*/IOR+A9*A8*/AEN*AB*/IOWDIR=IOR/Y0=A9*A8*/AEN*AB*/A3*/A2*/IOR+A9*A8*/AEN*AB*/A3*/A2*/IOW/Y1=A9*A8*/AEN*AB*/A3*A2*/IOR+A9*A8*/AEN*AB*/A3*A2*/IOW/Y2=A9*A8*/AEN*AB*A3*/A2*/IOR+A9*A8*/AEN*AB*A3*0A2*/IOW/Y3=A9*A8*/AEN*AB*A3*A2*/IOR+A9*A8*/AEN*AB*A3*A2*/IOWDESCRIPTION,2)利用FM.EXE文件对DECODER.PLD进行汇编,自动生成三个文件。文件1:DECODER.LST文档文件,包括源文件和16V8引脚图;文件2:DECODER.PLT熔丝状态分布图文件。符号“X”表示16V8内部门陈列节点上已连接,符号“-”表示未连接。文件3:DECODER.JED文件。包括门陈列中所有节点的编程信息。其中“0”表示节点已连接,“1”为未连接。3)使用ALL03编程器将DECODER.JED写入GAL16V8中。,3.4半导体存储器接口,存储器是用来存储信息的部件.存储器的三级结构:,3.4.1半导体存储器接口的基本技术,一.信号线连接要求:CPU对存储器的读写操作首先是向地址线发送信号,然后向控制线发读写信号,最后在数据线上传送信息。CPU与存储器的连接就是指地址线、数据线和控制线的连接数据线的连接:通常系统的数据总线与存储器的数据相连。地址线的连接:存储器与CPU地址总线的连接必须满足对芯片所分配的地址范围的要求。分为片选和字选。控制线的连接:系统控制线的读写控制需要与存储器芯片的控制线相连。,几种外部译码电路,1.存储器的片选信号译码1)线性选择法:从高位选择4条地址线2)全译码法:高位全部参加译码3)部分译码:高位地址线部分参加译码2.地址译码电路设计例1:要求:用1K(例如Intel2114)的RAM芯片,组成4K的RAM系统,cpu寻址空间64K(16条地址线),要求:(1)确定芯片组数:4片(2)片内译码:低位10条地址线(3)片选信号的译码方式?,1)线性选则法,优点:连接方式简单,片选信号的产生不需要复杂的逻辑电路。缺点:1)地址不连续2)地址可能重叠(地址的多义性),(1)确定芯片组数:8片(2)片内译码:低位10条地址线(3)片选信号的译码方式?,2)部分译码例:用8K的RAM芯片,组成32K的RAM系统,CPU寻址空间64K(16条地址线)。,高位地址不参加译码,部分译码法结构示意图,3)全译码法:全部高位地址线参与译码,以译码器的输出作为片选信号。例:用8K的RAM芯片,组成64K的RAM系统,CPU寻址空间64K(16条地址线),特点:地址唯一,不重叠地址连续,(1)芯片数:8片(2)片内译码:13条地址线(3)片选信号的译码方式?,图4-5全译码结构示意图,二、地址分配要求ROM:用于存放系统监控程序等固化程序及常数RAM分为系统区和用户区。系统区是监控程序或操作系统存放数据的区域;用户区分为程序区和数据区两部分。8086CPU,根据其特性,高地址区域是ROM区域;低地址区域为RAM系统区,用于存放中断向量表等信息。,三、驱动能力存储器芯片与CPU连接过程中,需要充分考虑CPU外接多少存储器芯片及CPU与存储器芯片之间的物理距离等因素。现在的存储器芯片都采用CMOS电路,直流负载很小,主要的复杂是电容负载。在小型的系统中,CPU可与存储器芯片直接相连.在较大的系统中,就要考虑CPU是否需要加缓冲器,有缓冲器的输出带负载。,3.4.2SRAM与CPU的连接,SRAM:静态RAM,6264是一个典型的8KB8的SRAM芯片。单片RAM不能满足存储容量的时候,可以把多个RAM进行组合,扩展成大容量存储器。对数据线的扩展:多个存储器的组合为了满足CPU数据线宽度的需要对地址线的扩展:为了给CPU提供更大的存储空间。,3.4.2SRAM与CPU的连接,1、位扩展,位并联法(位扩展法)假设使用8K1位的RAM存储芯片,那么,组成8K8位的存储器,此时只加大字长。图中,每一片RAM是8K1位=2131位,故其地址线为13条(A0A12),每一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论