花了点时间写了个串口工具,分享给大家
本帖最后由 442502587 于 2018-5-21 14:07 编辑使用API做的,UI第用的开源的SOUI,还可以,可能有BUG,但是没有捉到 搞串口调试工具,最核心最根本的东西,就是在满负荷数据流下,用hex显示不丢包。
其他界面什么的,都是浮云。
cpholr1 发表于 2018-5-20 23:26
搞串口调试工具,最核心最根本的东西,就是在满负荷数据流下,用hex显示不丢包。
其他界面什么的,都是浮 ...
可以詳細說明滿載不丟包技巧在哪裡?
或是有sample code可以提供,謝謝。 帮你测试了一下,低速下就已经丢的一塌糊涂了。
高速下,软件直接死机。
jarodzz 发表于 2018-5-20 23:34
可以詳細說明滿載不丟包技巧在哪裡?
或是有sample code可以提供,謝謝。
https://www.amobbs.com/thread-5672304-1-1.html?_dsign=6451ed57
丁丁/小猛大侠的SSCOM,是我用过的串口软件里面,为数不多的,完全不丢包的软件。
不丢包的,都是对齐的。
高速接收,依然没有丢包,还是对齐的。
丁丁的串口的确很稳,较高波特率下HEX都不会丢。 cpholr1 发表于 2018-5-20 23:26
搞串口调试工具,最核心最根本的东西,就是在满负荷数据流下,用hex显示不丢包。
其他界面什么的,都是浮 ...
说的对,我之前写的一个上位机,用于解析CAN总线就是在大数据情况下丢包,解决了几个月,才解决好。 用过很多个串口,最后觉得丁丁的串口稳 打击的话说的有点多。楼主再接再厉,加油!{:lol:} cpholr1 发表于 2018-5-20 23:53
打击的话说的有点多。楼主再接再厉,加油!
用的是那个什么Cncomm库,软件门外汉,明天测试优化一下,
我貌似看到了楼主一脸懵逼的样子( ̄∇ ̄) jarodzz 发表于 2018-5-20 23:34
可以詳細說明滿載不丟包技巧在哪裡?
或是有sample code可以提供,謝謝。
你定时刷新窗口。否则一个一个字节刷新还不卡死。 cpholr1 发表于 2018-5-20 23:26
搞串口调试工具,最核心最根本的东西,就是在满负荷数据流下,用hex显示不丢包。
其他界面什么的,都是浮 ...
还有一个长时间接收的问题,串口丁丁的115200最大负荷接收几分钟后崩溃。 在上位机中,也搞过串口通讯,也曾碰到过丟包问题,一直优化呀优化,现在稳定了很多,但在大数据下,还是曾在偶尔 丟包现象
也想学学,大数据,高速下,怎么做,能不丟包 fghfguytu 发表于 2018-5-21 08:38
在上位机中,也搞过串口通讯,也曾碰到过丟包问题,一直优化呀优化,现在稳定了很多,但在大数据下,还是曾 ...
串口工具基本上快成月经帖了,但大多数是皮毛,仅仅能满足自己的需求而已 搞IAP时候,一包2048字节,网上只有一个串口助手可以。
现在好像WIN7 64BIT不能用了。 Excellence 发表于 2018-5-21 09:00
搞IAP时候,一包2048字节,网上只有一个串口助手可以。
现在好像WIN7 64BIT不能用了。 ...
我准备开65535字节 任何东西做精也不容易呀 442502587 发表于 2018-5-21 09:38
我准备开65535字节
你这是开源的吗?用的那个国内那个cnconn,这个有几年没有更新了吧。。我改过一个软件好像还可以,能够大数据量,哪天我发上来看看。。 w282529350 发表于 2018-5-21 08:29
还有一个长时间接收的问题,串口丁丁的115200最大负荷接收几分钟后崩溃。 ...
5.xx版本 数据量超过一定值会自动清除部分字节。
不会导致软件崩溃了。
442502587 发表于 2018-5-21 09:38
我准备开65535字节
加油。。。。。。
祝你成功。 我准备开4096字节 还缺个存文件的功能 bbstr 发表于 2018-5-21 13:52
还缺个存文件的功能
有哇,你发送了就存了 cpholr1 发表于 2018-5-21 11:15
5.xx版本 数据量超过一定值会自动清除部分字节。
不会导致软件崩溃了。
神僧,上传了新版本,欢迎暴力测试 cpholr1 发表于 2018-5-20 23:40
不丢包的,都是对齐的。
怎么测试高速丢包? cpholr1 发表于 2018-5-20 23:39
https://www.amobbs.com/thread-5672304-1-1.html?_dsign=6451ed57
丁丁/小猛大侠的SSCOM,是我用过的串 ...
一样 也会丢包 高速通信时很容易出现 完美的串口助手还没找到{:lol:} love_zjb 发表于 2018-5-21 14:19
怎么测试高速丢包?
低速下依然悲剧。
tcm123 发表于 2018-5-21 14:21
一样 也会丢包 高速通信时很容易出现 完美的串口助手还没找到...
也可能是你硬件上的问题。
我试过115200满负荷,跑了几个小时,一个字节都没丢的。
硬件是FT232。
同样的测试条件,用PL2303,满负荷,没多久就会出错。
442502587 发表于 2018-5-21 14:07
神僧,上传了新版本,欢迎暴力测试
高速通信下,刷新非常慢,然后滚动条没有随窗口走。
这次没有死机。
但数据也是丢的一塌糊涂。
你这个还是自己测吧。
用个单片机,波特率调到115200,1ms发送一次。 我现在给你测的是每次10个字节。
串口通信上,115200的满负荷运行,
这样计算,一个8bit的字节,加1个校验位,一个停止位,一共10bit,
115200/10bit/1000ms = 11.52字节。
也就是说,115200波特率下,1ms连续发送11个字节,就属于满负荷了。
我记得2012年时候,用delphi写过一个串口,用的第三方插件, 高速下也是丢的一塌糊涂,完全没法改进。
这个应该是插件没做好的问题。
有没有用labview做串口不丢包的,出来走两圈 以前给xx部门做过类似助手,一个 exe带32路串口同时开,每路要求连续115200通信,要求7×24小时不丢包、不死机、不卡系统。后来解决方案也是妥协,存硬盘再看 cpholr1 发表于 2018-5-21 14:28
也可能是你硬件上的问题。
我试过115200满负荷,跑了几个小时,一个字节都没丢的。
我是921600跑几百K的数据。 硬件用的STM32 VCP, 用SSCOM确实会出错,后来用了个UartAssist没丢了。
我原来也一直相信SSCOM的, 还以为是自己程序的问题 调了好久 tcm123 发表于 2018-5-21 16:19
我是921600跑几百K的数据。 硬件用的STM32 VCP, 用SSCOM确实会出错,后来用了个UartAssist没丢了。
我 ...
好高的波特率 njlzzdh 发表于 2018-5-21 14:46
有没有用labview做串口不丢包的,出来走两圈
这个软件更不行。。。。。 tcm123 发表于 2018-5-21 16:19
我是921600跑几百K的数据。 硬件用的STM32 VCP, 用SSCOM确实会出错,后来用了个UartAssist没丢了。
我 ...
SSCOM在数据满1M的时候,自动删除掉前面900k数据,只留下100k数据。
你可能是遇上这个了。
之前调试PID的时候,到处找串口工具,要能显示曲线,能将HEX数据转换成实际有意义的值。 找了一圈,没找到合适的。
无奈想起以前用过LABVIEW,下载安装了一个,花了半小时写了一个串口工具,很适合自己用。 推荐下LABVIEW NXG ,
很好用。
cpholr1 发表于 2018-5-21 16:40
SSCOM在数据满1M的时候,自动删除掉前面900k数据,只留下100k数据。
你可能是遇上这个了。
他波特率是921600.。。。。。。。。。。。。。。是你的8倍。 Excellence 发表于 2018-5-21 18:38
他波特率是921600.。。。。。。。。。。。。。。是你的8倍。
嗯,所以他的数据流更快。也更轻易达到1M数据量。
还是建议他再试一次,看下是不是1M数据量被自动删除掉900k。
另外 我也测试了丁丁的网口通信功能,另一边是CAN总线,波特率1M的,也接近满负荷运行,依然没有丢包。
之前碰到数据量变少,我也以为是软件BUG,还特意发邮件问了作者。
cpholr1 发表于 2018-5-21 14:34
串口通信上,115200的满负荷运行,
这样计算,一个8bit的字节,加1个校验位,一个停止位,一共10bit,
你说的高速测试,是用115200做测试,连续发送吗?
帮忙测试一下这款的高速模式,看看会不会丢数据。
下载地址:链接: https://pan.baidu.com/s/1i7nFSfN 密码: 21gi 山外メ雲ジ 发表于 2018-5-21 18:47
你说的高速测试,是用115200做测试,连续发送吗?
帮忙测试一下这款的高速模式,看看会不会丢数据。
半夜帮你测一下。
现在没空。 442502587 发表于 2018-5-20 23:55
用的是那个什么Cncomm库,软件门外汉,明天测试优化一下,
楼主用的哪个库?PCOMM.DLL? 感谢楼主分享 dxgdsx 发表于 2018-5-21 20:05
楼主用的哪个库?PCOMM.DLL?
是这个库 dxgdsx 发表于 2018-5-21 20:05
楼主用的哪个库?PCOMM.DLL?
用这个没办法做成一个文件 山外メ雲ジ 发表于 2018-5-21 18:47
你说的高速测试,是用115200做测试,连续发送吗?
帮忙测试一下这款的高速模式,看看会不会丢数据。
以下测试的是一分钟的数据,是手动停止的,所以有误差,另外,MCU还有其他活,所以发出来的,不一定是600000个字节,但一定是10的整数倍。
第一次测试
丁丁 一分钟 470570字节 尾数为0,
山外 一分钟 474381字节 尾数为1,少量丢包
第二次测试
丁丁 一分钟 474780字节 尾数为0
山外 一分钟 474501字节 尾数为1,少量丢包
第二次测试
山外 一分钟 479480字节 尾数为0没有丢包 (测试大分辨率版本)
山外 一分钟 471907字节 尾数为7少量丢包(测试大分辨率版本)
结论:山外的,少量丢包,接收时候界面很卡,界面刷新率太低,不能拉伸对齐数据。如果可以拉伸对齐的话,哪个数据丢了或者多了,一目了然。
丁丁SSCOM的很流畅,不丢包,刷新率高,可以拉伸对齐。
丁丁的打分100的话,山外这个只能打60-70分。
山外メ雲ジ 发表于 2018-5-21 18:47
你说的高速测试,是用115200做测试,连续发送吗?
帮忙测试一下这款的高速模式,看看会不会丢数据。
帮你测试 花了一个小时。。。{:sweat:}
115200bps是不是有点拿不出手啊,要压力测试上12Mbps,目前FTDI最高串口速率。 以前用CPU带自动降频功能的电脑,串口有时候数据丢得一塌糊涂,换了没这个功能的电脑,跑1,2天都没事。
当时还遇到有客户电脑装了360,也会将串口数据丢得稀里哗啦,卸载后恢复正常。 uindex 发表于 2018-5-21 21:06
115200bps是不是有点拿不出手啊,要压力测试上12Mbps,目前FTDI最高串口速率。
问题是,目前没几个串口软件,能在115200满负荷下不丢包,更高的就不用说了。
另外,常用的一些max3232芯片,一般都只保证115200波特率下不出问题,再高的波特率,就没说一定支持了。
你说的FTDI的那个高速,肯定是TTL裸板了。
cpholr1 发表于 2018-5-21 21:37
问题是,目前没几个串口软件,能在115200满负荷下不丢包,更高的就不用说了。
另外,常用的一些max3232 ...
说的也是,基本的115200要先搞稳定! 442502587 发表于 2018-5-21 20:27
用这个没办法做成一个文件
直接搞源码,可以的楼主。厉害。dll调用相对麻烦点。 cpholr1 发表于 2018-5-21 20:54
帮你测试 花了一个小时。。。
好的,迟点再改进 找个带modbus功能的,用modscan一次几百字节测试。。。。 V1.3来了,增加可以缩进对齐的功能和自动成帧 功能, 442502587 发表于 2018-5-22 19:14
V1.3来了,增加可以缩进对齐的功能和自动成帧 功能,
帮你测试了下,这次我把数据复制出来word上,统计字数,这个功能算是正常的,算是没丢了。
但最好窗口能拉伸,对齐。
另外,换行的标准有问题。你估计是buffer读取一次换一次行?
不用换行,直接追加到末尾。
cpholr1 发表于 2018-5-20 23:26
搞串口调试工具,最核心最根本的东西,就是在满负荷数据流下,用hex显示不丢包。
其他界面什么的,都是浮 ...
很多,速度一快就挂了 只能结束进程, 还有IO浮空的时候 也挂,
好的程序一定有很多出错处理. 做了一些小改动 Excellence 发表于 2018-5-21 16:38
这个软件更不行。。。。。
labview很厉害的。你加入"队列技术",自带例程有,防止数据堵塞丟帧。 很多人都用buffer,等满了一次性处理,数据量大了是有问题的,因为很多人不会用多线程。(不是让你开一个工作线程,一个界面线程。是工作线程就开两个线程)。但是labview的队列技术,可以一边接收,一边处理。(当然用到多线程) njlzzdh 发表于 2018-5-23 18:40
labview很厉害的。你加入"队列技术",自带例程有,防止数据堵塞丟帧。
谢谢指点。
我是感觉用C++如果都处理不好LABVIEW估计够呛。
本帖最后由 armstrong 于 2018-5-24 11:12 编辑
这些软件都经不起高负荷使用,都不是专业的软件开发者写的。国外的HHD Device Monitoring Studio Ultimate这种软件才叫专业!
要做得专业,就得深入了解Windows通信API,Windows多线程的GUI设计,Windows异步操作(overlapped),还要了解一些软件设计模式,比如MVC之类的。
没有在这些基础上投入精力,想做好就别想了;马马虎虎凑合还行。
掌握了底层技术,以现在的电脑配置,用API写个不丢包的串口根本不难。 在拉伸界面时就会丢包的软件,其实现上都把界面更新与收发线程没独立开。
比如后台接收线程(要用异步方式读,nonblocking)收到的数据放入一个大缓冲池fifo,界面线程即使CPU满负荷卡顿,也不会丢数据啊。 cpholr1 发表于 2018-5-20 23:39
https://www.amobbs.com/thread-5672304-1-1.html?_dsign=6451ed57
丁丁/小猛大侠的SSCOM,是我用过的串 ...
丁丁的SSCOM效率最高的版本是3.x,最新的5.x效率很差,只是5.x版解决了出错关闭不了的问题 cpholr1 发表于 2018-5-21 11:15
5.xx版本 数据量超过一定值会自动清除部分字节。
不会导致软件崩溃了。
TCP SEVER还没用 刷新与数据接收应该分离,接收只做数据缓存,显示可以定时刷新。 谢谢分享,下载收藏 好资料,谢谢楼主
页:
[1]