串行通信接口_第1页
串行通信接口_第2页
串行通信接口_第3页
串行通信接口_第4页
串行通信接口_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2多一串打通G

教学重点

■异步通信协议和RS232c接口

■8250的内部结构和编程

■异步通信程序

12A串行通信基础

■串行通信:将数据分解成二进制位用一条

信号线,一位一位顺序传送的方式

■串行通信的优势:用于通信的线路少,因

而在远距离通信时可以极大地降低成本

■串行通信适合于远距离数据传送,也常用

于速度要求不高的近距离数据传送

■PC系列机上有两个串行异步通信接口、键

盘、鼠标器与主机间采用串行数据传送

1.异步通信

■串行通信时的数据、控制和状态信息都使

用同一根信号线传送

■收发双方必须遵守共同的通信协议(通信

规程),才能解决传送速率、信息格式、

位同步、字符同步、数据校验等问题

■串行异步通信以字符为单位进行传输,其

通信协议是起止式异步通信协议

起止式异步通信协议

低位高位

•空闲位——传送字符之间的逻辑1电平,

表示没有进行传送

.数据传输速率

■数据传输速率也称比特率(BitRate)

-每秒传输的二进制位数bps

-字符中每个二进制位持续的时间长度都一样,为数据

传输速率的倒数

■当进行二进制数码传输,且每位时间长度相等时,

比特率还等于波特率(BaudRate)

■过去,串行异步通信的数据传输速率限制在50

bps到9606bps之间。现在,可以达到115200bps

或更高

同步通信

■以一个数据块(帧)为传输单位,每个数据块附

力叮个或2个同步字符,最后以校验字符结束

■同步通信的数据传输效率和传输速率较高,但硬

件电路比较复杂

■串行同步通信主要应用在网络当中

■最常使用高级数据链路控制协议HDLC

同步字符数据数据校验字符

3,传输制式

全双工站A:站B

半双工站4・FB

单工站Aa站B

示例

4.调制解调器

■调制(Modulating)

■把数字信号转换为电话线路传送的模拟信号

■解调(Demodulating)

■将电话线路的模拟信号转换为数字信号

■调制解调器MODEM

■具有调制和解调功能的器件合制在一个装置

示例

122串行接口标准RS-232c

-美国电子工业协会EIA制定的通用标准串行接口

.1962年公布,1969年修订

-1987年1月正式改名为EIA-232D

■设计目的是用于连接调制解调器

■现已成为数据终端设备DTE(例如计算机)与数

据通信设备DCE(例如调制解调器)的标准接口

■可实现远距离通信,也可近距离连接两台微机

■属于网络层次结构中的最低层:物理层

12.2.1RS-232c的引脚定义

■232c接口标准使用一个25针连接器

■绝大多数设备只使用其中9个信号,所以

就有了9针连接器

-232c包括两个信道:主信道和次信道

■次信道为辅助串行通道提供数据控制和通

道,但其传输速率比主信道要低得多,其

他跟主信道相同,通常较少使用

$RS-232c的弓IW(1)

■TxD:发送数据

・串行数据的发送端

■RxD:接收数据

■串行数据的接收端

$RS-232c的弓IW(2)

■RTS:请求发送

-当数据终端设备准备好送出数据时,就发出有效的

RTS信号,用于通知数据通信设备准备接收数据

■CTS:清除发送(允许发送)

-当数据通信设备已准备好接收数据终端设备的传送数

据时,发出CTS有效信号来响应RTS信号

■RTS和CTS是数据终端设备与数据通信设备间一

对用于数据发送的联络信号

$RS-232c的弓IW(3)

■DTR:数据终端准备好

-通常当数据终端设备一加电,该信号就有效,表明数

据终端设备准备就绪

■DSR:数据装置准备好

-通常表示数据通信设备(即数据装置)已接通电源连

到通信线路上,并处在数据传输方式

■DTR和DSR也可用做数据终端设备与数据通信设

备间的联络信号,例如应答数据接收

$RS-232c的弓IW(4)

■GND:信号地

-为所有的信号提供一个公共的参考电平

■CD:载波检测(DCD)

・当本地调制解调器接收到来自对方的载波信号

时,该引脚向数据终端设备提供有效信号

■RI:振铃指不

■当调制解调器接收到对方的拨号信号期间,该

引脚信号作为电话铃响的指示、保持有效

$RS-232c的弓IW(5)

■保护地(机壳地)

-起屏蔽保护作用的接地端,一般应参照设备的

使用规定,连接到设备的外壳或大地

■TxC:发送器时钟

・控制数据终端发送串行数据的时钟信号

-RxC:接收器时钟

・控制数据终端接收串行数据的时钟信号

12.2.2RS-232c的连接

■微机利用232c接口连接调制解调器,用于

实现通过电话线路的远距离通信

■微机利用232c接口直接连接进行短距离通

信。这种连接不使用调制解调器,所以被

称为零调制解调器(NullModem)连接

4连接调制解调器

微机MODEMMODEM微机

发送数据TxD27

接收数据RxD

JJ

A请求发送RTSAAA

一一nr

允许发送CTS

□□电话线□□

6数据装置准备好DSR6vJ66

7信号地GND777

8载波检测CD888

20数据终端准备好DTR202020

22振铃指KRI222222

不使用联络信号的3线相连方式

微机微机

为了交换信息,TxD和RxD应当交叉连接

程序中不必使RTS和DTR有效

也不应检测CTS和DSR是否有效

“伪”使用联络信号的3线相连方式

微机微机

使用联络信号的多线相连方式

微机微机

通信比较可靠

所用连线较多,不如前者经济

电气特性g

■232c接口采用EIA电平

■高电平为+3V〜+15V

■低电平为一3V〜一15V

■实际常用±12V或±15V

■标准TTL电平

■高电平:+2.4V〜+5V

■低电平:0V〜0.4V

.*123通用异步接收发送器8250

-串行传输,需要并行到串行和串行到并行

的转换,并按照传输协议发送和接收每个

字符(或数据块)

■这些工作可由软件实现,也可用硬件实现

■通用异步接收发送器UART是串行异步通

信的接口电路芯片

■IBMPC/XT机的UART芯片是INS8250

■后来使用NS16550

12.3.18250的内部结构

■8250实现了起止式串行异步通信协议,支

持全双工通信

-通信字符可选择数据位为5〜8位

■停止位1、1.5或2位

-可进行奇偶校验

■具有奇偶、帧和溢出错误检测电路

■8250支持的数据传输速率为50〜9600bps

1.串行数据的发送

0/10/1

CfUCi,校验位、停止位

双缓冲寄存器结构

保证数据的连续发送

_=——=^_

2.起始位的检测

------------16T----------------

数据虚[起始位I]

(SIN)\------------------?-----------------T

时钟血皿皿I皿血皿!扁血血皿皿IT

RCLK)।।।

|------8T—|-------------16T--------------1

丁毅据接收时钟频率是数据传输频率的16倍1

正确识别起始位,防止因干扰引起的误识别I

3.串行数据的接收

CPU并行数据

接收缓冲寄存器

,串°行数据

接收移位寄存器SIN

10/10/10/10/1

同步控制

检测接收错误

双凌冲寄存器结构一删除起始位、

校验位、停止位

保证数据的连续接收

,接收错误的处理

■奇偶错误PE(ParityError)

-若接收到的字符的“1”的个数不符合奇偶校验要求

■帧错误FE(FrameError)

-若接收到的字符格式不符合规定(如缺少停止位)

■溢出错误OE(OverrunError)

-若接收移位寄存器接收到一个数据,并送至输入缓冲

器时,CPU还未取走前一个数据,就会出现数据溢出

-若接收缓冲器的级数多,则溢出错误的几率就少

12.3.28250的引脚

■分成连接CPU的部分和连接外设的部分

■注意:8250不是Intel公司的产品,所以

该芯片引脚名称与前面学习的8253、

8255等Intel产品有所不同,但是引脚功

能却是类似的

1.处理器接口引脚(1)

■数据线DO〜D7:在CPU与8250之间交换信息

■地址线A0〜A2:寻址8250内部寄存器

■片选线:8250设计了3个片选输入信号CSO、

CS1>CS2*和一个片选输出信号CSOUT。3个片

选输入都有效时,才选中8250芯片,同时

CSOUT输出高电平有效。

■地址选通信号ADS*:当该信号低有效时,锁存

上述地址线和片选线的输入状态,保证读写期间

的地址稳定

1.处理器接口引脚(2)

■读控制线

-数据输入选通DISTR(高有效)和DISTR*(低有效)

有一个信号有效,CPU从8250内部寄存器读出数据

-相当于I/O读信号

■写控制线

-数据输出选通DOSTR(高有效)和DOSTR*(低有

效)有一个有效,CPU就将数据写入8250内部寄存器

-相当于I/O写信号

■8250读写控制信号有两对,每对信号作用完全相

同,只不过有效电平不同而己

1.处理器接口引脚(3)

■驱动器禁止信号DDIS:CPU从8250读取数

据时,DDIS引脚输出低电平,用来禁止外

部收发器对系统总线的驱动;其他时间,

DDIS为高电平

■主复位线MR:硬件复位信号RESET

■中断请求线INTRPT:8250有4级共10个中

断源,当任一个未被屏蔽的中断源有请求

时,INTRPT输出高电平向CPU请求中断

2.时钟信号

■时钟输入弓I脚XTALL8250的基准工作时钟

■时钟输出引脚XTAL2:基准时钟信号的输出端

・波特率输出弓|脚BAUDOUT*:基准时钟经8250

内部波特率发生器分频后产生发送时钟

■接收时钟引脚RCLK:接收外部提供的接收时钟

信号;若采用发送时钟作为接收时钟,则只要将

RCLK弓|脚和BAUDOUT*弓|脚直接相连

3.串行异步接口引脚

发送数据SOUT

8250接收数据SIN

请求发送RTS*

允许发送CTS*

数据装置准备好DSR*

数据终端准备好DTR*

信号地GND

载波检测RLSD*

—"振铃指示RI*

14.输出线■!

■OUT1*和OUT2*:

■两个一般用途的输出信号

■由调制解调器控制寄存器的D2和D3使其输出

低电平有效信号

■复位使其恢复为高

12.3.38250的寄存器

■8250内部有9种可访问的寄存器,除数寄

存器是16位的,占用两个连续的8位端口

■内部寄存器用引脚A0〜A2来寻址;同时还

要利用通信线路控制寄存器的最高位,即

除数寄存器访问位DLAB,来区别共用两

个端口地址的不同寄存器(表12.2)

1.接收缓冲寄存器RBR

SIN

存放串行接收后转换成并行的数据

2.发送保持寄存器THR

CPU

■i

发送保持寄存器

发送移位寄存器SOUT

同步控制

8250

包含将要串行发送的并行数据

3.除数寄存器

|-------------16T--------------1

]起争位|;

数据线

(SIN)

时钟ihimimiiiiiihiiiiimimiiiiHHmnimhjiniinjLnr

(RCLK)

16T

除数寄存器保存设定的分频系数

分频系数=基准时钟频率小(16义比特率)

4.通信线路控制寄存器LCR

DLABD6D5D4D3D2DlDO

I

匕」|』」|」|」口I」口口

中止字符

停止位个数

数据位个数

0校验,U

J01位

1J005位

X一

xl1L5位(数据彳

位016位

12位(数据位

001设107位

验ZQ28位

011设置偶校验

nn为1

指定串行异步通信的字符格式

5,通信线路状态寄存器LSR

O

D6D5D4D3D2DlDO

*a髭

I-JI-J

m3

31

至1

声w1为1,表示接收数据缓冲器收到E

m鱼

丽|1一个数据,既接收数据准备好;1

m且

n习

3当CPU读走数据后,该位为01

z^i圈

JJ

提供串行异步通信的当前状态

供CPU读取和处理

6,调制解调器控制寄存器MCR

DTR

000LOOPOUT2OUT1RTS

aJJJJJJJJj

a=J1=JIM

T

n为1使8250为循环工作方式l

-nI-

n

m否则为正常工作方式M

n

w

设置8250与数据通信设备之间

联络应答的输出信号

7,调制解调器状态寄存器MSR

■反映4个控制输入信号的当前状态及其变化

■MSR高4位中某位为1,说明相应输入信号当前

为低有效,否则为高电平

■MSR低4位中某位为1,则说明从上次CPU读取

该状态字后,相应输入信号已发生改变,从高变

低或反之

■MCR低4位任一位置1,均产生调制解调器状态

中断,当CPU读取该寄存器或复位后,低4位被

清零

鼻4级中断

■接收线路状态中断优先权高

.奇偶错、溢出错、帧错和中止字符

■接收器数据准备好中断

■发送保持寄存器空中断

■调制解调器状态中断.优先权低

■清除发送状态改变

-数据终端准备好状态改变

-振铃接通变成断开

-接收线路信号检测状态改变

8.中断允许寄存器IER

■8250设计有2个中断寄存器和4级中断

・4级中断的优先权,是按照串行通信过程中

事件的紧迫程度安排的、是固定不变的

■用户可利用中断允许或禁止进行控制

■中断允许寄存器的低4位控制8250这4级中

断是否被允许

■某位为1,则对应的中断被允许

■否则,被禁止

9.中断识别IIR

00000ID1ID0IP,0有中断

Li无中断

mi』』』』』』』』』』』』」—』』」、

ID1ID0优先权中断类型回

接收线路状态回

111回

a

102接收数据准备好

EFj

l

013发送保持寄存器空B

B

004调制解调器状态R

保存正在请求中断的优先权最高

的中断级别编码

12.4异步通信适配器

-

-IBMPC/XT机的串行异步通信适配器

■以8250为核心

■完成发送时的并转串和接收时的串转并以及相

应的控制工作

■配置了TTL电平与EIA电平转换电路等

-展开异步通信适配器的

■硬件电路

■软件编程

12.4.1异步通信适配器的接口电路

LS2458250

DO〜D7^-----D0〜D7

—HDIR

[OR^注意:跨接器’

Tow—J9〜JU

AO〜A2一和OUT2*的作用RCLK

AEN-

CS2BAUDOUT+5V

A3〜A7A9

CSO

+5V

CS1

~"rJ9-j-ADS

A8―rJ10-:-

—rjn4—DISTR

J12L0UT2DOSTR

IRQ4INTRPT

IRQ3

RESETMR

1.8432MHzXTAL1

12.4.2异步通信适配器的初始化编程

■对8250的内部控制寄存器进行编程写入

⑴写入除数寄存器

■设置传输率

⑵写入通信线路控制寄存器

■设置字符格式

⑶写入调制解调器控制寄存器

■设置工作方式

(4)写入中断允许寄存器

■设置中断允许或屏蔽位

设置传输率

moval980h

movdx,3fbh

outdx,al

;写入通信线路控制寄存器,使DLAB=1

movax,96

;分频系数:l.8432MHz+(1200X16)=96=60H

movdx,3f8h

outdx9al;写入除数寄存器低8位

moval,ah

incdx

outdx,al;写入除变寄存器高8位

写入底数萼存器—一二

设置字符格式

moval,00001010b

movdx,3fbh

outdx,al;写入通信线路控制寄存器

;这段程序同时使DLAB=0

写入通信线路控制寄存器

设置工作方式

・设置查询通信方式

moval,03h

;控制OUT2*为高,DTR*和RTS*为低

movdx,3fch

outdx,al;写入调制解调器控制寄存器

■设置中断通信方式

moval,Obh

;控缶ij为OUT2*低,允许INTRPT产生请求

movdx,3fch

outdx^al

写入调制解调器控制寄存器

设置中断允许或屏蔽位

moval50;禁止所有中断

movdx,3f9h

outdx,al

;写入中断允许寄存器(此时DLAB=0)

写入中断允许寄存器

12.4.3异步通信程序

■程序循环读取8250的通信状态寄存器

-数据传输错误就显示一个问号“?”

■接收到数据就显示出来

■可以发送数据就从键盘输入发送字符(用户没

有输入字符就不发送)

■如果按下ESC键返回DOS

查询通信线路状态

statue:movdx52fdh

;读通信线路状态寄存器

inal9dx

testaljeh;接收有错误否?

jnzerror;有错,则转错误处理

testal,01h;接收到数据吗?

jnzreceive;是,转接收处理

testal,20h;保持寄存器空吗?

jzstatue;不能,循环查询

异步通信程序

检测键盘输入

movah,Obh;检测键盘有无输入字符

int21h

cmpal,0

jzstatue;无输入字符,循环等待

movah,0;有输入字符,读取字符

int16h

;采用01号DOS功能调用,则有回显

cmpaljbh

jzdone;是后3(2键,程序返回DOS

异步通信程序

发送数据

movdx,2f8h

;将字符输出给发送保持寄存器

outdx,al;串行发送数据

jmpstatue;继续查询

异步通信程序

接收数据

receive:movdx,2f8h

;从输入缓冲寄存器读取字符

inal9dx

andal,7fh

;传送标准ASCH码(7个数据位)

;所以仅取低7位

pushax;保存数据

异步通信程序

显示数据

movdl,al;屏幕显示该数据

movah,2

int21h

popax;恢复数据

cmpal,Odh;数据是回车符吗?

jnzstatue;不是,则循环

movdl,Oah;是,再进行换行

movah,2

int21h

jmpstatue;继续查询

异步通信程序

接收错误处理

error:movdx,2f8h

;读出接收有误的数据,丢掉

inal9dx

movdl,?;显示问号

movah,2

int21h

jmpstatue;继续查询

异步通信程序

中断通信方式的编程方法

■关键

解决主程序与中断服务程序的数据传递

■注意

处理好8250的4级10种中断源

-简便方法

只允许接收数据准备好中断

中断通信方式的循环队列

接收队列

主程序

头指针

中断服务程序

UART

接收处理:

从队列

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论