什么是232\485\422通讯?串口通信常见问题

Ⅰ.什么是串行通信?

一次只能传输一行数据,使用串行通信一次只能传输一位。一个字节必须传输八次才能被接收。串行通信是指通过单根导线传输数据字符串,这就是它被称为串行端口的原因。

在速率要求不高的情况下,通过单线发送数据是极其方便实用的。

异步串行通信需要以下所示的格式,以便以正常方式发送和接收正确的数据。

图1

串口的通信参数中有多种参数,包括波特率、起始位、 数据位、奇偶校验位和停止位。

二.232\485\422通讯有什么区别?

串口通讯主要分为232、485、422三种通讯方式,这三种有什么区别呢?

01232 通讯

图2

RX、TX、 GND 是构成232通信的三根线。TX 连接到 RX,RX 连接到 TX, GND 连接到 GND,在这种情况下,发送和接收由单独的线路处理,允许同时传输和接收数据,这种技术称为全双工通信。

详细来说,全功能串行通信也称为标准串口,是串行通信的另一个功能。由于两个设备之间的数据流,某些设备处理数据的速度比其他设备更快。在RX和TX的基础上增加了几个控制引脚,以保证数据的正常传输,最后增加了9个引脚,即常见的DB9,如下图所示。

图3

现在很多控制器、人机界面、PLC等设备都不再使用传统的串口进行串行通信,而是使用RX、TX、 GND三根线。

02485 通讯

图4

485是为了解决232通讯距离短的问题而诞生的。

  • 和 - 两条线,通常称为 A 和 B 线,是 485 通信所需的全部。作为数据信号,传送两条线路A和B的差分电平信号。由于这两根线同时用于发送和接收,因此它们一次只能用于其中一种功能。因此,485 是一种半双工通信模式。

这就是232全双工如何牺牲效率来实现其远传输距离的代价。

03422 通讯

422的出现是为了实现232的全双工通信方式,同时也将传输距离增加到485。422也称为485-4,而485则称为485-2。下图是422的示意图,因为485-2是两线,485-4是四线。

图5

422是把232的RX分成两根线, RX+ 和RX-,TX分成TX+和TX-的结果 。这允许您同时发送和接收数据,并且具有长达 485 的更长传输距离。但是,这种有益的通信策略很少使用。232 和 485 是最常用的。

三.有关串行通信的常见问题

1、电脑使用USB转串口可以与设备通讯,但换成屏幕就无法与设备通讯?

1)有可能电脑的 USB 转串口是使用常规串口功能链接到设备的,也就是说除了RX、TX、GDN之外还使用了其他引脚。例如,欧姆龙 和 三菱PLC上的某些引脚 必须短路才能与屏幕通信。

2)计算机与控制器或PLC通讯时扫描波特率参数,自适应屏通讯可能参数比设备少。在 Mitsubishi 和Keyence等 PLC 中,有一个更改通信交互波特率的程序 。

3)另一种可能是使用的接线方法不当。因为某些 DB9 需要公头和母头。不注意的话会有TX与TX相连、RX与RX相连的位置,所以要注意。

  1. 需要注意的是,有时可能会利用一些串行助手向控制器发送测试数据。请提醒我,因为某些串行助手的奇偶校验不起作用。

2、A家的屏幕可以与设备通信,B家的屏幕却无法通信?

  1. 检查接线是否正确,RX 和 TX 是否兼容。

  2. 检查地线是否连接。

3)除了RX、TX、 GND之外,还有其他引脚需要短接吗 ?

4)通讯协议是否齐全或不一致,以及波特率。

3、以前不需要地线就可以通讯。为什么需要更换另一台设备的地线?

由于某些设备采用隔离电源,因此该问题与上一问题类似。以前不用接地也可以通讯,但有可能已经接了地线,可以通讯了。可以更换为隔离电源,并且由于两个设备的地是隔离的,所以串口上的地线必须连接。

4、一个设备是232,另一个是422,没有转换设备,怎么办?

因为这两个是全双工的,接收和发送是分开的,而422只是作为差分信号来传输,所以刚才也提到了422和232的接线。

将422的RX+连接 到232的TX,将422的RX-连接到232的 GND,

将422的TX+连接到232的RX,将422的TX-连接到232的GDN。

如果 422 设备想要传送数据,可以通过将其发送到 232 的 RX 来实现。由于TX和 GND 对422产生差分信号,232的TX发送数据后422即可接收数据。

5、232通讯没问题,485通讯没问题,用232转485后,通讯不稳定?

232和485在通信概念上最大的区别就是全双工和半双工的区别。另一方面,应用层以全双工或半双工模式发送和接收数据。

但是,485必须处理。由于它是半双工的,因此必须确保只有发送或接收的数据才能通过该路径。如果同时启用发送和接收,数据将会发生冲突。因此,主站设备或者主动指挥方必须严格管理数据命令的发送频率。当然,某些232到485的设备比较好,这个可以改进,但是主站还是要控制,改变通讯速率比较迟缓。

  1. 实现两屏或两个主站通过485访问Modbus设备的最佳方式是什么?

485通信本质上是一个主站和多个从站。另一方面,一些客户在实践中更喜欢使用两个屏幕来访问 Modbus 设备。目前没有可行的选择。

  1. 串行通讯的缺点?
  1. 处理信号干扰时,最好使用绝缘电缆并遵守严格的接线准则,例如接地。在某些 485 通信中还考虑连接终端电阻以进行匹配。如果号码是 232,请保持简短。通信协议中尽量避免大消息的数据交换。

  2. 波特率匹配问题 由于使用的不同晶振会导致某些设备(尤其是控制器)计算的波特率不准确。因此,在某些波特率下,例如 9600 波特,会出现错误。错误的存在会产生什么影响?因为接收方是进行逐位计算的。如果消息太长,就会出现错误累积,计算就会出现偏差。因此,有些地方串行通信不可靠,应注意防止传输数据很长的数据包。

  3. 在某些可能存在干扰的情况下,您可能需要考虑使用奇校验或偶校验,因为虽然出错的可能性较低,但如果添加奇偶校验,至少可以过滤掉错误的数据包。失去。就好像没有验证,然后通讯数据不正确,我就不知道该怎么办了。为了避免数据错误,请尝试使用带有校验和的协议。

4)串行通信本来就很慢;因此,请限制数据响应要求,因为串行传输比 以太网慢。另外,与CPU不同,串行传输不是多线程的。即使应用到软件上,如何利用多线程来处理数据,最底层也只有一个端口,由于数据是从一个端口发出来的,一次只能传一位和一个字节。和一行。因为有的客户采用9600波特率通信,多少毫秒可以处理多少数据?

然而,串行通信必须是现实的,因此透彻理解该协议有利于应用程序的开发、测试和通信。

  1. 为什么不使用同步通信?

如前所述,同步通信取决于时钟信号。谁发起这个时钟信号是一个问题。在同步通信中,主设备经常需要发起时钟信号,以便读取从模块的数据。实际中有读屏PLC和读屏数据。异步串口通信没有主从关系;双方角色平等,可以互相传输和接收数据。CPU使用同步通信来读取一些模块,CPU开始时钟信号,比如读取SD卡模块(可以通过 SPI完成 )和一些传感器模块。

相关推荐
汇能感知8 分钟前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
阿巴Jun32 分钟前
【数学】线性代数知识点总结
笔记·线性代数·矩阵
茯苓gao1 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾1 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT2 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
ST.J2 小时前
前端笔记2025
前端·javascript·css·vue.js·笔记
Suckerbin2 小时前
LAMPSecurity: CTF5靶场渗透
笔记·安全·web安全·网络安全
明达智控技术3 小时前
MR30分布式I/O模块在化工行业的应用
物联网·自动化
双翌视觉3 小时前
机器视觉的手机柔性屏贴合应用
智能手机·自动化·视觉检测·机器视觉
小憩-3 小时前
【机器学习】吴恩达机器学习笔记
人工智能·笔记·机器学习