串口通讯是硬件工程师经常接触的一个概念,你是否也分不清RS232、RS422、RS485、UART它们之间的关系,每次见到其中的一个,就像见到熟悉的陌生人,虽说认识,却不知道它有什么特点,殊途同归的感觉。
先来一段网上比较精辟的总结。
公交运行可以简单分成两个部分:
1、车站
2、公路
其中车站决定了车上装什么(人),怎么发送(班次)等。
当汽车跑在路上,就要遵守公路交通的规则,过桥有过桥的规则,高速有高速的规则,和车站没有关系了。
回到串口通讯,其实,UART就相当于车站,而RS232/RS485则对应于公路的规则。
UART,是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),既然是“器”,显然,它就是个设备而已,要完成一个特定的功能的硬件,它本身并不是协议。那么它要完成什么功能呢?它的最基本功能,是数据收发和串并转换。也就相当于车站,决定装什么人以及怎么样把人装上去。
RS232/RS485,是两种不同的电气协议,也就是说,是对电气特性以及物理特性的规定,作用于数据的传输通路上,它并不内含对数据的处理方式。比如,最显著的特征是:RS232使用3-15v有效电平,而UART,因为对电气特性并没有规定,所以直接使用CPU使用的电平,就是所谓的TTL电平(可能在0~3.3V之间)。更具体的,电气的特性也决定了线路的连接方式,比如RS232,规定用电平表示数据,因此线路就是单线路的,用两根线才能达到全双工的目的;而RS485, 使用差分电平表示数据(逻辑“1”为 (2-6)V,逻辑“0”为-(2-6)V),因此,必须用两根线才能达到传输数据的基本要求,要实现全双工,必需用4根线。但是,无论使用RS232还是RS485,它们与UART是相对独立的,但是由于电气特性的差别,必须要有专用的器件和UART接驳(例如MAX232),实现电平转换,才能完成数据在线路和UART之间的正常流动。
总结:从某种意义上,可以说,线路上存在的仅仅是电流,RS232/RS485规定了这些电流在什么样的线路上流动和流动的形式;在UART那里,电流才被解释和组装成数据,并变成CPU可直接读写的形式。
RS232简介
①RS232接口符合由美国电子工业协会(EIA)制定的串行数据通信接口标准。它被广泛应用于计算机串行接口外设连接。
②电气特性:RS232接口任何一条信号线的电压均为负逻辑关系。即:逻辑“1”为-3—-15V;逻辑“0”: 3— 15V,噪声容限为2V。即要求接收器能识别高于 3V的信号作为逻辑“0”,低于-3V的信号作为逻辑“1”,TTL电平为5V为逻辑正,0为逻辑负。与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。
③接口使用一组收发线构成共地的传输形式,这种传输方式很容易受到共模信号的干扰,因此抗噪声干扰性弱。
④传输速率较低,传输距离有限,实际应用中只能在15米左右。
⑤RS232常用的3线制连接方式为2、3交叉5直连,即两个接口之间TXD和RXD互联,GND直接连接,其余接口不连接。其余接口连接时起流控作用,这里的“流”指的是数据流。数据在数据线上进行传输难免会出现错误,为了减少错误的发生,某些应用条件下需要流控信号来进行信号传输过程的控制。
RS485简介
①在通信距离要求为几十米到上千米时,广泛采用RS485串行通信总线。能达到长传输距离,主要原因是它采用平衡发送和差分接收,具有抑制共模信号干扰的能力。
②电气特性:逻辑“1”以两线间的电压差 2V~ 6V表示,逻辑“0”以两线间的电压差-6V~-2V表示。接口信号电平比RS-232-C降低了,就不容易损坏接口电路芯片,且该电平与TTL电平兼容,刻方便与TTL电路连接。
③RS-485接口的最大传输距离实际上可达3000米。
④RS-232-C接口在总线上只允许连接一个收发器,即单站能力;而RS-485接口在总线上只允许连接多达128个收发器,即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立设备网络。
⑤RS485半双工接法为:RX 和TX 并联为Data ;RX-和TX-并联为Data-。
RS422简介
①RS-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。实际上还有一根信号地线,共5根线。由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。一个主设备(Master),其余为从设备(Slave),从设备之间不能通信,所以RS-422支持点对多的双向通信。接收器输入阻抗为4k,故发端最大负载能力是10×4k 100Ω(终接电阻)。
②电气特性:RS422的电气特性与RS485完全一样。主要区别:RS422有4根信号线:两根发送(TXD 、TXD-)、两根接收(RXD 、RXD-)。由于RS-422的收与发是分开的所以可以同时接收和发送(全双工)。
RS232/RS485/RS422三者间的区别
1、RS232是全双工的,RS485是半双工的,RS422是全双工的。
2、RS485与RS232仅仅是通讯的物理协议(即接口标准)有区别,RS485是差分传输方式,RS232是单端传输方式,但通讯程序没有太多的差别。
PC机上已经配备有RS232,直接使用就行了,若使用RS485通讯,只要在RS232端口上配接一个RS232转RS485的转换头就可以了,不需要修改程序。
万能的小尾巴,希望每个人都可以达到自己想要的高度。