【串口通信详解】USART/UART、RS232、RS485标准接口与协议特点解析
串口通信详解:USART/UART、RS232、RS485标准接口与协议特点解析
通信协议与接口知识参考文章:
【通信理论知识】数据传送的方式:串/并行;传输方向:单工、半/全双工;传输方式:同步/异步
【串口通信详解】USART/UART、RS232、RS485标准接口与协议特点解析
【同步串行通信接口】IIC(Inter-Integrated Circuit)通信总线协议详解
【通信总线协议】SPI串行外设接口通信详解
【CAN总线协议】CAN通信入门总览:常见协议优劣、CAN应用、协议组成与标准、传输原理的实现、仲裁机制、传输与时序初探
进阶:
【通信模块】简单玩转WiFi模块(ESP32、ESP8266)
【通信模块】WiFi&Bluetooth简介与对比
【通信模块】LoRa与LoRaWAN简介
【通信协议】硬件通信协议速率对比
目录
UART
特点
引脚帧格式时序
发送一个字节USART
优缺点RS232
接口标准电平标准特点
RS232的优缺点RS485
RS485的优势
接口标准电平标准
特点:差分信号输出、半双工优秀文章参考
UART通用异步收发传输器
-
UART
全称是通用异步收发传输器
(Universal Asynchronous Receiver/Transmitter) -
UART
是一种异步收发传输器, 是设备间进行异步通信的关键模块,UART
负责处理数据总线和串行口之间的串/并、并/串转换,并规定了帧格式。 -
通信双方只要采用相同的
帧格式和波特率
,就能在未共享时钟信号的情况下,仅用两根信号线,接RX 和TX
,就可以完成通信过程,是典型的异步串行通信
。 -
UART
可以实现全双工传输和接收
。加上 S 则有同步(USART通用异步/同步收发传输器) 同步通信:有共同的参考时钟 异步通信:没有共同的参考时钟,以固定波特率传输
特点
- 通用串行异步收发器,全双工通信
- TTL电平标准:+3.3/+5表示1 0V表示0
- 需要双方约定好传输的波特率(因为没有时钟线)
- 空闲位是高位
- 不能连续发数据,一次最多发5-8位(防止误差累计,因为没有时钟线)
引脚
帧格式
时序
波特率:
一般选波特率都会有9600,19200,115200等选项。其实意思就是每秒传输这么多个比特位数 (bit);
起始位:
先发出一个逻辑”0”的信号,表示传输数据的开始;
数据位:
可以是5~8位逻辑”0”或”1”,先传输bit 0,在传输bit 1,依次类推;
校验位:
数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。
校验位是可选的,可以不传输;
停止位:
它是一个字符数据的结束标志,数据线变回逻辑”1”;
发送一个字节
USART优缺点
优点:
通信只需要两条数据线;
无需时钟信号;
有奇偶校验位,方便通信的差错检查;
只需要接收端和发送端设置好数据包结构,即可稳定通信;
缺点:
传输速率较低:
数据帧最大支持9位数据
电气接口不统一:
uart通信时一般使用处理器的电平,即TTL电平,但不同处理器电平存在差异(3.3V或1.8V,或CMOS电平)
因此不同的处理器的uart不能直接相连接。此外不用的器件没有一个统一的接口,硬件连接不方便。
抗干扰能力差:
使用TTL的电平来表示1和0,传输中容易出错
通信距离短:
一般仅用于一个电路板上的2个芯片通信
RS232
接口标准
电平标准
-
传输信号电压级别(重要):
+5 ~ +15 V表示1 5 ~ -15 V表示0 -
接收信号电压级别:
二进制0:+3 ~ +32 Vdc 二进制1:-3 ~ -30 Vdc -
依赖UART串口协议,在电气层面做处理,统一了接口标准(如下),能传得更远和更快
- MCU通过TTL发出来的信号要接一个电平转换芯片去转成RS232的信号,如MAX232芯片。类似usb-ttl芯片(ch340,cp2302)
特点
-
抗干扰能力增加,通信距离大致15m
-
数据格式如下
起始位:二进制0 数据:5、6、7或8位 奇偶校验:奇、偶、mark或 space(不适用于8位数据) 停止位:二进制1,一位或两位
RS232的问题
- 接口的信号电平值较高,易损坏接口电路的芯片;
- 与TTL电平不兼容,所以需要使用电平转换芯片才能与TTL电路连接。
- 通信速度较低,易产生共模干扰,抗噪声干扰性较弱,传输距离较短(15m)
RS485(差分信号输出、半双工)
RS485的优势
-
接口电平值较低,不易损坏接口电路的芯片,且与TTL电平兼容。可方便地与TTL电路连接;
-
通信速度快
-
抗噪声干扰性强
-
传输距离较远(1500m)
-
可实现多节点组网
接口标准
电平标准
- 电平标准:差值 +2v~+6v 表示1 -2v~-6v表示0
- 在MCU后接一个TTL转485的芯片(单端传差分),比如MAX485
特点:差分信号输出、半双工
-
通信用双绞线,差分信号,抗干扰强
-
信号在发送之前,通过RS485的收发器把单端信号转换成差分信号,再发送到总线上进行传输;
-
同样在接收之前,总线上的差分信号通过收发器的转换变成单端信号再送给UART控制器进行接收;
-
采用两线制,因为用的差分信号,所以两根线表示一个信号,只能半双工。是不是感觉和I2C很像?只是I2C规定好了主机怎么管理从机,在编程RS485时完全可以仿照I2C的主从逻辑,避免冲突。
-
在RS485总线上,如果希望进行全双工的双向通讯,需要两对差分信号线(即4根信号线)。如果只进行半双工的双向通讯,则仅需要一对差分信号即可;
优秀文章参考
底层机制与寄存器:
http://t.csdnimg.cn/1qIPj
精简应用理论知识:
https://mp.weixin.qq.com/s?__biz=MzkzNzYxMjkwNg==&mid=2247484926&idx=1&sn=a0516b8463b7f17c676baa4fee0212f9&chksm=c28d86fbf5fa0fed1831277e92ff4f62060e358553f14f730bae41febc9743fb134fa1d31645&scene=21#wechat_redirect
根据一些优秀文章总结的个人学习笔记如有侵权,联系删除!
同样创作不易,转载请留言,正文标明出处!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)