第一节 串行通信概述
一、 并行通信与串行通信
1.并行通信
并行通信是指所传送的数据各位同时进行传送。其优点是传送速度快,缺点是传输线多,通信线路费用较高,并行传送适用于近距离、传送速度高的场合。
2.串行通信
串行通信时,传送数据的各位按分时顺序一位一位地传送(例如先低位、后高位)。其优点是传输线少,传送通道费用低,故适合长距离数据传送。缺点是传送速度较低。
当通信的距离在30m以上时,应采用串行通信方式。
三、同步通信和异步通信
为了准确地发送、接收信息,发送者和接受者双方必须协调工作。这种协调方法,从原理上可分成两种:同步串行I/O和异步串行I/O。
1.异步通信方式
异步通信方式时,数据一帧一帧地传送,部需要同步时钟,实现简单。
在异步方式中,为了避免连续传送过程中的误差积累,每个字符都要独立确定起始和结束(即每个字符都要重新同步),字符和字符间还可能有长度不定的空闲时间。
•有约定的帧格式;
• 发送与接收之间的同步是利用每一帧的起、止信号来建立的;
• 双方用各自的时钟控制发送与接收
2.同步通信方式
在同步通信中,在数据或字符开始传送前用同步字符(SYNC)来指示(常约定l一2个),由时钟来实现发送端和接收端同步,当检测到规定的同步字符后,接下来就连续按顺序传送数据。同步字符是一特定的二进制序列,在传送的数据中不会出现.
同步通信方式由于不采用起始和停止位,是在同步字符后可以接较大的数据区,同步字符所占部分很小,因此有较高的传送效率。
四、波特率
• 在通信中发、接双方有两次约定
• 字符格式————帧格式
• 传送速率————波特率
波特率是通信双方对数据传送速率的约定,表示每秒钟传送二进制数码的位数,单位是bit/s。
假如数据传送的速率是120个字符/秒,每一个字符规定包含10个位(一个起始位、8个数据位和1个停止位),则传送的波特率为:
10×120=1200位/秒=1200波特(bps)
第二节 MCS—51的串行通信接口
一、MCS-51串行口结构及工作原理
通用异步接收/发送器UART:计算机内串并转换
单片机内:两个独立的数据缓冲器SBUF
(一个用作接收,一个用作发送)以及发送控制器、接收控制器、输入移位寄存器和输出控制门等组成。
用户可访问的三个地址单元:
SBUF:两个SBUF共用一个地址99H。发送SBUF只写不读,接收SBUF只读不写,由所用指令是发送还是接收来决定对个SBUF进行操作;
SCON:串行口控制寄存器
PCON:电源控制寄存器
10、SCON----串行通信控制寄存器
它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构格式如下:
SCON 串行通信控制寄存器 | ||||||||
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI | |
(1)SM0、SM1:串行口工作方式控制位。
SM0,SM1 工作方式
00 方式0-波特率由振荡器频率所定:振荡器频率/12
01 方式1-波特率由定时器T1或T2的溢出率和SMOD所定:2SMOD ×(T1溢出率)/32
10 方式2-波特率由振荡器频率和SMOD所定:2SMOD ×振荡器频率/64
11 方式3-波特率由定时器T1或T2的溢出率和SMOD所定:2SMOD ×(T1溢出率)/32
(2)SM2:多机通信控制位。< br> SM2位主要用于方式2和方式3。
接收状态:当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接受到的数据放弃。
当SM2=0时,就不管第位数据第9位数据(RB8)是0还是1,都得数据送入SBUF,并发出中断申请置位RI。
工作于方式0时,SM2必须为0。
多机通信时,SM2必须置1。双机通信时,通常使SM2=0。
(3)REN:允许接收位。REN用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收。
(4)TB8:发送接收数据位8。 在方式2和方式3中,TB8是要发送的——即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。
(5)RB8:接收数据位8。
在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。
在方式0中,RB8未用。
在方式1中,若SM2=0,RB8是已接收到的停止位。
(6)TI:发送中断标志位。
可寻址标志位。
方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。
(7)RI:接收中断标志位。
可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。
•. 注意:不管是否采用中断控制,数据发送前必须用软件将TI清零;接收数据后将RI清零;
11、PCON-----电源管理寄存器
PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下:
PCON电源管理寄存器结构 | ||||||||
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
SMOD | - | - | - | GF1 | GF0 | PD | IDL | |
在CHMOS型单片机中,除SMOD位外,其他位均为虚设的。
SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。系统复位默认为SMOD=0。
第三节 MCS—51串行通信接口的工作方式
MCS—51单片机的串行口为可编程口,可编程选择四种工作方式,其中方式0主要用于扩展并行输入输出口,方式1~方式3为异步串行通信方式。
一、方式0 (串行口作为扩展移位寄存器使用)
RXD(P3.0) 作为数据端输入/输出口
TXD(P3.1)提供移位脉冲输出。
数据的发送/接收以8位为一帧,低位在前,无起始位、奇偶位及停止位。
串行口工作方式0为同步移位寄存器输入输出方式,其数据传输波特率固定为foc/12。执行一条写SBUF指令就开始发送;接收完成后8位数据进入SBUF。
Code:
Mov scon,#00h; 串行工作方式0
CLR ES; 关闭中断
MOV A,#80H; 发光管从左边亮起
DELR: CLR P1.0; 关闭并行输出
MOV SBUF,A; 串行输出
JNB TI,$ 等待发送完成
SETB P1.0; 开启并行输出
ACALL DELAY 状态维持时间
CLR TI; 清发送中断标志同步通信和异步通信的区别
RR A; 发光组合右移
AJMP DELR; 循环继续
二、方式1 (只能用于双机通信,不能用于多机通信)
串行口工作在方式1,是作为10位异步通信接口,发送/接收的一帧数据包括10位:1位起始位,用0来标识,8位数据位(低位在前),1位停止位,用1来标识。其帧格式为:
方式1下的传送波特率是可变的.取决于定时器TI的溢出速率。
1.发送过程
当CPU执行任何一条写入SBUF的指今后,便启动串行口发送,发送的数据由TXD端输出。串行接口能自动地在数据的前后插入一位起始位和一位停止位,在发送移位脉冲的作用下依次从TXD端发送,发送完一帧信息时。发送中断标志TI置1,请求中断。
2.接收过程
当允许串行输入位REN置1后,CPU便以所选波特率的16倍速率采样RXD端电平。在没
有信号到来之前,RXD端的状态为1。当在RXD端检测到从1到0的负跳变时,开始接收过程。
接收到的数据位移入接收缓冲器SBUF,直到停止位到来之后把停止位送入RB8中,并置位中断标志位RI,通知CPU从SBUF取走接收到的一个字符。
16分频计数器的16个状态把接收每位信息的时间分成16份,在每个位时间的第7、8、9个计数状态。从RXD端采样三次,至少两次相同的值才被确认,以确保输入的数据准确无误。
当一帧数据接收完毕,以下两个条件同时满足:
(1)RI=0,即上一帧数据接收完成时,RI=1的中断请求已被响应,SBUF中的数据已被取走;
(2) SM2=0或接收到停止位为1(方式1时停止位进入RB8)。
则这次接收才有效,将8位数据装入接收缓冲器SBUF,停止位装入RB8,井将RI置1,申请中断。否则数据将丢失。
三、方式2和方式3
串行口工作在方式2和方式3时,均为11位异步通信接口。由TXD发送,RXD接收。发送/接收的一帧11位信息组成为:l位起始位(0),8位数据位(低位在前),1位可编程位(第9数据位)和1位停止位(1)。发送时,可编程位(TB8)可设置为0或l,也可将奇偶位装入TB8,从而进行奇偶校验;接收时,可编程位送入SCON中的RB8。帧格式如图:
方式2和方式3的工作原理类同,唯一的区别仅在于:
方式2的波特率 =(2SMOD/64)· fosc
方式3的波特率 =(2SMOD/32)·(T1溢出率)
方式2和方式3的发送和接收过程:
1.发送过程
发送前,先根据通信协议由软件设置SCON中的TB8:TB8=0为数据,TB8=1时为地址。
发送数据时,应先在SCON的TB8位中把第9位数据内容准备好:
SETB TB8
CLS TB8
当CPU执行一条写入SBUF的指令后,便立即启动发送器开始发送。串行口能自动地将TB8装入到第9位数据位的位置,再逐一由TXD端发送出去 。发送完一帧信息时,置TI为1,请求中断。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论