什么是串口通信
串口通信,就是传数据只有一根线传输,一次只能传一个位,要传一个字节就需要传8次。串口通信就是把数据串在一根线上传输,所以就叫串口吧。
在对速率要求不高的情况,使用一根线发送数据是带来大大的方便和实用价值的。
为了能正常发送和接收正确的数据,那异步串口通信就需要如下图的格式。
在串口的通信参数上,就有了波特率、起始位、数据位、校验位、停止位这几个参数。
232\485\422的区别
串口通信主要为分232、485、422三种通信方式,这三种有什么区别呢?
232通信
232通信主要是由RX、TX、GND三根线组成。RX接TX,TX接RX,GND接GND。这里发送和接收分别是由不同的线处理的,也就是能同时发送数据和接收数据,这就是所谓的全双工通信。
在这里扩展一下,串口通信还有一个功能叫做全功能串口通信,也叫标准串口。因为在两个设备间进行数据传输,有些设备处理速度比较快,有些数据比较慢。为了保证数据能正常传输,在RX、TX的基础上,还增加了几个控制引脚,最后成了9个引脚,也就是常见的DB9这个东西,如下图所示。
但是,如今很多控制器、人机界面、PLC等使用串口通信中一般不使用标准串口,而是直接使用RX、TX、GND三根线来通信的。
485通信
485的出现,是为了解决232通信距离受限的问题。
485通信只需要+、-两根线,或者也叫A、B两根线。A、B两根线的差分电平信号就是作为数据信号传输。由于发送与接收都是用这两根线,也就是说每次只能用作发送或者只能用作接收。所以,485是半双工通信。
485就是这样牺牲了232全双工的效率来达到自己传输距离远的代价。
422通信
422的出现,是为了既实现232的全双工通信方式,又能像485这样提高传输距离。422也常被标注为485-4,而485被标注为485-2。因为485-2是2根线,485-4是4根线,下图是422的示意图。
422就是把232的RX分成两根线,RX+,RX-,把TX分成TX+,TX-。这样就可以同时发送和同时接收了,还可以像485这样,有较远的传输距离。可是这样一种很有优势的通信方式,却用得不多,最常用到的是232跟485。
串口通信常见问题
1、电脑使用USB转串口可以和设备通信上,换成屏与设备就通信不上了?
2、用A家的屏可以和设备通信,换成B家的屏就通信不上了?
3、以前不接地线可以通信,换个设备为什么需要接地线了?
这个问题和上一个类似,因为有些设备使用了隔离电源。以前不接地可以通信,有可能实际上地线已经接了,所以才可以通信。可能换了个带隔离电源的,两个设备的地是隔离的,就需要在串口上把地线接起来。
4、一个设备是232,另一个设备是422,没有转换设备,怎么办?
刚才也讲了422和232的接线,因为这两个都是全双工的,接收和发送都是分到的,而422只是以一种差分信号进行传输。
把422的Rx+与232的TX接,422的RX-与232的GND接。
5、用232通信没问题,用485通信没问题,使用232转485之后就通信不稳定?
但是485就得管了。因为既然是半双工,就得严格保证通路上只能有发送或只能有接收的数据,一旦同时有发送和接收,数据就会冲突了。所以解决的办法就是主站设备,也就是主动命令的一方就需要严格控制好发送数据命令的节奏了。当然有些232转485的设备做的比较好了,可以优化这个,但是主站还是要控制,比较把通信速率调节慢一些。
6、要想实现两个屏或两个主站通过485访问modbus设备,有什么好的办法?在485通信中,基本上是一主多从。但是遇到一些客户实际使用中,有客户想用两个屏来访问一个modbus设备的。目前暂时还没有好的办法。
7、串口通信的弱点
刚才提到,同步通信需要依赖于时钟信号。这就存在一个问题,这个时钟信号是谁来发起呢。在同步通信中,往往需要一个主设备发起时钟信号读从模块的数据。在实际中,有屏读PLC,有屏读屏的数据。而单纯地从异步串口通信来说,是没有主从之说,双方都是平等的角色,都可以互发信息,互收信息。而同步通信一般是应用于CPU读一些模块,由CPU发起时钟信号,比如读SD卡模块,就可以通过SPI方式,还有一些传感器模块。
*本文系网络转载,版权归原作者所有,如有侵权请联系删除