1
第 8章 可编程接口芯片及其应用
8.1 可编程接口芯片概述
8.2 可编程并行接口芯片 8255A
8.3 可编程定时器 /计数器 8253-5
8.4 串口接口芯片
8.5 模拟接口
2
8.1 可编程接口芯片概述
片选概念
读 /写概念
可编程接口的概念
“联络”的概念
3
8.1 可编程接口芯片概述接口电路中多数具有如下电路单元:
( 1)输入 /输出数据锁存器和缓冲器用以解决 CPU与外设之间速度不匹配的矛盾,
以及起隔离和缓冲的作用;
( 2)控制命令和状态寄存器以存放 CPU对外设的控制命令,
以及外设的状态信息;
4
( 3)地址译码器用来选择接口电路中的不同端口(寄存器);
( 4)读写控制逻辑;
( 5)中断控制逻辑。
从早期的逻辑电路板 到 大规模集成电路芯片为主的接口芯片。
5
8.1.1 片选概念必须要有一个地址信号选中接口芯片后,
才能使该接口芯片进入电路工作状态,实现数据的输入 /输出。
选通端 CE( Chip
Enable),又称片选端
CS ( Chip Select)。
CE端是控制接口芯片进入电路工作状态的引脚端。
6
8.1.2 读 /写概念,
用 IN,OUT指令读 /写。
8.1.3 可编程接口的概念接口芯片大部分是多通道、多功能的。
多通道是指一个接口芯片一面与 CPU连接,
另一面可接几个外设;
多功能是指一个接口芯片能实现多种接口功能,实现不同的电路工作状态。
7
在接口芯片中,各硬件单元不是固定接死的,可由用户在使用中选择,即通过计算机的指令来选择不同的通道和不同的电路功能,称为“编程控制”。接口电路的组态(即电路工作状态)可由计算机指令来控制的接口芯片称为“可编程序接口芯片”。
用来存放控制电路组态的控制字节的寄存器,称为“控制寄存器”。
8
8.1.4,联络”的概念接口芯片常常需要和外设间有一定的“联络”信号,
以保证信息的正常传送。
通常采用两个“联络”( Handhake) 信号,(选通信号,strobe) 和 RDY( 就绪信号,Ready)。
STB
9
8.2 可编程并行接口芯片 8255A
8255A的结构和引脚功能
8255A的工作方式
8255A的初始化
8255A的应用举例
16位系统中的并行接口
10
8.2 可编程并行接口芯片 8255A
Intel 8255A是一种通用的可编程序并行 I/O接口芯片,
又称“可编程外设接口芯片” PPI( Programmable
Peripheral Interface)。
8.2.1 8255A的结构和引脚功能一,8255A的内部结构有三个 8位端口 PA,PB和 PC,都可由程序设定为各种不同的工作方式。
通常 PA口与 PB口用作输入 /输出的数据端口,PC口通常用作控制或状态信息的端口,PC口可以分成两个 4位的端口 。
11
二,8255A的引脚功能
8255A采用 40条引脚的双列直插式 (DIP,
Dual in-1ine package)封装,其引脚信号教材:
有 2条地址线 A1.A0
4个端口地址 A1 A0
0 0 PA口地址
0 1 PB口地址
1 0 PC口地址
1 1 控制口地址
12
13
8.2.2 8255A的工作方式一、方式 0—基本输入输出
8255A在方式 0工作时:
CPU可以采用无条件读写方式与 8255A交换数据。
若把 C口的两个部分用作控制和状态口,与外设的控制和状态端相连,CPU也可通过对 C口的读写,实现 A口与 B口的查询方式工作。
输出的数据被锁存,而输入数据是不锁存的。
14
二、方式 1—选通输入输出(应答式输入输出)
C口可分成两部分,分别作为 A口和 B口的联络信号。在 8255A中规定的联络信号是三位。
方式 1可工作于查询方式和中断方式。
1.方式 1的输入
( 1),输入的选通信号,
( 2) IBF,输入缓冲器满信号,
( 3) INTR,中断请求信号,
( 4) INTE,中断允许信号,A端口用 PC4位的置位 /
复位控制,B端口用 PC2位的置位 /复位控制。
STB
15
16
2,方式 1的输出
( 1),输出缓冲器满信号,
( 2),响应信号,
( 3) INTR,中断请求信号,
( 4) INTE,中断允许信号,INTEA用 PC6,INTEB用
PC2设置三、方式 2—双向选通输入输出工作时可以采用中断方式,也可以采用查询方式与
CPU联系。
方式 2只限于 A组使用。
OBF
ACK
17
18
19
8.2.3 8255A的初始化首先要由 CPU对 8255A写入控制命令字,有 2种控制命令字:一个是方式选择控制字,另一个是 C
口按位置位 /复位控制字。
一、方式选择控制字( D7=1)
二,C口按位置位 /复位控制字( D7=0)
控制字的格式如图:
20
21
22
8.2.4 8255A的应用举例一、键盘接口两类键盘:编码键盘和非编码键盘。
编码键盘能自动提供对应于被按键的编码信息,如 ASCII码,并能同时产生一个选通脉冲通知微处理器。
非编码键盘由一组开关组成,提供行和列的键盘矩阵。其全部工作,包括按键的识别、按键代码的产生、防止串键和消去抖动等问题,都靠程序来实现。
23
键盘输入信息的过程:
( 1)检测是否有键按下;
( 2)查出按下的是哪一个键;
( 3)将该键所代表的信息翻译成计算机能识别的内部代码。如 ASCII码或其他预先约定的编码。
24
25
使用行扫描方式寻找按下键的编号 (键号 )的程序如下:
…
PORTA EQU 0FFF8H
PORTB EQU 0FFFAH
PORTC EQU 0FFFCH
PORTCN EQU 0FFFEH
MOV DX,PORTCN
MOV AL,10000011B
OUT DX,AL
WAITK,MOV DX,PORTA
MOV AL,0
OUT DX,AL
26
MOV DX,PORTB
IN AL,DX
CMP AL,0FFH
JZ WAITK
MOV BL,0
MOV BH,11111110B
MOV CX,8
FNDROW,MOV AL,BH
MOV DX,PORTA
OUT DX,AL
ROL BH,1
MOV DX,PORTB
IN AL,DX
27
CMP AL,0FFH
JNZ FNDCOL
ADD BL,8
LOOP FNDROW
JMP DONE
FNDCOL,ROR AL,1
JNC RIGHT
INC BL
JMP FNDCOL
RIGHT,…
…
DONE,…
28
二、七段 LED显示器接口发光二极管是一种当电极间电压(阳极电压接高电位)超过额定电压时发生击穿,并因此产生可见光的器件。
这种数码显示管通常由多个发光二极管来组成的 7
段或 8段笔划显示器。
当段组合发亮时,便可显示某一数码或字符。
8个 7段 LED显示器上显示 8位 16进制数,每个显示器显示其中一位数。
29
30
31
…
SSEGCODE DB 0C0H
DB 0F9H
DB 0A4H
DB 0B0H
DB 99H
DB 92H
DB 82H
DB 0F8H
DB 80H
DB 98H
DB 88H
DB 83H
DB 0C6H
32
DB 0AlH
DB 86H
DB 8EH
FOURBYTE EQU THIS BYTE
DBLWORD DD 12345678H
…
MOV AL,10000000B
MOV DX,0FFFEH
OUT DX,AL
…
CLD
AGAIN,MOV CX,4
MOV SI,OFFSET FOURBYTE
33
MOV AH,11111110B
LOOPDISP,LODSB
MOV DI,AX
AND AL,0FH
MOV BX,OFFSET SSEGCODE
XLAT SSEGCODE
MOV DX,0FFFAH
OUT DX,AL
MOV AL,AH
MOV DX,OFFF8H
OUT DX,AL
PUSH CX
MOV CX,NDELAY
34
IDLE,NOP
NOP
LOOP IDLE
…
MOV AL,0FFH
OUT DX,AL
MOV AX,DI
MOV CL,4
SHR AL,CL
MOV BX,OFFSET SSEGCODE
XLAT SSEGCODE
MOV DX,0FFFAH
OUT DX,AL
ROL AH,1
35
MOV AL,AH
MOV DX,0FFF8H
OUT DX,AL
MOV CX,NDELAY
IDLE2,NOP
NOP
LOOP IDIE2
ROL AH,1
MOV AL,0FFH
OUT DX,AL
POP CX
LOOP LOOPDISP
JMP AGAIN
…
36
三、打印机接口
1,并行接口标准( Centronice)
该标准规定了一个 36芯的连接口。
,数据选通接口;
DATA,数据信号;
,响应信号;
BUSY,忙信号。
STB
STB
ACK
37
2,打印机的工作过程及接口电路打印机接口电路也称打印机适配器,可以用锁存器、三态缓冲器等器件实现,也可用通用的可编程并行接口芯片实现。
38
39
( 1) 8255A的初始化程序段 ( 设 8255A的 I/O端口地址为
2C0H- 2C3H),
…
MOV DX,02C3H
MOV AL,1010l00lB
OUT DX,AL
MOV AL,0000l101B
OUT DX,AL
MOV DX,02ClH
MOV AL,00001100B
OUT DX,AL
…
40
( 2) 打印机中断服务程序
PRINT PROC NEAR
PUSH AX
PUSH DX
MOV DX,02C0H
MOV AL,[BX]
OUT DX,AL
MOV DX,02C1H
IN AL,DX
41
OR AL,01H
OUT DX,AL
AND AL,0FEH
OUT DX,AL
INC BX
POP DX
POP AX
IRET
PRINT ENDP
42
四,LED/开关接口
8086CPU通过 8255A同开关与 7段 LED显示器的接口:
43
控制程序如下:
ORG 2000H
MOV AL,82H
MOV DX,0FFFEH
OUT DX,AL
RDPORTB,MOV DL,0FAH
IN AL,DX
AND AL,0FH
MOV BX,OFFSET SSEGCODE
XLAT
MOV DL,0F8H
OUT DX,AL
MOV AX,56CH
44
DELAY,DEC AX
JNZ DELAY
JMP RDPORTB
HLT
ORG 2500H
SSEGCODE DB 0C0H,0F9H,0A4H,0B0H,99H,92H,
DB 82H,0F8H,80H,98H,88H,83H,0C6H,
DB 0A1H,86H,8EH
45
控制程序 ( 2)
ORG 2000H
MOV AL,80H
MOV DX,0FFFEH
OUT DX,AL
MOV BX,20
DISPLOP,LEA DI,SSEGCODE
MOV CX,16
LOP,MOV AL,[DI]
MOV DL,0F8H
OUT DX,AL
INC DI
CALL DELAY5S
46
LOOP LOP
DEC BX
JNZ DISPLOP
HLT
ORG 2500H
SSEGCODE,DB 0C0H,0F9H,0A4H,0B0H,99H,92H,
DB 82H,0F8H 80H,98H,88H,83H,0C6H,
DB 0A1H,86H,8EH
47
8.2.5 16位系统中的并行接口
48
8.3 可编程定时器 /计数器 8253-5
可编程定时器 /计数器的基本工作原理
8253-5的结构和功能
8253-5的工作方式
49
8.3 可编程定时器 /计数器 8253-5( PIT)
在微机应用系统中,一种是要求一些外部实时时钟,以实现延时控制或定时;另一种是要求能对外部事件计数的计数器。
8253-5PIT( Programmable Interval Timer) 就是一种可编程定时器 /计数器芯片,又称为“可编程间隔定时器”。
50
8.3.1 可编程定时器 /计数器的基本工作原理
16位计数初值寄存器 CR用来存放计数初值,可通过程序来设定。
计数执行单元 CE是一个 16位减法计数器,它的初值便是计数初值寄存器的内容,它只对 CLK脉冲计数,一旦计数器被启动后,每出现一个 CLK脉冲,
计数执行单元中的计数值减 1,当减为零时,通过
OUT输出指示信号,表明计数执行单元已为零。
51
当 CLK是一个周期性时钟信号时,计数器为定时器功能;当 CLK是一个非周期性事件计数信号时,此时呈计数器功能。
计数输出锁存器 OL通常跟随计数执行单元的内容而变化,当接收到 CPU发来的锁存命令时,就锁存当前的计数值而不跟随计数执行单元变化,直到 CPU从中读取锁存值后,才恢复到跟随计数执行单元变化的状态。
GATE是控制输入端,它有多种控制作用,如允许
/禁止计数、启动 /停止计数。
52
53
8.3.2 8253-5的结构和功能
8253-5具有三个独立的 16位计数器,它可用程序设置成多种工作方式,按十进制或二进制计数,最高计数速率可达 2.6MHz。
三条信号线:
① 计数输入 CLK—用于输入定时基准脉冲或计数脉冲;
② 输出信号 OUT—以相应的电平指示计数的完成,或输出脉冲波形;
③ 选通输入(门控输入) GATE—用于启动或禁止计数器的操作,以使计数器和计测对象同步;
54
三个寄存器:
①控制寄存器 —初始化时,将控制字寄存器中的内容写入该寄存器;
②计数初值寄存器 —初始化时写入该计数器的初始值;
③减法计数寄存器 —计数初值由计数初值寄存器送入减法计数寄存器,当计数输入端输入一个计数脉冲时,
减法计数寄存器内容减 1,当减到零时,输出端输出相应信号表示计数结束。
工作方式寄存器(又称控制字寄存器)是只写寄存器,
它接受写入的控制字。
三个控制寄存器控制对应计数器的工作。
8253-5的三个计数器是独立的 16位减法计数器。
55
8253-5的结构框图和引脚排列
56
8.3.3 8253-5的工作方式在任何一种方式下,都必须先向 8253写入控制字,
控制字还起复位作用,它使 OUT端变为工作方式中规定的状态和对计数初值寄存器 CR清零;然后再写入计数初值到 CR中,其最大值为 0000H。
一、方式 0—计数结束中断方式( Interrupt on Tetminal
Count)
方式 0是典型的事件计数用法,CLK端作为事件计数输入信号,当计数执行单元 CE为零时,OUT端变为高电平,它可作为中断请求信号。
方式 0的时序波形见图。
57
58
方式 0的特点和应用
( 1)计数过程由软件启动。
( 2) GATE的作用是开放计数或禁止计数。
( 3) OUT端由低变高表示计数过程结束。
59
二、方式 1 — 硬件可重触发单稳态方式
( Hardware Retriggerable One-Shot)
计数器相当于一个可编程的单稳态电路,
触发输入为 GATE信号,由 GATE的上升沿触发计数器工作。
方式 1的时序波形见图。
60
方式 1的时序波形图。
61
方式 1的特点和应用
( 1)计数器的启动只能由门控脉冲的上升沿产生,
即只能用硬件启动。
( 2) OUT输出为一个单稳态负脉冲,其脉宽为计数初值个 CLK时钟脉冲的周期之和。
( 3)在形成单稳态脉冲过程中,可以重触发。
( 4)在微机实时控制系统中常用作监视时钟
( Watchdog Timer)。
62
三、方式 2—速率发生器( Rate Genenator)
方式 2能产生周期性的定时信号,
称为速率发生器,
又称为 N分频方式和周期性定时器方式。
方式 2的时序波形见图。
63
方式 2的时序波形图。
64
方式 2的特点和应用
( 1) CR内容能自动地、重复地装入到 CE中,
OUT端上就能连续地输出周期性分频信号。
( 2)既可软件启动,又可硬件启动。
( 3)改变计数初值,即可获得不同速率的 OUT
输出信号。
( 4)负脉冲宽度均为一个 CLK脉冲的周期。
( 5)主要应用是作为分频器和时基信号。
65
四、方式 3—方波方式( Square Ware Mode)
方式 3的操作方式除 OUT输出方波之外,和方式 2
相似。方波的重复周期是计数初值个 CLK脉冲周期之和。
方式 3的时序波形见图。
66
方式 3的时序波形图。
67
方式 3的特点和应用
( 1)方式 3的计数过程是 CE内容减 2。
( 2)软件启动和硬件启动两种。
( 3)改变计数初值,OUT端将输出不同频率。
( 4)主要应用作为方波发生器和波特率发生器。
68
五、方式 4—软件触发选通方式( Sofewave Triggered
strode)
当写入方式控制字 CW后,OUT端输出高电平。在写入计数初值后的一个 CLK脉冲开始减 1计数,直到
CE为零时,使 OUT输出变为低电平,当持续一个 CLK
脉冲周期后又恢复到高电平。在 OUT端产生一个 CLK
脉冲周期宽度的选通负脉冲输出。
方式 4的时序波形见图。
69
方式 4的时序波形图。
70
六、方式 5 —硬件触发选通方式( Hardware Triggered
Strobe)
方式 5和方式 1有些相似。 CE到零时 OUT端产生宽度为 1个 CLK脉冲周期的负脉冲选通输出信号。
方式 5的时序波形见图。
71
方式 5的时序波形图。
72
8.3.4 8253-5的初始化一、写入方式控制字三个通道用的控制字端口地址是相同的,三个控制字写入后却存入通道对应的寄存器中。
二、写入计数初始值三、读计数值在动态读计数值时可以有两种方法:
( 1)以普通对计数器端口读的方法取得当前计数值。
( 2)锁存计数器的当前计数值。
73
工作方式控制字
SC1,SC0—计数器选择
D7 D6 D5 D4 D3 D2 D1 D0
SC1 SC0 RL1 RL0 M2 M1 M0 BCD
SC1 SC0 计数器
0 0 CNT0
0 1 CNT1
1 0 CNT2
1 1 不用
74
RL1,RL0—CPU读 /写操作
RL1 RL0 操作方式
0 0 计数器锁存操作(供 CPU读)
0 1 只读 /写计数器低 8位
1 0 只读 /写计数器高 8位
1 1 先读 /写底 8位,再读 /写高 8位
75
M2M1M0—工作方式选择
BCD—计数方式选择
M2 M1 M0 工作方式
0 0 0 方式 0
0 0 1 方式 1
X 1 0 方式 2
X 1 1 方式 3
1 0 0 方式 4
1 0 1 方式 5
0 16位二进制计数
1 4位十进制( BCD) 码计数
76
选通信号 GATE的功能低电平或进入低电平 上升边沿 高电平方式 0 禁止计数 —— 允许计数方式 1 ——
1.初始化和计数
2.下一个时钟后输出变为低电平
——
方式 2 1.禁止计数2.使输出立即变为高电平 1.初始化和计数2.计数器重新装入 允许计数方式 3 1.禁止计数2.使输出立即变为高电平 1.初始化和计数2.计数器重新装入 允许计数方式 4 禁止计数 —— 允许计数方式 5 —— 初始化和计数 ——
77
8.3.5 8253-5的应用举例一、用 8253-5监视一个生产流水线
78
主程序为:
MOV AL,15H
OUT 43H,AL
MOV AL,50H
OUT 40H,AL
STI
LOP,HLT
JMP LOP
中断服务程序为:
MOV AL,01H
OUT 80H,AL
79
MOV AL,77H
OUT 43H,AL
MOV AL,50H
OUT 41H,AL
MOV AL,12H
OUT 41H,AL
CALL DL5S
MOV AL,00H
OUT 80H,AL
IRET
80
二,8253在 IBM-PC机中的应用
81
工作原理分析
⑴计数器 0用来产生实时日时钟信号,工作于方式 3,计数初值为 0,采用二进制计数方式,输出端 OUT0作为中断请求信号 IRQ0 。
⑵ 计数器 1用来产生动态存储器刷新操作的定时控制信号。
它工作于方式 2,计数初值为 18,OUT1端输出一个负脉冲序列,其脉冲周期约为 18÷ 1.1931816MHz= 15.08
( μs)。
⑶ 计数器 2用于为系统中的扬声器发声时提供一个约为
900Hz的方波信号。它也工作于方式 3,计数初值为
0533H( 1331),GATE2接入一个来自系统板上 8255A
的 PB0,作为扬声器发声时间的控制信号 。
82
2,8253的初始化程序段
⑴ 对计数器 0的初始化程序:
MOV AL,00110110B
OUT 43H,AL
MOV AL,0
OUT 40H,AL
OUT 40H,AL
⑵ 对计数器 1的初始化程序:
MOV AL,01010100B
OUT 43H,AL
MOV AL,18
OUT 41H,AL
83
⑶ 对计数器 2的初始化程序:
MOV AL,10110110B
OUT 43H,AL
MOV AX,0533H
OUT 42H,AL
MOV AL,AH
OUT 42H,AL
IN AL,61H
MOV AH,AL
OR AL,03H
OUT 61H,AL
84
三,8253在实时控制系统中的应用将 8253的两个计数器串联起来,使其中的一个计数器作为定时器,当分频器使用,将其 OUT输出信号作为另一个计数器的 CLK脉冲信号;而另一计数器只起计数作用,其 OUT输出端作为中断请求信号。
85
86
MOV DX,233H
MOV AL,00010100B
OUT DX,AL
MOV AL,230H
MOV AL,00H
OUT DX,AL
MOV DX,233H
MOV AL,01110110B
OUT DX,AL
MOV DX,231H
87
MOV AL,BYTE PTR TIME
OUT DX,AL
MOV AL,BYTE PTR TIME + 1
OUT DX,AL
MOV DI,28H
MOV AX,OFFSET RTIME
CLD
STOSW
MOV AX,SEG RTIME
STOSW
…
88
四、三个计数通道组合应用
89
90
MOV AL,00110101B
OUT 83H,AL
MOV AL,00H
OUT 80H,AL
MOV AL,10H
OUT 80H,AL
MOV AL,01110011B
OUT 83H,AL
MOV AL,00H
OUT 81H,AL
91
MOV AL,05H
OUT 81H,AL
MOV AL,10110111B
OUT 83H,AL
MOV AL,00H
OUT 82H,AL
MOV AL,20H
OUT 82H,AL
92
8.4 串口接口芯片
串行通信概述
串行接口原理
可编程通信接口 8251A
93
8.4 串口接口芯片
8.4.1 串行通信概述为了降低通信线路的价格和简化通信设备,可以利用现有的通信线路。
一、并行通信和串行通信
1.并行传送
2.串行传送
3.并行传送与串行传送的比较
( 1)从距离上看:近距离和远距离;
( 2)从速度上看:
( 3)从设备、费用上看:
94
95
二、同步通信与异步通信两种基本的通信方式:
异步通信 ASYNC( Asynchronous Data Communication)
同步通信 SYNC( Synchronous Data Communication)
1,异步通信两项约定:
96
( 1)字符格式
① 1位起始位,低电平;
② 5-8个数据位,(如标准 ASCII码。则为 7位);
③ 1个奇偶校验位(作为检错用);
④ 1,1.5或 2个终止位(停止位),高电平。
起始位后面紧跟的是要传送字符的最低位,每个字符的结束是 1,1.5或 2个高电平的终止位,起始位至终止位构成一帧。相连两个字符之间的间隔可以是任意长度的,两个相邻字符之间叫空闲位,为高电平。
( 2)波特率( Baud Rate)
波特率是指单位时间内传送二进制数据的位数,以位 /
秒为单位。每个数据位的传送时间 Td即为波特率的倒数。
97
98
2,同步通信在数据块开始处要用同步字符来指明,
同步传送速度高于异步传送速度,
要求有时钟来实现发送端及接收端之间的同步,
硬件电路比较复杂。
99
三、串行通信的传送方向单工、半双工、全双工三种:
1.单工( Simplex)
仅能进行一个方向的传送。
2.半双工( Half-Duplex)
能交替地进行双向数据传送,但两设备之间只用一根传输线,两个方向的数据传送不能同时进行。
3.全双工( Full-Duplex)
A,B之间有两条传输线,能在两个方向上同时进行数据传送。
100
101
四、信号的调制与解调计算机通信传送的是数字信号,数字信号直接进行通信,经过传输线后必然会产生畸变。
在发送端必需采用调制器把数字信号转换为模拟信号,在接收端又必需用解调器检出发送来的模拟信号,恢复为原来的数字信号。
102
Modem即调制 -解调器
Modulator-Demoduiator
计算机远程通信中的一种辅助设备。
`
103
PSK 调制法原理图
104
五、异步通信规程微型计算机中主要使用三种通信控制规程:
异步控制规程 (ASYNC),
同步控制规程( BISYNC )
高级数据链路控制规程( HDLC)。
对每一种通信控制规程,都有相应的大规模集成电路的接口芯片去实现。
105
8.4.2 串行接口原理以异步收发器 UART( Universal Asynchronous
Receiver/Transmitter ) 为例。
106
107
一、组成由三部分组成:
“接收器” —用来把串行码转换为并行码;
“发送器” —用来把并行码转换为串行码;
“控制器” —用来接收 CPU的控制信号,执行
CPU所要求的操作,并输出状态信息和控制信息。
二、功能
UART的功能是接收异步串行输入码并将其转换为
CPU所需要的并行码,并将 CPU内部的并行码转换为串行码输出。
108
UART是用外部时钟来和接收的数据进行同步的。外部时钟的周期 Tc和每个数据位的周期 Td有以下关系:
Tc=Td/K
K=16或 64( K为波特率因子)
外部时钟和接收数据的同步如图所示:
109
110
为了检测长距离传送中可能发生的错误,通常增加一个奇偶校验位。
发送时,自动在奇偶校验位上添上,1”或,0”;
接收时,UART检查字符的每一位以及奇偶校验位的
,1”的个数,以确定是否发生传送错误。
111
112
UART中还设立了各种出错标志:
1.奇偶错误( Parity error),在接收时。 UART检查接受到的每一个字符的,1”的个数,若不符合要求,则置这个标志,发出奇偶校验出错信息。
2.帧错误( Frame error),若接受的字格式不符合规定 (例如缺少停止位等 ),则置位帧出错标志,
发出帧错误信息。
3.溢出(丢失)错误( Overrun error)
113
8.4.3 可编程通信接口 8251A( USART)
Intel 8251A USART是通用同步 /异步接收发送器。
USART即 Universal Synchronous/Asynchronous
Receiver/Transmitter。
一,8251A的基本性能
( 1)可用于同步和异步传送。
( 2)波特率,DC-19.2K( 异步); DC-64K( 同步)。
( 3)完全双工、双缓冲器发送器接收器。
( 4)误差检测。
1148251A的结构图与引脚图
115
二,8251A的结构与引脚功能包括 8251A同 CPU的接口部分 —数据总线缓冲器和读写控制逻辑;发送器和接收器及其控制电路。
产生 RS-232C有关信号的 MODEM控制电路。
1,同 CPU的连接信号
( 1) RESET ( 2) CLK ( 3),
( 4) C / ( 5) ( 6) D0 ~ D7CS
WR RD
D
116
2,MODEM控制信号与 MODEM相连的控制信号:
( 1) ( Data Terminal Ready) — 数据终端准备好(输出,低电平有效)
( 2) ( Data Set Ready) — 数据装置准备好
(输入,低电平有效)
( 3) ( Request To Send) — 请求发送(输出,
低电平有效)
( 4) ( Clear To Send) — 清除发送信号(输入,低电平有效)
DTR
DSR
RTS
CTS
117
3.发送器有关信号
( 1) TXD,发送数据
( 2) TXRDY,发送器准备好信号
( 3) TXE,发送缓冲器空标志
( 4),输入控制发送器数据速率的时钟
4.接收器有关信号
( 1) RXD,接收数据
( 2) RXRDY,接收器准备好标志
( 3),接收时钟
( 4) SYNDET/BRKDET,同步和间断检测
CRX
CTX
118
三、初始化
8251A的各种工作方式及工作进程都是用初始化及实时控制实现的。编程包括两部分:
一个是方式指令,另一个是命令指令。
方式指令用来定义 8251A的一般工作特性,
它必须紧接在复位后由 CPU写入。
命令指令用来指定芯片的实际操作,只有在已经写入了方式指令后,才能由 CPU写入同步字符和命令指令。
119
1.方式指令字
120
2,命令指令字
121
3.状态字
CPU向 8251A发送各种操作命令,许多时候是依据 8251A当前的运行状态决定的。
122
8251A的初始化和操作流程如右图所示。
8251A在设置方式指令字后,或在同步方式中又设置了同步字符后,
任何时候都可以写入命令指令,命令指令是芯片进行操作,或改变操作时必须写入的内容。而每次写入命令指令后,8251A都要检查 IR位是否有内部复位,如有复位,8251A应重新设置方式指令。
123
8251A应用举例
124
8.5 模拟接口
概述
数 /模转换器 DAC0832及其接口
模 /数转换器 ADC0809及其接口
125
8.5 模拟接口
8.5.1 概述连续变化的物理量。所谓连续,包括两方面的含义:一方面从时间上来说,它是随时间连续变化的;另一方面从数值上来说,它的数值也是连续变化的。这种连续变化的物理量通常称为模拟量。
一、控制系统中的模拟接口传感器是把非电量的模拟量(如温度、压力、
流量等)转换成电压或电流信号。
126
量程放大器把微弱的传感器信号(通常为毫伏或微伏级)放大到 A/D转换器所需的量程范围。
低通滤波器用来降低噪声,滤去不必要的干扰,
以增加信噪比。
多路开关可以使多个模拟信号共用一个 A/D转换器。
采样 -保持电路( Sample/hold circuit) 把转换的信号采样后还保持一段时间,以便给 A/D转换器转换。
A/D转换器和 D/A转换器则通过相应的 A/D转换和
D/A转换把模拟量转换成数字量和数字量转换成模拟量。
127
微型机与控制系统的接口
128
二、采样 -保持电路
( 1)采样跟踪状态:在此期间应尽可能快地接受输入信号,使输出和输入信号相一致。
( 2)保持状态:把采样结束瞬间的输入信号保持下来,使输出和保持的信号一致。当输入信号变化速率较快时,都应采用采样 -保持电路,如果输入信号变化缓慢,则可不用保持电路。
129
130
三、量化和编码
1.量化采样后的信号经量化后才能输入到计算机,采样信号经量化后成为数字信号的过程称为量化过程。
A/D转换就是量化的过程,它把采样后模拟信号转变成数字量。
131
2,编码在量化过程中,对双极性(有正、负)信号通常有三种表示方法:
( 1)符号 -数值码,类似于原码表示法。
( 2)偏移二进制码,与移码表示法相同。
( 3)补码表示法,与计算机的补码表示方法相同。
132
四、模 /数转换器的性能指标
1.分辨率分辨率是指 ADC对输入电压微小变化响应能力的度量。
2.绝对精度绝对精度是指在输出端产生给定的数字代码,实际需要的模拟输入值与理论上要求的模拟输入值之差。
133
3,相对精度相对精度(又称线性度)是指满刻度值校准后,任意数字输出所对应的实际模拟输入值(中间值)与理论值(中间值)之差。
4,转换时间转换时间是指 ADC完成一次转换所需的时间,
即从启动信号开始到转换结束并得到稳定的数字输出量所需的时间。通常为微秒级。
5,量程量程是指所能转换的输入电压范围。
134
五、数 /模转换器的性能指标
1.分辨率分辨率是最低有效位( LSB)
所对应的模拟量的大小。
2.精度精度反映 D/A转换的精确度。
3.建立时间建立时间定义为:在数字输入端输入满量程代码的变化后,DAC的模拟输出稳定到最终值± 1/2LSB
时所需的时间。
135
8.5.2 数 /模转换器 DAC0832及其接口一、芯片简介
DAC0832采用了二次缓冲输入数据方式(输入寄存器及 DAC寄存器)。可以在输出的同时采集下一个数字量,以提高转换速度。能够用于需要同时输出多个参数的模拟量系统。
136
DAC 0832内部结构框图
137
二、数 /模转换器芯片的输出电路
1.电流输出转换为电压输出
138
2.单极性与双极性输出电路
139
3,数 /模转换器与微处理器的接口
D/A转换器只有数据输入线,选片和写入控制线与微处理器有关。因此微处理器的接口比较简单,直接把数据输出给 D/A转换器。若 D/A转换器芯片内带有锁存寄存器,微处理器就把 D/A芯片当作一个并行输出端口;
若 D/A转换器芯片内无锁存寄存器,微处理器就把 D/A
芯片当作一个并行输出的外设,二者之间还需增加并行输出的接口。数 /模转换器接口是通过 D/A转换器来实现模拟输出,有时我们简称为“模出”。
140
141
8.5.3 模 /数转换器 ADC0809及其接口一、芯片简介
ADC0809是 CMOS型的 8位 A/D转换器,采用逐次逼近式进行 A/D转换。
ADC0809有八路模拟量输入通道。
ALE为地址锁存信号,高电平有效时,ADDC
~ ADDA被锁存。
142
通过对 ADDC,ADDB,ADDA三端输入的地址译码,选通八路模拟量输入( IN0 ~IN7) 的任意一路进入片内进行 A/D转换。
START是 A/D转换启动信号,高电平有效。
EOC是转换结束信号,高电平有效,当 A/D转换完毕 EOC的高电平可用作中断请求信号。
转换后的数字量通过三态缓冲器输出,当输出允许 OE=,1”时,打开三态输出门输出数字量。
输入 ADC0809的模拟信号是单极性的( 0 ~ +5V)。
143
144
二,ADC0806同微处理器的连接
1.直接连接
145
MOV AL,07H
OUT 84H,AL
CALL DELAY100
IN AL,84H
HLT
146
2,通过并行接口芯片同微处理器的连接
147
MOV AL,88H
OUT 83H,AL
MOV AL,00H
OUT 81H,AL
ADD AL,10H
OUT 81H,AL
SUB AL,10H
OUT 81H,AL
LOP,IN AL,82H
TEST AL,80H
JZ LOP
IN AL,84H
HLT
148
三、应用举例
149
DATA1 SEGMENT
ORG 2000H
AREA DB 200 DUP(?)
…
DATA1 ENDS
STACK1 SEGMENT
DB 50 DUP(?)
…
STACK1 ENDS
CODE1 SEGMENT
ASSUME DS,DATA1,SS,STACK1,CS,CODE1
150
START,MOV AL,92H
MOV DX,1C3H
OUT DX,AL
MOV AX,DATA1
MOV DS,AX
MOV SI,2000H
MOV BL,8
MOV DX,1C8H
LOP1,MOV CX,18H
LOP2,IN AL,DX
PUSH DX
MOV DX,1C1H
151
LOP3,IN AL,DX
TEST AL,0H
JZ LOP3
MOV DX,1C0H
IN AL,DX
MOV [SI],AL
INC SI
POP DX
LOOP LOP2
INC DX
DEC BL
JNZ LOP1
HLT
第 8章 可编程接口芯片及其应用
8.1 可编程接口芯片概述
8.2 可编程并行接口芯片 8255A
8.3 可编程定时器 /计数器 8253-5
8.4 串口接口芯片
8.5 模拟接口
2
8.1 可编程接口芯片概述
片选概念
读 /写概念
可编程接口的概念
“联络”的概念
3
8.1 可编程接口芯片概述接口电路中多数具有如下电路单元:
( 1)输入 /输出数据锁存器和缓冲器用以解决 CPU与外设之间速度不匹配的矛盾,
以及起隔离和缓冲的作用;
( 2)控制命令和状态寄存器以存放 CPU对外设的控制命令,
以及外设的状态信息;
4
( 3)地址译码器用来选择接口电路中的不同端口(寄存器);
( 4)读写控制逻辑;
( 5)中断控制逻辑。
从早期的逻辑电路板 到 大规模集成电路芯片为主的接口芯片。
5
8.1.1 片选概念必须要有一个地址信号选中接口芯片后,
才能使该接口芯片进入电路工作状态,实现数据的输入 /输出。
选通端 CE( Chip
Enable),又称片选端
CS ( Chip Select)。
CE端是控制接口芯片进入电路工作状态的引脚端。
6
8.1.2 读 /写概念,
用 IN,OUT指令读 /写。
8.1.3 可编程接口的概念接口芯片大部分是多通道、多功能的。
多通道是指一个接口芯片一面与 CPU连接,
另一面可接几个外设;
多功能是指一个接口芯片能实现多种接口功能,实现不同的电路工作状态。
7
在接口芯片中,各硬件单元不是固定接死的,可由用户在使用中选择,即通过计算机的指令来选择不同的通道和不同的电路功能,称为“编程控制”。接口电路的组态(即电路工作状态)可由计算机指令来控制的接口芯片称为“可编程序接口芯片”。
用来存放控制电路组态的控制字节的寄存器,称为“控制寄存器”。
8
8.1.4,联络”的概念接口芯片常常需要和外设间有一定的“联络”信号,
以保证信息的正常传送。
通常采用两个“联络”( Handhake) 信号,(选通信号,strobe) 和 RDY( 就绪信号,Ready)。
STB
9
8.2 可编程并行接口芯片 8255A
8255A的结构和引脚功能
8255A的工作方式
8255A的初始化
8255A的应用举例
16位系统中的并行接口
10
8.2 可编程并行接口芯片 8255A
Intel 8255A是一种通用的可编程序并行 I/O接口芯片,
又称“可编程外设接口芯片” PPI( Programmable
Peripheral Interface)。
8.2.1 8255A的结构和引脚功能一,8255A的内部结构有三个 8位端口 PA,PB和 PC,都可由程序设定为各种不同的工作方式。
通常 PA口与 PB口用作输入 /输出的数据端口,PC口通常用作控制或状态信息的端口,PC口可以分成两个 4位的端口 。
11
二,8255A的引脚功能
8255A采用 40条引脚的双列直插式 (DIP,
Dual in-1ine package)封装,其引脚信号教材:
有 2条地址线 A1.A0
4个端口地址 A1 A0
0 0 PA口地址
0 1 PB口地址
1 0 PC口地址
1 1 控制口地址
12
13
8.2.2 8255A的工作方式一、方式 0—基本输入输出
8255A在方式 0工作时:
CPU可以采用无条件读写方式与 8255A交换数据。
若把 C口的两个部分用作控制和状态口,与外设的控制和状态端相连,CPU也可通过对 C口的读写,实现 A口与 B口的查询方式工作。
输出的数据被锁存,而输入数据是不锁存的。
14
二、方式 1—选通输入输出(应答式输入输出)
C口可分成两部分,分别作为 A口和 B口的联络信号。在 8255A中规定的联络信号是三位。
方式 1可工作于查询方式和中断方式。
1.方式 1的输入
( 1),输入的选通信号,
( 2) IBF,输入缓冲器满信号,
( 3) INTR,中断请求信号,
( 4) INTE,中断允许信号,A端口用 PC4位的置位 /
复位控制,B端口用 PC2位的置位 /复位控制。
STB
15
16
2,方式 1的输出
( 1),输出缓冲器满信号,
( 2),响应信号,
( 3) INTR,中断请求信号,
( 4) INTE,中断允许信号,INTEA用 PC6,INTEB用
PC2设置三、方式 2—双向选通输入输出工作时可以采用中断方式,也可以采用查询方式与
CPU联系。
方式 2只限于 A组使用。
OBF
ACK
17
18
19
8.2.3 8255A的初始化首先要由 CPU对 8255A写入控制命令字,有 2种控制命令字:一个是方式选择控制字,另一个是 C
口按位置位 /复位控制字。
一、方式选择控制字( D7=1)
二,C口按位置位 /复位控制字( D7=0)
控制字的格式如图:
20
21
22
8.2.4 8255A的应用举例一、键盘接口两类键盘:编码键盘和非编码键盘。
编码键盘能自动提供对应于被按键的编码信息,如 ASCII码,并能同时产生一个选通脉冲通知微处理器。
非编码键盘由一组开关组成,提供行和列的键盘矩阵。其全部工作,包括按键的识别、按键代码的产生、防止串键和消去抖动等问题,都靠程序来实现。
23
键盘输入信息的过程:
( 1)检测是否有键按下;
( 2)查出按下的是哪一个键;
( 3)将该键所代表的信息翻译成计算机能识别的内部代码。如 ASCII码或其他预先约定的编码。
24
25
使用行扫描方式寻找按下键的编号 (键号 )的程序如下:
…
PORTA EQU 0FFF8H
PORTB EQU 0FFFAH
PORTC EQU 0FFFCH
PORTCN EQU 0FFFEH
MOV DX,PORTCN
MOV AL,10000011B
OUT DX,AL
WAITK,MOV DX,PORTA
MOV AL,0
OUT DX,AL
26
MOV DX,PORTB
IN AL,DX
CMP AL,0FFH
JZ WAITK
MOV BL,0
MOV BH,11111110B
MOV CX,8
FNDROW,MOV AL,BH
MOV DX,PORTA
OUT DX,AL
ROL BH,1
MOV DX,PORTB
IN AL,DX
27
CMP AL,0FFH
JNZ FNDCOL
ADD BL,8
LOOP FNDROW
JMP DONE
FNDCOL,ROR AL,1
JNC RIGHT
INC BL
JMP FNDCOL
RIGHT,…
…
DONE,…
28
二、七段 LED显示器接口发光二极管是一种当电极间电压(阳极电压接高电位)超过额定电压时发生击穿,并因此产生可见光的器件。
这种数码显示管通常由多个发光二极管来组成的 7
段或 8段笔划显示器。
当段组合发亮时,便可显示某一数码或字符。
8个 7段 LED显示器上显示 8位 16进制数,每个显示器显示其中一位数。
29
30
31
…
SSEGCODE DB 0C0H
DB 0F9H
DB 0A4H
DB 0B0H
DB 99H
DB 92H
DB 82H
DB 0F8H
DB 80H
DB 98H
DB 88H
DB 83H
DB 0C6H
32
DB 0AlH
DB 86H
DB 8EH
FOURBYTE EQU THIS BYTE
DBLWORD DD 12345678H
…
MOV AL,10000000B
MOV DX,0FFFEH
OUT DX,AL
…
CLD
AGAIN,MOV CX,4
MOV SI,OFFSET FOURBYTE
33
MOV AH,11111110B
LOOPDISP,LODSB
MOV DI,AX
AND AL,0FH
MOV BX,OFFSET SSEGCODE
XLAT SSEGCODE
MOV DX,0FFFAH
OUT DX,AL
MOV AL,AH
MOV DX,OFFF8H
OUT DX,AL
PUSH CX
MOV CX,NDELAY
34
IDLE,NOP
NOP
LOOP IDLE
…
MOV AL,0FFH
OUT DX,AL
MOV AX,DI
MOV CL,4
SHR AL,CL
MOV BX,OFFSET SSEGCODE
XLAT SSEGCODE
MOV DX,0FFFAH
OUT DX,AL
ROL AH,1
35
MOV AL,AH
MOV DX,0FFF8H
OUT DX,AL
MOV CX,NDELAY
IDLE2,NOP
NOP
LOOP IDIE2
ROL AH,1
MOV AL,0FFH
OUT DX,AL
POP CX
LOOP LOOPDISP
JMP AGAIN
…
36
三、打印机接口
1,并行接口标准( Centronice)
该标准规定了一个 36芯的连接口。
,数据选通接口;
DATA,数据信号;
,响应信号;
BUSY,忙信号。
STB
STB
ACK
37
2,打印机的工作过程及接口电路打印机接口电路也称打印机适配器,可以用锁存器、三态缓冲器等器件实现,也可用通用的可编程并行接口芯片实现。
38
39
( 1) 8255A的初始化程序段 ( 设 8255A的 I/O端口地址为
2C0H- 2C3H),
…
MOV DX,02C3H
MOV AL,1010l00lB
OUT DX,AL
MOV AL,0000l101B
OUT DX,AL
MOV DX,02ClH
MOV AL,00001100B
OUT DX,AL
…
40
( 2) 打印机中断服务程序
PRINT PROC NEAR
PUSH AX
PUSH DX
MOV DX,02C0H
MOV AL,[BX]
OUT DX,AL
MOV DX,02C1H
IN AL,DX
41
OR AL,01H
OUT DX,AL
AND AL,0FEH
OUT DX,AL
INC BX
POP DX
POP AX
IRET
PRINT ENDP
42
四,LED/开关接口
8086CPU通过 8255A同开关与 7段 LED显示器的接口:
43
控制程序如下:
ORG 2000H
MOV AL,82H
MOV DX,0FFFEH
OUT DX,AL
RDPORTB,MOV DL,0FAH
IN AL,DX
AND AL,0FH
MOV BX,OFFSET SSEGCODE
XLAT
MOV DL,0F8H
OUT DX,AL
MOV AX,56CH
44
DELAY,DEC AX
JNZ DELAY
JMP RDPORTB
HLT
ORG 2500H
SSEGCODE DB 0C0H,0F9H,0A4H,0B0H,99H,92H,
DB 82H,0F8H,80H,98H,88H,83H,0C6H,
DB 0A1H,86H,8EH
45
控制程序 ( 2)
ORG 2000H
MOV AL,80H
MOV DX,0FFFEH
OUT DX,AL
MOV BX,20
DISPLOP,LEA DI,SSEGCODE
MOV CX,16
LOP,MOV AL,[DI]
MOV DL,0F8H
OUT DX,AL
INC DI
CALL DELAY5S
46
LOOP LOP
DEC BX
JNZ DISPLOP
HLT
ORG 2500H
SSEGCODE,DB 0C0H,0F9H,0A4H,0B0H,99H,92H,
DB 82H,0F8H 80H,98H,88H,83H,0C6H,
DB 0A1H,86H,8EH
47
8.2.5 16位系统中的并行接口
48
8.3 可编程定时器 /计数器 8253-5
可编程定时器 /计数器的基本工作原理
8253-5的结构和功能
8253-5的工作方式
49
8.3 可编程定时器 /计数器 8253-5( PIT)
在微机应用系统中,一种是要求一些外部实时时钟,以实现延时控制或定时;另一种是要求能对外部事件计数的计数器。
8253-5PIT( Programmable Interval Timer) 就是一种可编程定时器 /计数器芯片,又称为“可编程间隔定时器”。
50
8.3.1 可编程定时器 /计数器的基本工作原理
16位计数初值寄存器 CR用来存放计数初值,可通过程序来设定。
计数执行单元 CE是一个 16位减法计数器,它的初值便是计数初值寄存器的内容,它只对 CLK脉冲计数,一旦计数器被启动后,每出现一个 CLK脉冲,
计数执行单元中的计数值减 1,当减为零时,通过
OUT输出指示信号,表明计数执行单元已为零。
51
当 CLK是一个周期性时钟信号时,计数器为定时器功能;当 CLK是一个非周期性事件计数信号时,此时呈计数器功能。
计数输出锁存器 OL通常跟随计数执行单元的内容而变化,当接收到 CPU发来的锁存命令时,就锁存当前的计数值而不跟随计数执行单元变化,直到 CPU从中读取锁存值后,才恢复到跟随计数执行单元变化的状态。
GATE是控制输入端,它有多种控制作用,如允许
/禁止计数、启动 /停止计数。
52
53
8.3.2 8253-5的结构和功能
8253-5具有三个独立的 16位计数器,它可用程序设置成多种工作方式,按十进制或二进制计数,最高计数速率可达 2.6MHz。
三条信号线:
① 计数输入 CLK—用于输入定时基准脉冲或计数脉冲;
② 输出信号 OUT—以相应的电平指示计数的完成,或输出脉冲波形;
③ 选通输入(门控输入) GATE—用于启动或禁止计数器的操作,以使计数器和计测对象同步;
54
三个寄存器:
①控制寄存器 —初始化时,将控制字寄存器中的内容写入该寄存器;
②计数初值寄存器 —初始化时写入该计数器的初始值;
③减法计数寄存器 —计数初值由计数初值寄存器送入减法计数寄存器,当计数输入端输入一个计数脉冲时,
减法计数寄存器内容减 1,当减到零时,输出端输出相应信号表示计数结束。
工作方式寄存器(又称控制字寄存器)是只写寄存器,
它接受写入的控制字。
三个控制寄存器控制对应计数器的工作。
8253-5的三个计数器是独立的 16位减法计数器。
55
8253-5的结构框图和引脚排列
56
8.3.3 8253-5的工作方式在任何一种方式下,都必须先向 8253写入控制字,
控制字还起复位作用,它使 OUT端变为工作方式中规定的状态和对计数初值寄存器 CR清零;然后再写入计数初值到 CR中,其最大值为 0000H。
一、方式 0—计数结束中断方式( Interrupt on Tetminal
Count)
方式 0是典型的事件计数用法,CLK端作为事件计数输入信号,当计数执行单元 CE为零时,OUT端变为高电平,它可作为中断请求信号。
方式 0的时序波形见图。
57
58
方式 0的特点和应用
( 1)计数过程由软件启动。
( 2) GATE的作用是开放计数或禁止计数。
( 3) OUT端由低变高表示计数过程结束。
59
二、方式 1 — 硬件可重触发单稳态方式
( Hardware Retriggerable One-Shot)
计数器相当于一个可编程的单稳态电路,
触发输入为 GATE信号,由 GATE的上升沿触发计数器工作。
方式 1的时序波形见图。
60
方式 1的时序波形图。
61
方式 1的特点和应用
( 1)计数器的启动只能由门控脉冲的上升沿产生,
即只能用硬件启动。
( 2) OUT输出为一个单稳态负脉冲,其脉宽为计数初值个 CLK时钟脉冲的周期之和。
( 3)在形成单稳态脉冲过程中,可以重触发。
( 4)在微机实时控制系统中常用作监视时钟
( Watchdog Timer)。
62
三、方式 2—速率发生器( Rate Genenator)
方式 2能产生周期性的定时信号,
称为速率发生器,
又称为 N分频方式和周期性定时器方式。
方式 2的时序波形见图。
63
方式 2的时序波形图。
64
方式 2的特点和应用
( 1) CR内容能自动地、重复地装入到 CE中,
OUT端上就能连续地输出周期性分频信号。
( 2)既可软件启动,又可硬件启动。
( 3)改变计数初值,即可获得不同速率的 OUT
输出信号。
( 4)负脉冲宽度均为一个 CLK脉冲的周期。
( 5)主要应用是作为分频器和时基信号。
65
四、方式 3—方波方式( Square Ware Mode)
方式 3的操作方式除 OUT输出方波之外,和方式 2
相似。方波的重复周期是计数初值个 CLK脉冲周期之和。
方式 3的时序波形见图。
66
方式 3的时序波形图。
67
方式 3的特点和应用
( 1)方式 3的计数过程是 CE内容减 2。
( 2)软件启动和硬件启动两种。
( 3)改变计数初值,OUT端将输出不同频率。
( 4)主要应用作为方波发生器和波特率发生器。
68
五、方式 4—软件触发选通方式( Sofewave Triggered
strode)
当写入方式控制字 CW后,OUT端输出高电平。在写入计数初值后的一个 CLK脉冲开始减 1计数,直到
CE为零时,使 OUT输出变为低电平,当持续一个 CLK
脉冲周期后又恢复到高电平。在 OUT端产生一个 CLK
脉冲周期宽度的选通负脉冲输出。
方式 4的时序波形见图。
69
方式 4的时序波形图。
70
六、方式 5 —硬件触发选通方式( Hardware Triggered
Strobe)
方式 5和方式 1有些相似。 CE到零时 OUT端产生宽度为 1个 CLK脉冲周期的负脉冲选通输出信号。
方式 5的时序波形见图。
71
方式 5的时序波形图。
72
8.3.4 8253-5的初始化一、写入方式控制字三个通道用的控制字端口地址是相同的,三个控制字写入后却存入通道对应的寄存器中。
二、写入计数初始值三、读计数值在动态读计数值时可以有两种方法:
( 1)以普通对计数器端口读的方法取得当前计数值。
( 2)锁存计数器的当前计数值。
73
工作方式控制字
SC1,SC0—计数器选择
D7 D6 D5 D4 D3 D2 D1 D0
SC1 SC0 RL1 RL0 M2 M1 M0 BCD
SC1 SC0 计数器
0 0 CNT0
0 1 CNT1
1 0 CNT2
1 1 不用
74
RL1,RL0—CPU读 /写操作
RL1 RL0 操作方式
0 0 计数器锁存操作(供 CPU读)
0 1 只读 /写计数器低 8位
1 0 只读 /写计数器高 8位
1 1 先读 /写底 8位,再读 /写高 8位
75
M2M1M0—工作方式选择
BCD—计数方式选择
M2 M1 M0 工作方式
0 0 0 方式 0
0 0 1 方式 1
X 1 0 方式 2
X 1 1 方式 3
1 0 0 方式 4
1 0 1 方式 5
0 16位二进制计数
1 4位十进制( BCD) 码计数
76
选通信号 GATE的功能低电平或进入低电平 上升边沿 高电平方式 0 禁止计数 —— 允许计数方式 1 ——
1.初始化和计数
2.下一个时钟后输出变为低电平
——
方式 2 1.禁止计数2.使输出立即变为高电平 1.初始化和计数2.计数器重新装入 允许计数方式 3 1.禁止计数2.使输出立即变为高电平 1.初始化和计数2.计数器重新装入 允许计数方式 4 禁止计数 —— 允许计数方式 5 —— 初始化和计数 ——
77
8.3.5 8253-5的应用举例一、用 8253-5监视一个生产流水线
78
主程序为:
MOV AL,15H
OUT 43H,AL
MOV AL,50H
OUT 40H,AL
STI
LOP,HLT
JMP LOP
中断服务程序为:
MOV AL,01H
OUT 80H,AL
79
MOV AL,77H
OUT 43H,AL
MOV AL,50H
OUT 41H,AL
MOV AL,12H
OUT 41H,AL
CALL DL5S
MOV AL,00H
OUT 80H,AL
IRET
80
二,8253在 IBM-PC机中的应用
81
工作原理分析
⑴计数器 0用来产生实时日时钟信号,工作于方式 3,计数初值为 0,采用二进制计数方式,输出端 OUT0作为中断请求信号 IRQ0 。
⑵ 计数器 1用来产生动态存储器刷新操作的定时控制信号。
它工作于方式 2,计数初值为 18,OUT1端输出一个负脉冲序列,其脉冲周期约为 18÷ 1.1931816MHz= 15.08
( μs)。
⑶ 计数器 2用于为系统中的扬声器发声时提供一个约为
900Hz的方波信号。它也工作于方式 3,计数初值为
0533H( 1331),GATE2接入一个来自系统板上 8255A
的 PB0,作为扬声器发声时间的控制信号 。
82
2,8253的初始化程序段
⑴ 对计数器 0的初始化程序:
MOV AL,00110110B
OUT 43H,AL
MOV AL,0
OUT 40H,AL
OUT 40H,AL
⑵ 对计数器 1的初始化程序:
MOV AL,01010100B
OUT 43H,AL
MOV AL,18
OUT 41H,AL
83
⑶ 对计数器 2的初始化程序:
MOV AL,10110110B
OUT 43H,AL
MOV AX,0533H
OUT 42H,AL
MOV AL,AH
OUT 42H,AL
IN AL,61H
MOV AH,AL
OR AL,03H
OUT 61H,AL
84
三,8253在实时控制系统中的应用将 8253的两个计数器串联起来,使其中的一个计数器作为定时器,当分频器使用,将其 OUT输出信号作为另一个计数器的 CLK脉冲信号;而另一计数器只起计数作用,其 OUT输出端作为中断请求信号。
85
86
MOV DX,233H
MOV AL,00010100B
OUT DX,AL
MOV AL,230H
MOV AL,00H
OUT DX,AL
MOV DX,233H
MOV AL,01110110B
OUT DX,AL
MOV DX,231H
87
MOV AL,BYTE PTR TIME
OUT DX,AL
MOV AL,BYTE PTR TIME + 1
OUT DX,AL
MOV DI,28H
MOV AX,OFFSET RTIME
CLD
STOSW
MOV AX,SEG RTIME
STOSW
…
88
四、三个计数通道组合应用
89
90
MOV AL,00110101B
OUT 83H,AL
MOV AL,00H
OUT 80H,AL
MOV AL,10H
OUT 80H,AL
MOV AL,01110011B
OUT 83H,AL
MOV AL,00H
OUT 81H,AL
91
MOV AL,05H
OUT 81H,AL
MOV AL,10110111B
OUT 83H,AL
MOV AL,00H
OUT 82H,AL
MOV AL,20H
OUT 82H,AL
92
8.4 串口接口芯片
串行通信概述
串行接口原理
可编程通信接口 8251A
93
8.4 串口接口芯片
8.4.1 串行通信概述为了降低通信线路的价格和简化通信设备,可以利用现有的通信线路。
一、并行通信和串行通信
1.并行传送
2.串行传送
3.并行传送与串行传送的比较
( 1)从距离上看:近距离和远距离;
( 2)从速度上看:
( 3)从设备、费用上看:
94
95
二、同步通信与异步通信两种基本的通信方式:
异步通信 ASYNC( Asynchronous Data Communication)
同步通信 SYNC( Synchronous Data Communication)
1,异步通信两项约定:
96
( 1)字符格式
① 1位起始位,低电平;
② 5-8个数据位,(如标准 ASCII码。则为 7位);
③ 1个奇偶校验位(作为检错用);
④ 1,1.5或 2个终止位(停止位),高电平。
起始位后面紧跟的是要传送字符的最低位,每个字符的结束是 1,1.5或 2个高电平的终止位,起始位至终止位构成一帧。相连两个字符之间的间隔可以是任意长度的,两个相邻字符之间叫空闲位,为高电平。
( 2)波特率( Baud Rate)
波特率是指单位时间内传送二进制数据的位数,以位 /
秒为单位。每个数据位的传送时间 Td即为波特率的倒数。
97
98
2,同步通信在数据块开始处要用同步字符来指明,
同步传送速度高于异步传送速度,
要求有时钟来实现发送端及接收端之间的同步,
硬件电路比较复杂。
99
三、串行通信的传送方向单工、半双工、全双工三种:
1.单工( Simplex)
仅能进行一个方向的传送。
2.半双工( Half-Duplex)
能交替地进行双向数据传送,但两设备之间只用一根传输线,两个方向的数据传送不能同时进行。
3.全双工( Full-Duplex)
A,B之间有两条传输线,能在两个方向上同时进行数据传送。
100
101
四、信号的调制与解调计算机通信传送的是数字信号,数字信号直接进行通信,经过传输线后必然会产生畸变。
在发送端必需采用调制器把数字信号转换为模拟信号,在接收端又必需用解调器检出发送来的模拟信号,恢复为原来的数字信号。
102
Modem即调制 -解调器
Modulator-Demoduiator
计算机远程通信中的一种辅助设备。
`
103
PSK 调制法原理图
104
五、异步通信规程微型计算机中主要使用三种通信控制规程:
异步控制规程 (ASYNC),
同步控制规程( BISYNC )
高级数据链路控制规程( HDLC)。
对每一种通信控制规程,都有相应的大规模集成电路的接口芯片去实现。
105
8.4.2 串行接口原理以异步收发器 UART( Universal Asynchronous
Receiver/Transmitter ) 为例。
106
107
一、组成由三部分组成:
“接收器” —用来把串行码转换为并行码;
“发送器” —用来把并行码转换为串行码;
“控制器” —用来接收 CPU的控制信号,执行
CPU所要求的操作,并输出状态信息和控制信息。
二、功能
UART的功能是接收异步串行输入码并将其转换为
CPU所需要的并行码,并将 CPU内部的并行码转换为串行码输出。
108
UART是用外部时钟来和接收的数据进行同步的。外部时钟的周期 Tc和每个数据位的周期 Td有以下关系:
Tc=Td/K
K=16或 64( K为波特率因子)
外部时钟和接收数据的同步如图所示:
109
110
为了检测长距离传送中可能发生的错误,通常增加一个奇偶校验位。
发送时,自动在奇偶校验位上添上,1”或,0”;
接收时,UART检查字符的每一位以及奇偶校验位的
,1”的个数,以确定是否发生传送错误。
111
112
UART中还设立了各种出错标志:
1.奇偶错误( Parity error),在接收时。 UART检查接受到的每一个字符的,1”的个数,若不符合要求,则置这个标志,发出奇偶校验出错信息。
2.帧错误( Frame error),若接受的字格式不符合规定 (例如缺少停止位等 ),则置位帧出错标志,
发出帧错误信息。
3.溢出(丢失)错误( Overrun error)
113
8.4.3 可编程通信接口 8251A( USART)
Intel 8251A USART是通用同步 /异步接收发送器。
USART即 Universal Synchronous/Asynchronous
Receiver/Transmitter。
一,8251A的基本性能
( 1)可用于同步和异步传送。
( 2)波特率,DC-19.2K( 异步); DC-64K( 同步)。
( 3)完全双工、双缓冲器发送器接收器。
( 4)误差检测。
1148251A的结构图与引脚图
115
二,8251A的结构与引脚功能包括 8251A同 CPU的接口部分 —数据总线缓冲器和读写控制逻辑;发送器和接收器及其控制电路。
产生 RS-232C有关信号的 MODEM控制电路。
1,同 CPU的连接信号
( 1) RESET ( 2) CLK ( 3),
( 4) C / ( 5) ( 6) D0 ~ D7CS
WR RD
D
116
2,MODEM控制信号与 MODEM相连的控制信号:
( 1) ( Data Terminal Ready) — 数据终端准备好(输出,低电平有效)
( 2) ( Data Set Ready) — 数据装置准备好
(输入,低电平有效)
( 3) ( Request To Send) — 请求发送(输出,
低电平有效)
( 4) ( Clear To Send) — 清除发送信号(输入,低电平有效)
DTR
DSR
RTS
CTS
117
3.发送器有关信号
( 1) TXD,发送数据
( 2) TXRDY,发送器准备好信号
( 3) TXE,发送缓冲器空标志
( 4),输入控制发送器数据速率的时钟
4.接收器有关信号
( 1) RXD,接收数据
( 2) RXRDY,接收器准备好标志
( 3),接收时钟
( 4) SYNDET/BRKDET,同步和间断检测
CRX
CTX
118
三、初始化
8251A的各种工作方式及工作进程都是用初始化及实时控制实现的。编程包括两部分:
一个是方式指令,另一个是命令指令。
方式指令用来定义 8251A的一般工作特性,
它必须紧接在复位后由 CPU写入。
命令指令用来指定芯片的实际操作,只有在已经写入了方式指令后,才能由 CPU写入同步字符和命令指令。
119
1.方式指令字
120
2,命令指令字
121
3.状态字
CPU向 8251A发送各种操作命令,许多时候是依据 8251A当前的运行状态决定的。
122
8251A的初始化和操作流程如右图所示。
8251A在设置方式指令字后,或在同步方式中又设置了同步字符后,
任何时候都可以写入命令指令,命令指令是芯片进行操作,或改变操作时必须写入的内容。而每次写入命令指令后,8251A都要检查 IR位是否有内部复位,如有复位,8251A应重新设置方式指令。
123
8251A应用举例
124
8.5 模拟接口
概述
数 /模转换器 DAC0832及其接口
模 /数转换器 ADC0809及其接口
125
8.5 模拟接口
8.5.1 概述连续变化的物理量。所谓连续,包括两方面的含义:一方面从时间上来说,它是随时间连续变化的;另一方面从数值上来说,它的数值也是连续变化的。这种连续变化的物理量通常称为模拟量。
一、控制系统中的模拟接口传感器是把非电量的模拟量(如温度、压力、
流量等)转换成电压或电流信号。
126
量程放大器把微弱的传感器信号(通常为毫伏或微伏级)放大到 A/D转换器所需的量程范围。
低通滤波器用来降低噪声,滤去不必要的干扰,
以增加信噪比。
多路开关可以使多个模拟信号共用一个 A/D转换器。
采样 -保持电路( Sample/hold circuit) 把转换的信号采样后还保持一段时间,以便给 A/D转换器转换。
A/D转换器和 D/A转换器则通过相应的 A/D转换和
D/A转换把模拟量转换成数字量和数字量转换成模拟量。
127
微型机与控制系统的接口
128
二、采样 -保持电路
( 1)采样跟踪状态:在此期间应尽可能快地接受输入信号,使输出和输入信号相一致。
( 2)保持状态:把采样结束瞬间的输入信号保持下来,使输出和保持的信号一致。当输入信号变化速率较快时,都应采用采样 -保持电路,如果输入信号变化缓慢,则可不用保持电路。
129
130
三、量化和编码
1.量化采样后的信号经量化后才能输入到计算机,采样信号经量化后成为数字信号的过程称为量化过程。
A/D转换就是量化的过程,它把采样后模拟信号转变成数字量。
131
2,编码在量化过程中,对双极性(有正、负)信号通常有三种表示方法:
( 1)符号 -数值码,类似于原码表示法。
( 2)偏移二进制码,与移码表示法相同。
( 3)补码表示法,与计算机的补码表示方法相同。
132
四、模 /数转换器的性能指标
1.分辨率分辨率是指 ADC对输入电压微小变化响应能力的度量。
2.绝对精度绝对精度是指在输出端产生给定的数字代码,实际需要的模拟输入值与理论上要求的模拟输入值之差。
133
3,相对精度相对精度(又称线性度)是指满刻度值校准后,任意数字输出所对应的实际模拟输入值(中间值)与理论值(中间值)之差。
4,转换时间转换时间是指 ADC完成一次转换所需的时间,
即从启动信号开始到转换结束并得到稳定的数字输出量所需的时间。通常为微秒级。
5,量程量程是指所能转换的输入电压范围。
134
五、数 /模转换器的性能指标
1.分辨率分辨率是最低有效位( LSB)
所对应的模拟量的大小。
2.精度精度反映 D/A转换的精确度。
3.建立时间建立时间定义为:在数字输入端输入满量程代码的变化后,DAC的模拟输出稳定到最终值± 1/2LSB
时所需的时间。
135
8.5.2 数 /模转换器 DAC0832及其接口一、芯片简介
DAC0832采用了二次缓冲输入数据方式(输入寄存器及 DAC寄存器)。可以在输出的同时采集下一个数字量,以提高转换速度。能够用于需要同时输出多个参数的模拟量系统。
136
DAC 0832内部结构框图
137
二、数 /模转换器芯片的输出电路
1.电流输出转换为电压输出
138
2.单极性与双极性输出电路
139
3,数 /模转换器与微处理器的接口
D/A转换器只有数据输入线,选片和写入控制线与微处理器有关。因此微处理器的接口比较简单,直接把数据输出给 D/A转换器。若 D/A转换器芯片内带有锁存寄存器,微处理器就把 D/A芯片当作一个并行输出端口;
若 D/A转换器芯片内无锁存寄存器,微处理器就把 D/A
芯片当作一个并行输出的外设,二者之间还需增加并行输出的接口。数 /模转换器接口是通过 D/A转换器来实现模拟输出,有时我们简称为“模出”。
140
141
8.5.3 模 /数转换器 ADC0809及其接口一、芯片简介
ADC0809是 CMOS型的 8位 A/D转换器,采用逐次逼近式进行 A/D转换。
ADC0809有八路模拟量输入通道。
ALE为地址锁存信号,高电平有效时,ADDC
~ ADDA被锁存。
142
通过对 ADDC,ADDB,ADDA三端输入的地址译码,选通八路模拟量输入( IN0 ~IN7) 的任意一路进入片内进行 A/D转换。
START是 A/D转换启动信号,高电平有效。
EOC是转换结束信号,高电平有效,当 A/D转换完毕 EOC的高电平可用作中断请求信号。
转换后的数字量通过三态缓冲器输出,当输出允许 OE=,1”时,打开三态输出门输出数字量。
输入 ADC0809的模拟信号是单极性的( 0 ~ +5V)。
143
144
二,ADC0806同微处理器的连接
1.直接连接
145
MOV AL,07H
OUT 84H,AL
CALL DELAY100
IN AL,84H
HLT
146
2,通过并行接口芯片同微处理器的连接
147
MOV AL,88H
OUT 83H,AL
MOV AL,00H
OUT 81H,AL
ADD AL,10H
OUT 81H,AL
SUB AL,10H
OUT 81H,AL
LOP,IN AL,82H
TEST AL,80H
JZ LOP
IN AL,84H
HLT
148
三、应用举例
149
DATA1 SEGMENT
ORG 2000H
AREA DB 200 DUP(?)
…
DATA1 ENDS
STACK1 SEGMENT
DB 50 DUP(?)
…
STACK1 ENDS
CODE1 SEGMENT
ASSUME DS,DATA1,SS,STACK1,CS,CODE1
150
START,MOV AL,92H
MOV DX,1C3H
OUT DX,AL
MOV AX,DATA1
MOV DS,AX
MOV SI,2000H
MOV BL,8
MOV DX,1C8H
LOP1,MOV CX,18H
LOP2,IN AL,DX
PUSH DX
MOV DX,1C1H
151
LOP3,IN AL,DX
TEST AL,0H
JZ LOP3
MOV DX,1C0H
IN AL,DX
MOV [SI],AL
INC SI
POP DX
LOOP LOP2
INC DX
DEC BL
JNZ LOP1
HLT