文章目录
- 一 简介
- 二 电平标准
- 三 引脚定义
- 四 数据格式
- 五 波特率
一 简介
UART (Universal Asynchronous Receiver/Transmitter),通用异步收发器,是一种串行、异步、全双工通信协议。
- 串行:利用一条传输线,将数据一位一位地传送
- 异步:不需要时钟信号进行数据同步,而是直接在数据信号中插入一些同步用地信号位,或者把主体数据进行打包,以数据帧的格式传输数据(存在一定的格式,接收端需要解数据帧得到主体数据,本质上还是插入信号位)
- 全双工:数据的传输可以同时进行,与半双工的本质区别在是半双工通信双方共用一条线路,所以需要分时复用,但是全双工是两条线,一条作为发送一条作为接收。
二 电平标准
uart 使用标准的 TTL/CMOS 逻辑电平表示数据,1 表示高电平,0 表示低电平。为了提高抗干扰能力、传输距离,通常会将 TTL/CMOS 逻辑电平转换为 RS232/RS485 逻辑电平
通信接口 | 电平标准 | 特点 |
---|---|---|
TTL | 逻辑1:2.4 V ~ 5 V 逻辑0:0 V ~ 0.4 V | 无需额外电路,直接引脚直连 |
RS232 | 逻辑1:-3 V ~ -15 V 逻辑0:3 V ~ 15 V | 需要电平转换电路,传输距离最大约 15 米 |
RS422/RS485 | 逻辑1:两线压差 2 V ~ 6 V 逻辑0:两线压差 -2 V ~ -6 V | 需要电平转换电路,传输距离大约 1200 米 |
三 引脚定义
UART 串口通信有 4 个引脚,
名称 | 介绍 |
---|---|
TX | 发送数据引脚 |
RX | 接收数据引脚 |
VCC | 供电引脚,一般是 3.3 V |
GND | 参考地,通信双方需工地 |
四 数据格式
在 uart 中,数据以包的形式传输,应用层将数据发给 uart 控制器后,uart 控制器会将数据封装成如下格式的包
-
起始位:空闲时,TX 线通常保持高电平。当要开始数据传输时,UART 控制器会将 TX 这条线从高电平拉为低电平,并保持一定的时间用于让接收方感知到。当接收方感受到后,开始以指定波特率对应的频率采样信号
-
数据位:数据长度可以是 5 位到 8 位。如果不使用奇偶校验位,数据帧长度可以为 9 位。多数情况下,数据以最低有效位优先方式发送
-
校验位:用于表示主体数据中 1 的个数是奇数个还是偶数个。通过奇偶校验,判断 uart 传输期间是否有数据发送改变。电磁辐射、不一致的波特率或长距离数据传输都可能改变数据位。也可以不插入校验位。
-
停止位:表示数据包的结束,可以是 1 位、1.5 位、2 位的高电平,同时提供了通信双方校正时钟的机会。
五 波特率
UART 不需要时钟信号进行数据同步,也就是说不需要时钟线,那接收方如何接收数据呢?双方事先规定好每两个 bit 之间的时间间隔,双方控制器根据这个时间间隔对数据线进行采样。数据传输速率使用波特率来表示,单位 bps(bits per second),常见的波特率9600bps,115200bps 等。