32位微型计算机接口技术及应用 第四章基于微处理器的微机系统的硬件结构Word格式文档下载.docx
《32位微型计算机接口技术及应用 第四章基于微处理器的微机系统的硬件结构Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《32位微型计算机接口技术及应用 第四章基于微处理器的微机系统的硬件结构Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
4.1微处理器
4.1.1微处理器在微机系统中的作用
微机系统的核心是微处理器,它是微机系统的控制单元,也称为中央处理器CPU。
如图4.1所示,微处理器通过总线来连接存储器系统和I/O系统,通过执行存储在存储器中的指令,实现对存储器和I/O的访问与控制。
微处理器在微机系统中的主要工作有:
在微处理器与存储器或者I/O之间传输数据;
进行简单的算术和逻辑运算;
通过简单的逻辑判定,控制程序的流向。
微处理器正是通过这样一系列看似简单的工作,来完成很复杂的操作或任务的。
32位微处理器家族,已拥有从iA80386开始到现在的Pentium一大批成员,其功能越来越强,处理速度越来越高。
但它们的基本功能和对存储器空间及I/O空间的支持差别不大,所以.有时把iA80386作为32位微处理器的一个实例进行讨论。
由于不同微处理器内部结构的差异和所采用的新技术不同,所以微处理器的硬件兼容性不像软件兼容性那样强。
4.1.2微处理器的外部特性
微处理器的外部特性体现在它的信号线引脚上,32位微处理器的基本信号引脚,按功能及所连接的对象不同,可划分成4组,分别叫做存储器及I/O接口信号、中断接口信号、DMA接口信号和协处理器接口信号,如图4.2所示。
值得指出的是,从80386到Pentium的外部引脚在数量上越来越多,但对用户来说,更感兴趣的还是微处理器面向存储器和I/O设备的有关信号引脚。
图4.2所示的引脚显然是作了简化之后的基本信号引脚。
上述各信号线的名称、功能、I/O及有效电平如表4.1所示。
4.1.3微处理器面向存储器和I/O的接口信号
微处理器面向存储器和I/O的接口信号,包括地址、数据和控制信号。
1.地址信号线
(1)A0和A1不出现在地址线上
在实模式下,地址线A2~A19有效;
在保护模式下,地址线A2~A31有效。
但是,实际上,实模式的地址长度有20位,保护模式的地址长度有32位。
那么,还有两位地址线A0和A1到哪里去了?
原来这两位地址被微处理器内部译码,与数据传输的字节数(数据宽度)一起产生字节允许信号BE0,BE1,BE2,BE3,用以支持按4个独立的字节宽度的存储体(Bank0~Bank3)来组织32位存储器地址空间和I/O地址空间了。
对32位微处理器来说,地址信导线就是A2~A31它们用于传输从微处理器到存储器和I/0设备的地址信息。
(2)CPU与存储器之间的地址线
在实模式下,20位地址给出了微处理器寻址1MB物理地址空间的能力。
在寻址时,需要使用地址线A2~A19和字节允许线BE0~BE3。
在保护模式下,32位地址可以寻址4GB的物理地址空间。
在寻址时,需要使用地址线A2~A31和字节允许线BE0~BE3。
另外,在保护模式下,通过软件提供的虚拟地址,可以寻址64TB的虚拟存储地址空间。
(3)CPU与I/O之间的地址线
无论是在实模式下还是在保护模式下,32位微处理器均具有独立的64KB的I/O地址空间。
所以,在寻址I/O设备时,只需要使用地址线A2~A15和字节允许线BE0~BE3。
(4)存储器地址线与I/O地址线的区分
微处理器的地址信号线既连接到存储器,又连接到I/O设备接口芯片,那么,如何来识别从微处理器送出的地址信号是发给存储器的还是发给I/O设备的?
为此,微处理器设置了信号M/IO作为存储器与I/O的指示,用以通知外部电路当前在地址总线上出现的地址信号是给存储器的还是给I/O设备的,即当M/IO=l时,表明是存储器总线周期,地址信号发给存储器;
当M/IO=0时,表明是I/O总线周期.地址信号发给I/O设备。
2.数据信号线
(1)32位微处理器的数据总线
32位微处理器的数据总线由32条数据线D0~D31构成,D31为最高位,D0为最低位。
微处理器通过这些数据线与存储器及I/O设备之间进行并行通信。
传输的信息有:
对存储器的读/写数据及指令,对I/O设备的输入或输出数据、命令代码及状态,以及读取来自-中断控制器的中断号等。
(2)字节允许信号在数据传输中的作用
在一个总线周期内,微处理器通过数据总线可以传输一个字节,也可以传输一个字或一个双字。
因此,微处理器必须告诉外部电路,数据将通过数据总线的哪一部分进行传输,微处理器是通过激活相应的字节允许信号BE0~BE3来做到这一点的。
其中,BE0对应于数据线D0~D7,BE1对应于数据线D8~D15,BE2对应于数据线D16~D23,BE3对应于数据线D24~D31。
如果从存储器或I/O设备读/写一个数据字节,则使用一个BE;
读/写一个数据字,使用两个BE;
读/写一个数据双字,使用4个BE字节允许信号与数据总线信号的关系如表4.2所示。
假设字节允许代码BE0BE1BE2BE3=0011,将会产生多少字节的数据宽度?
数据传输经过哪些数据线?
由表4.2可以知道,它传输一个数据字,并且是经过数据线D16~D31传输的。
3.控制信号线
(1)总线周期指示信号
总线周期指示信号是指M/IO、D/C和W/R三个信号。
总线周期指示信号并不是直接对存储器和I/O设备接口的控制信号,而是在每个总线周期开始时发出总线周期指示码,然后,在微处理器外部的总线控制逻辑电路中,对三个总线周期指示信号所组成的总线周期指示码进行译码,产生对存储器和I/O设备接口的控制信号MRDC,MWTC,IORC,IOWC。
下面先看看两个名词。
●总线周期总线周期是微处理器完成一次对存储器或I/O设备端口读/写操作的过程,因此,总线周期是处理器与外部交换数据的基本过程,并且,总线周期有不同的类型。
●总线周期类型总线周期类型是由微处理器的总线周期指示信号及有关的控制信号经过译码产生的存储器读/写信号、I/O读/写信号和中断回答信号等不同控制信号类型。
可见,总线周期指示信号与微处理器的其他的控制信号配合,才能产生对存储器和I/O设备接口的控制信号。
3个总线周期指示信号可以有8种组合,即有8种总线周期指示码来给出8种不同类型的总线周期。
总线周期指示信号与总线周期类型的关系如表4.3所示。
例如,若总线周期指示码M/IOD/CW/R=010,则将产生什么类型的总线周期?
从表4.3可以知道,总线周期指示码010表示的是一个I/O读总线周期,因而产生IORC控制信号,它从I/O设备读取数据。
(2)地址线A20屏蔽信号A20M
A20屏蔽信号使处理器把地址限制在00000000H~000FFFFFH之间,就像8086微处理器一样。
这使得存储器系统可以像8086微处理器的1MB实模式存储器系统一样工作。
当访问1MB以内的存储空间时,屏蔽地址线A20,置A20M=0;
当访问1MB以上的存储空间时.则开放地址线A20。
置A20M=1。
(3)其他控制信号
●地址状态信号ADS逻辑0有效。
当它有效时,表示总线周期指示码(M/IO,D/C,W/R)、字节允许码(BE0、BE1、BE2、BE3)及地址信号(A2~A31)全为稳定状态,表明总线周期指示码和地址信号是有效的。
●准备好信号READY逻辑0有效。
当它无效时,表示存储器或I/O设备尚未准备好,要求在当前总线周期中插入等待状态。
只有当它变为有效时,即慢速存储器或I/0设备准备好时,才允许与微处理器交换数据。
●总线封锁信号LOCK逻辑0有效。
当它有效时,封锁共享资源,以独占使用。
此信号用于支持多处理器结构。
4.1.4微处理器面向外部中断的接口信号
面向外部硬件中断的信号有两个:
可屏蔽中断请求INTR和不可屏蔽中断请求NMI。
1.可屏蔽中断请求INTR
INTR逻辑1有效。
当它有效时,表明I/O设备需要得到服务。
微处理器识别出一个有效的中断请求后,在条件允许时,启动一个中断响应总线周期,其总线周期指示码为000。
这个总线周期指示码被送到总线控制逻辑电路译码,产生一个中断响应信号INTA,通知I/O设备中断请求已得到同意,并通过数据线从外部中断控制器读取中断类型号。
这样就完成了中断请求与中断响应的握手过程。
可见中断响应信号INTA,并不是由微处理器直接发出的。
2.不可屏蔽中断请求NMI
上述可屏蔽中断请求INTR可以通过对标志寄存器的IF位置1或置0来予以允许或禁止。
而不可屏蔽中断请求NMI则不能。
只要在NMI端出现0到1的跳变,一个中断服务请求就被锁存在微处理器之内,而与IF位的状态无关。
4.1.5微处理器面向DMA的接口信号
面向外部DMA控制器的信号只有两个:
总线保持请求HOLD和总线保持响应HLDA。
当外部DMA控制器要求占用总线控制权时,它就通过HOLD信号线向微处理器或仲裁器提出申请。
在当前总线周期完成后,微处理器就进入保持状态,使总线信号处于高阻态,并通过HLDA信号线通知外部DMA控制器它已经交出了总线控制权。
这样就完成了保持请求/保持响应的握手过程。
至于DMA控制器何时要求占用总线控制权,这是由I/O设备决定的,即当I/O设备需要与存储器进行DMA方式数据传输时,由I/O设备向DMA控制器提出请求DREQ,然后才由DMA控制器向微处理器发总线保持请求HOLD,申请占用总线控制权。
4.2存储器系统
4.2.1存储器的分类
存储器是微机系统的重要组成部件和硬件资源,用于存放程序和数据。
存储器可分为主存储器和辅助存储器。
主存储器用来存储当前正在使用的信息,如正在执行的程序指令和正在处理的数据,因此要求它们的存取速度高,通常采用半导体存储器件来实现。
辅助存储器用来存储当前不正在使用的程序指令和数据,因此它们的存取速度不高,但存储容量很大,一般采用闪盘、硬盘来存放。
几乎所有的微机系统的主存储器都包括只读存储器ROM和随机存取存储器RAM(也称为可读/写存储器)。
ROM存放系统软件和永久性系统数据,而RAM存放临时数据和应用软件。
从存储器件来看,又可将存储器分为只读存储器ROM、快闪存储器EEPROM、静态随机存取SRAM和动态随机存取存储器DRAM。
1.ROM存储器
ROM存储器是将程序或数据已经写人,用户只能从中读取,故称只读存储器。
比如,系统配置的BIOS程序就是存放在ROM存储器中的,并且不会因为停电而丢失,因此.开机就可以运行其中的引导程序。
因为只读不写,故ROM存储器件只设置输出允许0E和芯片允许CE控制信号线。
当存储在ROM中的程序或数据需要改变,而又要长期保存并在关机停电后不丢失时,可采用另一种ROM,它们是EPROM和EEPROM,前者叫可控除可编程只读存储器,如2716EPROM,它通过专用的工具(编程器)可把原来写入的程序或数据擦掉,重新写入新的;
后者叫电可接除可编程只读存储器,它不需要通过专用的工具(编程器)来擦除,然后,再重写。
因此,快闪存储器与下面将要讨论的SRAM存储器的唯一区别是快闪存储器需要12V编程电压来擦除原有的数据和写新的数据。
目前,电可擦出可编程ROM发展成为新型的以读为主的存储器。
称为快闪存储器(或非易失性RAM),如28F004。
快闪存储器用于为系统存储设置信息,如计算机中的视频卡的初始化信息。
它也可能很快会取代系统中用作BIOS存储器的EPROM。
有些系统将密码存储在快闪存储器中。
2.RAM存储器
RAM存储器可以随时从中读取或向其写入程序与数据,故称随机存取存储器。
因此,RAM存储器件除设置输出允许OE和芯片允许CE控制信号线外,还需设置写允许WE信号线。
写入RAM中的信息不能永久保存,一旦关机停电就会丢失.因此,在系统中RAM用作暂存数据或程序。
RAM存储器又可分为静态SRAM和动态DRAM。
其差别在于是否要求对RAM中的信息进行定时刷新(周期性地读出或写入),静态RAM在信息写入后,不需要额外进行刷新就能维持,而动态RAM要维持写入的信息不消失,就必须不断地进行刷新,故称动态存储器。
另外,静态存储器的速度较快,但容量较小,如62256SRAM,它是一个32KX8b的静态存储器SRAM,存取时间为150ns;
动态存储器的速度较慢,但容量较大,如在Pentium微处理器使用64位DIMM存储器模块,其通常容量是128MB(16Mb×
64),256MB(32Mb×
64)。
4.2.2存储器件的外部特性
为了与微处理器连接并交换信息,存储器件一般都有以下(引脚)信号线。
●地址线(输入)用来选择存储器件中的存储单元。
地址线总是被标为从最低位A0到An,n可为任意值,但总比地址线的总数少1。
例如,一个存储器件有10根地址线,则它的地址线被标为从A0到A9。
一个存储器件的地址线根数由其中的存储单元的数目决定。
例如,一个4KB存储单元的存储器件有12根地址线(A0~A11),一个8KB存储单元的存储器件有13根地址线(A0~A12),以此类推。
一个含有1MB存储单元的存储器件需要20位地址线(A0~A19)。
●数据线(双向)用来从存储单元读取数据或向存储单元写入数据。
对于一个8位宽度的存储器件,其数据线被标为从D0~D7,称为字节宽度存储器。
以此类推,16位宽度的存储器件,其数据线被标为从D0~D15称为字宽度存储器。
32位宽度的存储器件,其数据线被标为从D0~D31,称为双字宽度存储器。
●选择线(输入)用于选择或允许存储器件芯片,称为片选CS或片允许CE。
如果CS或CE有效,则存储器件执行一次读/写操作,若无效,则存储器件被关闭,也就不能执行读/写操作。
有些存储器件有不止一个CS线,则在所有选择线都被激活的情况下,才可以读/写数据。
存储器件的选择线是由存储器地址线的高位地址经地址译码器产生的。
●控制线(输入)用来控制存储器件数据的输入或输出。
ROM与RAM的控制线稍有不同。
ROM使用输出允许OE控制信号,若OE有效,且CS有效,则允许输出;
若OE无效,则禁止输出,而呈高阻状态。
所以,在从ROM读数据时,OE必须有效。
RAM使用一条或两条控制线,使用一条控制线时就是R/W。
当R/W=l时,允许读(输入);
当R/W=0时,允许写(输出)。
因此,只有当CS有效,即存储器件被选中时,才能用控制信号R/W来实现一次存储器读操作或存储器写操作。
RAM使用两条控制线时就是WE和OE。
此处,写允许信号WE有效,且CS有效,才能执行一次存储器写操作;
同样,输出允许信号OE有效,且CS有效,才能执行一次存储器读操作。
当WE和OE两个信号同时有效或同时无效都不能进行数据的写入或读出。
4.2.3存储器地址空间的存储体组织
1.存储器地址空间的存储体组织
32位微处理器,在保护模式下32位地址线可以形成4GB的物理存储器地址空间。
从软件的观点来看,存储器可以按字节来寻址,其地址范围是从00000000H~FFFFFFFFH。
从硬件的观点来看,此物理地址空间由4个独立的字节宽度的存储体(Bank0~Bank3)组成32位宽度的存储器,如图4.3所示。
这种32位宽度的存储器组织结构允许以字节、字或双字为单位访问存储器。
在保护模式下,存储器分为4个独立的字节宽度的存储体,每个存储体的大小为1GB,4个存储体构成4GB的物理存储器地址空间。
在实模式下,存储器仍是分为4个独立的字节宽度的存储体,但这时每个存储体是256KB。
4个存储体构成第1个1MB的物理存储器地址空间。
图4.3中所示的地址线A2~A31同时并行地接到4个存储体上,用以选择菜一个完整的双字存储单元。
因此,每个双字的起始物理地址总是4的倍数,例如,双字的起始地址从00000000H,00000004H,00000008H,一直到FFFFFFFCH为止。
图4.3中所示的字节允许信号线BE0~BE3作为选择要操作的存储体,由于每个存储体只提供一个字节宽的8位数据线.因此,32位数据就需要4根字节允许信号线来分别选择4个存储体。
例如,若BE0=0,则选中Bank0,也就是通过D0~D7传输字节数据;
BE1=0,则选中Bank1,即通过D8~D15传输字节数据。
若BE0和BE1同时为0,则同时选中两个存储体Bank0和Bank1,即通过D0~D15传输字数据。
同样,若4个字节允许信号同时都为0,则同时选中4个存储体,即通过D0~D31传输双字数据。
2.存储器地址空间的访问格式
虽然32位存储器地址空间在硬件上是以双字存储单元组织的,但在软件上实际访问存储器时,不一定都是固定以双字存储单元进行存取,而是有3种不同宽度,即3种访问格式。
(1)访问双字中的1个字节
可以访问双字中4个字节的任何一个字节,具体访问哪一个字节,取决于哪一个字节允许信号有效。
如图4.4所示,只有BE1=0,其他的字节允许都无效,表示访问保存在Bank1中的字节数据D8~D15。
(2)访问双字中的一个字
可以访问双字中2个字的任何一个字,具体访问哪一个字,取决于哪2个字节允许信号同时有效。
图4.5表示访问保存在Bank0和Bank1中的字数据D0~D15。
(3)访问一个双字
访问一个双字存储单元,必须4个字节允许信号同时有效。
固4.6表示访问保存在Bank0~Bank3中的双字数据D0~D31。
4.2.4存储器地址译码
1.存储器地址译码的几个问题
(1)存储器译码电路的器件
可以来用与非门、译码器74LSl38/139、PROM地址译码器82S147和可编程逻辑器件PLD。
其中,PLD有3种工作方式相同但名字不同的器件--PLA(可编程逻辑阵列)、PAL(可编程阵列逻辑)及GAL(门阵列逻辑),它们在目前存储器译码中使用得越来越多,如PAL序列是作存储器地址译码器的理想器件。
(2)译码方法
采用局部地址译码,高位地址参加译码(译码有关项),即高位地址经译码器产生片允许信号,选择存储器芯片。
低位地址线不参加译码(译码无关项),直接连接到存储器芯片,进行芯片内部存储单元的选择。
(3)地址线的使用
在保护模式下,32位微处理器的存储器地址线是32位。
在实模式下,32位微处理器的存储器地址线是20位。
存储器低位地址的使用与存储器的数据宽度有关,分述如下。
①当8位宽度的存储器译码时,系统地址总线的全部地址位包括A0都与存储器相连,没有无关项。
这是因为8位宽度的存储器只有1个存储体,不需要存储体选择信号。
因此,把系统地址总线的A0与存储器地址线的A0相连;
系统地址总线的A1与存储器地址线的A1相连,以此类推。
②当16位宽度的存储器译码时,系统地址总线的地址位A0是无关项,故未与存储器相连,这个地址位用于产生2个存储体选择信号BHE和BLE。
因此,把系统地址总线的A1与存储器地址线的A0相连;
系统地址总线的A2与存储器地址线的A1相连,以此类推。
③当32位宽度的存储器译码时,系统地址总线的地址位A0和A1是无关项,故未与存储器相连,这2个地址位用在微处理器中产生4个存储体选择信号BE0~BE3。
因此,把系统地址总线的A2与存储器地址线的A0相连,系统地址总线的A3与存储据地址线的A1相连,以此类推。
2.存储器地址译码电路设计
(1)要求
设计一个存储容量为64KB的EPROM存储器译码电路,其地址范围定位在F0000H~FFFFFH。
并且,要求分别采用74LS138和PAL16L8两种器件作为译码器。
(2)分析
为了组成64KB存储器,选用8KB的2764EPROM存储器芯片,一共8片,刚好组成64KB的存储器;
然后进行译码器与存储器的连接。
(3)设计
根据题目的要求,分2种方案进行设计。
●方案1采用74LS138的译码电路设计。
译码电路如图4.7所示。
图中,3~8译码器的输入端(C,B,A)和控制端(G2B,G1)连接到系统地址总线的高位地址A13~A19。
3~8译码器的8个输出线分别连接到8片2764的芯片允许CE0~CE7上,用以选择8个8KB的存储器芯片。
而每个存储器芯片2764的13位地址线与系统地址总线的低13位地址A0~A12直接相连。
很明显,这里采用的是局部地址译码方法。
高位地址A13~A19参加译码(译码有关项),即高位地址经译码器产生片允许信号CE0~CE7,选择存储器芯片;
低位地址A0~A12不参加译码(译码无关项),直接连接到存储器芯片,用以选择2764芯片内部的存储单元。
现在来看看该译码器所确定的地址范围。
首先,根据3~8译码器输入与输出的逻辑关系(真值表)可知,为了允许这个译码器工作,必须使最高4位地址线A19~A16都为高电平。
其次,地址线A15~A13分别连到译码器的C、B和A输入线上,这3位地址(A15~A13)决定选中哪一个存储芯片。
例如,CBA=000,译码器的y0端输出低电平,选中0号存储芯片;
CBA=00l,译码器的y1端输出低电平,选中1号存储芯片,以此类推。
为了确定每个存储芯片的地址范围,例如确定0号存储芯片的地址范围。
把20位地址中参加译码的最左边7位(A19~A13)写成1111000,右边13位为无关项。
先把无关项全部写成逻辑0来确定最低地址,然后把无关项全部写成逻辑l来确定最高地址,这样就获得了0号存储芯片的地址范围为F0000H~F1FFFH。
同理,可获得1号存储芯片的地址范围为F2000H~F3FFFH。
以此类推,可以获得其他存储芯片的地址范围,如图4.7所示。
●方案2采用PAL16L8的译码电路设计。
译码电路如图4.8所示。
本方案除所使用的译码器件不同之外,其他的与方案l一样。
由于PAL16L8是可编程阵列逻辑器件,内部结构由与/或门逻辑构成,故设计者的主要工作是根据译码器的译码要求,写出输入与输出逻辑表达式,然后借助专门的编程软件生成JED文件,再用专用编程工具进行烧录。
下面是根据团4.8所示的连接情况写出的文档文件,其中的核心是8个逻辑表达式式定义了提供给8个2764存储芯片的芯片允许信号CE0~CE7。
4.2.5存储器接口
1.不同微处理器与存储器的接口线
(1)8位微处理器与存储器的接口线
8位微处理器有8条数据线(D0~D7),20条地址线(A0~A19),控制信号是IO/M、RD、WR。
由于8位微处理器总是以字节宽度访问存储器,因此,只需要1个8位的存储体,8位微处理器与存储器接口,通过8位数据总线,20位地址线进行连接。
由于20位地址包括A0全部都使用,A0出现在接口连线上。
(2)16位微处理器与存