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协议格式指令,从机接收指令并解析,完成对应功能后给主机回复应答

从机->主机:

相关推荐
索端阳2 分钟前
从时序到代码:51单片机驱动DS18B20温度传感器的深度复盘
51单片机
艾芯微科技39 分钟前
ESDUNL24VC1 单向 ESD 静电保护二极管参数、电路设计与 PCB 防护布局
网络·单片机·嵌入式硬件·集成测试·51单片机
M78佐菲10 小时前
51单片机学习笔记:ds18b20要点整理
linux·笔记·嵌入式硬件·学习·51单片机
m0_7527531213 小时前
单片机基础知识
单片机·51单片机
xx~t19 小时前
嵌入式——单片机2
嵌入式硬件·学习·51单片机·串口·蜂鸣器
一直C19 小时前
DS18B20数字温度传感器超详细学习笔记|51单片机单总线通信
51单片机·ds18b20·one-wire
xx~t20 小时前
嵌入式——51单片机3
linux·c语言·嵌入式硬件·51单片机
sunoo-22920 小时前
【51单片机实战】温控下位机完整实现:DS18B20采集 + 自定义二进制串口协议 + PWM声光告
笔记·学习·51单片机·串口
m0_752753121 天前
51单片机中的定时器和中断等
单片机·51单片机
AAA代码批发商1 天前
DAYS41 UART 串口通信 + DS18B20 单总线温度传感器
嵌入式硬件·51单片机