第一节  串行通信概述
 一、  并行通信与串行通信
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。双机通信时,通常使SM20
(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中,若SM20RB8是已接收到的停止位。
(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(P30) 作为数据端输入/输出口
TXD(P31)提供移位脉冲输出。
数据的发送/接收以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.接收过程
        当允许串行输入位REN1后,CPU便以所选波特率的16倍速率采样RXD端电平。在没
有信号到来之前,RXD端的状态为1。当在RXD端检测到从10的负跳变时,开始接收过程。
        接收到的数据位移入接收缓冲器SBUF,直到停止位到来之后把停止位送入RB8中,并置位中断标志位RI,通知CPU从SBUF取走接收到的一个字符。
16分频计数器的16个状态把接收每位信息的时间分成16份,在每个位时间的第789个计数状态。从RXD端采样三次,至少两次相同的值才被确认,以确保输入的数据准确无误。
      当一帧数据接收完毕,以下两个条件同时满足:
    (1)RI0,即上一帧数据接收完成时,RI1的中断请求已被响应,SBUF中的数据已被取走;
    2 SM20或接收到停止位为1(方式1时停止位进入RB8)。
      则这次接收才有效,将8位数据装入接收缓冲器SBUF,停止位装入RB8,井将RI1,申请中断。否则数据将丢失。
三、方式2和方式3
  串行口工作在方式2和方式3时,均为11位异步通信接口。由TXD发送,RXD接收。发送/接收的一帧11位信息组成为:l位起始位(0)8位数据位(低位在前)1位可编程位(9数据位)1位停止位(1)。发送时,可编程位(TB8)可设置为0l,也可将奇偶位装入TB8,从而进行奇偶校验;接收时,可编程位送入SCON中的RB8。帧格式如图:
   
  方式2和方式3的工作原理类同,唯一的区别仅在于:
          方式2的波特率 =(2SMOD/64)· fosc
方式3的波特率 =(2SMOD/32)·(T1溢出率)
方式2和方式3的发送和接收过程:
1.发送过程
发送前,先根据通信协议由软件设置SCON中的TB8TB8=0为数据,TB8=1时为地址
发送数据时,应先在SCON的TB8位中把第9位数据内容准备好:
SETB  TB8
CLS  TB8
CPU执行一条写入SBUF的指令后,便立即启动发送器开始发送。串行口能自动地将TB8装入到第9位数据位的位置,再逐一由TXD端发送出去 。发送完一帧信息时,置TI1,请求中断。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。