深入解析:学习嵌入式第四十六天

UART

1.概念

  • UART:Universal Asynchronous Receiver Transmitter,通用异步收发器, 51单片机拥有两个串口,一个被用于ISP下载应用,另一个被用于和主机之间的通信(全双工串行异步)

2.通信方式

  • 单工:发送发和接收方固定,数据只能从发送方发给接收方,通过一根信号线搭建,因此传输方向呈现单一性
  • 通过半双工:通信双方既行作为发送方也可以作为接收方,通过一根信号线实现,传输方向能够是双向的,但同一时刻传输方向呈现单一性
  • 全双工(UART):通信双方既可以作为发送方也可以作为接收方,通过两根信号线实现,传输方向在任意时刻都是双向的

3.数据传输

1.数据传输顺序

  • UART在数据传输时,遵循LSB优先原则(低位先传)

2.数据传输形式

  • 串行:通过一根信号线传输数据,按照先后次序逐个bit发送数据
  • 并行:同时多根信号线同时传输数据

3.串行并行的区别

  • 串行:传输速率慢,硬件成本低,实现简单,传输距离远,抗干扰性好(RS485)
  • 并行:传输速率快,硬件成本高,实现复杂,传输距离近,抗干扰性差

4.串口通信时序

  1. 串口通信时,空闲时为高电平
  2. 当由高电平变为低电平,代表发送一个起始位,准备开始通信
  3. 发送数据
  4. 再发送一个bit的校验位(奇偶校验)
  5. 再发送一个bit的停止位,代表这一次串口通信结束

4.奇偶校验

  • 问题:无法检测偶数个bit出错

  • 奇校验:校验位为“1”,若数据位中的“1”的个数加上校验位“1”的个数保持奇数个,代表校验利用

  • 偶校验:校验位为“0”,若数据位中的“1”的个数加上校验位“0”的个数保持奇数个,代表校验通过

5.串口通信参数

  • 波特率:bps,bit per second,每秒传输bit的数量,常见波特率:2400,4800,9600,115200
  • 数据位:8,串口传输通常8bit数据位传输
  • 停止位:1,1bit停止位
  • 校验位:
    • None,N,无校验
    • Even,E,偶校验
    • Odd,O,奇校验

6.串口寄存器配置

  1. SCON/PCON串口控制寄存器

    PCON寄存器中的bit6置0代表借助SCON寄存器中的SM0和SM1两位指定串口工作方式

    • 将SCON寄存器中的bit6和bit7清0
    • 将SCON寄存器中的SM1(bit6)置1,SM0(bit7)清0,代表串口工作在8位UART模式
    • 将SCON寄存器中的REN(bit4)置1,代表允许串口接收数据
    • SCON寄存器中的T1(bit1)位,代表串口8位数据发送完毕硬件自动置1,但需软件清0
    • SCON寄存器中的R1(bit0)位,代表串口8位数据发送完毕硬件自动置1,但需软件清0
    • PCON寄存器SMOD(bit7)置1,代表波特率加倍
  2. 定时器相关配置

    TMOD定时器模式选择寄存器

    • 将TMOD寄存器中的高四位清0(定时器1)
    • 将TMOD寄存器中的bit5置1,bit4清0,代表定时器1工作在8位自动重装载模式
    • 将定时器初值写入TH1和TL1
    • 将TCON寄存器中的bit6置1,代表允许定时器1开始计数
  3. 中断寄存器相关配置

    IE中断控制寄存器

    • 将IE寄存器中的EA(bit7)置1,代表CPU能相应所有中断
    • 将IE寄存器中的ES(bit4)置1,代表串口允许中断

7.主从应答

  • 主机:拥有对通信的绝对控制权,通信都是由主机发起
  • 从机:无法直接发起通信,只能根据主机下发的指令结束对应操作

代表串口允许中断

7.主从应答

  • 主机:拥有对通信的绝对控制权,通信都是由主机发起
  • 从机:无法直接发起通信,只能根据主机下发的指令做完对应操作
posted @ 2025-09-15 09:19  yjbjingcha  阅读(10)  评论(0)    收藏  举报