422转232模块,115200的波特率,会出现丢帧的问题吗?

[复制链接]
6007|23
手机看帖
扫描二维码
随时随地手机跟帖
许世霞|  楼主 | 2018-6-21 19:32 | 显示全部楼层 |阅读模式
目前我测得一个产品是422信号,我把422信号转 成232信号,用串口助手采集数据,发现有丢好几百帧的现象。这个产品是别人的。现在对方就说是我的采集模块有问题。说硬件丢数是常有的事儿。我也开始怀疑人生了。凭着这么多年的经验,感觉电平转换模块丢数据可能性很小。不然我们做产品还怎么做呢?大家帮我分析分析

相关帖子

tjlwl| | 2018-6-22 00:22 | 显示全部楼层
情况一有可能是你转换模块的问题,但115200就丟帧,一般最差的转换器也不应该。情况二电脑问题,检查电脑接口。情况三,你的上位机接收串口助手的问题,有可能助手接收不过来造成数据丟帧,也有可能是助手显示问题,实际没有丢帧,但显示界面上刷新不过来,一些数据没有显示出来,认为丟帧了。

使用特权

评论回复
许世霞|  楼主 | 2018-6-22 07:00 | 显示全部楼层
情况三:看丢帧肯定不是盯着屏幕看了。

使用特权

评论回复
handlike| | 2018-6-22 08:46 | 显示全部楼层
降低速率到 9600bit/s  试试。

使用特权

评论回复
coody| | 2018-6-22 12:27 | 显示全部楼层
有线通信,哪那么容易丢帧,仔细检查程序。115200bps,86.8us一个字节(一位停止位,无校验),对于现在的MCU来说,很长的间隔了。

使用特权

评论回复
评论
许世霞 2018-6-22 14:12 回复TA
对方也不查程序哦,已经下定论是硬件采集电路造成的哈哈。也怀疑串口助手 
123987| | 2018-6-22 13:11 | 显示全部楼层
我感觉到99.9%是二楼讲的第三种情况,软件设计的不好。115200bps真的是比较低的速度了。稍微靠谱点的国产芯片也该没问题的吧。

使用特权

评论回复
评论
许世霞 2018-6-22 14:13 回复TA
串口助手有那么衰吗?我用的广为流传的版本 
cjseng| | 2018-6-22 13:25 | 显示全部楼层
发送和接收端波特率不同步造成的吧。

使用特权

评论回复
评论
cjseng 2018-6-22 14:49 回复TA
@许世霞 :波特率有误差,大数据量传输时就会丢数据,或者字节出错,每次发字节传输就没问题。就是把数据的bit位当成起始位或停止位了。 
许世霞 2018-6-22 14:10 回复TA
不同步你连数据都接收不对。 
ddlxiaoxu| | 2018-6-22 16:59 | 显示全部楼层
如果用的是usb转232丢帧正常    电脑上本身带的232接口也会丢帧只不过会少的很多!

使用特权

评论回复
ningling_21| | 2018-6-22 19:21 | 显示全部楼层
换个串口助手试试,换个电脑试试,换个422转232试试

使用特权

评论回复
QuakeGod| | 2018-6-24 00:27 | 显示全部楼层
偶用两个stm32F103c8t6单片机,用串口2通过MAX485(最大2.5Mbps)转换后,用2米长双绞线互联,单工通讯,最大波特率2.25Mbps互发数据,进行压力测试,
在满速的时候(DMA方式发送和接收),可以测得通讯数据速率正好225000字节每秒,连续8小时,没有丢一个位,这边发送字节计数和那边接收字节计数相等,不过485芯片微热,大概有60度吧。
后来改成,半双工,加上协议,两机一主一从,以16字节包长Ping和Echo(带数据校验).测得通讯速率约80K字节每秒(理论值应该为112500),
去掉485转换时间间隙和单片机协议处理开销,基本可以认为达到最高速度(包改大,速度会略微提升一些)。连续8小时,发送接受,没有丢一个包,没有一个包有校验错误。

其中主单片机串口1以3Mbps的速度通过CH340转USB连接到电脑,作为终端显示内部状态。单片机串口1支持4.5Mbps,3Mbps是CH340支持的最大速度,
但是单片机和电脑的连接出现丢字节现象,已经排除单片机软件和终端软件问题,问题应该出现在USB环节。
现象是,开始一段时间没有丢字节,但是过一段时间开始陆续丢字节,重启单片机或者重启串口终端软件没有改善,但是拔插USB转串口立刻改善。
应该是USB转串口芯片内部的缓冲区溢出了。
后来USB转串口改成1.5Mbps,效果大大改观,可以维持很长一段时间不丢字节。

所以话说回来了,你才115200bps就开始丢数据,实在是太不应该了。
对于硬件丢包率,通过这个试验说明,单片机和单片机之间,通过485转换,可以保证1/6480000000以下,(6480000000即6.48GB是8个小时发送的数据量)
即便退一步说,至少能保证1/2304000000。差不多是1E-10了.

但是电脑通过USB转换,就不敢保证了,虽然本身USB协议可以保证不丢数据,但是USB转串口的驱动程序会不会丢也不好说。
你电脑上可以通过硬串口进行数据收发,稳定性提升好几个数量级。
另外,不需要把422转换成232,实际上有直接是422的硬串口卡,比232要靠谱得多。

另外忘了说了,两个单片机之间的485连接只接了AB两条线,地线都没连,但是其中一个单片机使用电池供电的,所以干扰问题要少得多。
你实际使用的时候,肯定不可能是电池供电,所以地线很重要,一定要连,否则通讯可能不正常,甚至可能会烧掉接口。而且手册里建议用16平方的铜线作为地线。

使用特权

评论回复
wwqc| | 2018-6-25 08:22 | 显示全部楼层
换个串口试试。

使用特权

评论回复
许世霞|  楼主 | 2018-6-25 12:19 | 显示全部楼层
422的硬串口卡是什么东西?我已经不用usb转串口了。直接接的。现在有个问题问下。串口助手有没有本事篡改协议数据

使用特权

评论回复
123987| | 2018-6-25 12:35 | 显示全部楼层
123987 发表于 2018-6-22 13:11
我感觉到99.9%是二楼讲的第三种情况,软件设计的不好。115200bps真的是比较低的速度了。稍微靠谱点的国产芯 ...

不说别的。你搞一帧数据(几十个一百个字节左右)。收发直连。帧间隔时间设成最低。连续自动发送。连续发送一分钟左右。你数数发送字节和接收字节的计数。兄弟我在这款软件上吃过亏的。

使用特权

评论回复
许世霞|  楼主 | 2018-6-25 14:19 | 显示全部楼层
123987 发表于 2018-6-25 12:35
不说别的。你搞一帧数据(几十个一百个字节左右)。收发直连。帧间隔时间设成最低。连续自动发送。连续发 ...

哪款软件?现在是我用了两种串口助手。就算丢数据,我认了。那么串口助手没有能力篡改我的数据协议吧。我的数据协议里的时间信息在循环。我实在想不明白。我用我们做的采集软件采还没抓住这种现象。

使用特权

评论回复
123987| | 2018-6-26 13:10 | 显示全部楼层
许世霞 发表于 2018-6-25 14:19
哪款软件?现在是我用了两种串口助手。就算丢数据,我认了。那么串口助手没有能力篡改我的数据协议吧。我 ...

用你正在用的串口助手软件测试,然后发送和接收直连,不用你说的那个422转232模块。“篡改数据协议”是什么意思?

使用特权

评论回复
cjseng| | 2018-6-26 13:24 | 显示全部楼层
297475b31cdea80f7c.png 这个串口助手肯定会丢数据,主要是刷新跟不上,19200都能丢数据。

使用特权

评论回复
cjseng| | 2018-6-26 13:25 | 显示全部楼层
53885b31ce246a2b1.png 这个就好多了,没发现丢数据,大数据量也不会丢

使用特权

评论回复
chunyang| | 2018-6-26 23:30 | 显示全部楼层
串口监视软件的问题可能性较大,先换别的串口软件测试。注意观察丢帧的时间规律。

使用特权

评论回复
许世霞|  楼主 | 2018-6-27 09:54 | 显示全部楼层
丢帧倒是可以不计较,我测了两个小时的数据,整个数据一直在循环几分钟的数据。这才不理解。出口助手没这么大本事吧

使用特权

评论回复
619888476| | 2018-6-29 22:47 | 显示全部楼层
自发自收或是速率降低看看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

440

主题

3783

帖子

4

粉丝