第三章 地址译码技术及存储器接口
数字逻辑与计算机组成原理:第三章 存储器系统(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接口芯片采用这种方法。
- 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端口地址时注意问题