传感器是232 一篇文章给你说明白有关串口通信(232,485,422)和常见问题
一篇文章给你说明白有关串口通信(232、485、422)和常见问题
今天我们来讲讲串口!首先我们讲讲串口通信的一些基本概念,术语。如果有对串口通信比较熟悉的朋友,咱就当复习,如果小编哪里讲的不到位,欢迎大家及时指出~提醒!今天我们不对串口的编程作讲解,主要是从应用的角度讲一讲。因为更多时候,都是产品做好了的情况下,比如触摸屏需要和控制器,PLC通信。理想的情况下,一般只要一上电,不需要太多的操作和配置,就可以通信上。本文的后半部分罗列了一些相关问题,在解答前还需要先了解一下什么是串口通信,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这样,有较远的传输距离。可是这样一种很有优势的通信方式,为什么用的不多呢。我个人的答案和理解就是:线太多了。特别是像我这样懒得接线的人,超过3根线就头晕的。搞个通信还需要接这么多线,什么TX,RX,正啊负啊。交换来交换去。
因为在很多设备通信中,基本上是属于一问一答式的,因此,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方式,还有一些传感器模块。
今天有关串口通信的问题就讲到这了,不知道大家都整明白没有?欢迎大家多评论转发收藏~
气体传感器RS485与RS232关联与区别
经常有问题问到气体传感器 输出信号可以是RS485还是RS232,其实传感器本身输出的是电流或者电压信号,想要是485或者232输出,需要自行接转化板即可实现。那么,气体传感器常见的RS485是怎样一种特性及技术参数都有哪些呢?
气体传感器RS485输出信号特性及参数概括:
1.RS485的电气特性:逻辑“0”以两线间的电压差为+(2—6)V表示;逻辑“1”以两线间的电压差为-(2—6)V表示。接口信号电平比RS232降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。
2.RS485的数据最高传输速率为1Mbps。
3.RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。
4.RS-485接口的最大传输距离标准值为4000英尺,实际上可达1219米,另外RS232接口在总线上只允许连接1个收发器,即单站能力。而RS485接口在总线上是允许连接多达128个收发器。即具有多站能力,这样用户可以利用单一的RS485接口方便地建立起设备网络。
总结,因为RS485接口组成的半双工网络,一般只需二根连线(一般叫AB线),所以RS485接口均采用屏蔽双绞线传输。RS485特点:接口简单,组网方便,传输距离远,一般常用于工业控制场所。
气体传感器RS485与气体传感器RS232关联与区别:
RS485和RS232一样都是基于串口的通讯接口,数据收发的操作是一致的,所以使用的是同样WinCE的底层驱动程序。
但是它们在实际应用中通讯模式却有着很大的区别,
RS232接口为全双工数据通讯模式,而RS485接口为半双工数据通讯模式,数据的收发不能同时进行,为了保证数据收发的不冲突,硬件上是通过方向切换来实现的,相应也要求软件上必须将收发的过程严格地分开。
RS485接口组成的半双工网络,一般是两线制,多采用屏蔽双绞线传输。这种接线方式为总线式拓扑结构在同一总线上最多可以挂接32个结点。
在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。
很多情况下,连接RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。
RS485接口连接器采用DB-9的9芯插头座,与智能终端RS485接口采用DB-9(孔),与键盘连接的键盘接口RS485采用DB-9(针)。
另有一个问题是信号地,上述连接方法在许多场合是能正常工作的,但却埋下了很大的隐患,原因有二 :
(1)共模干扰问题:RS485接口采用差分方式传输信号,并不需要相对于某个参照点来检测信号,系统只需检测两线之间的电位差就可以了。但人们往往忽视了收发器有一定的共模电压范围,RS485收发器共模电压范围为-7~+12V,只有满足上述条件,整个网络才能正常工作。当网络线路中共模电压超出此范围时就会影响通信的稳定可靠,甚至损坏接口。
(2)EMI(电磁兼容性)问题:发送驱动器输出信号中的共模部分需要一个返回通路,如没有一个低阻的返回通道(信号地),信号中的共模部分就会以辐射的形式返回源端,整个总线就会像一个巨大的天线向外辐射电磁波。
由于PC机默认的只带有RS232接口,有两种方法可以得到PC上位机的RS485电路:
(1)通过RS232/RS485转换电路将PC机串口RS232信号转换成RS485信号,对于情况比较复杂的工业环境最好是选用防浪涌带隔离栅的产品。
(2)通过PCI多串口卡,可以直接选用输出信号为RS485类型的扩展卡。
相关问答
RS 232 转485有源隔离和无源不隔离的区别是什么?隔离就是两个系统通过电路连接时向互不干扰电气间不联系,防止相互干扰和损坏。不隔离时,两个系统之间有电气联系。易相互干扰和损坏。隔离器类型隔离器可分...
传感器 的接线类型和方式有哪些?传感器的接线类型和方式因传感器类型和应用不同而有所不同。下面列出一些常见的传感器接线类型和方式:1.模拟信号输出型传感器:这种传感器的电路输出的是模...
PLC的宏里没有输入输出,PLC的RS 232 模块接的 是传感器 ,触摸屏没有数值显示?1、首先触摸屏里面选择的设备一定要和你的设备一致2、宏参数不是必须的,但是地址是必须要的3、通讯接口和协议务必要一致满足以上即可1、首先触摸屏里面选...
如何快速的区别称重 传感器是 数字式的还是模拟式?一般来说数字式的称重传感器会标明向电路提供的信号类型,如RS232、RS485、TTL等。如果标明的是电源信号、模拟量输出等,则可以说明这是一个模拟式的称重传感器...
232 串口服务器的配置与连接调试?1.首先,需要将232串口服务器连接到需要远程控制的串口设备上,如PLC、传感器等。连接时需要注意串口的波特率、数据位、校验位、停止位等参数是否一致。2.接...
什么是电子地磅 - 小立早同学 的回答 - 懂得电子地磅,采用桥式传感器和专用称重仪表,可显示日期时间,车号及皮重毛重,货号序号,称重数据储存,断电保护,各类统计表及磅单打印,Rs232或485接口,可...
ai机器视觉识别系统的 传感器是 什么?视觉传感器特性分析:在探测子系统硬件平台中,VCM50主要用于对目标图像的采集和对采集图像的降噪与压缩预处理,其主要特点如下:①摄取图像最高每秒达100帧。...
西门子EM 232 模块与电动阀的接线上海陶达机电工程有限公司提供的电动阀DN20电动阀电动二通阀上海电动二通阀西门子款的价格是75元/个,开关式电动二通阀应用于中央空调风机盘管冷水、热水的通断...
RS 232 通信协议在智能家居有什么用途?RS232通信协议在智能家居领域有以下用途:1.控制设备:RS232通信协议可以用于控制智能家居设备,例如打开或关闭灯光、调节温度、控制窗帘等。2.数据传输:RS23...
激光位移 传感器 和Labview之间通信的问题_汽配人问答[最佳回答]关于激光位移传感器的输出信号怎样与计算机通信的问题传感器一般都会有RS232通讯接口,使用VISA建立通讯就OK了,读取后为字符串,使用格式子VI转换浮...