嵌入式之串口与RS232与RS485的区别
RS232
与RS485
都是串口通信的变种!
串口
通信模式:串行异步全双工
起始位:由一个逻辑0(低电平)的数据位表示
停止位:由一个逻辑1(高电平)的数据位表示
空闲状态电平:TX
和RX
都是高电平(TX
、RX
上没有任何数据传输时为空闲状态)
波特率:可以认为是比特率,即每秒传输的位数(bit)
。
如:9600波特率表示每秒传输9600个符号(即每秒传输9600个高低电平),如果每个符号携带1个比特信息,则比特率为9600bit/s
;如果每个符号携带2个比特信息,则比特率为19200bit/s
。
注:波特率与比特率的区别:
波特率与比特率(Bit Rate)是两个容易混淆的概念:
- 波特率:表示单位时间内传输的符号(码元)数量,单位为波特(Baud)。
- 比特率:表示单位时间内传输的二进制位数,单位为比特每秒(bit/s)。
两者的关系为:比特率 = 波特率 × 单个符号对应的二进制位数。例如,如果每个符号携带2个比特信息,则比特率是波特率的两倍。
逻辑电平:采用TTL
逻辑,其输出的高电平最小为2.4V(2.4 ~ 5V)
,输出的低电平最大为0.4V(0 ~ 0.4V)
,一般认为串口通信高电平为5V
,低电平为0V
。
缺陷:由于电平逻辑导致其抗干扰能力弱(有静电时可能会导致低电平变为高电平,致使数据出错);因此通信距离很短(一般为一块电路板上两块芯片间的通信、芯片与电脑通信;距离在1米以内)
UART
1 | UART: Universal Asynchronous Receiver/Transmitter 通用异步收发器 |
UART
是一种通用的异步串行通信协议,它使用起始位、数据位、校验位和停止位来传输数据。
在UART
通信中,数据的传输是通过固定的波特率进行的,发送和接收端需要事先约定好波特率、数据位、校验位和停止位等参数。
USART
1 | USART: Universal Synchronous/Asynchronous Receiver/Transmitter 通用同步/异步串行收发器 |
USART
是一种更为复杂的串行通信协议,它同时支持同步和异步的数据传输方式(通用同步/异步串行收发器)。
与UART
不同的是,USART
可以选择同步或者异步模式进行通信,并且提供了更多的控制选项,比如硬件流控制、双向通信等。
USART
通常用于对数据传输速度要求较高、需要双向通信或者需要更灵活控制的场景。
RS232
背景:为了提高串口通信的距离与稳定性,美国电子工业联盟制定了RS232
标准。
那么如何使用RS232
进行通信呢?
只需在串口通信的基础上加一个电平转换芯片,如:MAX232
,如此便可将TTL
转为RS232
电平。
逻辑电平:使用芯片时:如单片机输出给芯片的是5V
,则芯片会输出-12V
;如单片机输出给芯片的是0V
,则芯片会输出+12V
(反之亦然)
注:
RS232
的电平逻辑与TTL
不同,RS232
采用的是负逻辑。在
RS232
标准中,-15V
到-3V
表示逻辑“1”,+3V
到+15V
表示逻辑“0”这种电平逻辑的设定是为了提高抗干扰能力
区别:RS232
只改变了电平大小,传输的数据不会被改变。
通信距离可达15米,但传输频率最高只能为2M
(即波特率最高为:19200bps
)
RS485
区别:RS485
通信是在串口通信基础上加了一个电平转换芯片,该芯片可将串口信号转为差分信号(反之亦可)
差分信号:只需要2根线,无需地线;如:信号A大于信号B时代表逻辑1,那么反之就是逻辑0。
差分信号优势:抗干扰能力强(因为它用两根信号线的差值来代表逻辑0与逻辑1,且两根信号线采用双绞线的方式缠在一起,如果有外界干扰,会使两根信号线的电平一同变化,那么二者之间的差值基本保持不变);传输距离远(可达1200米);传输频率高(可达50M
)