51单片机学习笔记——串口通信

本文详细介绍了51单片机的串口通信,包括通信传输方式(并行与串行、同步与异步)、电平转换与波特率、51单片机串口的寄存器配置、通信接口标准以及多机通信。重点讨论了串行通信的校验方法、TTL与RS-232电平转换,并提供了51单片机串口通信的实例。
摘要由CSDN通过智能技术生成

一、通信传输方式

并行通信与串行通信

通信传输方式可分成串行通信和并行通信:

  • 并行通常将数据字节的各位用多条数据线传送。并行通信控制简单,传输速度快;但对传输线路要求高,成本较高,且接收方同时接收存在困难,抗干扰能力差。适合近距离、大量、快速的信息交换。
  • 串行通信将数据字节分成一位一位的形式在一条传输线上逐个传送。传输线少,长距离成本低,可利用电话网等现成设备,但数据的传送控制比并行通信复杂,且传送效率低。适合长距离,低速率的通信。

同步通信与异步通信

串行通信可以分为同步通信与异步通信:

  • 异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隔是任意的,但是字符之间的位间隔必须固定时间传送。异步通信不要求收发双方时钟严格一致,实现容易,设备开销较小,但每个字符要附加2-3位起止位,各帧之间有间隔,传输效率不高。
  • 同步通信在通信时要建立发送方时钟对接收方时钟的直接控制,使得双方达到完全同步。此时传输数据的位之间的距离均为位间隔的整数倍,分为外同步和自同步。可以实现点对多点通信,传送效率很高,但实现的软硬件成本较高。

串行通信传输方向

  • 单工数据传输仅能沿一个方向,不能实现反向传输。如:电视,广播
  • 半双工是指数据传输可以沿两个方向,但要分时进行。如:对讲机
  • 全双工是指数据可以同时进行双向传输。如:电话

串行通信的校验

  • 奇偶校验
    数据尾随的一位为奇偶校验位,被传输数据中1的个数是奇数或偶数进行校验,采用奇数为奇校验,反之为偶校验。若1的个数不一致,则数据传输过程中出现了差错。
  • 代码和校验
    发送方把所发数据块求和(或各字节异或),产生一个字节校验字符,附加到数据块末尾,由接收方校验。
  • 循环冗余校验
    通过某种数学运算实现有效信息与校验位之间的循环校验,广泛用于同步通信中。哈希函数的一种。

二、电平转换与波特率

  • 电平标准
    TTL电平:+5V等价于逻辑“1”,0V等价于逻辑“0”。但电平是个电压范围,因此规定标准的TTL输出高电平>2.4V,输出低电平<0.4V;输入高电平>=2.0V,输入低电平<=0.8V。
    CMOS电平:同样采用+5V等价于逻辑“1”,0V等价于逻辑“0”。输出高电平>=4.45V,输出低电平<=0.5V;输入高电平>=3.5V,输入低电平<=1.5V。
    同时还有3.3V等低压的LVTTL,LVCMOS电平。
    RS-232C电平:-15V ~ -3V等价于逻辑“1”,+3V ~ +15V等价于逻辑“0”。

  • 电平转换
    由于单片机串口采用TTL电平标准,计算机USB接口或RS-232C接口采用RS-232C电平标准,二者在通信时需要进行电平转换。有MAX232,CH340等转接芯片。

  • 波特率
    比特率为每秒中传输二进制代码的位,单位:位/秒(bps)。严格上讲波特率与比特率不是一种物理量,不过在串口通信中,二者恰好相等且都可以表示数据的传输速率。波特率与传送距离成反比。在串口通信中,发送方和接收方的必须波特率相同才能正确的传输数据。
    如果想深究波特率和比特率,可以看看这篇博客,解释的很清晰。

三、51单片机的串口通信

概况

51单片机的串行口是全双工类型的,一般RXD引脚为P3.0,TXD引脚为P3.1。RXD为Receive Data,TXD为Transmit Data。

1、寄存器

控制寄存器SCON
  • SCON寄存器各位定义如下:
位序号 D7 D6 D5 D4 D3 D2 D1 D0
位符号 SM0 SM1 SM2 REN TB8 RB8 TI RI
  • 其中,SM0,SM1控制串行口的工作方式:
SM0 SM1 方式 功能 波特率
0 0 0 同步移位寄存器方式(通常用于扩展I/O口) fosc/12
0 1 1 10位异步收发(8位数据),波特率可变 2SMOD/32×T1溢出率
1 0 2 11位异步收发(9位数据),波特率固定 2SMOD/64×fosc
1 1 3 11位异步收发(9位数据),波特率可变 2SMOD/32×T1溢出率

上表中,fosc为系统晶振频率,SMOD为电源管理寄存器PCON中的一位,用于控制串口通信方式1,2,3的波特率。SMOD=0时,波特率正常,SMOD=1时,波特率加倍。PCON寄存器中仅有SMOD与串口通信有关。T1溢出率为定时器T1溢出的频率,定时器T1溢出一次的时间T的倒数1/T即溢出率。

位符号 解释 功能
SM2 多机通信控制位 主要应用与方式2和3.SM2=1,检测RB8的值决定是否接受数据,SM2=0,无论是什么数据都接收
REN 允许串行接收位 REN=1,允许串行口接收数据;REN=0,禁止串行口接收数据
TB8 方式2,3中的发送数据的第9位 方式2,3中可用作校验位,多机通信时可作为地址帧/数据帧的标志位
RB8 方式2,3中的接收数据的第9位 可作为校验位或地址帧/数据帧标志位,在方式1时,若SM2=0,则RB8接收到的是停止位
TI 发送中断标志位
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值