slide1
Download
Skip this Video
Download Presentation
第 三章

Loading in 2 Seconds...

play fullscreen
1 / 35

第 三章 - PowerPoint PPT Presentation


  • 103 Views
  • Uploaded on

第 三章. I/O 端口地址译码技术. 教学重点 I/o 端口及其编址方式 I/o 端口地址译码. 3.1 I/o 端口及其编址方式. 一、 I/o 端口和 I/o 操作 1 、 I/o 端口 端口 ( port) 是接口电路中能被 cpu 直接访问的寄存器的地址。 Cpu 通过这些地址即端口向接口电路中的寄存器发送命令,读取状态和传送数据,一个接口中可以有几个端口,如命令端口、状态端口、数据端口。对端口的操作有三种类型: a. 只能读不能写 b. 只能写不能读 c. 可读可写. 3.1 I/o 端口及其编址方式. 2 、 I/o 操作

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '第 三章' - kimball


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

第 三章

I/O端口地址译码技术

i o i o
教学重点

I/o端口及其编址方式

I/o端口地址译码

3 1 i o
3.1 I/o端口及其编址方式
  • 一、I/o端口和I/o操作

1、 I/o端口

端口(port)是接口电路中能被cpu直接访问的寄存器的地址。Cpu通过这些地址即端口向接口电路中的寄存器发送命令,读取状态和传送数据,一个接口中可以有几个端口,如命令端口、状态端口、数据端口。对端口的操作有三种类型:a.只能读不能写 b.只能写不能读 c.可读可写

3 1 i o1
3.1 I/o端口及其编址方式

2、I/o 操作

通常所说的I/o操作是指对I/o端口的操作,而不是对I/o 设备的操作,也就是说cpu所访问的是与I/o设备相关的端口,而不是I/O设备本身。

3 1 i o2
3.1 I/o端口及其编址方式
  • 二、端口地址的编址方式

端口有二种编址方式:一种是端口地址和存储器统一编址,即存储器映射方式,另一种是端口地址和存储器地址分开独立编址,即I/O映射方式。

3 1 i o4
3.1 I/o端口及其编址方式

1.统一编址

这种方式是从存储器空间划出一部分给I/O设备,把I/o接口中的端口当作存储器单元一们进行访问,不设专门的I/O操作指令。Motorola系列、Apple系列微机和一些小型机采用这种方式。优点:

(1)访问I/o端口与访问存储器使用相同的指令。(2)能给端口较大的编址空间。

缺点:

(1)I/o端口占用了存储器的地址空间,使存储容量减少。(2)指令长度较长。

3 1 i o5
3.1 I/o端口及其编址方式

2.独立编址

这种方式是接口中的端口地址单独编址而不和存储器空间合在一起,大型计算机通常采用这种方式,有些微机如IBM-PC系列和Z-80系列机也采用这种方式。

优点:(1)I/O端口不占用存储器空间。(2)使用专门的I/O指令对端口进行操作,I/O指令较短,执行速度快。(3)程序中I/o操作和存储器操作层次清晰,程序可读性 强。

缺点:使用专门的I/O指令,I/O指令不够丰富。

3 1 i o6
3.1 I/o端口及其编址方式
  • 三、独立编址方式的端口访问

I/O指令有:

1. IN 输入

2. OUT 输出

IN 输入指令

长格式为: IN AL,PORT (字节操作)

IN AX,PORT (字操作)

执行的操作为:(AL)<—(PORT) (字节操作)

(AX)<—(PORT+1,PORT) (字操作)

注意长格式适用于端口地址范围为(00H~0FFH)时

3 1 i o7
3.1 I/o端口及其编址方式

短格式为: IN AL,DX (字节操作)

IN AX,DX (字操作)

执行的操作为:(AL)<—((DX)) (字节操作)

(AX)<—((DX)) (字操作)

注意短格式适用于端口地址范围为(0000H~0FFFFH)时

OUT 输出指令

长格式为: OUT PORT,AL (字节操作)

OUT PORT,AX (字操作)

执行的操作为: (PORT) <—(AL)(字节操作)

(PORT+1,PORT) <—(AX)(字操作)

注意长格式适用于端口地址范围为(00H~0FFH)时

3 1 i o8
3.1 I/o端口及其编址方式

短格式为: OUT DX,AL (字节操作)

OUT DX,AX (字操作)

执行的操作为: ((DX)) <—(AL)(字节操作)

((DX)+1(DX)) <—(AX)(字操作)

注意长格式适用于端口地址范围为(0000H~0FFFFH)时

3 1 i o9
3.1 I/o端口及其编址方式

例1:IN AL,60H;把端口地址为60H 的端口的内容送入AL中

例2:MOV DX ,60H

IN AL,DX ;把端口地址为60H 的端口的内容送入AL中

例3:OUT 61H,AL ;把AL 中的内容送到端口地址为61H的端口中

例4:MOV DX,61H

OUT 61H,AL ;把AL 中的内容送到端口地址为61H的端口中

3 2 i o
3.2 I/o端口地址分配

对于接口设计来说,搞清系统I/O端口地址分配十分重要,下面以IBM-PC 为例来分析一下I/O端口地址的分配情况。

  • 一、I/O接口的硬件分类

按照I/O设备的配置情况,I/O接口的硬件分成两类:

1.系统板上的I/O芯片

这类芯片大多是可编程的大规模集成电路,完成相应的接口操作,如定时器/计数器、中断控制器、DMA控制器、并行接口等。

2.I/O扩展槽上的接口控制卡

这些控制卡是由若干个集成电路按一定的逻辑组成的一个部件,如软驱卡、硬驱卡、图形卡、声卡,打印卡等。

3 2 i o1
3.2 I/o端口地址分配

二、I/O端口地址分配

不同的微机对I/O端口地址的分配是不同的。PC 微机是根据上述I/O接口的硬件分类 ,把I/O空间分成两部分。虽然PC微机的地址线有16根,编址空间为64K字节,但在实际使用中只考虑低10位地址线A0~A9,而没有考虑高6位地址线A10~A15,故I/O端口地址范围是0000H~03FFH,总共有1024个端口,并且把前512个端口(000H~1FFH)分配给主板。后512个分配给扩展槽上的常规外设(200H~3FFH) 。后来在PC/AT系统中,作了一些调整,其中前256个端口(000H~0FFH) 供系统板上的I/O接口芯片使用,如表3.1所示。后768(100H~3FFH)给扩展槽上的I/O接口控制卡使用。如表3.2所示

3 2 i o2
3.2 I/o端口地址分配

I/O芯片名称

端口地址

DMA控制器1

000~01FH

DMA控制器2

0C0~0DFH

DMA页面寄存器

080~09FH

中断控制器1

020~03FH

中断控制器2

0A0~0BFH

定时器

040~05FH

并行接口芯片(键盘接口)

060~06FH

RT/CMOS RAM

070~07FH

协处理器

0F0~0FFH

表3.1 系统板上接口芯片的端口地址

3 2 i o3
3.2 I/o端口地址分配

I/O接口名称

端口地址

游戏控制卡

200~20FH

并行口控制卡1

370~37FH

并行口控制卡2

270~27FH

串行口控制卡1

3F8~3FFH

串行口控制卡2

2F0~2FFH

原型插件板(用户可用)

300~31FH

同步通信卡1

3A0~3AFH

同步通信卡2

380~38FH

单显MDA

3B0~3BFFH

彩显CGA

3D0~3DFH

彩显EGA/VGA

3C0~3CFH

硬驱控制卡

1F0~1FFH

软驱控制卡

3F0~23F7H

PC网卡

360~36FH

表面3.2扩展槽上接口控制卡的端口地址

3 3 i o
3.3 I/o端地址译码

CPU为了对端口进行读写操作,就需要确定与自己交换信息的端口,那么是通过什么媒介把来自地址总线上的地址代码翻译成为所需要访问的端口的,这是地址译码问题,这介“媒介 ”就是I/O地址译码电路。

  • 一、I/O地址译码电路工作原理及作用

1. 译码电路的输入信号,输入信号不仅包括地址信号,有时还与控制信号有关,用AEN信号控制非DMA 传送以及用IOR、IOW信号控制对端口的读/写等。

2. 译码电路的输出信号,译码电路把输入的地址线和控制线经过逻辑组合后,产生输出信号线就是1根选中线,低电平有效。

3 3 i o1
3.3 I/o端地址译码

二、I/O地址译码方法

I/O地址译码方法灵活多样,可按地址和控制信号的不同组合进行译码。一般是把地址线分类两部分:一部分是高位地址线与CPU 的控制信号进行组合,经译码电路产生I/O接口的片选信号CS信号,实现系统中的片间寻址。另一部分是低位地址线不参加译码,直接连到I/O接口芯片,进行I/O接口芯的片内端口寻址。

三、I/O端口地址译码电路设计

译码电路的形式可分为固定式译码和可选式译码。若按译码电路采用的元器件来分,又可分为门电路译码和译码器译码。

1. 固定式端口地址译码,所谓固定式译码是指接口中用到的端口地址不能更改。

3 3 i o2
3.3 I/o端地址译码

例1:使用74ls20/30/32和74ls04设计I/O端口地址为2F8H的只读译码电路。

分析:若要产生2F8H端口地址,则译码电路的输入地址线应如表3.2所示的值。

设计:按照表3.3中地址线的值,采用门电路就可以设计出译码电路.

3 3 i o3
地址线

0 0 A9 A8

A7 A6 A5 A4

A3 A2 A1 A0

二进制

0 0 1 0

1 1 1 1

1 0 0 0

十六进制

2

F

8

3.3 I/o端地址译码

表3.3译码电路输入地址线的值

3 3 i o4
3.3 I/o端地址译码

例2:使用74ls138设计一个系统板上接口芯片的I/O端口地址译码电路,并且让每个接口芯片内容的端口数目为32个。

分析:由于系统板上的I/O端口地址分配为000H~0FFH范围内,故只使用低8位地址线,这意味着A9和A8两位应为00,为了让每个端口拥有32个端口,只要留出5根低位地址线不参加译码。

设计:按照表2.3中地址线的值,采用门电路就可以设计出译码电路.

3 3 i o5
3.3 I/o端地址译码

2。可选式端口地址译码,如果用户要求接口卡的端口地址能适应不同的地址分配场合,或为系统以后扩充留有余地,则采用开关式端口地址译码。这种译码方式可以通过开关使接口卡的I/O 端口地址根据要求加以改变而无需改动线路,其电路可由地址开关、译码器、比较器或异或门几种元器件组成。

例3:设计扩展板上的I/O端口地址译码电路,要求让扩展板上每个接口芯片的内部端口数目为4 个,端口地址可选,如为300H~31FH。

slide26
3.4 GAL器件及其在I/O地址译码中的应用。

一、GAL器件的特点

1、可以实现组合逻辑和时序逻辑电路多种功能

2、采用电擦除工艺,门陈列单元可以改写,因而器件的逻辑功能可以重新配置。

3、具有硬件加密功能,可以防止复制。

4、速度高而功耗低。

二、GAL器件的开发工具及开发步骤

1、开发工具

硬件工具:编程器EXPRO-4、ALL-03、ALL-07

软件工具:编译型CUPL、ABEL及汇编型FM。

2、开发步骤与方法

1)利用文本编辑程序(EDIT)按一定格式编写GAL编程输入源文件(GAL设计说明书)

slide27
GAL16V8 ; -1-

BASIC GATES ; -2-

JIN YONG XIAN ; -3-

BGATES ; -4-

C D F G M N P Q I GND ; -I-

J K L R O H E B A VCC

B=/A ;INVERTER -J-

E=C*D ;AND GATE

H=F+G ;OR GATE

L=/I+/J+/K ;NAND GATE

O=/M*/N ;NOR GATE

R=P*/Q+/P*Q ;XOR GATE

DESCRIPTION ;KEY WORD

slide28
THIS EXAMPLE ILLUSTRATES THE USE

OF GAL DEVICE AND ITS DEVELOPMENT TOOL

第1行 器件型号,必须大写

第2行 标题(GAL器件应用)

第3行 设计者姓名、日期

第4行 电子标签

第I行 引脚名,可占用多行

第J行 逻辑方程,可占用多行

第K行 程序描述。DESCRIPTION是关键字,不可以少,且必须大写。

slide29
2)使用FM.EXE对GAL输入源文件进行汇编,并生成三个文件.

LST列表文档文件-源文件和引脚分配图

PLT熔丝状态分配图文件-供用户查看逻辑方程

JED分布数据文件-包含门阵列中所有节点的编程信息代码

3)使用ALL-03编程器将扩展名为.JED装载文件“烧”到GAL中

三、采用GAL的I/O端口地址译码电路设计

1、要求

利用GAL器件设计MFID多功能微机接口实验平台的I/O端口地址译码电路,地址范围300H-3FFH,分成16段,每段包含接口4片,每个接口拥有4个端口。

2、分析

slide30
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

slide31
输入脚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中。

slide33
4、GAL器件译码电路的编程

1)编写GAL输入源文件

GAL16V8

ADDRESS DECODER

XH 2/24/2001

DECODER

NC A9 A8 A3 A2 IOR IOW AEN AB GND

NC DS DIR NC NC Y0 Y1 Y2 Y3 VCC

/DS=A9*A8*/AEN*AB*/IOR+A9*A8*/AEN*AB*/IOW

DIR=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

slide34
/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*/IOW

DESCRIPTION

2)利用FM.EXE文件对DECODER.PLD进行汇编,自动生成三个文件。

文件1: DECODER.LST文档文件,包括源文件和16V8

引脚图;

文件2: DECODER.PLT熔丝状态分布图文件。符号“X”

表示16V8内部门陈列节点上已连接,符号“-”表示未连接。

文件3:DECODER.JED文件。包括门陈列中所有节点

的编程信息。其中“0”表示节点已连接,“1”为未连

接。

3)使用ALL03编程器将DECODER.JED写入GAL16V8中。

slide35
x - --x - --x-- - x- - - -x-- - - -- -x-- x---

01110111011101111011111110110111

x- -- x --- x- -- x --- - - ---x ---x -- x ---

01110111011101111111101110110111

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

00000000000000000000000000000000

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

00000000000000000000000000000000

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

00000000000000000000000000000000

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

00000000000000000000000000000000

ad