第 7 章 可编程接口芯片及应用

Post on 03-Jan-2016

133 Views

Category:

Documents

9 Downloads

Preview:

Click to see full reader

DESCRIPTION

第 7 章 可编程接口芯片及应用. 第十三讲 接口电路 2006.12.11 (星期二). 本节介绍 8253-5 定时 / 计数器接口 计数器定时器概述 8253 的工作原理 8253 的应用举例. 7.1 计数器定时器概述. 在计算机系统中往往需要一些时钟,以便实现定时控制或延迟控制,如定时扫描、定时中断、定时检测等等。 在另外一些场合往往需要计数器,以便对事件进行计数。而定时功能通常是通过计数来实现的,因此一般将两者融为一体。. 定时控制或计数事件举例. [1] 分时系统的程序切换 [2] 向外部设备输出周期性定时控制信号 - PowerPoint PPT Presentation

TRANSCRIPT

第 7章 可编程接口芯片及应用• 本节介绍 8253-5 定时 / 计数器接口

– 计数器定时器概述– 8253 的工作原理– 8253 的应用举例

第十三讲 接口电路2006.12.11 (星期二)

7.1 计数器定时器概述• 在计算机系统中往往需要一些时钟,以

便实现定时控制或延迟控制,如定时扫描、定时中断、定时检测等等。

• 在另外一些场合往往需要计数器,以便对事件进行计数。而定时功能通常是通过计数来实现的,因此一般将两者融为一体。

定时控制或计数事件举例• [1] 分时系统的程序切换• [2] 向外部设备输出周期性定时控制信号• [3] 定时时间到发出中断申请• [4] 外部事件统计达到规定值发出控制信

号或提出中断请求

计数器和定时器的功能• 两个方面:

(1) 作为计数器,在设置好计数常数 ( 即定时初值 ) 后,便开始减 1 计数,减到“ 0” 时,输出一个信号。

(2) 作为定时器,在设置好定时常数后,便进行减 1 计数,并按定时常数不断地输出为时钟周期整倍数的定时间隔。

两者区别是,作计数器时,在减到 0 以后,输出一个信号后便结束;作定时器时,不断产生定时脉冲信号。

实现定时的方法

• 主要有三种方法来实现定时功能软件定时不可编程的硬件定时可编程的硬件定时

软件定时• 方法:

– 让机器循环执行某一条或一系列指令• 特点:

– 通过正确选取指令和合适的循环次数,便很容易实现定时功能

– 灵活方便节省费用,最简单的定时。– CPU 的利用率太低

不可编程硬件定时• 专用的芯片:

– 例如: 555

• 特点:– 外接电阻 R 和电容 C– 电路结构简单,价格便宜。– 定时时间和范围不能由程序控制和改变

可编程硬件定时• 方法:

– 由微处理器的时钟信号提供时间基准– 利用硬件电路和中断方法控制定时– 定时时间和范围完全由软件来确定和改变

• 硬件部分称为可编程定时器 / 计数器电路• 特点:

– CPU 利用率高– 定时时间由软件设置,使用灵活方便。– 定时精确,获得广泛应用。

8253 芯片介绍• 定时器 / 计数器芯片 8253-5 是 Intel 系列的定时

器 / 计数器芯片,被广泛应用于 PC 机系列,提供系统定时和系统发声源。

• 同 8253 相兼容的芯片有 8254-2 等,它们的主要区别是计数频率不同。 8253-5 的计数频率为5MHz ,而 8254-2 则可达 10MHz 。

7.2 8253 的工作原理• 主要介绍以下内容

– 8253 框图– 8253 引脚信号– 8253 工作方式– 8253 编程方法

8253 的内部框图D7~D0

RD

WR

A0

A1

CS

OUT2

GATE2

CLK2

数据总线缓冲器

/读 写

逻辑

控制字寄存器

线

0通道

计数器

1通道

计数器

2通道

计数器

OUT1

GATE1

CLK1

OUT0

GATE0

CLK0

8253的内部框图

• 如上图所示, 8253 由外部数据接口、内部控制电路以及3 个计数器通道所组成。(1)数据总线缓冲器

• 这是 8253 和 CPU 数据总线的接口部件,是 8 位、双向、三态的缓冲器, CPU 访问 8253 时所有数据都经过这个缓冲器传送。

(2)读 /写控制逻辑• 这是 8253 内部操作的控制

电路,它从系统控制线上接收输入信号,然后转变成 8253 内部操作的各种控制信号。

D7~D0

RD

WR

A0

A1

CS

OUT2

GATE2

CLK2

数据总线缓冲器

/读 写

逻辑

控制字寄存器

线

0通道

计数器

1通道

计数器

2通道

计数器

OUT1

GATE1

CLK1

OUT0

GATE0

CLK0

8253的内部框图

(3)控制字寄存器• 当 A1 和 A0 都为 1 时,

访问控制字寄存器,它从数据总线上接收CPU 送来的控制字,并由控制字的 D6 ,D7 的编码决定控制字写入哪个通道的控制寄存器,由寄存在每个通道的控制字寄存器里的控制字,决定每个计数器通道的工作方式、选择计数器是按二进制或二—十进制计数、并选择每个计数器初值的写入顺序。

D7~D0

RD

WR

A0

A1

CS

OUT2

GATE2

CLK2

数据总线缓冲器

/读 写

逻辑

控制字寄存器

线

0通道

计数器

1通道

计数器

2通道

计数器

OUT1

GATE1

CLK1

OUT0

GATE0

CLK0

8253的内部框图

(4)通道 0计数器、通道 1计数器和通道 2计数器

8253 由 3 个同样的计数通道组成,每个计数通道都有 CLK 和 GATE两根输入引脚和 OUT一根输出引脚。从编程的角度看,每个计数通道的结构如下图所示。外部输入到 8253 的 CL

K 引脚上的时钟脉冲频率不能大于 2MHz 。如果大于 2MHz ,则必需经分频后才能送到 CLK端。

D7~D0

RD

WR

A0

A1

CS

OUT2

GATE2

CLK2

数据总线缓冲器

/读 写

逻辑

控制字寄存器

线

0通道

计数器

1通道

计数器

2通道

计数器

OUT1

GATE1

CLK1

OUT0

GATE0

CLK0

8253的内部框图

8253 的计数通道结构CRL(8位)CRH(8位)

(CR)计数寄存器

CEL(8位)CEH(8位)

(CE)计数单元

OLL(8位)OLH(8位)

(OL)输出锁存器

CLK0

GATE0

OUT0

8253计数通道结构

8253 的引脚信号图123456789101112

242322212019181716151413

8253

D5D4D3D2

GND

D7D6

VCC

CLK2

CS

GATE1OUT1

8253外部引脚图

WRRD

A1A0

OUT2

CLK1OUT0

CLK0

D0

GATE0

D1

GATE2

8253寄存器寻址CS RD WR A1 A0 寄存器选择和操作

0 1 0 0 0

0 1 0 0 1

0 1 0 1 0

0 1 0 1 1

0 0 1 0 0

0 0 1 0 1

0 0 1 1 0

0 CR写入 通道计数寄存器 0

1 CR写入 通道计数寄存器 1

2 CR写入 通道计数寄存器 2

3写入 个通道的控制寄存器

0 OL读 通道锁存器 0

1 OL读 通道锁存器 1

2 OL读 通道锁存器 2

0 0 1 1 1 无操作

A1A0 引脚接线方法 1

• 8088 系统的接线方法– 只要将 A1A0 分别与地址总线的最低两位 A1,A0 相连

即可。比如,在以 8088 为 CPU 的 PC/XT 机中,地址总线高位部分 (A9~ A4) 用于 I/O端口译码,形成选择各 I/O 芯片的片选信号,低位部分 (A3~A0) 用于各芯片内部端口的寻址。若 8253 的端口基地址为 40H ,则通道 0 , 1 , 2 和控制字寄存器端口的地址分别为 40H , 41H , 42H 和 43H 。

8253 引脚信号• 8253 的 3 个计数通道在结构和功能上是

完全一样的,每个通道都有一个时钟输入引脚 CLK 、一个输出引脚 OUT 和一个门控引脚 GATE 。下面介绍这 3根引脚的功能。

8253 引脚信号• CLK 时钟输入引脚

– 每个通道的计数器单元 CE ,对 CLK 输入脉冲进行计数。 CLK 脉冲可以是系统时钟脉冲,也可以由系统时钟分频或者是其它脉冲源提供。这个输入脉冲可以是均匀的、连续的、周期精确的,也可以是不均匀的、断续的、周期不定的。

– 若 8253 用作分频器,工作于定时器方式时,则 CLK 输入是连续的、周期精确的时钟脉冲,而 OUT输出必定是频率降低的、周期精确的时钟脉冲。

– 若 8253 用作计数器,这时要求 CLK 输入只是脉冲的数量,而不是脉冲的时间间隔,所以 CLK 可以输入周期不定的脉冲。当然也可以输入周期确定的脉冲。当计数到预置的数值后,就从 OUT端输出一个脉冲。若 CLK 的脉冲周期不定,则 OUT 输出的脉冲周期也不确定。

8253 引脚信号• OUT 脉冲输出引脚

– 减 1 计数到零 / 定时时间到的脉冲输出引脚。不管8253 工作于何种方式,当计数器减 1 计数到零时,在 OUT 引脚上必定有电平或脉冲信号输出。

• GATE 门控输入引脚– 这是一根外部控制计数器工作的信号线,通常当 G

ATA 为低电平时,就禁止通道的计数单元计数。

8253 控制字寄存器• 控制字寄存器是一种只写寄存器,在对 8253

进行编程时,由 CPU 用输出指令向它写入控制字,来选定计数器通道,规定各计数器通道的工作方式,读写格式和数制。控制字的格式如下图所示。

8253 的控制字格式SC1 SC0 RL1 RL0 M2 M1 M0 BCD

D7 D6 D5 D4 D3 D2 D1 D0

1 BCD码计数0 2进制计数

000 0方式001 1方式X10 2方式X11 3方式100 4方式101 5方式

00 计数器锁存, CPU供 读01 /只读 写计数器低字节10 /只读 写计数器高字节11 /先读 写计数器低字节, /后读 写高字节

00 0选择通道01 1选择通道10 2选择通道11 无效

8253控制字格式

8253 控制字说明 1• SC1SC0—— 通道选择位

– 由于 8253 内部有 3 个计数通道,需要有 3 个控制字寄存器分别规定相应通道的工作方式,但这 3 个控制字寄存器只能使用同一个端口地址,在对 8253 进行初始化编程,设置控制字时,需由这两位来决定在向哪一个通道写入控制字。选择 SC1SC0= 00 , 01 , 10 分别表示向 8253 的计数器通道 0~ 2写入控制字。SC1SC0=11 时无效。

8253 控制字说明 2

• RL1RL0——读/写操作位– 用来定义对选中通道中的计数器的读/写操

作方式。当 CPU 向 8253 的某个 16 位计数器装入计数初值,或从 8253 的 16 位计数器读入数据时,可以只读写它的低 8 位字节或高 8 位字节。 RL1RL0 组成 4 种编码,表示 4种不同的读/写操作方式 。

读 /写操作字段的定义 RL1RL0=01 ,表示只读/写低 8 位字节数据,只写入

低 8 位时,高 8 位自动置为 0 。 RL1RL0=10 ,表示只读/写高 8 位字节数据,只写入

高 8 位时,低 8 位自动置为 0 。 RL1RL0=11 ,允许读/写 16 位数据。由于 8258 的数

据线只有 8 位 (D7~D0) ,一次只能传送 8 位数据,故读/写 16 位数据时必须分两次进行,先读/写计数器的低 8 位字节,后读/写高 8 位字节。

RL1RL0=00 ,把通道中当前数据寄存器的值送到 16

位锁存器中,供 CPU读取该值。

8253 控制字说明 3

• M2M1M0—— 工作方式选择位– 8253 的每个通道都有 6 种不同的工作方式,

即方式 0~5 。当前工作于哪种方式,由这 3位来选择。每种工作方式的特点、计数器的输出与输入及门控信号之间的关系等问题,将在后面作进一步介绍。

8253 控制字说明 4• BCD—— 计数方式选择位

– 当 BCD 位为 1 时,采用 BCD码计数,写入计数器的初值用 BCD码表示,初值范围为 0000~ 9999H ,其中 0000表示最大值 10000 ,即 104 。例如,当我们预置的初值 n=1200H 时,就表示预置了一个十进制数 1200 。

– 当 BCD 位为 0 时,则采用二进制格式计数,写入计数器中的初值用二进制数表示。在程序中,二进制数可以写成 16 进制数的形式,所以初值范围为 0000~ FFFFH ,其中 0000表示最大值 65536 ,即 216 。这时,如果我们仍预置了一个初值 n=1200H ,就表示预置了一个十进制数 4608 。

8253 初始化编程步骤• 刚接通电源时,诸如 8253之类的可编程外围

接口芯片通常都处于未定义状态,在使用之前,必须用程序把它们初始化为所需的特定模式,这个过程称为初始化编程。对 8253 芯片进行初始化编程时,需按下列步骤进行:(1)写入控制字(2)写入计数初值

8253 初始化编程举例• 在某微机系统中, 8253 的 3 个计数器的端口

地址分别为 4E0H 、 4E2H 和 4E4H ,控制字寄存器的端口地址为 4E6H ,要求 8253 的通道0 工作于方式 3 ,并已知对它写入的计数初值n= 1234H ,则初始化程序如下:

MOV AL,00110110B ;选择通道 0,先读 /写低字节 ;后高字节,方式 3,二进制计数MOV DX, 4E6H ;指向控制口OUT DX, AL ;送控制字MOV AL, 34H ;计数值低字节MOV DX, 4E0H ;指向计数器(通道) 0 端口OUT DX, AL ;先写入低字节MOV AL, 12H ;计数值高字节OUT DX, AL ;后写入高字节

门控信号的控制功能• 门控信号 GATE 在各种工作方式中的控制功能如下表所

示,其中符号“—”表示无影响。工作方式

方式0

方式 1

方式 2

方式 3

方式 4

方式 5

GATE为低电平或下降沿

禁止计数

禁止计数 ,使输出变高

禁止计数 ,使输出变高

禁止计数

GATE为上升沿

从初始值开始计数 ,下一个时钟后输出变为低电平

从初值开始计数

从初值开始计数

从初值开始计数

GATE为高电平

允许计数

允许计数

允许计数

允许计数

8253 的工作方式• 8253 的每个通道都有 6 种不同的工作方

式,现在介绍如下:– 方式 0 计数结束中断方式– 方式 1 可编程单稳态输出方式– 方式 2 比率发生器– 方式 3 方波发生器– 方式 4 软件触发选通– 方式 5 硬件触发选通

8253 工作方式 0 的时序图

CLK

GATE(高电平)

WR(n=5)

允许计数开始计数

5 4 3 2 1 0

暂停计数继续计数

OUT

GATE

OUT5 4 3 2 1 0

计数结束

8253 0工作方式 的时序图

8253 工作方式 1 的时序图

8253 1工作方式 的时序图

计数结束

CLK

GATE

WR(n=5)

OUT

GATE

OUT

5 4 3 2 1 0

5 4 3 2 1 02345

开始计数

不停计数重新开始计数

8253 工作方式 2 的时序图CLK

GATE(高电平)

WR(n=5)

OUT

GATE

OUT

4 3 21 1

0(5) 2345

5 4 45 3 21

4 3

重新开始计数

暂停计数

开始计数允许计数

自动重复计数 自动重复计数

自动重复计数

4

8253 2工作方式 的时序图

0(5)

0(5)

8253 工作方式 3 的时序图

8253 3工作方式 的时序图

CLK

GATE(高电平)

WR

OUT(n=5)

OUT(n=4)

允许计数开始计数

自动重复计数

自动重复计数

自动重复计数

自动重复计数5 4 3

2 1

4 32 1 12

312

3

34 42 1 0(5)0(5)

0(4) 0(4)

8253 工作方式 4 的时序图CLK

WR(n=5)

OUT

GATE

GATE(高电平)

OUT

开始计数允许计数

暂停计数

5 4 3 2 1 0

5 54 4 3 2 1 0

8253 4工作方式 的时序图

重新开始计数

8253 工作方式 5 的时序图

重新开始计数

CLK

WR(n=5)

GATE

OUT

GATE

OUT

开始计数

不停计数5

5

4

4 45

3

3 3

2

2 2

1

1

0

0

8253 5工作方式 的时序图

9.3 8253 应用举例• 8253 芯片可以用在微型机系统中,构成各种计

数器、定时器电路或脉冲发生器等。使用 8253时,先要根据实际需要设计硬件电路,然后用输出指令向有关通道写入相应的控制字和计数初值。也就是对 8253 进行初始化编程。此后 8253就可以工作了。

• 由于 8253 的 3 个计数通道是完全独立的。因此可以分别对它们进行硬件设计和软件编程, 使三个通道工作于相同或不同的工作方式。

用 8253 产生各种定时波形• 某个以 8086 为 CPU 的系统中使用了一块 8

253 芯片,通道的基地址为 310H ,所用的时钟脉冲频率为 1MHz 。

• 指定 3 个计数通道分别完成以下功能:(1) 通道 0 工作于方式 3 ,输出频率为 2kHz 的方波

(2) 通道 1 产生宽度为 480μs 的单脉冲(3) 通道 2 方式 2 ,输出负脉冲,时间常数为 26 。

• 据此设计的硬件电路如下图所示。

8259 应用举例1

8253 定时波形产生电路A

9A

8

A7

A6

A5

A4

A3

A0

A2

A1

8086CPU

G1

G2A

G2B

CBA

Y4

74LS138 CLK0

CLK1

CLK2

GATE0

OUT0

GATE1

OUT1

GATE2

OUT2

D7~D0

WRRD

A0

CS

8253

1MHz 方波

+5V

2KHz 方波

480μs 宽单脉冲

负脉冲

A1

M/IO

RDWR

D7~D0

初始化程序清单 1; 通道 0 初始化程序MOV DX, 316H ; 控制口地址MOV AL, 00110111B ; 通道 0 控制字,先读写低字节 ; 后高字节,方式 3 , BCD 计数OUT DX, AL ;写入方式字MOV DX, 310H ; 通道 0 口地址MOV AL, 00H ; 低字节OUT DX, AL ;先写入低字节MOV AL, 05H ; 高字节OUT DX, AL ; 后写入高字节

初始化程序清单 2; 通道 1 初始化程序MOV DX, 316HMOX AL, 01110011B ; 通道 1 方式字,先读写低字节 ; 后高字节,方式 1 , BCD 计数OUT DX, ALMOV DX, 312H ; 通道 1 口地址MOV AL, 80H ; 低字节OUT DX, ALMOV AL, 04H ; 高字节OUT DX, AL

初始化程序清单 3; 通道 2 初始化程序MOV DX, 316H

MOV AL, 10010101B ; 通道 2 控制字,只读写低字节 ; 方式 5 , BCD 计数OUT DX, AL

MOV DX, 314H ; 通道 2 口地址MOV AL, 26H ; 低字节OUT DX, AL ;只写入低字节

8253 在 PC/XT 机中的应用• 在 PC/ XT 机中,使用 8253-5 作计数器/定时器电路。参看下面的电路连接图。

• 三个计数通道的用途分别如下:计数通道 0--- 实时时钟 计数通道 1---动态 RAM刷新定时器 计数通道 2---扬声器音调控制

8253 在 PC/XT 机中的接线图DACK0BRD

从 8255A-5来

2.38636MHz

RESETDRV

PB0

PCLK

D

74LS175U21

D Q

C Q

74LS175U21

D Q

C

S

CLR

IRQ0

到 8259A

DRQ0

到 8237A-5

T/C2 0UT到扬声器接口电路

GATE0

GATE1

GATE2

CLK0

CLK1

CLK2

OUT0

8253-5

WRRD

CS

A1

A0

D7~D0

+5V

+5V

D7~D0

A0

A1

T/C CS

IOWIOR

U26

OUT1

OUT2

启动 DMA

思考:

1 。熟悉课上 8253 的应用例题

2 。设计电路,用 8253 产生 10Hz 的方波,输入时钟为 1MHz

top related