UART通信协议
一、定义
UART通常被称为通用异步收发器,是一种通用的串行、异步通信总线。该总线有俩条数据 线,可以实现全双工的发送和接受。在嵌入式系统中常用于主机与辅助设备之间的通信。
二、基本概念了解
1、串行与并行
(1)并行通讯:同一时刻,可以传输多个bit位的信号,有多少个信号位就需要多少根数据线。
(2)串行通讯:同一时刻,只能传输一个bit位的信号,只需要一根数据线。
2、单工全双工以及半双工
(1)单工:数据只在一个方向上传输,不能实现双方通信。
(2)半双工:允许数据在两个方向上传输,但是同一时间数据只能在一个方向上传输。
(3)全双工:允许数据在两个方向上同时传输。
3、波特率
波特率表示每秒钟传送的码元符号的个数,它是对符号传输速率的一种度量,它用单位时间内载波调制状态改变的次数来表示,1波特率即指每秒传输1个符号。用于描述UART通信时的通信速度,其单位是bps,即每秒钟传输的bit的数量。。
4、异步通信和同步通信
(1)异步通信:,发送一方跟接受用的是不同的时钟基准。
(2)同步通信,发送跟接受器用到是同一个时钟基准。
三、串口通信原理(过程)
(1)数据线在空闲的时候是高电平。
(2)起始位:低电平,告诉对方我要开始发送数据了。
(3)数据位:发送数据是先发送地位再发送高位,一次可以发送5~8bit数据。
(4)校验位:让对方验证已接受的数据有没有错误,只能验证数据不能对数据进行修改。例如奇偶校验。
(5)停止位:是1/1.5/2位的高电平,标志着这一次发送的结束。
注意:每次通信最多只能传输一个字节(8位)是为了防止时间误差的出现,因为异步通信,发送方和接收方用的是不同的时间基准,假如如果使用同步通信则不会出现时间误差的问题。
四、UART控制器
一般情况下处理器都会集成UART控制器,使用串口通信的时候只需要对其内部的相关寄存器进行设置即可,其他过程我们不用管(比如发送过程)。