1.UART
UART是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),是一种通用的串行、异步通信总线,是设备间进行异步通信的关键模块。UART负责处理数据总线和串行口之间的串/并、并/串转换,并规定了帧格式;通信双方只要采用相同的帧格式和波特率,就能在未共享时钟信号的情况下,就可以完成通信过程,因此也称为异步串行通信。
对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。举个例子,如果数据是011,则满足:偶校验,校验位为0,保证逻辑高的位数是偶数个;奇校验,校验位为1,这样就有3个逻辑高位。
UART是协议层,不涉及物理层。对于UART来说,它只是对信号的时序进行了定义,并没有定义接口的电气特性;UART通信一般使用的都是处理器的电平,也就是TTL电平,但是由于不同处理器之间的电平存在差异,所以不同的处理器之间的UART不能直接相连;
抗干扰能力差:采用TTL电平的高低代表0和1,在数据传输过程中很容易出错。并且,由于抗干扰能力很差,所以通信距离也很短,一般只能用在一个板子上不同的芯片的通信。
2.RS232
针对于电气接口不统一的问题,于是产生了RS232协议。
RS232协议: 在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。该标准规定采用一个25引脚的DB-25连接器,标准中对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定; 后来IBM的PC机将RS232简化成了DB-9连接器,后来成为事实标准; 现在工业控制的RS-232接口一般只使用RXD、TXD、GND三条线。
规定逻辑“1”的电平为-5V~-15 V,逻辑“0”的电平为+5 V~+15 V。选用该电气标准的目的在于提高抗干扰能力,增大通信距离,其传送距离一般可达15m。RS-232的噪声容限为2V,接收器将能识别高至+3V的信号作为逻辑“0”,将低到-3 V的信号作为逻辑“1”。
所以在串口通信的时候,只需要在硬件电路上加上一个TTL转RS232芯片就能实现不同设备的通信了,并且通信距离也提高了;在我们编程的时候,不需要考虑RS232,因为他只是在电气层面起作用。
RS232存在的问题
接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容,所以需要使用电平转换芯片才能与TTL电路连接
通信速度较低
三线形成共地的传输模式,易产生共模干扰,抗噪声干扰性弱
传输距离较短(15m)
接口只可以实现点对点的通信方式,不能实现联网功能
3.RS485
该标准由电信行业协会和电子工业联盟定义;使用该标准的通信网络能在远距离条件下以及电子噪声大的环境下有效传输信号; 该标准允许连接多个收发器,即具有多站能力,这样可以利用单一的RS485接口方便地建立起一个设备网络。
RS485标准规定采用差分信号进行数据传输,采用负逻辑,两线间的电压差为+2v到+6v表示逻辑“0”,两线间的电压差为-2v到-6v表示逻辑“1”;使用差分信号能有效地减少噪声信号的干扰,延长通信距离,RS485的通信距离可以达到1500m;RS485接口信号的电平比RS232降低了,所以不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便地与TTL电路连接。
RS485采用两线制,这种接线方式为总线式拓扑结构,在同一总线上可以同时存在多个节点;因为采用两线制,数据的发送和接收都要使用这对差分信号线,发送和接收不能同时进行,所以只能采用半双工的方式工作,编程时也需要加以处理。
RS485的优势:
接口的信号电平值较低,不易损坏接口电路的芯片,且与TTL电平兼容,可方便地与TTL电路连接
通信速度快,短距离条件下,数据速率高达10Mbps
差分传输增加噪声抗扰度,减少噪声辐射
传输距离较远(1500m)
可实现多节点组网,同一总线可以连接多个驱动器和接收器
宽共模范围允许驱动器和接收器之间存在地电位差异,允许最大共模电压-7-12V。
485总线要采用手拉手结构,不能采用星形结构。如果有星形连接或者分叉,干扰将非常大,通讯不畅。
4.RS422
422,有些标注为485-4。而485就标注为485-2。485-2就是2根线。485-4就是4根线。
422的RX分成两根线RX+,RX-,TX分成两根线TX+,TX-,采用单独的发送和接收通道,支持全双工。
电平值:正电平+2V~+6 V,负电平 -2V- -6V(差分线之间的压差),它们两者形成“1”或“0”两种状态。对于接收端当T+和T-之间压差大于200mv时是正逻辑电平;小于-200mv时是负逻辑电平。
最大传输距离4000英尺(约1219米),最大传输速率10Mb/s;300米以内通信时可不接终端电阻,超过300米接120欧终端电阻;
由电气特性限制,只能是点对多双向通信,最多可接10个节点(1个主,9个从,从机之间不能通信)。
RS-422的电气性能与RS-485近似一样。主要的区别在于:
(1)RS-485有2根信号线:发送和接收都是A和B。由于RS-485的收与发是共用两根线,所以不能够同时收和发(半双工)。
(2)RS-422 有4根信号线:两根发送(Y、Z)、两根接收(A、B)。由于RS-422的收与发是分开的,所以可以同时收和发(全双工)。
(3)支持多机通信的RS-422将Y-A短接作为RS-485的A、将RS-422的Z-B短接作为RS-485的B可以这样简单转换为RS-485。
5.总结
参考视频:【总线协议】RS232、RS485串口协议原理与应用