首页 » 互联网 » 一篇文章给你说明白有关串口通信(232、485、422)和常见问题_通讯_串口

一篇文章给你说明白有关串口通信(232、485、422)和常见问题_通讯_串口

乖囧猫 2024-12-20 01:11:52 0

扫一扫用手机浏览

文章目录 [+]

本日我们来讲讲串口!
首先我们讲讲串口通信的一些基本观点,术语。
如果有对串口通信比较熟习的朋友,咱就当复习,如果

什么是串口通信?常见的串口通信一样平常是指异步串行通信。

这里就要说一下同步和异步的差异了。

一篇文章给你说明白有关串口通信(232、485、422)和常见问题_通讯_串口 一篇文章给你说明白有关串口通信(232、485、422)和常见问题_通讯_串口 互联网

先讲一下串行通信的观点。
那么,与串行通信相对的是什么呢?

一篇文章给你说明白有关串口通信(232、485、422)和常见问题_通讯_串口 一篇文章给你说明白有关串口通信(232、485、422)和常见问题_通讯_串口 互联网
(图片来自网络侵删)

与串行通信相对的是并行通信。
数据传输一样平常都因此字节传输的,一个字节8个位。
拿一个并行通信举例来说,也便是会有8根线,每一根线代表一个位。
一次传输就可以传一个字节,而串口通信,便是传数据只有一根线传输,一次只能传一个位,要传一个字节就须要传8次。
就像小虎队那首歌一样,把你的心,我的心,串一串,再烤一烤。

串口通信便是把数据串在一根线上传输,以是就叫串口吧。

与异步通信相对的便是同步通信了。
同步通信一样平常是指有一个时钟旗子暗记进行数据旗子暗记同步。
同步通信对吸收方来说就相对大略一些。
由于有时钟旗子暗记在,每一个高低电平变革一下,就去取一下数据就行了。
通信速率可以由发送方或者说是主站设备进行掌握。
通信速率也相比拟串口通信快很多。
但是为什么很多设备,屏和plc,掌握器不采取这种办法,都利用串口呢。

那么,在很多设备上,未便利接太多线,比如接8根数据线,也未便利接同步时钟旗子暗记(这个后面再说),于是一种异步串行通信就出身了。

相对来说,异步串口通信,就只须要一根线就可以发送数据了。
在对速率哀求不高的情形,利用一根线发送数据是带来大大的方便和实用代价的。

那么问题来了,怎么样才能担保一根线就能发送正常的数据呢。
也就说发送方发送的数据,吸收方是怎么知道是什么数据呢。

为了能正常发送数据和吸收精确的数据,那异步串口通信就须要知足以下几个条件:

也便是双方必要约定一种暗号。

大概当时发送这个通信的小组是这样谈论的。

经理:我要用一根线就能传输数据,你来给我定个标准。

研发:好。

经理:只有一根线,我怎么知道数据什么时候开始呢。

研发:就一根线,默认是高电平,那就有一个起始位吧。
当检测到有低电平的时候,便是开始有一个字节的数据发送了,起始位之后,先是字节的最低位,传送一个字节。

经理:可是,就一根线,过来的数据会不会有滋扰,随意马虎出错呀。

研发:行呀,那就在字节数据后再加一个校验位。
可以作奇校验,偶校验,1校验,0校验,无校验。

经理:嗯 ,很不错。
有起始位就该当有停滞位,那我们就再加个停滞位在后面吧。

研发:。








经理:传输一串数据,对方要怎么知道数据的拆分呢,怎么按韶光或频率去解读数据位,校验位呢。

研发:这样吧,双方约定一个波特率吧,定义一个每个位占用多长的韶光,这样双方按这个波特率就可以处理了。

经理:这个比特率呀。


研发:老板,是波特率。

经理:我知道,是比特率嘛。

研发:这个波特率呢,是指1S钟可以传输多个位,也就知道一个位占用多永劫光。
这样就办理传输的问题了。

经理:那万一传输过程,数据快太,判断失落误停不下来怎么办。

研发:那就把停滞位可以调节为1个停滞位或者2个停滞位。
这样就可以停下来了。

经理:嗯,听着不错。
就这样办吧。

于是,串口通信就这样出来了。

在串口的通信参数上,就有了波特率,数据位,停滞位,校验位这几个参数来确保串口通信的精确性和稳定上。
当然,这只是某个方面担保串口通信的精确性和稳定性,不代表设备间通信的精确性和稳定性。

串口通信紧张为分232,485,422 通信三种办法。

这三种有什么差异呢。

232:

232 通信紧张是由RX,TX,GND三根线组成。

RX与TX,TX接RX,GND接GND。
这样还是比较好理解吧。
由于发送和吸收分别是由不同的线处理的,也便是能同时发送数据和吸收数据,这便是所谓的全双工。

在这里扩展一下,串口通信还有一个功能叫做全功能串口通信,也叫标准串口。
由于在两个设备间进行数据传输,有些设备处理速率比较快,有些数据比较慢。
为了担保数据能正常传输,在RX,TX的根本上,还增加了几个掌握引脚,本来好端端就R,T,G,三根线,凑着就凑齐了9个引脚,召唤出了DB9这个东西。

这要怪就怪当时利用电脑的时候,还没有互联网这个观点,但是又想在两台电脑间进行通信。
以是才有这样一个东西。

在后来的设备,很多掌握器,人机界面,PLC等利用串口通信中,基本上就不该用标准串口,而是就直策应用RX,TX,GND三根线来通信了。

但是这里为什么要提到这个呢。
由于只是很多设备这样用,也便是还存在少数设备还保留了标准串口的功能。
这便是为什么会碰着明明电脑通信是好的,换成触摸屏通信就弗成了。
由于很多触摸屏只利用了RX,TX,GND通信,碰着一些还保留标准串口功能的就比较讨厌了。

485:

485是为理解决232通信间隔的问题。
事理什么之类的就不多讲了。
反正232通信间隔便是不长。
485紧张因此一种差分旗子暗记进行传输,只须要两根线,+,-两根线,或者也叫A,B两根线。
A,B两根线的差分电平旗子暗记便是作为数据旗子暗记传输。
那么问题来了,那是不是就没有RX和TX的观点了。
是的,发送和吸收就不能分开了。
发送和吸收都是靠这两根的来传输,也便是每次只能作发送或者只能作吸收,这便是半双工的观点了,这在效率上就比232弱很多了。
就像对讲机一样,常常是某个人讲完之后,都要说一个over,确保当前说完了,等待对方回答。

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这样,有较远的传输间隔。
可是这样一种很有上风的通信办法,为什么用的不多呢。
我个人的答案和理解便是:线太多了。
特殊是像我这样

由于在很多设备通信中,基本上是属于一问一答式的,因此,232的全双工通信上风实在也并没有发挥出来。
就像现在打电话,虽然两个人可以同时说话,但是两个人同时说话,叽叽歪歪的,谁知道说什么呀。
特殊是一个主站与多个从站通信的时候,485的接线就就方便多了,反正大家就两根线,把+都接一块,把-都接一块。
如果是422作一主多从,接线上还要理半天呢,而且通信非常了也不好办理。

好了,串口通信基本就遍及到这里吧。
下面就对刚上提到的问题进行讲一讲。

1、 电脑利用USB转串口可以和设备通信上,换成屏与设备就通信不上了?

1)有可能电脑USB转串口接到设备上,利用的是标准串口功能,也便是除了RX,TX,GDN外,还利用了其它引脚。
比如像欧姆龙PLC,三菱PLC,在实际与屏的通信中,就须要接某些引脚短接的情形。

2)电脑与掌握器或PLC通信时,是扫描波特率参数,自适应的,屏通信可能参数没有设备好。
在三菱,基恩士等PLC,就存在变革波特率进行通信交互的过程。

3)也有可能是接线办法不对。
由于有些DB9,还须要公头,母头。
如果不把稳的话,也会存在把TX接到TX上,把RX接到RX上,这样须要把稳的地方。

4) 在这里补充一下,有时候可能会利用一些串口助手发送测试数据与掌握器通信,有些串口助手的奇偶校验是不起浸染,这个要提醒一下。

2、 这A家的屏可以和设备通信,换成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接,422的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的设备做的比较好了,可以优化这个,但是主站还是要掌握,比较把通信速率调节慢一些(不是调节波特率)。

6、 485单独接每个设备都通信正常,多个从站接一块通信就不稳定?

这个是属于485通信的不稳定成分了。

7 、要想实现两个屏或两个主站通过485访问modbus设备,有什么好的办法?

在485通信中,基本上是一主多从。
但是碰着一些客户实际利用中,有客户想用两个屏来访问一个modbus设备的。
目前暂时还没有好的办法。

8、 针对串口通信的弱点,在利用上该当要把稳哪些地方?

说来串口通信的弱点,那就说来话长了。
不过还是长话短说吧。

1)旗子暗记滋扰的问题

建议利用带屏蔽线,接线要严格,比如要接地。
有些485通信上,还考虑接上终端电阻来匹配。
如果是232,只管即便不要让线太长。
通信协议上只管即便避免长报文的数据通信。

2)波特率匹配的问题

由于有些设备的打算的波特率是存在偏差的,特殊是一些掌握器,由于利用的晶振不一样。
因此在一些波特率比如9600波特率就存在偏差。
存在偏差带来的影响是什么呢。
由于吸收方是通过韶光来打算一个位的。
那么如果一个报文过长,就会存在偏差积累的问题,算着算着就偏了。
以是,这也是串口通信不稳定的一些地方,在利用上应把稳避免发送太长数据的包。

3)在一些可能会存在滋扰的情形,在有的选的情形,可以考虑利用奇校验或者偶校验。
由于虽说涌现缺点的可能性不大,但既然存在滋扰,如果加了校验,至少可以把缺点的报文过滤掉。
总好比没有校验然后通信数据错了不知道。
或者只管即便利用一些带校验的协议,防止数据出错。

4)串口通信本来就比较慢,请降落对数据相应的哀求。

由于串口通信本身就比以太网慢。
而且,串口通信并不是能像CPU那样多线程处理。
由于就一个口一个线数据出去,即便你运用到程序再怎么用多线程处理数据,但是最底下也只有一个口出去,一次也只能传一个位,一个字节过去。
由于有客户在利用9600的波特率通信,但是又希望多少的数据可以在多少毫秒内得到相应。

但是串口通信还是要事实求是,以是精确认识串口通信对运用,对开拓,对沟通都有着很大的帮助的。

为什么不用同步通信呢?

刚才提到,同步通信须要依赖于时钟旗子暗记。
这就存在一个问题,这个时钟旗子暗记是谁来发起呢。
在同步通信中,每每须要一个主设备发起时钟旗子暗记读从模块的数据。
在实际中,有屏读PLC,有屏读屏的数据。
而纯挚地从异步串口通信来说,是没有主从之说,双方都是平等的角色,都可以互发信息,互收信息。
而同步通信一样平常是运用于CPU读一些模块,由CPU发起时钟旗子暗记,比如读SD卡模块,就可以通过SPI办法,还有一些传感器模块。

本日有关串口通信的问题就讲到这了,不知道大家都整明白没有?欢迎大家多评论转发收藏~

标签:

相关文章