第 9 章 常用外设与通信接口

81
现现现现现现现现现现现 现现现现现现现现现现现 ( ( 3 3 ) ) http://www.njyangqs.co http://www.njyangqs.co 1 第9第 第第第第第第第第第

Upload: benjamin-morton

Post on 02-Jan-2016

64 views

Category:

Documents


5 download

DESCRIPTION

第 9 章 常用外设与通信接口. 9.1 可编程并行接口芯片 82C55. 9.1.1 8255 的基本功能. 8255 具有 2 个独立的 8 位 I/O 口( A 口和 B 口)和 2 个独立的 4 位 I/O ( C 口上半部和 C 口下半部) ,提供 TTL 兼容的并行接口。作为输入时提供三态缓冲器功能,作为输出时提供数据锁存功能。其中, A 口具有双向传输功能。 8255 有 3 种工作方式 ,方式 0 、方式 1 和方式 2 ,能使用无条件、查询和中断等多种数据传送方式完成 CPU 与 I/O 设备之间的数据交换。 - PowerPoint PPT Presentation

TRANSCRIPT

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/1

第 9 章 常用外设与通信接口

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/2

9.1 可编程并行接口芯片 82C55

1. 8255 具有 22 个独立的个独立的 88位位 I/OI/O 口(口( AA 口和口和 BB 口)和口)和22 个独立的个独立的 44位位 I/OI/O(( CC 口上半部和口上半部和 CC 口下半部)口下半部),提供 TTL 兼容的并行接口。作为输入时提供三态缓冲器功能,作为输出时提供数据锁存功能。其中, A 口具有双向传输功能。

2. 8255有 33 种工作方式种工作方式,方式 0 、方式 1 和方式 2 ,能使用无条件、查询和中断等多种数据传送方式完成 CPU与 I/O 设备之间的数据交换。

3. B 口和 C 口的引脚具有达林顿复合晶体管驱动能力,在 1.5V 时输出 1mA 电流,适于作输出端口。

4. C 口除用做数据口外,当当 82558255 工作在方式工作在方式 11 和方式和方式22 时,时, CC 口的部分引脚作为固定的联络信号线口的部分引脚作为固定的联络信号线。

9.1.1 8255 的基本功能

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/3

1. 内部结构 9.1.2 8255 的内部结构和外部引脚

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/4

2. 外部引脚

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/5

8255 的端口与操作选择表A1 A0 DR# WR# CS# 操 作 特征

位0 0 0 1 0 A 口内容读至数据总线 无

输入

0 1 0 1 0 B 口内容读至数据总线 无1 0 0 1 0 C 口内容读至数据总线 无0 0 1 0 0 数据总线内容写至 A 口 无

输出

0 1 1 0 0 数据总线内容写至 B 口 无1 0 1 0 0 数据总线内容写至 C 口 无

1 1 1 0 0数据总线内容写至控制寄存器 D7=1

数据总线内容写 C 口按位置 / 清控制字

D7=0

X X X X 1 端口输出为高阻 无禁止

1 1 0 1 0 非法 无X X 1 1 0 端口输出为高阻 无

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/6

9.1.3 8255 的工作方式

1 .方式 0

方式 0 提供两个 8 位口( A和 B )和两个4 位口( PC7~PC4, PC3~PC0 ),任何一个口都可用做输入或或输出 ( 单向),由 CPU 用简单的 I/O 指令来进行读 / 写。 一般用于无条件传送的场合,也可以用做查询式传送。 习惯上将 A 口和 B 口作为数据口,将 C 口作为控制输出和状态输入口。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/7

8255A 方式 0 输入时序和参数说明

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/8

8255A 方式 0 输出时序和参数说明

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/9

2 .方式 1 ( A 口和 B 口有此方式,单向)( 1 )方式 1 的输入

A 口和 B 口方式 l 的输入组态

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/10

• INTE 为中断允许位,对应 PC 口寄存器 ( 状态字 )的 D4 位( INTEA )和 D2 位 ( INTE

B ) ,可通过对 PC 口按位写方法设置;• PC2、 PC4 引脚作用:用作锁存数据口数据;• 中断条件: STB#( 引脚 )=1( 无效 ), IBF=1、INTE=1 ;• PC6、 7 可作为数据线使用。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/11

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/12

方式 1 下的输入过程:

• 外设把数据送到 8255 端口• 外设用选通信号 STB# 把数据打入端口的输入锁存器• 输入缓冲器满信号 IBF 有效, CPU 可查询该信号• 如果 INTE 有效, 8255 将使 INTR 有效,申请中断• CPU向 8255 发读信号 RD# ,从 8255 端口读数据• 中断请求信号 INTR 变无效,然后 IBF 无效,外设可

送下一个数据。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/13

( 2 )方式 1 的输出

8255 方式 1 输出组态

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/14

• INTE 为中断允许位,对应 PC 口寄存器 ( 状态字 )的 D6 位( INTEA )和 D2 位 ( INTE

B ) ,可通过对 PC 口按位写方法设置;• PC2、 PC6 引脚作用:用作对 OBF# 的回应;• 中断条件: ACK# ( 引脚 )=1( 无效 ) , OBF#=1( 无效 )、 INTE=1 ;• PC4、 5 可作为数据线使用。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/15

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/16

方式 1 下的输出过程:

• CPU发WR# 信号,向 8255 送一个数据• WR#使 INTR 无效, OBF# 有效,通知外设可取数据• 外设接到数据后,向 8255 回送 ACK# 信号• OBF# 无效,接着 ACK# 无效,其上升沿引发 INTR 有

效,向 CPU 发中断申请,请求发送新数据。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/17

3 .方式 2

8255 方式 2 组态

双向 I/O ,只有 A 口有此方式

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/18

9.1.4 8255 的控制字与初始化编程 1 .工作方式控制字(写, A1A0= 11 )

8255 工作方式控制字

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/19

例 9.1 某系统要求使用 8255的 A 口工作于方式 1 作输入, B 口工作于方式 0 作输出, C 口上半部输入,下半部输出。 8255 端口地址为 60H-63H 。

控制字为: 10111000B=0B8H

初始化程序为: MOV AL, 0B8H

OUT 63H, AL

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/20

2. C 口按位置 / 复位控制字(写, A1A0= 11 )

C 口按位置 / 复位控制字

例 9.2如上例,若 A 口工作于方式 1 作输入,要使用中断传送方式,则应当写 PC4 的按位置位字: MOV AL, 00001001B

OUT 63H, AL

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/21

方式 1下 8255 状态字中 INTE 位的置位和复位

⊙ 若禁止 PA 口输入中断请求 MOV DX, 303H ; 8255 命令口 MOV AL, 000010010000B ;置 PCPC44=0 ,禁止中断请求 OUT DX, AL

⊙ 若允许 PA 口输入中断请求 MOV DX, 303H ; 8255 命令口 MOV AL, 00001001001B ;置 PCPC44=1 ,允许中断请求 OUT DX, AL

⊙ 若允许 PA 口输出中断请求 MOV DX, 303H ; 8255 命令口 MOV AL, 00001101101B ;置 PCPC66=1 ,允许中断请求 OUT DX, AL

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/22

⊙ 若允许 PB 口输入中断请求 MOV DX, 303H ; 8255 命令口 MOV AL, 00000100101B ;置 PCPC22=1=1 ,允许中断请求 OUT DX, AL

⊙ 若禁止 PB 口输入中断请求 MOV DX, 303H ; 8255 命令口 MOV AL, 000001001000B ;置 PCPC22=0=0 ,禁止中断请求 OUT DX, AL

⊙ 若允许 PB 口输出中断请求 MOV DX, 303H ; 8255 命令口 MOV AL, 00000100101B ;置 PCPC22=1=1 ,允许中断请求 OUT DX, AL

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/23

例 9.3下图采用一个 8255 芯片和软盘控制器相连,箭头标明了 I/O 的方向,根据该图,试写出 8255 的初始化程序。设 8255 端口地址为 0300-0303H 。

8255 用作软盘基本接口

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/24

A 口工作在方式 2, PC4-PC7 作应答联络信号线, PC3 用作 A 组中断请求, B 口和 PC0-PC2 作输出,工作在方式 0 。

工作方式控制字为: 11XXX000B

初始化程序为: MOV DX, 303H MOV AL, 0C0H OUT DX, AL MOV AL, 00001001B OUT DX, AL ;; PC4PC4 置位,开放输入中置位,开放输入中断断 MOV AL, 00001101B OUT DX, AL ;; PC6PC6 置位,开放输出中置位,开放输出中断断

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/25

例 9.4某应用系统以 8255A 作为接口,采集一组开关S7~S0 的状态,然后通过一组发光二极管 LED7~LED0

显示开关状态 ,(Si 闭合,则对应 LEDi 亮, Si 断开,则对应的 LEDi 灭)电路连接如下图,已知8255A、 B 两组均工作在方式 0 。1) 写出 8255 四个端口的地址。2) 写出 8255 工作方式控制字。3) 写出实现给定功能的汇编语言程序。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/26

LED7

LED0

S7

S0

PB7

PB0

PA7

PA0

8255A

D7~D0D7~D0

WR#RD#

IOW#IOR#

Y0 #G1

G2A#

G2B#

CBA

74LS138

CS#A9

AEN

&A8A7

A6A5

A4A3A2

A1

A0

A1A0

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/27

答:1) A 口、 B 口、 C 口和控制口的地址分别是

320H、 321H、 322H和 323H 。2) A 口工作在方式 0 输出, B 口工作在方式 0 输

入, C 口空闲,所以其控制字是 10000010b= 82H3) 程序如下:

MOV AL, 82H ; 置方式字MOV DX, 323H ; 置控制端口地址OUT DX, AL

L1: MOV DX, 321H ;置 B 口地址IN AL, DX ; 读开关状态( 1 断, 0 通

)NOT AL ; 状态取反MOV DX, 320H ;置 A 口地址OUT DX, AL ; 输出( 1 亮, 0 灭)JMP L1

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/28

思考题:如果上题要求修改成:不用查询方式,而是每50ms 来一次中断,在中断中读 B 口,输出 A 口,请问电路和程序要怎么改动?假设系统提供一个 2KHz 的脉冲, 8254和 8259 的地址同 PC机器。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/29

例 9.5 假设利用 8255的 A 口方式 0 与打印机相连,将内存缓冲区 BUFF 中的字符打印输出。 打印机接口在 STB# 有效时,接收数据,而在 BUSY 有效时,表示打印机忙,不能接收数据。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/30

打印机时序

返回

#

#

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/31

8255 与打印机接口

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/32

.DATA BUFF DB ‘HELLO,WORLD!’, 13, 10 ,‘ $’ PORTA EQU 60H PORTB EQU 61H PORTC EQU 62H PORTCN EQU 63H.CODESTART : MOV AX,@DATA

MOV DS, AXMOV SI, OFFSET BUFF

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/33

;; 82558255 初始化,初始化, AA 口方式口方式 00 输出,输出, CC 口上半部输入口上半部输入 MOV AL, 88H

OUT PORTCN, AL ;; CC 口下半部输出口下半部输出 MOV AL, 01H ;置位;置位 PC0PC0,, STBSTB 无无

效效 OUT PORTCN, AL

WAIT: IN AL, PORTC ;读打印机;读打印机状态状态

TEST AL, 80H ; ; 若“忙”则等若“忙”则等待待

JNZ WAIT

MOV AL, [SI]

CMP AL ,‘ $’

JZ PRINT_OVER

OUT PORTA, AL ;数据送出;数据送出

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/34

MOV AL, 00H

;产生选通信号,打印机接收数据,开始打;产生选通信号,打印机接收数据,开始打印。印。

OUT PORTCN ,AL

MOV AL,01H

OUT PORTCN ,AL

INC SI

JMP WAIT

PRINT_OVER: MOV AH,4CH

INT 21H

END START 看图

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/35

9.2.1 串行通信的基本概念

串行通信是将数据的各个位一位一位地,通过单条 1 位宽的传输线按顺序分时传送,即通信双方一次传输一个二进制位。串行通信与并行通信是两种基本的数据通信方式。 发送方在发送前要将并行数据转成串行数发送方在发送前要将并行数据转成串行数据,接收方接收后要完成串行数据到并行数据据,接收方接收后要完成串行数据到并行数据的转换。的转换。

1. 串行通信

9.2 串行接口

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/36

与并行通信相比,串行通信的优势

• 传输距离长,可达到数千公里传输距离长,可达到数千公里

• 长距离内串行数据传送速率会比并行数据传长距离内串行数据传送速率会比并行数据传送速率快,串行通信的通信时钟频率较并行送速率快,串行通信的通信时钟频率较并行通信容易提高。通信容易提高。• 抗干扰能力强,串行通信信号间的互相干扰抗干扰能力强,串行通信信号间的互相干扰

完全可以忽略。 完全可以忽略。 • 费用低。 费用低。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/37

2. 数据传送方式

• 单工方式T R

• 半双工方式 T

RR

T

• 全双工方式 T

TR

R

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/38

3. 波特率与收 / 发时钟 波特率波特率:单位时间内传送的二进制数据的位数,以位 /秒( b/sb/s )表示,也称为数据位率。它是衡量串它是衡量串行通信速率的重要指标行通信速率的重要指标。。

收收 // 发时钟发时钟直接决定了通信线路上数据传输的速率,对于收 / 发双方之间数据传输的同步有十分重要的作用。

一般在发送端是由发送时钟的下降沿下降沿使送入移位寄存器的数据串行移位输出。而接收端则是在接收时钟的上升沿上升沿作用下将传输线上的数据逐位打入移位寄存器。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/39

为了提高串行通信的抗干扰能力,往往用多个时钟调制一位二进制数据,调制一位二进制数据的收 / 发时钟个数称为波特率系数波特率系数 nn。

收 / 发时钟频率与波特率之间的关系: 收收 // 发时钟频率发时钟频率 ==nn××波特率波特率一般 n取 1, 16, 32和 64 等。对于异步通信,常采用 n=16 ;对于同步通信,则必须取 n =1 。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/40

4. 串行通信基本方式

异步串行通信异步串行通信 在通信的数据流中,字符间异步,字符内部各位间同步。异步通信方式的异步通信方式的““异步异步””主要体主要体现在字符与字符之间通信没有严格的定时要求现在字符与字符之间通信没有严格的定时要求。然而,一旦传送开始,收 / 发双方则以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/41

同步串行通信同步串行通信 数据流中的字符与字符之间和字符内部的位与位之间都同步。同步串行通信是以数据块(字符块)为信息单位传送,而每帧信息包括成百上千个字符,因此传送一旦开始,要求每帧传送一旦开始,要求每帧信息内部的每一位都要同步。信息内部的每一位都要同步。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/42

9.2.2 异步串行通信协议

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/43

比如 ASCII 字符 ‘ A’, 二进制是 0100 0001(8位 ) ,它们在起始位和 1 位停止位之间传送,并使用了 1 位偶校验位。

OutOut

0 1 0 0 0 0 0 1 0 0 1

先出先出 后出后出D7D7D0D0

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/44

为了确保异步串行通信传输正确:为了确保异步串行通信传输正确:11 )采用相反极性的起始位和停止位)采用相反极性的起始位和停止位 // 空闲位提供准空闲位提供准确的时间基准确的时间基准

33 )接收器在每位的中心采样,以获得最大的收)接收器在每位的中心采样,以获得最大的收 // 发发时钟频率偏差容限时钟频率偏差容限

22 )接收器采用比传送波特率更高频率的时钟来控制)接收器采用比传送波特率更高频率的时钟来控制采样时间,以提高采样的分辨能力和抗干扰能力。采样时间,以提高采样的分辨能力和抗干扰能力。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/45

例题: 异步传输 7位 ASCII码,如果需要数据传输速率为 240 字符 /秒,使用 1 位奇偶校验位和 1 位停止位,则:11 )波特率应该是多少?)波特率应该是多少?22 )有效数据位传输位是多少?)有效数据位传输位是多少?33 )传输效率是多少?)传输效率是多少?

答:11 )波特率是)波特率是 (7(7 位数据位位数据位 +1+1 位起始位位起始位 +1+1 位校验位位校验位 +1+1 位停止位停止位位 )×240)×240 =2400b/s=2400b/s22 )有效数据位传输位是 :)有效数据位传输位是 : 7×240=1680b/s7×240=1680b/s33 )传输效率是:)传输效率是: 1680/2400=70%1680/2400=70%

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/46

1. 串行通信系统数据终端设备数据终端设备 DTEDTE—— 数据源和目的地

数据通信设备数据通信设备 DCEDCE—— 使数据符合线路要求

9.2.3 串行接口 RS-232C 标准

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/47

引脚 代号 其他表示法 信号名 方向1 AA( 101 ) PG 保护地 设备地2 BA( 103 ) TxD, SD 发送数据 DTE→DCE

3 BB( 104 ) RxD 接收数据 DCE→DTE

4 CA( 105 ) RTS, RS 请求发送 DTE→DCE

5 CB( 106 ) CTS, CS 允许 / 清除发送

DCE→DTE

6 CC( 108 ) DSR,MR DCE就绪 DCE→DTE

7 AB( 102 ) SG 信号地 信号公共地8 CF( 109 ) RLSD, DC

D

接收线路信号检测 DCE→DTE

20 CD( 108.2 )

DTR DTE就绪 DTE→DCE

22 CE( 125 ) RI 振铃指示 DCE→DTE

2. 常用的 RS-232C 信号线

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/48

3. 常用的 RS-232C 连接

最简单连接( 3 线连接)

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/49

4. 电气特性

1) 应保证电平在 ±±(5~15)V 之间

对于数据线:对于数据线:逻辑“ 1” (MARK)= -3V~ - 15V,

逻辑“ 0” (SPACE) = +3V~+15V对于控制信号:对于控制信号:接通状态( ON )即信号有效

的电平 = +3V~15V断开状态( OUT )即信号无效

的电平 = - 3 ~ Ⅴ - 15V 。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/50

2) 必须进行电平转换 RS-232CRS-232C 接口采用的是负逻辑,其逻辑电平接口采用的是负逻辑,其逻辑电平与与 TTLTTL 电平不一样,不能兼容。因此,为了实电平不一样,不能兼容。因此,为了实现与现与 TTLTTL 电路的连接,必须进行电平转换。电路的连接,必须进行电平转换。 目前可以使用新型电平转换芯片目前可以使用新型电平转换芯片 MAX232MAX232和和MAX232AMAX232A (高速)双组(高速)双组 RS-232CRS-232C 发送发送 // 接收器接收器,以及,以及 MC1488, MC1489MC1488, MC1489 实现实现 TTLTTL 电平与电平与 RS-RS-232C232C 电平双向转换。电平双向转换。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/51

3) 必须抗共模噪声干扰

RS-232C 由于在发送器与接收器之间有公共信号地,不可能使用双端信号,因此共模噪声很容易引入信号系统中,且噪声幅度可高达好几伏,这是迫使 RS-232C 使用较高传输电压的主要原因。另一个原因是为了补偿传输线上的信号衰减和沿线附加电平的影响。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/52

5. 机械特性 - 连接器

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/53

PC微机异步通信适配器是微机与微机、微机与 MODEM及微机与外设之间进行异步通信的接口。其核心是 UART 。

常见的 UART主要有 INS8250INS8250、 PC16450PC16450和 PC16550PC16550 。此外,还有带更大缓冲的UART ,称为 PC16650PC16650和 PC16750PC16750 。目前的微机一般用 PC16550

9.2.4 异步通信适配器 INS8250与 PC16550

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/54

1. INS8250 外部引脚

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/55

1) 并行数据 I/O及其控制线• D7~D0 8 位双向三态数据线。• CS0, CS1 和 CS2# 片选线。• ADS# 地址选通线 ( 锁存片选和内部寄存器选锁存片选和内部寄存器选择择 )

• DISTR和 DISTR# 数据输入选通 ( 读寄存器允许读寄存器允许 )

• DOSTR和 DOSTR# 数据输出选通 ( 写寄存器允许写寄存器允许 )

• A0, A1和 A2 内部寄存器选择。 • CSOUT 片选输出。(为高表示该片被选中为高表示该片被选中)) • DDIS 驱动器禁止。 ( 禁止处理器和禁止处理器和 82508250 在在

数据线上的收发器动作数据线上的收发器动作 )

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/56

2) 串行数据 I/O 线

• SOUT 串行数据输出。 • SIN 串行数据输入。 • XTAL1 外部时钟输入端。 • XTAL2 基准时钟信号输出端。 • BAUDOUT# 工作时钟(发送时钟)输出。

FF 工作时钟工作时钟 ==FF 基准时钟基准时钟 ÷÷ 除数寄存器除数寄存器 == 传送波特率传送波特率 ×16×16

• RCLK 接收时钟输入。可和 BAUDOUT# 相接

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/57

3)和MODEM 的握手信号线

• RTS# 请求发送,输出线。

• DSR# 数据设备就绪,输入线 • DTR# 数据终端就绪,输出线。 • RI#振铃指示,输入线。 • RLSD# 接收线路信号检测,输入线。

• CTS# 清除发送,输入线。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/58

4) 中断请求,复位输入及其他信号线

• INTPRT 中断请求输出。 • MR 主复位输入。

• OUT1#和 OUT2# 由用户指定的输出端。 MODEM 控制寄存器的第二、第三位决定。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/59

2.UART 内部结构

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/60

DLAB A2A1A0 被访问的寄存器0 000 接收缓冲寄存器 ( 读 ) ,发送保持寄存器

( 写 )

0 001 中断允许寄存器1 000 波特率除数寄存器 ( 低字节 )

1 001 波特率除数寄存器 ( 高字节 )

X 010 中断识别寄存器 ( 读 ) , FIFO 控制器( 写 )

X 011 线路控制寄存器 X 100 MODEM 控制寄存器X 101 线路状态寄存器X 110 MODEM 状态寄存器X 111 Scratch 寄存器

DLAB 是线路控制寄存器的 D7 位。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/61

1) 线路控制寄存器 LCR

D7 D6 D5 D4 D3 D2 D1 D0

WLS0WLS1PEN STBEPSSPSBDLAB

字符长度选择字符长度选择00——500——5 位位01——601——6 位位10——710——7 位位11——811——8 位位停止位选择停止位选择

0——10——1 位位1——1.51——1.5位位 (D1D0=00(D1D0=00 )) 22位位 (D1D0<>00)(D1D0<>00)

奇偶校奇偶校验允许验允许

奇偶校奇偶校验选择验选择

11——11——偶校验偶校验01——01——奇校验奇校验

附加奇偶标志附加奇偶标志位选择位选择0——0——不附加不附加1——1——附加附加 11位位

中止设置中止设置1—1— 中止中止0—0—正常正常

除数寄存器除数寄存器访问允许访问允许0——0—— 禁止禁止1——1—— 允许允许

A2A1A0=011

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/62

2) 线路状态寄存器 LSR

D7 D6 D5 D4 D3 D2 D1 D0

DROEFE PEBITHRETSRE

接收接收缓冲缓冲区满区满

接收接收重叠重叠错错

接收接收奇偶奇偶错错

接收接收格式格式错(错(无正无正确的确的停止停止位)位)

中止中止识别识别标志标志

发送发送保持保持器空器空

发送发送移位移位器空器空

FIFOFIFO 中中接收数据接收数据错误错误((1655016550))

A2A1A0=101

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/63

3) 发送保持寄存器 THR 接收缓冲寄存器 RBR

D7 D0

CPU 来的 8 位数据并行进THR

THR低位到低位到高位串高位串行移位行移位到到SOUTSOUT引脚输引脚输出出

……D7 D0

接收移位寄存器发送移位寄存器

RBR低位到低位到高位从高位从SINSIN 引脚引脚串行移串行移位进来位进来

8 位数据并行进CPU

发送方 接收方

DLAB=0, A2A1A0=000

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/64

4) 波特率除数锁存器

这是一个软件控制的分频器,输出的工作时钟频率为 16倍的波特率。

除数寄存器值 除数寄存器值 = = 基准时钟频率基准时钟频率÷÷(( 16×16×波特率)波特率) INS8250INS8250 芯片输入的基准时钟频率为芯片输入的基准时钟频率为 1.8432MHz1.8432MHz ,若,若波特率为波特率为 4800b/s4800b/s ,则波特率除数为,则波特率除数为 0018H0018H,, DLHDLH 中中应填应填 00H00H,, DLLDLL 中应填中应填 18H 18H 。。

思考题: 使用 INS8250异步传输 7位 ASCII码,如果需要数据传输速率为 960 字符 /秒,使用 1 位奇偶校验位和 1 位停止位,波特率除数锁存器的值是多少?

注意:注意: PC16550PC16550 的基准时钟一般为的基准时钟一般为 18.432MHz18.432MHz 。。

DLAB=1, A2A1A0=001( 高高 )或 000(低低 )

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/65

5) 中断识别寄存器 IIR

D7 D6 D5 D4 D3 D2 D1 D0

IPID1ID20

未决未决中断中断指示指示0-0- 有有1-1- 无无

中断中断类型类型标识标识

超时中断超时中断0-0-不超时不超时1-1-超时超时

允许允许 6464 字节字节FIFO(FIFO(1675016750))0-0- 禁止禁止1-1- 允许允许

FIFOFIFO 使使用指示用指示((1655016550))01-01- 允许允许 FIFOFIFO但不可但不可用用11-11- 允许允许 FIFOFIFO

A2A1A0=010 (读)

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/66

ID2 ID1 中断类型 优先权1 1 接收出错 (重叠、奇偶错、格式错和

中止 )最高

1 0 接收缓冲器满 次高0 1 发送保持器空 低0 0 MODEM 状态 (CTS、 DSR、 RI

和 RLSD)改变最低

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/67

6) 中断允许寄存器 IER

D7 D6 D5 D4 D3 D2 D1 D0

I2EI1EI3E0

类型类型 22中断中断 ((接收缓接收缓冲器满冲器满 ))1-1- 允许允许0-0-屏蔽屏蔽

类型类型 11中断中断 ((发送保发送保持器持器空空 ))1-1- 允许允许0-0-屏蔽屏蔽

类型类型 33中断中断 ((接收出接收出错)错)1-1- 允许允许0-0-屏蔽屏蔽

进入低进入低功耗模功耗模式式((1655016550))

进入睡进入睡眠模式眠模式((1675016750))

DLAB=0, A2A1A0=001

I0E0

类型类型 00中断中断(MOD(MODEMEM 状状态改态改变变 ))1-1-运运行行0-0-屏屏蔽蔽

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/68

7)MODEM 控制寄存器 MCR

A2A1A0=100

D7 D6 D5 D4 D3 D2 D1 D0

DTRRTSOUT10

数据数据终端终端就绪就绪

请求请求发送发送

辅助辅助输出输出11

自动流自动流量控制量控制((1675016750))

环路环路检测检测(( 内内部自部自循环循环))

OUT20

辅助辅助输出输出22,, PPCC 用用做中做中断允断允许许

LOOP

注意这里的注意这里的 OUTiOUTi 位极性和位极性和 OUTiOUTi 引脚相反。引脚相反。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/69

8)MODEM 状态寄存器 MSR

A2A1A0=110

D7 D6 D5 D4 D3 D2 D1 D0

CTSDSRTERIRLSD

CTSCTS位发位发生改生改变变

DSRDSR位发位发生改生改变变

收到收到“振“振铃指铃指示”示”后沿后沿(下(下降沿降沿))

收到“收到“数传机数传机就绪”就绪”

收到收到“清“清除发除发送”送”

RLSDRI

RLSRLSDD 位位发生发生改变改变

CTSDSR

收到收到“振“振铃指铃指示”示”

收到收到“接“接收线收线载波载波检测检测””

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/70

9)FIFO 控制寄存器 (FCR)A2A1A0=010 (写) 1616550550 后才有后才有D7 D6 D5 D4 D3 D2 D1 D0

允许允许FIFFIFOO 缓缓冲器冲器工作工作

清除清除接收接收FIFFIFOO 缓缓冲器冲器

清除清除发送发送FIFFIFOO 缓缓冲器冲器

允许允许6464 字字节节FIFOFIFO((1675016750))

保留保留 DMDMAA 方方式选式选择择

接收接收端中端中断触断触发器发器水平水平(LSb(LSb))

接收接收端中端中断触断触发器发器水平水平(MSb(MSb))

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/71

触发器水平即是指示在中断产生之前,接收缓冲器应该装满多少个字节。

D7D6 触发器水平00 1 字节01 4 字节10 8 字节11 12 字节

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/72

常用 UART比较8250 16450 16550 16650 16750

FIFO - - 16 字节

32 字节

64 字节

超时检测 - -- √√ √√ √√

低功耗模式 - -- √√ √√ √√

睡眠模式 - -- -- -- √√

自动流量控制 - -- -- -- √√

临时寄存器 - √√ √√ √√ √√

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/73

3. IA-32微机中的串行接口

1) PC机的串行口串口号 COM1 COM2 COM3 COM4

基地址 3F8 2F8 3E8 2E8

中断号 IRQ4 IRQ3 IRQ4 IRQ3

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/74

2) PC机的串行口电路

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/75

4. INS8250( 16550 )初始化1. 通过写除数寄存器(端口 0 和端口 1 )设置波特率

2. 通过写线路控制寄存器(端口 3 )设置通信数据格式。

3. 通过写 MODEM 控制寄存器 MCR (端口 4)设置 MODEM 控制字。

4. 通过写中断允许寄存器(端口 1 )设置中断允许控制字。

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/76

mov dx,3fbh ;线路控制寄存器地址线路控制寄存器地址mov al,80hout dx,al ;使使 DLAB=1DLAB=1 ,以便下面写除,以便下面写除数数

;寄存器寄存器mov dx,3f8h ;低位除数寄存器低位除数寄存器mov al,0ch ; 96009600波特率的除数低波特率的除数低 88 位位out dx,almov al,00inc dx ;高位除数寄存器高位除数寄存器out dx,al

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/77

mov al, 00011011b ;偶校验、偶校验、 11 位停止位停止位位

;; 88 位数据位位数据位mov dx,3fbh ;线路控制寄存器地址线路控制寄存器地址out dx,almov al,03h ;数据终端就绪、请求发送数据终端就绪、请求发送mov dx,3fch ; MODEMMODEM 控制寄存器地址控制寄存器地址out dx,almov al,0 ;禁止中断禁止中断mov dx,3f9h ;中断允许寄存器地址中断允许寄存器地址out dx,al

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/78

1. 查询方式发送 初始化 8250( 16550)

读 LSR

D5=1?

发送一个字符

发完?

结束

Y

Y

N

N

9.2.5 查询方式串行通信程序设计

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/79

2. 查询方式接收 初始化 8250

读 LSR

D0=1?

接收一个字符

收完?

结束

Y

Y

N

N

有错?N

Y

错误处理

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/80

1. 通信中断初始化• 修改中断向量,修改中断向量,按使用的端口 COM1或 COM2

,接管中断 0CH 或中断 0BH 。• 确定确定 INS8250INS8250 操作方式,操作方式,设置中断允许寄存器( IER )相应位的允许或禁止,并允许中断操作(置 MCR的 D3=1 )。

• 确定起止式通信协议确定起止式通信协议,设置通信波特率及数据帧传输格式( LCR )。

• 开放通信中断开放通信中断,对 8259A 中断控制器的屏蔽寄存器编程( OCW1 ),允许中断 IRQ4或 IRQ3 。

9.2.6 中断方式串行通信程序设计

现代微机原理与接口技术现代微机原理与接口技术 (( 第第 33版版 ))

http://www.njyangqs.com/http://www.njyangqs.com/81

2. 通信中断服务程序

•首先读取中断识别寄存器(首先读取中断识别寄存器( IIRIIR )),判断中断源,然后转向对应的处理子程序。判断中断源,应该按照中断优先级别次序进行。•当中断识别寄存器 D2D1=11 时,表明接收出错中接收出错中

断,需要再读取线路状态寄存器(断,需要再读取线路状态寄存器( LSRLSR )),分析错误原因,再进行错误处理。•可能出现多个中断源同时引发中断。因此,每处理因此,每处理

完一种中断源后,应继续读取中断识别寄存器,检测完一种中断源后,应继续读取中断识别寄存器,检测D0D0 是否为“是否为“ 00”” ,,当 D0=0 时,表明还有未决中断,应该继续分析中断源并进行中断处理。•从中断程序返回的条件是中断识别寄存器的从中断程序返回的条件是中断识别寄存器的 D0=1D0=1