
让我首先与您讨论一些串行交流的基本概念和条款。如果您熟悉串行通信,则应查看它。如果您解释是否错误,您也可以按时间指出并将其视为交流。
这不是串行端口编程的解释,而是主要从应用的角度来看。因为更多的产品已经准备就绪,例如触摸屏需要与控制器和PLC进行通信。理想情况下,通信通常可以在没有太多操作和配置的情况下进行。
我在这里列出了一些问题。我稍后将讨论这些问题,以查看是否存在类似情况。也许我们可以交流并共享它们。
1计算机可以使用USB到串行端口与设备进行通信,但是如果将其替换为屏幕,则不会与设备通信。
2该房屋A的屏幕可以与设备通信,但是如果由HOME B的屏幕代替,则不会通信。
3过去,您可以无需接地的电线就可以进行交流。更换设备时,为什么需要接地电线?
4一个设备是232,另一个设备为422。没有转换设备,我该怎么办? (转移232和422的简单方法)
5使用232进行交流没有问题,使用485进行交流没有问题,使用232至485后,通信将是不稳定的。
6 485单独连接每个设备是正常的,并且多个奴隶连接到一条通信是不稳定的。
7。有什么好方法可以通过485来获得两个屏幕或两个主要电台访问modbus设备的电台?
8。响应串行通信的弱点,应注意使用时。
要回答和解决上述问题,您还需要了解哪些串行沟通是232、485、422,等等。
什么是串行沟通
常见的串行通信通常是指异步串行通信。在这里,我们将讨论同步和异步之间的区别。算了,让我们先谈谈串行沟通的概念。那么,连续交流的对立面是什么?
与串行交流相反,是平行的通信。数据传输通常以字节传输,每个字节8位。以平行通信为例,有8条电线,每根电线都有一点代表。一个字节可以一次传输,而串行通信意味着数据传输仅通过一行传输,并且一次只能传输一个位。要传输一个字节,它需要8个传输。就像小虎的歌曲一样,将您的心脏,我的心脏缠绕,然后烧烤……串行交流是在一条线上流式传输数据,因此称为串行。
异步通信的对立面是同步通信。同步通信通常是指数据信号同步的时钟信号。对于接收者,同步通信相对简单。因为时钟信号存在,所以每个高级别和低级别都会发生变化,只需获取数据即可。通信率可以由发件人或主站设备控制。通信速度也比串行端口通信快得多。但是,为什么许多设备,屏幕和PLC不使用此方法并使用串行端口?
然后,在许多设备上,连接太多电线(例如8个数据电缆)并不方便,并且连接到同步时钟信号(将在后面讨论)并不方便,因此诞生了异步的串行通信。
相对而言,异步串行通信只需要一根电线即可发送数据。在速度要求不高的情况下,使用一条线发送数据将带来极大的便利和实用价值。
因此,问题是,我们如何确保电线可以发送正常数据?换句话说,发件人发送的数据,接收器如何知道它是什么数据。为了正常发送数据并接收正确的数据,异步串行通信需要满足以下条件:
也就是说,双方必须就秘密代码达成共识。
也许是这样讨论了发送沟通的小组。
经理:我想使用电线传输数据,请为我设置标准。
研发:好的。
经理:只有一行,我怎么知道数据何时启动?
研发:只有一根电线,默认值是高级别,因此有一个起始位置。当检测到低级别时,发送数据字节。启动位后,首先要传输字节的最低位。
经理:但是,只有一行,数据传递会干扰它吗?犯错很容易。
研发:是的,然后在字节数据之后添加另一个检查位。它可以执行奇怪的验证,甚至验证,1验证,0验证,并且无验证。
经理:嗯,很好。如果存在开始位置,则应该有一个停止位置,因此让我们在背面添加另一个停止位置。
研发:。 。 。 。 。 。 。 。 。
经理:传输一串数据时,另一方如何知道数据分裂?如何根据时间或频率解释数据位,并检查位。
研发:让我们做到这一点,双方都同意波特率,定义每个位花费的时间,以便双方都可以根据此Baud率处理它。
经理:这个比特率。 。 。
研发:老板,这是波特率。
经理:我知道,这是比特率。
研发:这种波特速率意味着1S时钟可以传输多个位,这意味着需要多长时间。这将解决传输问题。
经理:如果数据在传输过程中太快而判断不正确,该怎么办?
研发:然后将停止位置调整为1个停止位置或2个停止位置。这样,您可以停止。
经理:嗯,听起来不错。这样就这样做。
因此,串行沟通是这样的。
就串行端口的通信参数而言,有波特率,数据位,停止位和检查位,以确保串行端口通信的正确性和稳定性。当然,这只是确保串行通信的正确性和稳定性的一个方面,并且不能代表设备之间通信的正确性和稳定性。
串行端口通信主要包括三种方式:232、485和422通信。
这三个区别有什么区别?
232:
232通信主要由三行RX,TX和GND组成。
RX和TX,TX Connect RX,GND连接GND。这更容易理解。由于发送和接收分别由不同的行处理,也就是说,可以同时发送和接收数据,因此称为完整双工。
为了将其扩展在这里,还有另一个称为全功能串行通信的功能,也称为标准串行通信。由于数据传输是在两个设备之间执行的,因此某些设备处理速度更快,并且某些数据较慢。为了确保可以根据RX和TX正常传输数据,添加了几个控制引脚。有三根电线R,T,G和三根电线。毕竟,他们收集了9个别针并召集了它们。 DB9是事。
如果您想责怪这个,当我使用计算机时,这有点责备,我没有Internet的概念,但是我想在两台计算机之间进行通信。这就是为什么有这样的事情。
在后来的设备中,许多控制器,人体计算机界面,PLC等都使用了串行端口通信,基本上没有使用标准串行端口,而是直接使用RX,TX和GND进行通信。
但是为什么在这里提到这一点?因为只是许多设备使用这种方式,所以仍然有一些设备保留标准串行端口的功能。这就是为什么您会清楚地遇到计算机通信的原因,但是如果您更改触摸屏幕通信,它将无法使用。由于许多触摸屏仅使用RX,TX和GND通信,因此遇到一些仍然保留标准串行端口功能的东西更令人讨厌。
485:
485是解决232个通信距离的问题。我不会谈论原则和其他原则。无论如何,232沟通距离不长。 485主要用于带有差分信号传输,只有两条线, +和 - 两条线,也称为A和B。两条A和B的差分信号作为数据信号传输。所以问题是,RX和TX没有概念吗?是的,发送和接收不能分开。发送和接收的均取决于这两个线程进行传输,也就是说,它们只能每次发送或接收。这是半双链的概念,就效率而言,它比232弱得多。就像对讲机一样,有人经常在结束演讲后要结束说,确保他已经完成讲话并等待对方回答。
这就是485牺牲232个完整双工的效率以达到其自身传输距离的价格的方式。因此,有什么方法可以保留232的完整双链体并像485一样增加变速箱距离?所以422出来了。
422:
422,有些标记为485-4。 485标记为485-2。有什么区别?这只是为了简单的记忆。 485-2是2行。 485-4是4行。
422表示将232的RX分为两行RX+,RX-和TX分为TX+,TX-。这样,它可以同时发送和接收,并且也可以像485这样的传输距离更长。但是,为什么不使用这种通信方法很多呢?我个人的回答和理解是:线太多。特别是对于像我这样懒得连接电线的人,如果有3条以上的电线,他们会感到头晕。要进行交流,您仍然需要连接这么多线,例如TX,RX,正面和负面。交换交换。
因为在许多设备通信中,它基本上是一种问答类型,因此实际上并未施加232的全双工通信的优势。就像现在打电话时一样,尽管两个人可以同时交谈,但他们正在同时聊天,谁知道该说些什么。尤其是当主站与多个从站通信时,485的接线更加方便。无论如何,每个人都只有两条电线,连接 +和 - 一根。如果它是一个422,它是一个主人和多个奴隶,则需要很长时间才能处理连接,并且解决异常沟通并不容易。
好的,串行通信在这里基本上很受欢迎。让我与您分享以下简要介绍上述问题:
1计算机可以使用USB到串行端口与设备进行通信,但是如果将其替换为屏幕,则不会与设备通信。
1)计算机USB到串行端口可能连接到设备,并且使用了标准的串行端口函数,也就是说,除了RX,TX和GDN之外,还使用了其他引脚。例如,在与屏幕的实际通信中,需要短短一些引脚。
2)当计算机与控制器或PLC通信时,它会扫描自适应的波特率参数,并且屏幕通信参数可能不如设备好。在三菱,Keenx等诸如PLC中,有一个更改通信和互动的波特率的过程。
3)也可能是接线方法不正确。因为某些DB9也需要雄性和女性头。如果您不关注,将TX与TX和RX连接到RX,将有一些注意。
4)我想在这里补充说,有时可能会使用一些连续助手发送测试数据与控制器进行通信。一些连环助手的均等无效。我想提醒你。
2该房屋A的屏幕可以与设备通信,但是如果由HOME B的屏幕代替,则不会通信。
1)首先,确认接线是否正确以及RX和TX是否兼容。
2)是否没有连接接地线。
3)除RX,TX和GND外,还有其他需要短路的引脚。
4)通信协议是一致的还是不完整的,以及波特率是相同的。
3过去,您可以无需接地的电线就可以进行交流。更换设备时,为什么需要接地电线?
这个问题类似于上一个问题。因为某些设备使用孤立的电源。过去,沟通是可能的,而无需扎根。接地线可能已经连接到另一个环上的地面,并且实际的接地线已连接,因此可以启用通信。也许如果您更改为孤立的电源,则隔离了两个设备的地面,因此您需要连接串行端口上的接地线。我自己经历了这个。客户总是说他的设备无法交流。后来,我拍了一张照片,给了我。他的地线没有连接。他说,过去他可以在没有地面的情况下进行交流。所以我给了他一些流行的科学。
4。一种设备是232,另一个设备为422。如果没有转换设备,我该怎么办?
(转移232和422的简单方法)
我遇到了这种情况。客户的设备是422个通信,但我手上没有422个设备,只能测试232个通信。因此,有必要将422转换为232进行通信。
我刚刚谈论了422和232的接线,因为两者都是完整的双链体,并且都分布了接收和传输,而422仅通过差分信号传输。
将422的RX+连接到232的TX,Rx-422的RX+将RX+连接到232的GND。
将422的TX+连接到232的RX,然后将422的Tx-连接到232的GDN。
通过这种方式,422设备想要将数据发送到232的RX。在232的TX发送数据之后,因为TX和GND还形成了向422、422的差分信号,可以接收数据。
5使用232进行交流没有问题,使用485进行交流没有问题,并且在使用232至485之后,通信将不稳定。就通信原则而言,232和485之间的最大差异是完整的双工之间的差异和半复式。但是,该应用程序层发送并接收数据,无论其是全双工还是下面的半封面。
但是必须照顾485。因为由于它是半封面,因此有必要严格确保只能在频道上发送或接收到数据。一旦发送和接收,数据就会发生冲突。因此,解决方案是针对主站点设备,即主动命令的方需要严格控制发送数据命令的节奏。当然,更好地完成了大约232至485个设备,因此您可以优化它,但是主站仍然需要控制它并调整较慢的通信率(而不是调整BAUD速率)。
6。有什么好方法可以通过485来实现两个屏幕或两个主要电台访问modbus设备?在485沟通中,它基本上是一个主人和多个奴隶。但是,在一些实际使用它的客户中,一些客户想使用两个屏幕访问Modbus设备。还没有好的解决方案。此功能发布后,让我们向您展示操作。
7。响应串行通信的弱点,应注意使用时。说到连续交流的弱点,这将是一个长话。但是,让我们讲一个长话。
1)信号干扰问题。
建议使用屏蔽电线,并且应严格地进行接线,例如接地。在大约485个通信中,还认为将端子电阻连接到匹配。如果是232,请尽量不要使线路太长。尝试避免在通信协议中避免长音数据通信。
2)波特率匹配问题。
因为某些设备计算出的波特率中有错误,尤其是某些控制器,因为所使用的晶体振荡器不同。因此,某些波特率(例如9600波特率)存在错误。错误的影响是什么?因为接收器会按时间计算一点。然后,如果消息太长,则会存在错误的问题,并且计算将是偏差的。因此,这也是串行通信不稳定的某些地方。使用时,您应该注意以避免发送数据包的数据太长。
3)在某些情况下,可能会考虑干扰的情况,在某些情况下,可以考虑奇数甚至检查。因为尽管遇到错误的可能性很小,但由于存在干扰,如果添加了验证,至少可以将错误消息滤出。就像没有检查,然后通信数据是错误的,我不知道。或尝试使用一些具有验证的协议来防止数据错误。
4)串行端口通信已经很慢,请减少数据响应的要求。
因为串行通信本身比以太网慢。此外,串行通信不像CPU那样多线程。因为数据只是一个端口和一行,无论在将数据应用于程序时使用多少线程来处理数据,底部只有一个端口,您一次只能传递一个位和一个字节。由于某些客户使用的波特率为9600,因此他们希望可以以毫秒响应多少数据。但是,串行沟通仍然需要事实,因此正确理解串行沟通对应用程序,开发和沟通有很大帮助。
好吧。这是关于串行端口通信的对话的结束。为什么不同步沟通?如前所述,同步通信需要依靠时钟信号。有一个问题,谁发起了这个时钟信号。在同步通信中,通常需要使用主设备来启动时钟信号以读取从模块的数据。实际上,有一个屏幕读取PLC,并且有一个屏幕读取屏幕的数据。从单独的串行通信的角度来看,没有主人或奴隶。双方都是同等的角色,可以互相发送信息并相互接收信息。同步通信通常用于CPU读取一些模块,并且CPU启动了时钟信号。例如,可以通过SPI和一些传感器模块来读取SD卡模块。