UART通用异步收发器与其中断

首先来了解一下什么是UART

UART(通用异步收发器)

UART = Universal Asynchronous Receiver/Transmitter(通用异步收发器)

  • 单片机 / 芯片内部的硬件模块(比如 51 单片机的 UART 模块),也指对应的物理接口(如 TXD/RXD 引脚)

作用:

  • 把单片机内部的并行数据(如 8 位字节)转换成串行数据流(逐位发送),或把接收的串行数据还原成并行数据

UART 也有着一套自己的通信协议规范:

单片机通信协议:

常见通信协议:

  • UART
  • I2C
  • SPI
  • USB
  • CAN

了解一下常见通信的几种类型

1.UART收发信息接口:

P31:RXD :数据接收信号线

P32:TXD:数据发送信号线

  • 通信时两者必须插接,不能发送接发送

2.UART协议内容:

uart只需要TXD 与 RXD两个引脚就可以实现

除了UART异步串行通信协议之外,还有另一种更加复杂的通信协议:

SPI通信协议:

必须四个接口:

SCK Serial Clock 时钟线(主设备产生,同步收发节奏)

MOSI Master Out Slave In 主发从收(主设备→从设备的数据)

MISO Master In Slave Out 主收从发(从设备→主设备的数据)

CS/SS Chip Select/Slave Select 片选线(主设备选通某一个从设备)

UART收发过程:

TXD与RXD在通信时必须岔接

数据发送方式:

  • 串行:通过一根信号线线逐个BIT发送数据
  • 并行:通过多根信号线同时发送数据

类比两种方式:

1.并行:

  1. 传输速度快
  2. 硬件效率高
  3. 传输距离近,只能三十米之内传输

2.串行:

  1. 传输速度慢
  2. 硬件成本低,实现简单
  3. 传输距离远,最远可达到3000米

电平标准:

1.TTL标准:

高电平5V,低电平0V->0.4V

  • 适用于板间通信,传输距离较近

2.RS232标准:

负逻辑,高电平 -3V -> -15V , 低电平 3V -> 15 V

当单片机需要和PC端进行通信时,可以利用MAX232电平转换芯片, 将TTL电平转化位RS232电平

3.RS485标准:

差分信号:

A-B > 2V

A-B < -2V

高电平: 2V- 6V

低电平:-6V- 2V

也可以利用CH340电平转换芯片,将TTL电平转化为USB电平

UART通信时,数据遵循以下格式:

1.首先我们来了解一下校验类型:

奇校验:

校验位为 1 ,如果数据位中的1的个数加上校验位的的1保持 1 的总数为奇数个,则代表奇校验通过

数据发送过程中数据的高低电平可能受到干扰

偶校验:

校验位为 0 ,如果数据位中的1的个数加上校验位的的1保持 1 的总数为偶数个,则代表偶校验通过

无校验

累加和校验:

串口通信基本参数:

例:9600 8 N 1

1.波特率:bits per second

bps 每秒传输bit数量

2.数据位: 8位数据位

3.校验位:

N:NONE 无校验

O:ODD 无校验

E: EVEN 偶校验

4.停止位:

2.通信频率:

同步通信:通信双方通过一根共享的时钟信号线规定数据传输的频率

SCL时钟线:

引脚高电平时才可以发送数据,低电平时不可以发送数据

异步通信:

通信双方没有共享时钟线规定数据传输频率,利用波特率实现类似同步的效果

3.SBUF接收发送缓存区

定时器1:

常用于串口波特率的设置

当定时器1作为波特率产生时,溢出不发生中断

串口通信初始化:

在UART协议的基础上,还有一种数据发送协议 MODBUS协议:

主句下发MODBUS协议格式指令,从机接收指令并解析,完成对应功能后给主机回复应答

从机->主机:

相关推荐
智者知已应修善业10 小时前
【51单片机数码管+蜂鸣器的使用】2023-6-14
c++·经验分享·笔记·算法·51单片机
zzh92013 小时前
20元代做Proteus仿真|51单片机/STM32花样流水灯|心形/圆形/按键切换|从上到下从左到右
stm32·51单片机·proteus
iCxhust1 天前
51单片机定时器PWM发生
stm32·单片机·51单片机
智者知已应修善业1 天前
【51单片机独立按键控制往复流水灯启停】2023-6-13
c++·经验分享·笔记·算法·51单片机
电子工程师成长日记-C511 天前
51单片机电子打铃系统
单片机·嵌入式硬件·51单片机
iCxhust1 天前
51单片机引脚 ALE EA PSEN的用途
单片机·嵌入式硬件·51单片机
碎像1 天前
51单片机创建项目
单片机·嵌入式硬件·51单片机
cici158741 天前
51单片机实时温度监测系统(DS18B20 + LCD1602)
单片机·嵌入式硬件·51单片机
智者知已应修善业2 天前
【51单片机4位数循环小数位移数值位移】2023-6-9
c++·经验分享·笔记·算法·51单片机
智者知已应修善业3 天前
【51单片机非精准计时2个外部中断启停】2023-5-29
c++·经验分享·笔记·算法·51单片机