51单片机——UART 串口通信

目录

[1.1 串口基础概念](#1.1 串口基础概念)

1.2通信的基本概念

通信的方式分类

嵌入式通信协议

1.3UART数据传输核心规则

1.4串口相关寄存器

1.5串口波特率计数

2.其他通信协议

[2.1 I2C 与 SPI 简介](#2.1 I2C 与 SPI 简介)


1.1 串口基础概念

  • 串口通信(Serial Communication):指外设和计算机间通过数据信号线、地线等按位进行传输数据的一种通信方式,属于串行通信方式。

  • 电平标准

    • TTL:高电平5V(逻辑1),低电平0V(逻辑0),传输距离短。

    • RS232:负逻辑,高电平-3V ~ -15V(逻辑1),低电平3V ~ 15V(逻辑0),传输距离更远。{ TTL与 RS-232C(老式电脑用) 电平转换,通常使用的电平转换芯片是 MAX232。}{ TTL与USB电平转换,通常使用的电平转换芯片是 CH340}

    • RS485:差分信号,抗干扰能力强,适合工业环境。


UART(Universal Asynchronous Receiver Transmitter)即通用异步收发器,是硬件电路中的通信接口,拥有独立的通信规则(协议 ),核心属性为异步、全双工、串行通信。

  • 异步:无时钟线同步,通信双方通过预设参数保持节奏一致;
  • 全双工:双向同时通信,收发独立不冲突;
  • 串行:数据逐位依次传输,硬件成本低、抗干扰性强。
  • 应用:在 WIFI、蓝牙、GPS、GSM/GPRS 等应用的控制。开发板上集成了 1 个串口通信电路,是 USB 转串口模块,它既可下载程序也可实现串口通信功能。
  • 比特率:是每秒钟传输二进制代码的位数,单位是:位/秒( bps)。如每秒钟传送 240 个字符,而每个字符格式包含 10 位(1 个起始位、1 个停止位、8 个数据位),这时的比特率为:
    10 位×240 个/秒 = 2400 bps

1.2通信的基本概念

51 单片机不仅可以实现串口通信,还可以通过 IO 口模拟实现多种其他通信,比如 SPI、IIC 等。

通信的方式分类

  • 按照数据传送方式分:
    • 串行通信:传输线少,传输距离远,抗干扰性好,长距离传送时硬件成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。
    • 并行通信:控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难,抗干扰能力差;硬件成本高
  • 按照通信的数据同步方式分
    • 异步通信
      • 概念:以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时
        间间隔)是任意的,但每个字符中的各位是以固定的时间传送的
      • 特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加 2~3 位用于起止位,各帧之间还有间隔,因此传输效率不高。
    • 同步通信
  • 照数据的传输方向分
    • 单工、半双工和全双工通信
通信方式 数据传输方向 数据线数量 核心特点 适用场景
单工 单向固定 1 根 发送方和接收方固定,无法双向传输 红外遥控、串口打印(仅发送)
半双工 双向但不同时 1 根 双方可收发数据,但同一时刻仅能单向传输 对讲机、I2C 总线(软件半双工)
全双工 双向同时 2 根(TXD+RXD) 收发独立,可同时进行数据传输 单片机与电脑、蓝牙模块通信

嵌入式通信协议

协议 特点 适用场景
UART 简单、异步、全双工 调试、模块通信
I2C 两线、半双工、多设备 传感器、EEPROM
SPI 高速、全双工、片选 显示屏、SD卡
CAN 差分、多主、高可靠 汽车电子、工业控制
Modbus 主从、应用层协议 工业自动化
USB 高速、串行、差分传输、即插即用、主从结构外设连接(鼠标 / 键盘 / 存储 / 调试)、高速数据传输 外设连接(鼠标 / 键盘 / 存储 / 调试/U盘/摄像头)、高速数据传输

1.3UART数据传输核心规则

**发送顺序:**遵循 LSB 优先的原则,低位先行。

通信协议:通常使用 96-N-8-1 格式。

  • "96":表示的是通信波特率为 9600。串口通信中通常使用的是异步串口通信,即没有时钟线,所以两个设备要通信,必须要保持一致的波特率,当然,波特率常用值还有 4800、 115200 等。
  • "N"表示的是无校验位。校验方法有奇校验(odd)、偶校验(even)、0 校验(space)、1 校验(mark)以及无校验(noparity)。
  • "8"表示的是数据位数为 8 位,其数据格式在前面介绍异步通信中已讲过。当然数据位数还可以为 5、6、7 位长度。
  • "1"表示的是 1 位停止位,串口通讯的一个数据包从起始信号开始,直到停止信号结束。数据包的起始信号由一个逻辑 0 的数据位表示,而数据包的停止信号可由 0.5、1、1.5 或 2 个逻辑 1 的数据位表示,只要双方约定一致即可。

1.4串口相关寄存器

  • (1)串口控制寄存器SCON

SM0 和 SM1 为工作方式选择位:

SM2: 多机通信控制位,主要用于方式 2 和方式 3。当 SM2=1 时可以利用收到的 RB8 来控制是否激活 RI(RB8=0 时不激活 RI,收到的信息丢弃;RB8=1 时收到的数据进入 SBUF,并激活 RI,进而在中断服务中将数据从 SBUF 读走)。当SM2=0 时,不论收到的 RB8 为 0 和 1,均可以使收到的数据进入 SBUF,并激活 RI(即此时 RB8 不具有控制 RI 激活的功能)。通过控制 SM2,可以实现多机通信。REN:允许串行接收位。由软件置 REN=1,则启动串行口接收数据;若软件置REN=0,则禁止接收。
TB8: 在方式 2 或方式 3 中,是发送数据的第 9 位,可以用软件规定其作用。可以用作数据的奇偶校验位,或在多机通信中,作为地址帧/数据帧的标志位。在方式 0 和方式 1 中,该位未用到。
RB8 :在方式 2 或方式 3 中,是接收到数据的第 9 位,作为奇偶校验位或地址帧/数据帧的标志位。在方式 1 时,若 SM2=0,则 RB8 是接收到的停止位。
TI :发送中断标志位。在方式 0 时,当串行发送第 8 位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使 TI 置 1,向 CPU 发中断申请。在中断服务程序中,必须用软件将其清 0,取消此中断申请。
RI:接收中断标志位。在方式 0 时,当串行接收第 8 位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使 RI 置 1,向 CPU 发中断申请。也必须在中断服务程序中,用软件将其清 0,取消此中断申请。

  • (2)电源控制寄存器PCON

SMOD:波特率倍增位。在串口方式 1、方式 2、方式 3 时,波特率与 SMOD 有

关,当 SMOD=1 时,波特率提高一倍。复位时,SMOD=0。

1.5串口波特率计数

开发中建议大家使用小工具,它会给你带来很多便利。如51 波特率初值设定app,或STC-ISP里有波特率计数器

2.其他通信协议

2.1 I2C 与 SPI 简介

I2C(Inter -Integrated Circuit)

  • 使用 SCL(时钟线) 和 SDA(数据线) 两根线。
  • 半双工,支持多主多从,通过设备地址寻址。
  • 适合连接多个低速设备,如传感器、EEPROM。

SPI(Serial Peripheral Interface)

  • 使用 SCLK(时钟)、CS(片选)、MOSI(主出从入)、MISO(主入从出) 四根线。
  • 全双工,传输速度快,适合高速设备如显示屏、SD卡。
  • 无设备地址,通过片选线选择从设备。

Modbus协议:工业通信的"通用语言"

  • Modbus是一种应用层协议,常基于串口(如RS485)传输,采用主从架构。
  • 主从模式
    • 主机:唯一有权发起通信的设备,控制整个通信过程。
    • 从机:被动响应主机指令,执行对应功能并返回应答。
  • 协议格式(以RTU模式为例)
    • 设备地址:标识目标从机。

    • 功能码:指示操作类型。

    • 数据流向位:功能码最高位表示数据方向:

      • 0:主机 → 从机

      • 1:从机 → 主机

起始位 设备地址 功能码 数据位1 数据位2 校验位 结束位
0xAA 0x01 0x01 0x42 0x00 0xEE 0xBB
相关推荐
熬夜有啥好2 小时前
51 单片机基础架构与最小系统详解
单片机·嵌入式硬件·51单片机
Ronin3052 小时前
【Qt系统相关】Qt系统相关
网络·qt·音视频·多线程·定时器·事件·qt文件
醇氧2 小时前
【学习】封锁协议
网络·学习·oracle
ACP广源盛139246256732 小时前
ASW3810@ACP#4 路差分 2:1/1:2 双向多路复用 / 解复用器 产品规格与应用总结
大数据·单片机·嵌入式硬件·计算机外设·电脑
学嵌入式的小杨同学2 小时前
STM32 进阶封神之路(二十三):低功耗深度解析 —— 从睡眠模式到停机模式(底层原理 + 寄存器配置)
c++·stm32·单片机·嵌入式硬件·mcu·架构·硬件架构
徐子元竟然被占了!!2 小时前
ISIS实验1
网络
广州赛远2 小时前
埃夫特ER6L码垛机器人防护服等级解析:避开选型误区与性能陷阱
网络·人工智能
小飞菜涅2 小时前
FAST-LIVO2相机内参标定
linux·嵌入式硬件·ubuntu·相机
黄昏恋慕黎明2 小时前
网络聊天室测试报告
网络