单片机学习小组
直播中

刘桂兰

7年用户 936经验值
私信 关注

串口通信的工作方式有哪几种?

串口通信的工作方式有哪几种?

回帖(1)

李晓龙

2022-1-17 14:31:26
发送与接收

在51内部有一个全双工串行通信接口。SBUF位串行口数据缓冲寄存器,包括接收和发送缓冲寄存器,其中接收缓冲寄存器只能读取不能写入,发送缓冲寄存器只能写入不能读取,它们的地址99H

  接收和发送缓冲寄存器在逻辑上共用地址,但是物理现实上有两个.
发送时,将帧格式写入SBUF,发送完成后,TI置1并发出中断信息
接收时,接收帧数据存入SBUF,接收完成后,RI置1发出中断
串行口控制



  • SCON 串行口控制寄存器

    SM0与SM1控制串行通信工作方式

    SM2 多机通信控制位:
    为1时,仅当接收的第9位为1,才将RI置1,申请中断
    为0时,接收完毕时都将RI置1,申请中断
    REN 允许串行接收控制位。置1允许
    TB8 方式2,3中,人为设定的第9位
    RB8 方式2,3中,接收的第9位存放位置
    TI 发送中断请求位。一旦发出只能手动清零
    RI 接收中断请求为。一旦发出只能手动清零
  • SMOD 波特率控制位
    置1,波特率增大一倍

工作方式




  • 方式0
    串行转并行。用于并行IO扩展
  • 方式1
    异步串行通信。
    在发送时,将要发送的数据送入SBUF,随后硬件自动加入起始位和停止位构成完整的帧格式。发送完成后,TI置1,申请中断
    接收时,在RXD采样端
  • 方式2
    发送时,与方式1相似,不同之处在于方式2还有第9个数据位D8,由用户自定义,在SCON的TB8中设定。因此就可以对发送帧进行奇偶检校,或者或为控制位。
    方式2发送的完整过程,是先准备好D8,再将输入送入SBUF,最后硬件自动添加起始位和停止位。发送完毕后TI置,申请中断
    接收时,由于是9位数据,所以不可能全部送入SBUF,所以是将收到的前8位送入SBUF,第9位送入SCON的RB8。
  • 方式3
    与方式2相同,仅波特率计算与方式2不同

波特率设置

首先我们要知道,为什么要设置波特率,波特率在通信中起着什么样的作用。
波特率是单位时间传输数据的位数。对于发送端控制数据发送的速度;对于接受端来说,波特率应与发送端波特率同步,最低要求是不能低于发送端波特率,可以高于发送端波特率,但是较高的波特率将带来更大的数据流,需要后续系统在单位时间内处理的数据也越多。
[tr]方式0固定                                                                      f                                                   O                                        S                                        C                                                           12                                                 frac{f_{OSC}}{12}                        12fOSC[/tr]
方式1可变                                                                      f                                                   O                                        S                                        C                                                                        12                                     (                                                   2                                        k                                                  −                                     T                                     H                                     1                                     )                                                             frac{f_{OSC}}{12(2^k -TH1)}                        12(2k−TH1)fOSC
方式2固定                                                         2                                               S                                     M                                     O                                     D                                                                               f                                                   O                                        S                                        C                                                           64                                                 2^{SMOD} frac{f_{OSC}}{64}                        2SMOD64fOSC
方式3可变同方式1
举报

更多回帖

发帖
×
20
完善资料,
赚取积分