
营销推广VIP会员大升级,等你来入驻!
智造直播智能制造行业专属直播来啦,点击申请
网络课堂打造智造人自己的网络课堂
智造APP智能制造APP,让生意更容易!在现代电子设备的通信领域中,串口通信是一种极为常见且重要的通信方式。它以其简单、实用的特点,在众多对速率要求不高的场景中发挥着关键作用。下面我们将详细探讨串口通信的原理、常见类型以及在实际应用中可能遇到的问题及解决方法。
一、串口通信的原理
串口通信,从本质上来说,是一种数据传输方式,其特点是数据在一根线上依次传输,只能传送一个位。若要传输一个字节(8 位)的数据,就需要分 8 次进行传输。由于数据是像 “串珠” 一样依次排列在一根线上传输的,所以被称为串口通信。
为了确保数据能够正常、准确地发送和接收,异步串口通信需要遵循特定的格式。在串口的通信参数方面,涉及到波特率、起始位、数据位、校验位和停止位等几个关键参数。波特率决定了数据传输的速度,起始位用于标识数据传输的开始,数据位则是实际要传输的数据内容,校验位用于检测数据传输过程中是否出现错误,停止位则标志着数据传输的结束。
二、串口通信的常见类型
串口通信主要分为 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 通信距离受限的问题。它只需要两根线,通常标记为 “+” 和 “-”,或者 “A” 和 “B”。这两根线通过差分电平信号来传输数据。由于发送和接收都使用这两根线,所以每次只能进行数据的发送或者接收,属于半双工通信。也就是说,485 通信是以牺牲 232 全双工通信的效率为代价,来实现更远的传输距离。
422 通信
422 通信的设计初衷是既实现 232 的全双工通信方式,又能像 485 一样提高传输距离。它常被标注为 485 - 4,而 485 则被标注为 485 - 2,这是因为 485 - 2 使用 2 根线,而 485 - 4 使用 4 根线。422 通信将 232 的 RX 线分成 RX + 和 RX - 两根线,将 TX 线分成 TX + 和 TX - 两根线。这样一来,它既可以同时进行数据的发送和接收,又能拥有较远的传输距离。然而,尽管这种通信方式具有明显的优势,但在实际应用中使用并不广泛,目前常用的还是 232 和 485 通信方式。
三、串口通信的常见问题及解决方法
在实际应用中,串口通信可能会遇到各种各样的问题,下面我们为大家详细介绍一些常见问题及其解决方法。
电脑使用 USB 转串口可以和设备通信,换成屏与设备就通信不上
可能原因:电脑 USB 转串口接到设备上时,使用的是标准串口功能,除了 RX、TX、GND 外,还使用了其他引脚。例如,欧姆龙 PLC 和三菱 PLC 在实际与屏的通信中,可能需要将某些引脚短接。
解决办法:仔细检查设备的说明书,确认是否需要对某些引脚进行短接操作。
可能原因:电脑与控制器或 PLC 通信时,会自动扫描波特率参数并自适应,而屏通信可能没有正确设置参数。在三菱、基恩士等 PLC 中,存在变化波特率进行通信交互的过程。
解决办法:手动设置屏的通信参数,确保与设备的波特率等参数一致。
可能原因:接线方式不正确。有些 DB9 接口需要区分公头和母头,如果不注意,可能会将 TX 接到 TX 上,将 RX 接到 RX 上。
解决办法:仔细检查接线,确保 TX 接对方的 RX,RX 接对方的 TX。
可能补充:有时候使用一些串口助手发送测试数据与控制器通信时,某些串口助手的奇偶校验功能可能不起作用,需要特别注意。
A 家的屏可以和设备通信,换成 B 家的屏就通信不上
可能原因:首先要确认接线是否正确,RX 和 TX 是否兼容。
解决办法:检查接线,确保接线无误,并且 RX 和 TX 能够正常匹配。
可能原因:地线是否没有连接好。
解决办法:检查地线连接情况,确保地线连接牢固。
可能原因:除了 RX、TX、GND 外,是否还有其他引脚需要短接。
解决办法:查阅设备说明书,确认是否有其他引脚需要短接。
可能原因:通信协议是否一致或,波特率是否相同。
解决办法:检查通信协议和波特率,确保两者一致。
以前不接地线可以通信,换个设备为什么需要接地线
这种情况可能是因为有些设备使用了隔离电源。以前不接地可以通信,可能实际上地线已经通过其他方式连接了。而更换了带隔离电源的设备后,两个设备的地是隔离的,就需要在串口上把地线接起来。例如,曾经有客户反馈设备通信不上,后来发现是地线没有连接,而客户表示以前不接地线也能通信。
一个设备是 232,另一个设备是 422,没有转换设备怎么办
当遇到这种情况时,可以采用如下的接线方式将 422 转换为 232 进行通信:把 422 的 Rx + 与 232 的 TX 连接,422 的 RX - 与 232 的 GND 连接;把 422 的 TX + 与 232 的 RX 连接,422 的 TX - 与 232 的 GND 连接。这样,422 设备要发送的数据就可以发送到 232 的 RX 上,而 232 的 TX 发送数据后,由于 TX 和 GND 也形成了差分信号,422 设备就可以接收到数据。
用 232 通信没问题,用 485 通信没问题,使用 232 转 485 之后就通信不稳定
232 和 485 在通信原理上的区别是全双工和半双工的差异。在应用层,发送数据和接收数据并不区分底层是全双工还是半双工,但 485 通信由于是半双工,必须严格保证通路上只能有发送或只能有接收的数据,一旦同时出现发送和接收,数据就会发生冲突。解决的办法是主站设备(即主动发送命令的一方)需要严格控制发送数据命令的节奏。当然,有些 232 转 485 的设备可能已经进行了一定的优化,但主站仍然需要进行控制,例如适当降低通信速率。
要想实现两个屏或两个主站通过 485 访问 modbus 设备,有什么好的办法
在 485 通信中,通常采用一主多从的模式。但在实际应用中,有些客户希望使用两个屏来访问一个 modbus 设备。目前暂时还没有非常的解决方案,后续如果有相关功能推出,我们会及时为大家进行演示操作。
四、串口通信的弱点及应对措施
尽管串口通信具有诸多优点,但也存在一些不足之处,以下是一些常见的弱点及相应的应对措施。
信号干扰问题
建议使用带屏蔽线进行通信,并且接线要严格按照规范进行,例如要确保接地良好。在一些 485 通信中,还可以考虑接上终端电阻来匹配阻抗,以减少信号反射和干扰。如果是 232 通信,尽量避免使用过长的线缆,同时在通信协议上尽量避免长报文的数据通信,因为长报文更容易受到干扰。
波特率匹配问题
由于一些设备计算波特率时存在误差,特别是一些使用不同晶振的控制器,在某些波特率(如 9600 波特率)下可能会出现误差。接收方是通过时间来计算一个位的,如果报文过长,就会存在误差积累的问题,导致数据传输不准确。因此,在使用串口通信时,应尽量避免发送过长的数据包。
校验问题
在一些可能存在干扰的环境中,可以考虑使用奇校验或偶校验。虽然出现错误的可能性较小,但增加校验位至少可以过滤掉错误的报文,避免因数据错误而导致的问题。也可以尽量使用一些带校验的协议,以提高数据传输的准确性。
数据响应速度问题
串口通信本身的速度相对以太网较慢,而且它不像 CPU 那样支持多线程处理。由于数据只能通过一个口和一根线依次传输,即便在应用程序中使用多线程处理数据,底层仍然只有一个口进行数据传输,只能传输一个位或一个字节。因此,在使用串口通信时,用户需要降低对数据响应速度的期望。例如,有些客户在使用 9600 波特率通信时,希望在短时间内得到大量数据的响应,这在串口通信中是难以实现的。
五、为什么不用同步通信
同步通信需要依赖时钟信号,而这个时钟信号通常需要由一个主设备发起。在同步通信中,一般是主设备发起时钟信号来读取从模块的数据,例如 CPU 读取 SD 卡模块或某些传感器模块的数据时,可以采用 SPI 等同步通信方式。而单纯的异步串口通信不存在主从之分,双方处于平等的地位,可以相互发送和接收信息。因此,在一些不需要严格时钟同步的场景中,异步串口通信更为适用。
企业推荐
更多产品推荐
更多企业新闻
更多