串行口通信(STC89C52+MAX232):串行口通信硬件设计详解
二. 串行口通信原理
1. 基本通信方式
a. 并行通信
定义: 将数据字节的各位用多条数据线同时进行传送, 每一位数据都需要一条传输线, 还需要一条信号线和若干
控制线, 这种方式控制简单, 相对传输速度快, 适合与短距离的数据传输.
b. 并行通信
定义: 将数据字节分成一位一位的形式在一条传输线上逐个地传送, 此时只需要一条数据线, 外加一条公共信号
地线和若干控制信号线. 这种方式控制复杂, 速度慢, 适合长距离传送.
必要过程: 发送时, 要把并行数据变成串行数据发送到线路上去, 接收时, 要把串行信号再变成并行数据, 这样
才能被计算机及其他设备处理.
分类: 异步串行通信和同步串行通信
b.1 异步串行通信
通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程, 为使双方收, 发协调, 要求发送和接收设备
的时钟尽可能一致.
异步通信是以字符(构成的帧)为单位进行传输, 字符与字符之间的间隙(时间间隙)是任意的, 但每个字符中的各
位是以固定的时间传送的, 即字符之间不一定有"位间隔"的整数倍关系, 但同一字符内的各位之间的距离均为
"位间隔"的整数倍.
异步通信以帧字符信息由4部分组成: 起始位,数据位,奇偶校验位和停止位.(有的字符信息也有带空闲位, 即
在字符之间有空闲字符).
异步通信不要求收发双方时钟严格一致,实现容易, 设备开销较小, 当每个字符要附加2~3位,用于起止位,
校验位和停止位, 各帧之间还有间隔, 因此传输效率不高.
单片机之间,单片机计算机之间通信时, 通常采用异步串行通信方式.
b.2 同步串行通信
同步通信时要建立发送方时钟对接收方时钟的直接控制, 使双方达到完全同步. 此时, 传输数据的为之间的距离
均为"位间隔"的整数倍, 同时传送的字符间不留空隙, 即保持位同步关系, 也保持字符同步关系. 发送方对
接收方的同步可以通过外同步和自同步两种方法实现.
2. 51单片机串行口结构描述
51单片机的串行口是一个可编程全双工的通信接口, 具有UART(通用异步收发器)的全部功能, 能同时进行数据的
发送和接收, 也可以作为同步移位寄存器使用.
51单片机的串行口主要油两个独立的串行数据缓冲寄存器SBUF(一个发送缓冲寄存器, 一个接收缓冲寄存器)和
发送控制器, 接收控制器, 输入移位寄存器及若干控制门电路组成.
3. 串口方式
a.1 方式0
方式0时, 串行口为同步移位寄存器输入/输入此方式. 主要用于扩展并行输入或输出口. 数据由RXD(P3.0)引脚
输入或输出, 同步移位脉冲由TXD(P3.1)引脚输出. 发送和接收均为8位数据, 低位在先, 高位在后, 波特率固定
位Fosc/12.(Fosc为系统晶振频率)
a.2 方式1
方式1是10位数据的异步通信口, 其中1位起始位, 8位数据位, 1位停止位. TXD(P3.1)位数据发送引脚, RXD(P3.0)位数据接收引脚. 其传输波特率是可变的, 对于51单片机, 波特率由定时器1的溢出率决定. 这种
方式为单片机间,单片机计算机间,计算机间串口通信主要方式.
a.3 方式2, 3
方式2, 3时为11位数据的异步通信口. TXD(P3.1)为数据发送引脚, RXD(P3.0)为数据接收引脚. 这两种
方式下, 起始位1位, 数据9位(含1位附加的第9位, 发送时位SCON的TB8. 接收时位RB8), 停止位1位,
一帧数据位11位. 方式2的波特率固定位晶振频率的1/64或1/32, 方式3的波特率由定时器T1溢出率决定.
4. 串行口方式1说明
串行口方式1传送一帧数据共10位, 1位起始位(0), 8位数据位, 最低位在前, 高位在后, 1位停止位(1),
帧与帧之间可以有空闲, 也可以无空闲.
数据输出过程是当数据被写入SBUF寄存器后, 单片机自动开始从起始位发送数据, 发送到停止位的开始时, 由内部硬件将T1置1, 向CPU申请中断, 接下来可在中断服务程序中做相应处理, 也可选择不进入中断.
数据输入过程是用软件置REN为1, 接收器以所选择波特率的16背速率采样RXD引脚电平, 检测到RXD引脚输入
电平发生负跳变时, 则说明起始位有效, 将其移入输入移位寄存器, 并开始接受这一帧信息的其余位. 接收过程
中, 数据从输入移位寄存器右边移入, 起始位移至移位寄存器最左边, 控制电路进行最后一次移位. 当RI=0,且
SM2=0(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收SBUF, 第9位(停止位)进入RB8, 并
置RI=1;向CPU请求中断.
操作串行口前,需要对单片机的一些串口寄存器设置,其步骤如下:
a. 确定T1工作方式(编程TMOD寄存器)
b. 计算T1的初值, 装载TH1,TL1
c. 启动T1(变成TCON中的TR1位)
d. 确定串行口工作方式(编程SCON寄存器)
e. 串行口工作在中断方式时, 要进行中断设置(编程IE, IP寄存器).
串行口通信STC89C52MAX23 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)