第三章 地址译码技术及存储器接口
数字逻辑与计算机组成原理:第三章 存储器系统(1)
A3 0
字线
地0 A2 0 址
译
A1
0码 器
A0 0
15
读 / 写选通
… …
…
0,0 … 0,7
16×8矩阵
15,0 … 15,7
0
…
7 位线
读/写控制电路
D0
… D7
(2) 重合法(双译码方式)
0 A4
0,00
…
0 A3
阵
A2
译
0码
31,0
…
A1
器 X 31
0 A0
… …
或低表示存储的是1或0。 T5和T6是两个门控管,读写操作时,两管需导通。
六管存储单元
保持
字驱动线处于低电位时,T5、T6 截止, 切断了两根位线与触发器之间的 联系。
六管存储单元
单译码方式
读出时: 字线接通 1)位线1和位线2上加高电平; 2)若存储元原存0,A点为低电
平,B点为高电平,位线2无电 流,读出0。
3)若存储元原存1,A点为高电 平,B点为低电平,位线2有电
流,读出1。
静态 RAM 基本电路的 读 操作(双译码方式)
位线A1
A T1 ~ T4 B
位线2
T5
行地址选择
T6
行选
T5、T6 开
列选
T7、T8 开
T7
T8
读选择有效
列地址选择 写放大器
写放大器
VA
T6
读放
读放
DOUT
T8 DOUT
DIN
1.主存与CPU的连接
是由总线支持的; 总线包括数据总线、地址总线和控制总线; CPU通过使用MAR(存储器地址寄存器)和MDR(存储
第三章存储器、地址译码、总线(0000)
– 内部总线
• 处于CPU内部,用来连接片内运算器和寄存器等 各个功能部件的总线;
– 局部总线
• 主板上的信息通道,连接主板上各个主要部件, 而且通过扩展槽连接各种适配器; • ISA(industry standard architecture) • EISA(extension industry standard architecture) • PCI(peripheral component interconnect)
作业:8086系统中,用8K×8位的
RAM芯片构成16K×8位的数据存储器, 用16K×8位的ROM芯片构成32K×8 的程序存储器,请画出与CPU的连线 图并写出存储器的寻址范围(要求存 储器的起始地址为D0000H)。(地址 总线、数据总线可画粗实线表示总线, 译码器可用74LS138或其他逻辑器件)
3.3.3 微型机系统中的层次化局部总线
3.3.4 外部总线
• • • • 外部总线IDE和EIDE: 外部总线SCSI: 外部总线RS232C: 通用串行总线USB:
总线结构的优点
• 支持模块化设计
– 总线结构使得系统成为由总线连接的多个独 立的子系统,每个子系统对应一个模块;
• 开放性和通用性
– 每种总线都有固定的标准,而且其技术规范 完全公开;
• 灵活性好
– 有了总线后,系统的组合有一定的随意性, 系统主板上有多组总线扩展槽,每组对应一 种总线。
3.3.1 总线的分类和性能指标
第三章 存储器、地址译码、 总线
3.1 存储器
• 介绍几种常用典型的存储器的引脚
– SRAM: HM62256 – EPROM: 27C512
– EEPROM: W27E512
第3章 端口地址译码技术
的接口卡发生冲突,最好采用DIP开关进行地址设置。
可通过“附件”→“系统信息”→“硬件资源”→“I/O” 选项来查看 I/O 端口的地址分配状况
12
2.3 I/O端口地址译码
(1) 基本概念与原理
基本概念
▲当执行I/O指令时,CPU首先在总线上发出要访问的端口地
址和必要的控制信号,然后通过一个译码电路将这些信号 转换为相应的I/O端口选通信号。
23
A2 A3 A4
A B C
Y0 Y1 Y2 Y3 2F0H~2F3H 8255A
A8
G2B G2A G1
Y4 Y5 Y6 Y7 74LS138 A0 A1 CS
M/IO# AEN
A5 A6 A7 A9
A0 A1
地址 2F0H 2F3H
A9 1 1 G
A8 0 0 G2B
A7 1 1
A6 1 1 G
能弱,程序设计灵活性差。增加了控制逻辑的复杂性。
6
(3) 独立编址下的I/O指令
指令类型
▲IN:从I/O端口读入数据到微处理器的累加器中。
▲OUT:将微处理器累加器中的数据写入到I/O端口。
注意:数据只在累加器(AX或AL)和端口间进行传递。
原则:传输字节数据时使用AL;传输字数据时使用AX。
基本内容
▲I/O端口与内存单元统一进行地址分配,使用统一的指令访问
I/O端口或者内存单元。又称存储器映射编址方式。
▲Motorola公司的68系列、Apple系列微机即是统一编址。
地址空间 0
内存地址 ( 共960K)
EFFFFH F0000 H I/O 地址 ( 共64K) FFFFFH
3
优点
第三章 端口地址译码技术
A1 A0 0 0 8
•
22
逻辑表达式: Y= A9A8A7A6A5A4A3A2 A1A0 AEN IOR 摩根定律:或非=非与,非或=与非 Y=A9A8A7A6A5A4A3A2 + A1A0 AEN IOR
结论:输出Y低电平有效。即当端口地址 为2F8H,AEN=0,IOR=0低电平时,输出Y 有效。
第三章
3.1 3.3
I/O端口地址译码技术
I/O端口及其编址方式 I/O端口地址译码
返回目录
1
3.1
3.1.1
3.1.2 3.1.3
I/O端口及其编址方式
I/O端口和I/O操作
I/O端口地址编址方式 独立编址方式的端口访问
返回第三章
2
3.1.1
1.I/O端口
I/O端口和I/O操作
定义:端口(port)是接口电路中能被CPU直 接访问的寄存器(的地址)。 CPU 与外设之间交换信息具体是通过I/O 端口来进行的。
10
I/O端口访问
所谓对端口的访问就是CPU对端口的读/写。 指I/O端口与CPU的累加器之间的数据传送, 并未涉及数据是否传送到存储器的问题。
输入: 端口数据 输出: 内存中的数据
CPU中的累加器 CPU中的累加器
内存 I/O端口
11
3.1.3、独立编址方式的端口访问
1.I/O指令中端口地址的宽度
26
逻辑表达式:
Y1 =A9A8A7A6A5A4A3A2 + A1A0 AEN + IOR
Y1 = A9A8A7A6A5A4A3A2 · 1A0 AEN ·IOR A
接口技术作业2-地址译码
第3章I/O端口地址译码技术作业1、什么是I/O端口在一个接口电路中一般拥有几种端口2、I/O端口是I/O接口电路中能被CPU直接访问的寄存器。
在一个接口电路中一般拥有:命令端口、状态端口和数据端口。
2、图1是一个固定式I/O端口地址译码电路,试根据图中地址线的分配,写出输出端的地址。
图1 固定式I/O端口地址译码电路输出端低电平有效,根据图1有:地址线0 0 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0二进制 1 0 1 1 1 1 1 0 0 0十六进制 2 F 8所以,输出端的值:2F8H3、图2是某微机实验平台板的I/O端口地址译码电路。
若将DIP开关状态设置为:S0和S1合上(ON),S3和S4断开(OFF),试指出74LS138的输出端地址范围。
图2 使用比较器的可选式译码电路从图2中可以看出,当S0断开时,其值为1(高电平),A6必须为0,对应的异或门输出才会是1,;同样,当S1合上时,其值为0(高电平),A7必须为1,对应的异或门输出才会是1;类推,S2合上,S3断开时,A8,A9必须为1,0。
即当S2和S1合上,S3和S0断开时,译码电路输入地址线的值地址线0 0 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0二进制 0 1 1 0 片选片内端口寻址十六进制 0~7H 0~7H所以,CS0地址为:180H~187H共8个端口地址。
CS1地址为:188H~18FH共8个端口地址。
CS2地址为:190H~197H共8个端口地址。
CS3地址为:198H~19FH共8个端口地址。
CS4地址为:1A0H~1A7H共8个端口地址。
CS5地址为:1A8H~1AFH共8个端口地址。
CS6地址为:1B0H~1B7H共8个端口地址。
CS7地址为:1B8H~1BFH共8个端口地址。
第3章地址译码技术及存储器接口
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端口与累加器传送数据
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接口控制卡使用。
2. GAL的特点
(1)实现多种逻辑功能,它可以实现组合逻辑电路 和时序逻辑电路的多种功能。经过编程可以构成 多种门电路触发器、寄存器、计数器、比较器、 译码器、多路开关或控制器等。使系统缩小体积, 提高可靠性,并简化了印刷电路板的设计。 (2)采用电擦除工艺,门阵列的每个单元可以反复 改写(至少100次)。 (3)具有硬件加密单元,可以防止抄袭电路设计和 非法复制。 (4)速度高而功耗低。
I/O端口地址译码相关信号 I/O地址译码电路:
用A0~A910根地址线对端口地址范围限定
利用IOR、IOW信号控制对端口的读写。
用AEN信号控制非DMA传送。
用I/O CS16信号控制是8位还是16位的I/O端口
用SBHE(或BHE)信号控制端口奇偶地址。
3.2.2 固定式端口地址译码 所谓 固定译码 是指接口中用到的端口地 址不能更改。 一般接口卡中大部分都采用固定式译码。 (1)用门电路进行端口地址译码 (2)用译码器进行端口地址译码
微机原理 第三章 存储器、地址译码、总线
!ROM
A13 & !A14 & A15 !A13 & A14 & A15 !A9 & !A11 & A14 & A15 !A10 & !A11 & A14 & A15 !A12 & A14 & A15
!A8 & !A10 & !A11 & !A12 & !A13 & !A14 & !A15 !A9 & !A10 & !A11 & !A12 & !A13 & !A14 & !A15 ) = ((Address >= ^h300) & (Address < ^hA000)) # ((Address >= ^hF600) & (Address < ^hFFFF));
!P8253 = (Address >= ^hE800) & (Address < ^hE900);
ቤተ መጻሕፍቲ ባይዱ
• P1245
= !( A13 & !A14 & A15
# !A13 & A14 & A15 );
!P1245 = (Address >= ^hA000) & (Address < ^hE000);
译码5
PCI总线的特点(120引脚)
• 支持一种线性突发数据传输模式,即由一个地址顺 序读写大量数据。 • 总线主控,任何一个有处理能力的外设都可暂时接 管总线。 • 同步操作功能,确保CPU与总线同步操作。 • PCI芯片将大量系统功能高度集成,而且AB和DB多 路复用。 • PCI总线与CPU时钟频率无关,以其独特的中间缓冲 器,独立于CPU ,不必担心外设在不同时钟频率下 引起性能冲突。 • 自动设置参数(I/O端口,中断号等),即PnP。
《微型计算机接口技术课件》第3章 IO端口地址译码技术
本章主要内容
Ø I/O 端口的基本概念 Ø I/O 端口译码的基本原理 Ø I/O 端口译码电路的设计
2020/7/9
计算机接口技术
1
3.2 .2 I/O 端口共用技术
一般情况下,一个端口只接收一种信息(命令、状态或数据) 的访问,但有些接口芯片,允许同一端口既作命令口用,又作状态口用, 或允许向同一个命令口写入多个命令字,这就产生端口共用的问题。
协处理器
0F8H~0FFH
表3.2系统的外设接口卡端口地址
I/O接口卡名称 端口地址
并行口控制卡1 378H~37FH
并行口控制卡2 278H~27FH
串行口控制卡1 3F8H~3FFH
串行口控制卡2 2F8H~2FFH
原型插件板
300H~31FH
同步通信卡1 3A0H~3AFH
同步通信卡2 380H~38FH
3.I/O地址映射对用户来讲是透明的。
2020/7/9
计算机接口技术
12
3.3.3 I/O端口地址选用的原则
1.凡是被系统配置占用了的地址一律不能使用; 2.未被占用的地址,原则上用户可以使用。但申明 保留的地址,不要使用; 3.留给用户可使用的端口地址:300H--31FH。
根据上述原则,本教材扩展的接口芯片,使用表 3.3中分配的I/O端口地址。
端口共用问题的处理方法是: 对命令口和状态口共用的处理方法是,根据读/写操作来区分。向该口 写,就是写命令,作命令口用;从该端口读,就是读状态,作状态口用 例如,串行接口芯片8251A采用这种办法。 对多个命令字写到同一个命令口时,可采用两种办法解决:其一,在 命令字中设置特征位,根据特征位的不同,就可以识别不同的命令,例如 82C55A接口芯片采用这种办法;其二,在编写初始化程序段时,按先后顺 序向同一个端口写入不同的命令字,命令寄存器就根据先后顺序的约定来 识别不同的命令,8251A接口芯片采用这种方法。
第3章+地址译码技术与存储器接口
3.1.3 I/O端口访问指令 I/O端口访问指令
• 2)80286和80386还支持I/O端口直接 与RAM之间传送数据。 • 输入:
MOV DX,PORT LES DI,BUFFER_IN INSB(INSW) 输出: 输出: MOV DX,PORT LES SI,BUFFER_OUT OUTSB(OUTSW)
65 F3 02 00
11 32 32 01
11 22 33 44
KOU100 KOU101
FFFFF
3.1.3 I/O端口访问指令 I/O端口访问指令
范围内, 若端口地址在 0100~FFFFH 范围内,则用 ~ DX间接寻址 间接寻址: 间接寻址 MOV DX, 端口地址 IN AL, DX OUT DX, AL 如: MOV DX, 300H IN AL, DX
3.1.3 I/O端口访问指令 I/O端口访问指令
外设
• 80x86 CPU构成的计算机,其CPU外围 接口芯片及I/O接口部件皆采用独立编 址方式,采用IN和OUT指令实现数据的 输入和输出操作。
0000
内存
00000
KOU1 KOU2 KOU3
• 1)8086/8088采用I/O端口与累加器传 送数据。 范围内,则用直 • 若端口地址在 0~FFH 范围内 则用直 ~ 接寻址 • IN AL,端口地址 输入) , (输入) 00FF • OUT 端口地址 ,AL 输出) (输出) 0100 执行的操作为: 执行的操作为: (AL)<—(PORT) (字节操作) 字节操作) (AX)<—(PORT+1,PORT) (字操作) 字操作) , • AL, 20H 如: IN • OUT 80H, AX FFFF • OUT 84H, AL
微机接口技术-第3章IO端口地址译码技术
内存 内存接口
系统总线:地址总线XA19-0,数据总线XD7-0,控制总线/XIOR ……
智能仪器接口 通信接口 过程控制接口 输入接口
输出接口
外存接口
数字化存储示 波器,数字化
万用表
终端 调制解调器 TTY 电传机
A/D转换器 开关量输入 D/A转换器 开关量输出
键盘 数字化仪 点阵打印 CRT 显示
么?
思考:在PC机上设计接口,你设计的接口IO地址必须不能与其他设备 接口IO地址冲突,你能想到用什么办法解决这个问题?
方案一:先查PC机硬件说明书,看那些IO 地址已经被占用。
缺点是麻烦,且非PC机器厂家生产的设备 (如扩展接口卡)地址,必须通过查该卡
说明书才能了解它占用的IO地址。
不可能!!你怎么知道你的卡被客户装在 哪台机器上?客户计算机上装了哪些其它 厂家的卡,你怎么能预先知道呢?客户买
Y X 9X A 8 X A 7 X A 6 X A 5 X A 4 X A 3X A 2 A X 1 X A 0 X AX I O A XA9 XA8 XA7 XA6 XA5 XA4 XA3 XA2
/+Y
例2。 使用74LS138设计一个系统板上IO端口地址译码电路,并且让每个接口芯片内部 可以有32个端口,非DMA期间可以访问接口芯片。
分析:输入 XA9-5,XAEN。因为低5位地址用来选中芯片内部端口,不作为外部译码器 的输入。一片138只能译码3位地址,这里用138对XA7-XA5译码。
输出 8个芯片选中信号/Y0-/Y7。 逻辑关系:XAEN=0,XA9XA8=00时,使译码器工作。 XA7-XA5=000时,输出/Y0=0, 其余全无效为1。 XA7-XA5=001时,输出/Y1=0, 其余全无效为1 XA7-XA5=010时,输出/Y2=0, 其余全无效为1 ……
存储器接口技术
采用部分译码法时,由于未参加译码的高位地址与存 储器地址无关,即这些地址的取值可随意(如图中的存储 器地址与A15无关),所以存在地址重叠的问题。此外, 从高位地址中选择不同的地址位参加译码,将对应不同的 地址空间。
1.2存储器地址译码方法
1.2存储器地址译码方法
(4
混合译码法是将线选法与部分译码法相结合的一种方 法。该方法将用于片选控制的高位地址分为两组,其中一 组的地址(通常为较低位)采用部分译码法,经译码后的 每一个输出作为一块芯片的片选信号;另一组地址(通常 为较高位)则采用线选法,每一位地址线作为一块芯片的 片选信号。例如,当CPU地址总线为16位,存储器由10片 容量为2KB的芯片构成时,可用混合译码法实现片选控制, 图给出了采用该方法的结构示意图。
1.2存储器地址译码方法
本例采用第二种方法,即二次译码法。先进行一次译码 产生区分8个2KB的信号,将其中的4个输出作为4片EPROM 的片选信号。另外4个输出并和与之相关的另一位地址一起 进行二次译码,产生8片1KB RAM芯片的片选信号。此外, 对于取值固定不变的高位地址可令其作为译码允许控制。据 此,可得到相应的地址位图,如图所示。
微型计算机接口技术第3章 IO端口地址译码技术
2017/8/30
计算机接口技术
5
从存储空间中划出一部分地址空间给I/O设备使用, 把I/O接口中的端口当做存储器单元一样进行访问
优点
缺点
使用访问存储器的指令,I/O处 占用存储器地址空间使其容量 理能力增强 减少 指令更长,执行时间长地址线 拥有较大的寻址空间 多,译码电路复杂
2017/8/30
第3章 I/O 端口地址译码技术
本章主要内容
I/O 端口的基本概念 I/O 端口译码的基本原理 I/O 端口译码电路的设计
2017/8/30
计算机接口技术
1
3.1 I/O 地址空间
如果忽略I/O地址空间的物理特征,仅从软件编程的角度来看, 和存储器地址空间一样,I/O地址空间也是一片连续的地址单元,可 供各种外设与CPU交换信息时,存放数据、状态和命令代码之用。 实际上,一个I/O地址空间的地址单元是对应接口电路中的一个 寄存器或控制器,所以把它们称为接口中的端口。
I/O端口地址与存储器的存储单元一样,都是以数据字节来组织 的。无论是早期微机还是现代微机的I/O地址线都只有16位,因此 I/O端 口地址空间范围为0000H~FFFFH,是连续的64KB地址,每一个 地址对应一个8位的I/O端口,两个相邻的8位端口可以构成一个16 位的端口;4个相邻的8位端口可以构成一个32位的端口。
义的。 接口电路中有三种不同类型的端口,存储不同的信息,分别是数据口、 状态口和控制口。
数据口
CPU
2017/8/30
状态口 控制口
外设
计算机接口技术
3
3.2 .2 I/O 端口共用技术
一般情况下,一个端口只接收一种信息(命令、状态或数据) 的访问,但有些接口芯片,允许同一端口既作命令口用,又作状态口用, 或允许向同一个命令口写入多个命令字,这就产生端口共用的问题。 端口共用问题的处理方法是: 对命令口和状态口共用的处理方法是,根据读/写操作来区分。向该口 写,就是写命令,作命令口用;从该端口读,就是读状态,作状态口用 例如,串行接口芯片8251A采用这种办法。 对多个命令字写到同一个命令口时,可采用两种办法解决:其一,在 命令字中设置特征位,根据特征位的不同,就可以识别不同的命令,例如 82C55A接口芯片采用这种办法;其二,在编写初始化程序段时,按先后顺 序向同一个端口写入不同的命令字,命令寄存器就根据先后顺序的约定来 识别不同的命令,8251A接口芯片采用这种方法。
微机原理与接口技术课件
第3章 存储器技术
3.1存储器分类 内存和外存 从存储器与CPU信息交换的角度看,存储器可分为两大 类:内部存储器,简称为内存或主存;另一类为外部存储器, 简称为外存或辅存。内存是存放当前计算机正执行的、或者 经常要使用的程序和数据,CPU可直接从中取指令或存取数 据。而外存则存放内存的副本和当前不在运行的程序和数据, CPU要访问外存时,必须通过专门的设备将信息先传送到内 存中。
非易失性RAM(IRAM)
组合ROM CREEM
接口技术
第3章 存储器技术
3.1存储器分类 半导体存储器分类
1. RAM (1)双极型RAM。存取速度高,常常高于Cache。 (2)MOS RAM。集成度高、功耗低、价格低。有(SRAM)、 (DRAM)、组合(IRAM)和非易失性RAM(NVRAM)。 SRAM:集成度高于双极型但低于DRAM;不需要刷新电路。 DRAM:用单管线路组成,集成度高;功耗低于SRAM;价格低; 需要刷新电路;存取速度高于SRAM。 IRAM:附有刷新电路的DRAM。大容量内存一般都用IRAM。 NVRAM(Non Volatile RAM):是SRAM和EEPROM的合成体。 用来存储一些重要信息,用于掉电保护。
3.4 Cache 地址映象
由主存地址映像到Cache地址称为地址映像。 (1)直接映像法。 每个主存块只与一个缓存块相对应,映射关系:i=j mod C 其中i为缓存块数,j为主存块号,C为缓存块数,等于2c,映射的 结果表明每个缓存块对应若干个主存块。 实现简单,只需利用主存地址的某些位直接判断,即可确定所需字 块是否在缓存中。
接口技术
第3章 存储器技术
3.5 存储器接口技术 静态RAM:COMS RAM 62256
地址译码方式详解
存储器是用来存放数据的集成电路或介质,常见的存储器有半导体存储器(ROM 、RAM )、光存储器(如CD 、VCD 、MO 、MD 、DVD )、磁介质存储器(如磁带、磁盘、硬盘)等。
存储器是计算机极为重要的组成部分,有了它计算机才具有存储信息的功能,组成部分,有了它计算机才具有存储信息的功能,使计算机可以脱离人使计算机可以脱离人的控制自动工作。
的控制自动工作。
单片机系统中主要使用的存储器是半导体存储器,从单片机系统中主要使用的存储器是半导体存储器,从使用功能上,可分为随机存取存储器(RAM )和只读存储器(ROM )两类。
RAM 主要用于存放各种现场数据、中间计算结果,以及主机与外设交换信息等,它的存储单元的内容既可读出,又可写入。
ROM 中存储的信息只能读出,不能写入,如PC 机主板上的存放BIOS 程序的芯片就是ROM 存储器。
2.3.1 RAM 存储器RAM 存储器是指断电时信息会丢失的存储器,但是这种存储器可以现场快速地修改信息,所以RAM 存储器是可读写存储器,一般都作为数据存储器使用,用来存放现场输入的数据或者存放可以更改的运行程序和数据。
根据其工作原理不同,可分为以下两类:基于触发器原理的静态读写存储器(SRAM ,Static RAM )和基于分布电容电荷存储原理的动态读写存储器(DRAM ,Dynamic RAM )。
一般SRAM 用于仅需要小于64KB 数据存储器的小系统或作为大系统中高速缓冲存储器;而DRAM 常用于需要大于64KB 的大系统,这样刷新电路的附加成本会被大容量的DRAM低功耗、低成本等利益所补偿。
SRAM的基本结构如图所示。
RAM的结构大体由三部分组成:地址译码器,存储矩阵,输入/输出电路。
SRAM的基本结构1. 地址译码方式地址译码有两种方式,一种是单译码方式,或称为字结构方式;另一种是双译码方式,或称为X-Y译码结构。
1)单译码方式16字×4位的存储器共有64个存储单元,排列成16行×4列的矩4阵,每个小方块表示一个存储单元。
第3章存储器及接口技术讲解
图3-2 半导体存储器的分类
3.1.2 半导体存储芯片的一般结构
? 图3-3所示为存储器组成示意图。它由存储体、地 址寄存器、地址译码驱动电路、读 /写电路、数据 寄存器和控制逻辑等组成。
地
地
址
址
寄
译
存
码
AB
存储体
读
地
写
址
电
寄
路
存
DB
控制电路
OE WE CS
图3-3 半导体存储芯片的一般结构
3.1.3 半导体存储器的主要技术指标
图3-4 8088 CPU与8片2732 EPROM接口
? 2.RAM与8088 CPU接口
? RAM与CPU接口比EPROM稍容易一些, 因为大多数的RAM器件不需要等待状态。 RAM理想的存储器段在地址空间的最底部, 该段包含中断向量。由于中断向量经常被 软件包修改,因此这段存储器必须用RAM。
? 2.时序配合总线时序的要求,如果不能 满足,就需要考虑更换芯片或在存储器访 问的总线周期中插入等待状态TW。所以, 在芯片选取时要注意以下几点:
(1)存储器的“存取周期”TAC应小于 CPU的总线读写周期,并留出一定余量。
(2)在存储芯片的读周期中,当芯片选中 时,从输出允许有效到数据输出并稳定, 需要一定的时间。
? 2.按使用属性分类
半导体存储器分为RAM和ROM两类,如图 3-2所示。
随机存取存储器 (RAM )
静态 RAM 动态 RAM
半导体存储器
只读存储器 (ROM)
掩膜式 ROM 可编程 ROM(PROM ) 可擦除 PROM (EPROM ) 电可擦除 PROM(E2PROM ) 闪速存储器 FLASH(MEMORY )
存储器的地址译码方式及其适用场合是些什么?
存储器的地址译码方式及其适用场合是些什么?(1)一维地址译码(或称为线选法),这种方法用于小容量的存储器芯片,(2)二维地址译码(即重合法),这种方法用于大容量的存储器芯片,存储器的扩展及地址线的位数是什么意思?(1)位扩展:当存储器的容量要求与芯片的容量相同,但位数不同,就需要进行位方向上扩展。
(2)字扩展:当存储器的位数与芯片的相同,但是容量不足时,就需要在字方向上扩展。
(3)字位同时扩展:是指在内存容量和数据位长宽两个方向上同时扩展。
当需要组成的内存容量为M,字长为N时,若已有芯片为m×n,所需芯片数=(M∕m)×(N∕n)(4)地址线位数:如果存储器的容量=2N,那么N就是整个存储器地址线的位数如果芯片的容量=2n,那么n就是每个芯片地址线的位数RAS、CAS信号有什么用?请画一个原理图并说明它们是如何产生的?RAS和CAS是提供给外部RAM的行地址和列地址的选通信号。
图见课本。
8086CPU在组织系统时,为什么要把存储器分为奇和偶两个体?如何实现这种控制?由此推想,对32位CPU应该有几个控制信号,才能保证单字节,双字节和一个双字寻址都能进行的要求?8086的数据总线16位,但1个内存单元中存放的数是8位,为了一次对2个单元进行访问,要把存储器分为奇和偶两个体。
每个内存单元都一个地址,要访问2个单元时,从偶存储器开始,可用一个控制信号来选择。
那么,对32为CPU 应该有4个控制信号,才能保证单字,双字节和一个双字寻址都能进行的要求。
用存储器件组成内存时,为什么总是采用矩阵形式?请用一个具体例子说明。
简化选择内存单元的译码电路,通过行选择线和列选择线来确定一个内存单元,因而用存储器组成内存时,总是采用矩阵形式。
比如,要组成1K字节的内容,如果不用矩阵来组织这些单元,而是将它们一字排开,那么就要1024条译码线才能实现对这些单元的寻址。
如果用32*32的矩阵来实现排列,那么,就只要32条行选择线和32条列选择线就可以了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
④编程器编程。将生成的编程文件下载到编程器,对 器件编程。
例:I/O端口与累加器传送数据
假设PORT是一个8位的字节地址,则最多可寻址 256个端口 输入 IN AX,PORT IN AL,PORT 输出 OUT PORT,AX OUT PORT,AL (输入16位数据) (输入8位数据) (输出16位数据) (输出8位数据)
例:I/O端口与累加器传送数据
3.2.1 I/O端口地址译码方法
• I/O端口地址译码的方法,通常是由地址信号和控 制信号的不同组合来选择端口地址。 • 一般把地址信号分为两部分: ① 高位地址线与CPU或总线的控制信号组合, 经过译码电路产生一个片选信号去选择某个I/O接 口芯片,从而实现接口芯片的片间寻址;
② 低位地址线直接连到I/O接口芯片,经过接口
①廉价
②具有较高集成度,体积下,可靠性高
③可被多次修改和反复使用 ④ 运行速度快 ⑤生产周期短
3.3.2 GAL器件的开发过程及工具
• GAL开发工具:
①编程写入器
② PLD的开发软件
③ 计算机
3.3.2 GAL器件的开发过程及工具
•GAL器件的开发过程:
①设计构思。用真值表、逻辑方法、状态图三中的任 一种将所要设计的问题变为设计文件。 ②选择器件型号。根据设计要求,选择合适的工业器 件型号,要考虑到输入、输出的引脚数目,是组合 逻辑器件还是时序逻辑器件等。 ③将设计文件按照所应用的HDL语言的要求,写成源 文件,然后上机编译、仿真和测试。
德才兼备 知行合一
第三章 地址译码技术及存储器接口
微机接口技术
第3章 地址译码技术 及存储器接口
学习目标:
◆ 掌握I/O端口的概念及端口地址的编址方式; ◆ 掌握访问I/O端口的指令; ◆ 掌握固定式端口地址译码、开关式可选端口地 址译码的实现方法。重点掌握地址译码的原则和 端口地址范围的计算方法; ◆ 了解GAL器件的特点及其在地址译码电路中的 作用。掌握用GAL16V8进行译码设计的过程以及 应注意的问题; ◆ 掌握SRAM、DRAM、 EPROM与CPU典型的 连接方式。重点掌握三总线的连接以及采用不同 的连接方法时地址范围的计算方法。
3.1.1 I/O端口概述
I/O接口:
CPU与外围设备连接的中间部件(电路),是 CPU与外界进行信息交换的电子系统。
I/O端口:
I/O接口电路中能被CPU直接访问的寄存器 或某些特定器件称为端口。CPU通过这些端口 发送命令、读取状态和传送数据。
3.1.2 端口编址方式
1.统一编址
从存储空间划出一部分地址空间给I/O设备, 把I/O接口中的端口当作存储器单元一样进行访问, 不设置专门的I/O指令。与地址线结合,形成一个 独立的I/O空间。
3.1.4 I/O端口地址分配
1) PC微机I/O端口有16根,对应的I/O端口编址可达 64K字节。
2) 其端口地址译码采用非完全译码方式,既只考虑 了低10位地址线:A9~A0,而没有考虑高6位地址线 A15~A10。 3) I/O端口地址范围是:0x0000~0x03ff,总共1024 个端口。其中,前256个端口(000~0FFH)供系统板上 的I/O接口芯片使用;后756(100~3FFH)为扩展槽上 的I/O接口控制卡使用
3.2.2 固定式端口地址译码
• 固定式端口译码:
接口中用到的端口地址不能更改。一 般接口卡中大部分都采用固定式译码。 • 固定式端口译码方法: (1)用门电路进行端口地址译码 (2)用译码器进行端口地址译码
用门电路进行端口地址译码
门电路: 与门、非门、或门、与非门、或非门等
• • • •
74LS30为 8 输入与非门 74LS20为 4 输入与非门 74LS32为 2 输入或门 74LS04为 6 输入非门(反相器)
【例】 将一个字节输出到输出端口360H。
main( ) { outport (0x360, 0x55); }
4. 用Win98下VC(Visual C++)语言访问 端口
1)在C源程序中嵌入汇编代码: … _asm /* 内联汇编 */ { mov dx,264h al,100 out dx,al } …
若用双字节地址作为端口地址,则最多可寻址64K个端口
输入 或 输出 MOV DX,XXXXH IN AX,DX ;16位传送 IN AL,DX ;8位传送 MOV DX,XXXXH OUT DX,AX ;16位传送 OUT AL,DX ;8位传送
或
2.端口输入输出字(节)串指令
• INSB : 端口输入字节串 合法格式: INSB;
3.3.1 GAL器件的特点
•GAL器件的特点:
①实现多种逻辑功能,它可以实现组合逻辑 电路和时序逻辑电路的多种功能。 ②采用电擦除工艺,门阵列的每个单元可以 反复改写(至少100次)。
③具有硬件加密单元,可以防止抄袭电路设 计和非法复制。 ④速度高而功耗低。
3.3.1 GAL器件的特点
• 用GAL器件进行I/O地址译码的优点:
• LES 传送目标指针,把指针内容存入ES
目的地址传送指令
例:端口直接与RAM之间传送数据
输入 MOV DX,PORT LES DI,BUFFER_IN INSB ;8位传送 (INSW) ;16位传送
输出 MOV DX,PORT LDS SI,BUFFER_OUT OUTSB ;8位传送 (OUTSW) ;16位传送 。
C语言中的端口读/写函数示例
【例】 利用inportb( )函数从指定的输入端口 2F0H读取一个字节的数据,并显示在屏幕上。 main( ) { unsigned char c; c = inport(0x2f0); printf(“data = %0x”,c); }
C语言中的端口读/写函数示例
2.独立编址
微处理器设置专门的输入/输出指令来访问 端口,产生专用访问检测信号,与地址线结合, 形成一个独立的I/O空间。
两种编址方式的比较
优缺点 编址方式
优点
缺点
①使用访问存储器 ①占用存储器的地址 统一编址 的指令,指令类型 空间,使存储器容量 多,功能齐全; 减小 ②端口编址空间大。 ②指令长度比I/O指令 要长,执行时间较长。 ①I/O指令和访问存 ①I/O指令类型少,一 独立编址 储器的指令区别明 般只能对端口进行传 显,使程序清晰, 送操作。 便于理解。②使用 专门的控制信号。
• 电路结构形式: (1)用比较器和地址开关进行地址译码 (2)使用跳线的可选式译码电路
开关式可选端口地址译码
8位比较器74LS688的可选式译码电路
3.3 GAL器件应用
3.3.1 GAL器件的特点 3.3.2 GAL器件的开发过程及工具
3.3.1 GAL器件的特点
• 什么是GAL器件
GAL(Generic Array Logic,通用阵列逻 辑)是PLD (Programmable Logic Device, 可编程逻辑器件)的一种,包含几百个门 电路。可根据需要设计成多种专用集成电 路。
用门电路进行端口地址译码
• 如何用门电路设计2F8H端口的译码电路
用门电路进行端口地址译码
6 输 入 非 门 8 输入与非门
2 输入或门
4 输入与非门
2F8H端口读译码电路
用门电路进行端口地址译码
2E2H端口读写译码电路
用译码器进行端口地址译码
译码器: 2-4线译码器 74LS139 3-8线译码器 74LS138 4-16线译码器 74LS154
芯片内部的地址译码电路来选择该接口电路的某 个寄存器端口,即实现接口芯片的片内寻址。
I/O端口地址译码相关信号
I/O地址译码电路不仅有地址信号有关还与控制信号有关: ① 用A0~A910根地址线对端口地址范围限定
② 利用IOR、IOW信号控制对端口的读写。
③ 用AEN(DMA控制器地址允许输出端)信号控制非 DMA传送。 ④ 用I/O CS16(ISA总线I/O16位片选信号)信号控制是8 位还是16位的I/O端口 ⑤ 用SBHE(或BHE)信号控制端口奇偶地址。
译码输入
A B C G1 G2A G2B
译码使能
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
译码输 出
74LS138 译码器
用译码器进行端口地址译码
3-8译码器74LS138的真值表
用译码器进行端口地址译码
PC/XT系统板上的端口地址译码电路
3.2.3 开关式可选端口地址译码
• 使用开关式端口地址译码的优点: (1)适应不同的地址分配方法 (2)便于系统以后的扩充
3.C语言中的端口读/写函数
在接口设计中,常用到的Turbo C函数如下:
inportb( ):从指定端口读入一个字节 原型:void inportb (int port); outport( ):从指定端口输出一个字节 原型:void outportb (int port, unsigned char value); clrscr( ): 清除文本模式窗口 清屏的意思 原型:void clrscr(void);
getch( ): 从控制台读取一个字符,但不显示在屏幕上 原型:int getch(void)
3.C语言中的端口读/写函数 (续)
kbhit( ): 检查当前是否有键盘输入,若有则返回一个 非0值,否则返回0 原型: int kbhit(void);
delay( ): 延时 原型:void delay(int ms); sound( ): 以指定频率打开PC扬声器 原型: void sound(unsigned frequency);
系统主板上I/O接口芯片的 端口地址
I/O扩展槽上接口控制卡的 端口地址
选I/O端口地址时注意问题