首页 > 试题

什么是波特率

更新时间:2022-11-28 06:34:44 阅读: 评论:0

中职免费教学资源网-哪里的拼音


2022年11月28日发(作者:工程力学课后习题答案)

串⼝通信(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⽅式,还有⼀些传感器模块。

本文发布于:2022-11-28 06:34:44,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/88/37524.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:波特率单位
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图