搜索
bottom↓
回复: 72
打印 上一主题 下一主题

花了点时间写了个串口工具,分享给大家

  [复制链接]

出10入12汤圆

跳转到指定楼层
1
发表于 2018-5-20 23:19:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 442502587 于 2018-5-21 14:07 编辑

使用API做的,UI第用的开源的SOUI,还可以,可能有BUG,但是没有捉到

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

2
发表于 2018-5-20 23:26:35 | 只看该作者
搞串口调试工具,最核心最根本的东西,就是在满负荷数据流下,用hex显示不丢包。

其他界面什么的,都是浮云。

出0入0汤圆

3
发表于 2018-5-20 23:34:49 | 只看该作者
cpholr1 发表于 2018-5-20 23:26
搞串口调试工具,最核心最根本的东西,就是在满负荷数据流下,用hex显示不丢包。

其他界面什么的,都是浮 ...

可以詳細說明滿載不丟包技巧在哪裡?
或是有sample code可以提供,謝謝。

出0入0汤圆

4
发表于 2018-5-20 23:37:17 | 只看该作者
帮你测试了一下,低速下就已经丢的一塌糊涂了。

高速下,软件直接死机。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

5
发表于 2018-5-20 23:39:22 | 只看该作者
jarodzz 发表于 2018-5-20 23:34
可以詳細說明滿載不丟包技巧在哪裡?
或是有sample code可以提供,謝謝。

https://www.amobbs.com/thread-5672304-1-1.html?_dsign=6451ed57

丁丁/小猛大侠的SSCOM,是我用过的串口软件里面,为数不多的,完全不丢包的软件。

出0入0汤圆

6
发表于 2018-5-20 23:40:52 | 只看该作者
不丢包的,都是对齐的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

7
发表于 2018-5-20 23:42:02 | 只看该作者
高速接收,依然没有丢包,还是对齐的。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

8
发表于 2018-5-20 23:42:49 来自手机 | 只看该作者
丁丁的串口的确很稳,较高波特率下HEX都不会丢。

出590入1001汤圆

9
发表于 2018-5-20 23:44:28 | 只看该作者
cpholr1 发表于 2018-5-20 23:26
搞串口调试工具,最核心最根本的东西,就是在满负荷数据流下,用hex显示不丢包。

其他界面什么的,都是浮 ...

说的对,我之前写的一个上位机,用于解析CAN总线就是在大数据情况下丢包,解决了几个月,才解决好。

出0入0汤圆

10
发表于 2018-5-20 23:45:57 | 只看该作者
用过很多个串口,最后觉得丁丁的串口稳

出0入0汤圆

11
发表于 2018-5-20 23:53:41 | 只看该作者
打击的话说的有点多。楼主再接再厉,加油!

出10入12汤圆

12
 楼主| 发表于 2018-5-20 23:55:52 来自手机 | 只看该作者
cpholr1 发表于 2018-5-20 23:53
打击的话说的有点多。楼主再接再厉,加油!

用的是那个什么Cncomm库,软件门外汉,明天测试优化一下,

出0入0汤圆

13
发表于 2018-5-21 06:47:50 来自手机 | 只看该作者
我貌似看到了楼主一脸懵逼的样子( ̄∇ ̄)

出0入442汤圆

14
发表于 2018-5-21 08:04:21 来自手机 | 只看该作者
jarodzz 发表于 2018-5-20 23:34
可以詳細說明滿載不丟包技巧在哪裡?
或是有sample code可以提供,謝謝。

你定时刷新窗口。否则一个一个字节刷新还不卡死。

出0入0汤圆

15
发表于 2018-5-21 08:29:21 | 只看该作者
cpholr1 发表于 2018-5-20 23:26
搞串口调试工具,最核心最根本的东西,就是在满负荷数据流下,用hex显示不丢包。

其他界面什么的,都是浮 ...

还有一个长时间接收的问题,串口丁丁的115200最大负荷接收几分钟后崩溃。

出0入0汤圆

16
发表于 2018-5-21 08:38:20 | 只看该作者
在上位机中,也搞过串口通讯,也曾碰到过丟包问题,一直优化呀优化,现在稳定了很多,但在大数据下,还是曾在偶尔 丟包现象
也想学学,大数据,高速下,怎么做,能不丟包

出0入0汤圆

17
发表于 2018-5-21 08:42:57 | 只看该作者
fghfguytu 发表于 2018-5-21 08:38
在上位机中,也搞过串口通讯,也曾碰到过丟包问题,一直优化呀优化,现在稳定了很多,但在大数据下,还是曾 ...

串口工具基本上快成月经帖了,但大多数是皮毛,仅仅能满足自己的需求而已

出0入0汤圆

18
发表于 2018-5-21 09:00:59 | 只看该作者
搞IAP时候,一包2048字节,网上只有一个串口助手可以。
现在好像WIN7 64BIT不能用了。

出10入12汤圆

19
 楼主| 发表于 2018-5-21 09:38:53 | 只看该作者
Excellence 发表于 2018-5-21 09:00
搞IAP时候,一包2048字节,网上只有一个串口助手可以。
现在好像WIN7 64BIT不能用了。 ...

我准备开65535字节

出0入0汤圆

20
发表于 2018-5-21 10:04:25 来自手机 | 只看该作者
任何东西做精也不容易呀

出0入0汤圆

21
发表于 2018-5-21 10:55:21 来自手机 | 只看该作者
442502587 发表于 2018-5-21 09:38
我准备开65535字节

你这是开源的吗?用的那个国内那个cnconn,这个有几年没有更新了吧。。我改过一个软件好像还可以,能够大数据量,哪天我发上来看看。。

出0入0汤圆

22
发表于 2018-5-21 11:15:15 | 只看该作者
w282529350 发表于 2018-5-21 08:29
还有一个长时间接收的问题,串口丁丁的115200最大负荷接收几分钟后崩溃。 ...

5.xx版本 数据量超过一定值会自动清除部分字节。

不会导致软件崩溃了。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

23
发表于 2018-5-21 11:21:59 | 只看该作者
442502587 发表于 2018-5-21 09:38
我准备开65535字节

加油。。。。。。
祝你成功。

出0入8汤圆

24
发表于 2018-5-21 11:50:47 | 只看该作者
我准备开4096字节

出0入0汤圆

25
发表于 2018-5-21 13:52:07 来自手机 | 只看该作者
还缺个存文件的功能

出10入12汤圆

26
 楼主| 发表于 2018-5-21 14:06:11 | 只看该作者
bbstr 发表于 2018-5-21 13:52
还缺个存文件的功能

有哇,你发送了就存了

出10入12汤圆

27
 楼主| 发表于 2018-5-21 14:07:37 | 只看该作者
cpholr1 发表于 2018-5-21 11:15
5.xx版本 数据量超过一定值会自动清除部分字节。

不会导致软件崩溃了。

神僧  ,上传了新版本,欢迎暴力测试

出0入0汤圆

28
发表于 2018-5-21 14:19:12 来自手机 | 只看该作者
cpholr1 发表于 2018-5-20 23:40
不丢包的,都是对齐的。

怎么测试高速丢包?

出10入61汤圆

29
发表于 2018-5-21 14:21:00 | 只看该作者
cpholr1 发表于 2018-5-20 23:39
https://www.amobbs.com/thread-5672304-1-1.html?_dsign=6451ed57

丁丁/小猛大侠的SSCOM,是我用过的串 ...

一样 也会丢包    高速通信时很容易出现     完美的串口助手还没找到

出0入0汤圆

30
发表于 2018-5-21 14:26:23 | 只看该作者
love_zjb 发表于 2018-5-21 14:19
怎么测试高速丢包?

低速下依然悲剧。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

31
发表于 2018-5-21 14:28:21 | 只看该作者
tcm123 发表于 2018-5-21 14:21
一样 也会丢包    高速通信时很容易出现     完美的串口助手还没找到  ...

也可能是你硬件上的问题。

我试过115200满负荷,跑了几个小时,一个字节都没丢的。

硬件是FT232。

同样的测试条件,用PL2303,满负荷,没多久就会出错。


出0入0汤圆

32
发表于 2018-5-21 14:30:22 | 只看该作者
442502587 发表于 2018-5-21 14:07
神僧  ,上传了新版本,欢迎暴力测试

高速通信下,刷新非常慢,然后滚动条没有随窗口走。
这次没有死机。

但数据也是丢的一塌糊涂。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

33
发表于 2018-5-21 14:32:04 | 只看该作者
你这个还是自己测吧。

用个单片机,波特率调到115200,1ms发送一次。 我现在给你测的是每次10个字节。


出0入0汤圆

34
发表于 2018-5-21 14:34:35 | 只看该作者
串口通信上,115200的满负荷运行,
这样计算,一个8bit的字节,加1个校验位,一个停止位,一共10bit,

115200/10bit/1000ms = 11.52字节。

也就是说,115200波特率下,1ms连续发送11个字节,就属于满负荷了。

出0入0汤圆

35
发表于 2018-5-21 14:42:13 | 只看该作者
我记得2012年时候,用delphi写过一个串口,用的第三方插件, 高速下也是丢的一塌糊涂,完全没法改进。

这个应该是插件没做好的问题。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

36
发表于 2018-5-21 14:46:29 来自手机 | 只看该作者
有没有用labview做串口不丢包的,出来走两圈

出200入2554汤圆

37
发表于 2018-5-21 16:09:36 来自手机 | 只看该作者
以前给xx部门做过类似助手,一个 exe带32路串口同时开,每路要求连续115200通信,要求7×24小时不丢包、不死机、不卡系统。后来解决方案也是妥协,存硬盘再看

出10入61汤圆

38
发表于 2018-5-21 16:19:04 | 只看该作者
cpholr1 发表于 2018-5-21 14:28
也可能是你硬件上的问题。

我试过115200满负荷,跑了几个小时,一个字节都没丢的。

我是921600跑几百K的数据。 硬件用的STM32 VCP, 用SSCOM确实会出错,后来用了个UartAssist没丢了。

我原来也一直相信SSCOM的, 还以为是自己程序的问题 调了好久

出0入0汤圆

39
发表于 2018-5-21 16:38:00 来自手机 | 只看该作者
tcm123 发表于 2018-5-21 16:19
我是921600跑几百K的数据。 硬件用的STM32 VCP, 用SSCOM确实会出错,后来用了个UartAssist没丢了。

我 ...

好高的波特率

出0入0汤圆

40
发表于 2018-5-21 16:38:32 来自手机 | 只看该作者
njlzzdh 发表于 2018-5-21 14:46
有没有用labview做串口不丢包的,出来走两圈

这个软件更不行。。。。。

出0入0汤圆

41
发表于 2018-5-21 16:40:47 | 只看该作者
tcm123 发表于 2018-5-21 16:19
我是921600跑几百K的数据。 硬件用的STM32 VCP, 用SSCOM确实会出错,后来用了个UartAssist没丢了。

我 ...

SSCOM在数据满1M的时候,自动删除掉前面900k数据,只留下100k数据。
你可能是遇上这个了。

出0入18汤圆

42
发表于 2018-5-21 17:05:57 | 只看该作者
之前调试PID的时候,到处找串口工具,要能显示曲线,能将HEX数据转换成实际有意义的值。 找了一圈,没找到合适的。
无奈想起以前用过LABVIEW,下载安装了一个,花了半小时写了一个串口工具,很适合自己用。 推荐下LABVIEW NXG ,
很好用。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

43
发表于 2018-5-21 18:38:06 | 只看该作者
cpholr1 发表于 2018-5-21 16:40
SSCOM在数据满1M的时候,自动删除掉前面900k数据,只留下100k数据。
你可能是遇上这个了。

他波特率是921600.。。。。。。。。。。。。。。是你的8倍。

出0入0汤圆

44
发表于 2018-5-21 18:44:37 | 只看该作者
Excellence 发表于 2018-5-21 18:38
他波特率是921600.。。。。。。。。。。。。。。是你的8倍。

嗯,所以他的数据流更快。也更轻易达到1M数据量。

还是建议他再试一次,看下是不是1M数据量被自动删除掉900k。

另外 我也测试了丁丁的网口通信功能,另一边是CAN总线,波特率1M的,也接近满负荷运行,依然没有丢包。

之前碰到数据量变少,我也以为是软件BUG,还特意发邮件问了作者。

出0入0汤圆

45
发表于 2018-5-21 18:47:15 | 只看该作者
cpholr1 发表于 2018-5-21 14:34
串口通信上,115200的满负荷运行,
这样计算,一个8bit的字节,加1个校验位,一个停止位,一共10bit,

你说的高速测试,是用115200做测试,连续发送吗?

帮忙测试一下这款的高速模式,看看会不会丢数据。
下载地址:链接: https://pan.baidu.com/s/1i7nFSfN 密码: 21gi

出0入0汤圆

46
发表于 2018-5-21 18:49:10 | 只看该作者
山外メ雲ジ 发表于 2018-5-21 18:47
你说的高速测试,是用115200做测试,连续发送吗?

帮忙测试一下这款的高速模式,看看会不会丢数据。

半夜帮你测一下。

现在没空。

出0入0汤圆

47
发表于 2018-5-21 20:05:44 | 只看该作者
442502587 发表于 2018-5-20 23:55
用的是那个什么Cncomm库,软件门外汉,明天测试优化一下,

楼主用的哪个库?PCOMM.DLL?

出0入0汤圆

48
发表于 2018-5-21 20:08:30 来自手机 | 只看该作者
感谢楼主分享

出10入12汤圆

49
 楼主| 发表于 2018-5-21 20:26:32 | 只看该作者
dxgdsx 发表于 2018-5-21 20:05
楼主用的哪个库?PCOMM.DLL?

是这个库  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出10入12汤圆

50
 楼主| 发表于 2018-5-21 20:27:08 | 只看该作者
dxgdsx 发表于 2018-5-21 20:05
楼主用的哪个库?PCOMM.DLL?

用这个没办法做成一个文件

出0入0汤圆

51
发表于 2018-5-21 20:51:03 | 只看该作者
山外メ雲ジ 发表于 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分。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

52
发表于 2018-5-21 20:54:21 | 只看该作者
山外メ雲ジ 发表于 2018-5-21 18:47
你说的高速测试,是用115200做测试,连续发送吗?

帮忙测试一下这款的高速模式,看看会不会丢数据。

帮你测试 花了一个小时。。。

出0入8汤圆

53
发表于 2018-5-21 21:06:33 | 只看该作者
115200bps是不是有点拿不出手啊,要压力测试上12Mbps,目前FTDI最高串口速率。

出130入129汤圆

54
发表于 2018-5-21 21:32:45 | 只看该作者
以前用CPU带自动降频功能的电脑,串口有时候数据丢得一塌糊涂,换了没这个功能的电脑,跑1,2天都没事。
当时还遇到有客户电脑装了360,也会将串口数据丢得稀里哗啦,卸载后恢复正常。

出0入0汤圆

55
发表于 2018-5-21 21:37:41 | 只看该作者
uindex 发表于 2018-5-21 21:06
115200bps是不是有点拿不出手啊,要压力测试上12Mbps,目前FTDI最高串口速率。

问题是,目前没几个串口软件,能在115200满负荷下不丢包,更高的就不用说了。

另外,常用的一些max3232芯片,一般都只保证115200波特率下不出问题,再高的波特率,就没说一定支持了。

你说的FTDI的那个高速,肯定是TTL裸板了。

出0入8汤圆

56
发表于 2018-5-21 22:06:07 | 只看该作者
cpholr1 发表于 2018-5-21 21:37
问题是,目前没几个串口软件,能在115200满负荷下不丢包,更高的就不用说了。

另外,常用的一些max3232 ...

说的也是,基本的115200要先搞稳定!

出0入0汤圆

57
发表于 2018-5-21 22:34:32 | 只看该作者
442502587 发表于 2018-5-21 20:27
用这个没办法做成一个文件

直接搞源码,可以的楼主。厉害。dll调用相对麻烦点。

出0入0汤圆

58
发表于 2018-5-21 22:37:30 | 只看该作者
cpholr1 发表于 2018-5-21 20:54
帮你测试 花了一个小时。。。

好的,迟点再改进

出0入0汤圆

59
发表于 2018-5-22 07:57:15 来自手机 | 只看该作者
找个带modbus功能的,用modscan一次几百字节测试。。。。

出10入12汤圆

60
 楼主| 发表于 2018-5-22 19:14:03 | 只看该作者
V1.3来了,增加可以缩进对齐的功能和自动成帧 功能,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

61
发表于 2018-5-22 19:53:24 | 只看该作者
442502587 发表于 2018-5-22 19:14
V1.3来了,增加可以缩进对齐的功能和自动成帧 功能,

帮你测试了下,这次我把数据复制出来word上,统计字数,这个功能算是正常的,算是没丢了。

但最好窗口能拉伸,对齐。

另外,换行的标准有问题。你估计是buffer读取一次换一次行?

不用换行,直接追加到末尾。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

62
发表于 2018-5-23 08:14:45 | 只看该作者
cpholr1 发表于 2018-5-20 23:26
搞串口调试工具,最核心最根本的东西,就是在满负荷数据流下,用hex显示不丢包。

其他界面什么的,都是浮 ...

很多,速度一快就挂了 只能结束进程, 还有IO浮空的时候 也挂,
好的程序一定有很多出错处理.

出10入12汤圆

63
 楼主| 发表于 2018-5-23 17:57:05 | 只看该作者
做了一些小改动

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

64
发表于 2018-5-23 18:40:34 来自手机 | 只看该作者
Excellence 发表于 2018-5-21 16:38
这个软件更不行。。。。。

labview很厉害的。你加入"队列技术",自带例程有,防止数据堵塞丟帧。

出0入0汤圆

65
发表于 2018-5-23 18:43:47 来自手机 | 只看该作者
很多人都用buffer,等满了一次性处理,数据量大了是有问题的,因为很多人不会用多线程。(不是让你开一个工作线程,一个界面线程。是工作线程就开两个线程)。但是labview的队列技术,可以一边接收,一边处理。(当然用到多线程)

出0入0汤圆

66
发表于 2018-5-24 08:45:39 | 只看该作者
njlzzdh 发表于 2018-5-23 18:40
labview很厉害的。你加入"队列技术",自带例程有,防止数据堵塞丟帧。

谢谢指点。
我是感觉用C++如果都处理不好LABVIEW估计够呛。

出870入263汤圆

67
发表于 2018-5-24 11:10:52 | 只看该作者
本帖最后由 armstrong 于 2018-5-24 11:12 编辑

这些软件都经不起高负荷使用,都不是专业的软件开发者写的。国外的HHD Device Monitoring Studio Ultimate这种软件才叫专业!
要做得专业,就得深入了解Windows通信API,Windows多线程的GUI设计,Windows异步操作(overlapped),还要了解一些软件设计模式,比如MVC之类的。
没有在这些基础上投入精力,想做好就别想了;马马虎虎凑合还行。
掌握了底层技术,以现在的电脑配置,用API写个不丢包的串口根本不难。

出870入263汤圆

68
发表于 2018-5-24 11:17:15 | 只看该作者
在拉伸界面时就会丢包的软件,其实现上都把界面更新与收发线程没独立开。
比如后台接收线程(要用异步方式读,nonblocking)收到的数据放入一个大缓冲池fifo,界面线程即使CPU满负荷卡顿,也不会丢数据啊。

出0入0汤圆

69
发表于 2018-5-26 20:29:16 | 只看该作者
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版解决了出错关闭不了的问题

出0入0汤圆

70
发表于 2018-5-26 21:04:07 | 只看该作者
cpholr1 发表于 2018-5-21 11:15
5.xx版本 数据量超过一定值会自动清除部分字节。

不会导致软件崩溃了。

TCP SEVER还没用  

出255入0汤圆

71
发表于 2018-5-27 07:20:12 | 只看该作者
刷新与数据接收应该分离,接收只做数据缓存,显示可以定时刷新。

出0入0汤圆

72
发表于 2018-5-27 10:20:47 | 只看该作者
谢谢分享,下载收藏

出0入0汤圆

73
发表于 2018-12-18 13:32:55 | 只看该作者
好资料,谢谢楼主
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-12 22:39

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表