- 主题:Re: CH340驱动很占用CPU资源,如何破?
CH340假货也挺多了,先排除。
【 在 feiy (null) 的大作中提到: 】
: 测试发现,CH340的驱动,似乎很消耗CPU资源。
: 测试方法:插上基于CH340的USB串口,通信时会发现,CPU占用率明显会比较高,多插几
: 个基于CH340的USB串口一起访问时,会看到CPU的温度会因为CPU的消耗迅速上升。
: ...................
--
FROM 36.45.170.*
我随手测试了下,CH340方案确实CPU占用率高很多。
同一台PC,同一个软件sscom4.2,115200波特率自发自收sqlite3.c文本文件。
CH340N的占用率在6%到10%之间跳动。
FT2232D方案的USBTTL CPU占用率2%左右跳动。
【 在 laserwin355 (laserwin355) 的大作中提到: 】
: 建议测一下FTDI的串口方案,看看cpu占用有没有区别,这样可以判断到底是ch340驱动的问题,还是你们应用层的问题。我经常基于串口做上位机开发,windows或linux下都没有发现cpu占用明显提高的情况。个人怀疑是测试程序的问题。
: 发自「今日水木 on LYA-AL00」
--
FROM 36.45.170.*
我觉得你太高估CH340驱动码农的能力了
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 我要能测早就测了...
: 主要是我现在找不到CH340的USB-TTL,理论上在我桌角的某个地方...但翻了一圈只找到CP210X的...
: 或者我也可以马上焊一块来测试,但我比较懒,所以直接拍了几只等送到了再测吧...
: ...................
--
FROM 36.45.170.*
单USB,自发自收,115200-8-N-1,Linux下FT2232D和CH340没有明显差别。
结论很明显了,就是驱动程序的问题。
Linux下都是开源驱动,FT2232D和CH340差别不大,CPU占用率都比较高。
Windows下,CH340的驱动CPU占用率比较高。
【 在 feiy (null) 的大作中提到: 】
: 单个USB串口的测试结果?
: 那FT2232比前面windows下的2%以及另外一位版友说的1%,反而还高了很多了? 是因为
: 换电脑了。或者虚拟机的缘故,所以造成百分比的不同吗?
: ...................
--
FROM 36.45.170.*
我是用minicom测试的,短接TX和RX,然后发送一个大文本文件sqlite3.c
当然,我的Linux机器CPU N2840性能非常弱。
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 木有哦,见我上面的帖。
: 我怀疑那个是用的测试工具的问题。我一开始偷懒没写代码,用cat xxx | picocom的方式测,那cpu占用率是160%。两个进程一个100%一个60%,非常离谱。
--
FROM 36.45.171.*
反正是linux,我觉得可以用minicom发个大文件试一下。
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 我用的是CH340E,免晶振,TSSOP封装。我比较喜欢小封装~
: 用更高波特率测我觉得意义不大,这点吞吐量顶天了也就那样,不应该对现在的CPU造成明显负荷,所以差不多就行了。
: 我刚才又测了下,波特率最高是500000*4,再高实际带宽就不再提升了,虽然*3和*4也就提升了10%。
: ...................
--
FROM 36.45.171.*
我这里,不发送文件,minicom的CPU占用率在top界面下基本不可见,偶尔发送几个字符
,能到0.3%,大多数情况下是0.0%,minicom版本为2.7.1
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 试了下,minicom什么都不做就一直用了5%左右的cpu资源...
: 用它发文件cpu占用率在10%上下波动,简单期间就是ascii格式直接发。
: 发的也不是文本文文件,而是随便找了个二进制文件发的。
: ...................
--
FROM 36.45.171.*
我觉得一个字符界面的UI占不了那么多的CPU资源吧,大部分应该还是在串口驱动的开销
上。
当然这些也没必要纠结,同时用minicom自收自发一个大文本文件,串口分别用
CH340/CP210x/FT2232D就行了,只有串口驱动一个变量,这样的结论会比较可靠。
我目前得出的结论是Linux下FT2232D和CH340的CPU占用率没有什么差别。
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 我重开了一下,确实跟你说的表现是一致的。
: 但我用ASCII模式发了个PDF文件之后,就会这样了。
: 我进一步研究了下,如果在tmux里面开minicom又不会这样。所以大概率是我发的这个pdf里面的某个序列触发了terminal escape code,然后进入了某个未知的状态,导致这个term在耗cpu资源。那应该可以无视这个现象。
: ...................
--
修改:spadger FROM 36.45.171.*
FROM 36.45.171.*
1)我测试没有用任何开发板。都是USBTTL直接短接TX RX直接测试。
2)联系过WCH官方,官方也做了详细的对比测试,结论是FTDI的驱动有个“延迟计数器
”参数,默认设置16ms,可以使应用软件单次读取较多数据量,降低CPU占用。把延迟计
数器从16ms改为1ms以后,CPU占用率也会猛增。WCH的驱动考虑收发实时性,不会做延迟
处理。
原帖在这里,结论很明确了。
https://bbs.21ic.com/icview-3143714-1-1.html
【 在 feiy (null) 的大作中提到: 】
: 1、这里有两个对照,一个是不同USB串口工具之间的测试对照,一个是不同操作系统及
: 其驱动下的测试对照。
: 2、而最初的问题是“Windows下”CH340G占用CPU的问题,@spadger的实验也验证了,同
: ...................
--
FROM 36.45.168.*