通讯协议--UART
通讯协议
任何通讯都是需要有一个载体,通过载体分类,分为有线或者无线通讯。通讯方式也有同步和异步,同步是两个设备通过时钟信号进行同步,异步是两个设备通过数据信号进行同步。同步通信是阻塞的,异步通信是非阻塞的。常见同步通讯有I2C、SPI等,异步通讯有TCP、UDP等。
串口协议构成
帧:数据帧,即数据帧由起始位、数据位、停止位、校验位组成。
空闲位:数据线在空闲状态的时候为逻辑“1”状态。
起始位:当要传输数据的时候先将数据线拉低,表示开始数据传输。
数据位:即要传输的数据,数据位数可选择 5~8 位,低位在前,先传输,高位最后传输。
奇偶校验位:这是对数据中“1”的位数进行奇偶校验用的,可不使用。
停止位:数据传输完成标志位,停止位的位数可以选择 1 位、1.5 位或 2 位高电平,一般都选择 1 位停止位。
波特率:波特率就是 UART 数据传输的速率,也就是每秒传输的数据位数。
UART和USART区别
串口是有线通讯一种,也是最简单常用的一种。UART和USART都是单片机串口通讯协议。
区别:
USART:通用同步和异步收发器
UART:通用异步收发器
USART在异步通信的时候,它与UART没有什么区别,但USART能提供主动时钟,从而实现同步通信。
RS232与RS485、RS422的区别
RS232 通信主要是由RX,TX,GND三根线组成,但是通常使用DP9线连接,可以只连三根线。RS232的缺点是UART和USART的缺点,就是通信距离短。为了解决RS232通信距离的问题。RS485主要是以一种差分信号进行传输,只需要两根线。但是RS485的缺点是只能发送或接收,不能同时发送和接收。所以就有了RS422,有两组RX和TX,可以同时发送和接收。
串口类型
- UART
UART有VCC、GND、RX、TX这4个Pin,也就是最简单;其中VCC:供电Pin,一般是3.3V;GND:接地Pin,通讯的设备一定要共地;RX:接收数据Pin;TX:发送数据Pin
- USART
USART 相对UART 多了时钟,在使用时需要使能时钟。
- RS-232
RS232 使用9针脚,单端信号传输,是对UART的升级,增加了其他引脚。但是RS232口最大通讯距离是15米。
编号 | 名称 | 缩写 |
---|---|---|
1 | Data Carrier Detect/数据载波监测 | DCD |
2 | Received Data/接收数据 | RxD |
3 | Transmitted Data/发送数据 | TxD |
4 | Data Terminal Ready/数据终端就绪 | DTR |
5 | Ground/接地 | GND |
6 | Data Set Ready/数据集就绪 | DSR |
7 | Request To Send/请求发送 | RTS |
8 | Clear To Send/允许发送 | CTS |
9 | Ring Indicator/振铃提示 | RI |
- RS-485
485是为了解决232通信距离的问题,数字信号采用差分传输方式,因为只有两根线,只能做半双工,也就是同时只能发送或接收,不能同时发送和接收。通讯距离理论能够达到1200m。
编号 | 名称 | 缩写 |
---|---|---|
Data-/B | 差分信号负端 | 485- |
Data+/A | 差分信号正端 | 485+ |
- RS-422
RS-422是四线接口,全双工,差分传输,多点通信的数据传输协议,硬件构成上RS-422相当于两组RS-485;它对485做了补充,能够同时发送和接收数据。
编号 | 名称 | 缩写 |
---|---|---|
TXA | 发送正 | TX+或A |
RXA | 接受正 | RX+或Y |
TXB | 发送负 | TX-或B |
RXB | 接收负 | RX-或Z |
RXA/Y︰接其他RS422模块的TXA/A
RXB/Z︰接其他RS422模块的TXB/B
TXB/B:接其他RS422模块的RXB/Z
TXA/A:接其他RS422模块的RXA /Y
串口测试
linux下测试工具:
minicom
- 安装
1 | sudo apt install minicom |
- 使用
1 | # 运行minicom 并配置 |
Windows可以安装串口助手等工具
|