- 主题:Re: CH340驱动很占用CPU资源,如何破?
放狗搜了下,很奇怪为啥只有ch340不行,按理说就串口那点数据量,对cpu的需求不高才对啊。
The high CPU usage stemmed from the fact that in the application each channel opened its serial port at the start of the session and kept it open for the duration of the application session. This was fine with ports based on the Moxa ethernet-to-COM Port adapters, or with "local" ports, but in USB ports, just having the port open causes DPC CPU usage. Having 16 USB ports open makes the PC unusable, despite there being no traffic on any port.
I changed the app so that the ports are opened whenever they are required (which is only for a few seconds every minute or so) and closed immediately afterwards.
为啥要几个usb转串口?
【 在 feiy 的大作中提到: 】
: 测试发现,CH340的驱动,似乎很消耗CPU资源。
: 测试方法:插上基于CH340的USB串口,通信时会发现,CPU占用率明显会比较高,多插几
: 个基于CH340的USB串口一起访问时,会看到CPU的温度会因为CPU的消耗迅速上升。
: ...................
--
修改:rexxie FROM 222.65.170.*
FROM 222.65.170.*
恩,那很简单,把340换了。。
【 在 feiy 的大作中提到: 】
: 1、按照你的留言,似乎所有的USB串口都会有显著占用CPU资源的问题。
: 我的发现是,CH340做的USB很明显,单独1个就会占用大约接近15%的CPU,所以同时跑4个()就会看到CPU被狂占用而迅速升温。使用其他的USB转串口芯片,似乎没这么明显。
: 2、为啥要几个USB转串口?
: ...................
--
FROM 222.65.170.*
windows driver 写起来没那么容易,想从驱动层的角度来解决不是个好思路。
【 在 feiy 的大作中提到: 】
: 嗯,换USB串口方案当然可以。但是似乎主要的问题在于驱动相关,不晓得这里是否可以
: 有突破,或者APP里做个啥简单解决的配置什么的。看看这里是否有版友遇到和解决过。
: 尤其是后者这种。
: ...................
--
FROM 222.65.170.*
建议测一下FTDI的串口方案,看看cpu占用有没有区别,这样可以判断到底是ch340驱动的问题,还是你们应用层的问题。我经常基于串口做上位机开发,windows或linux下都没有发现cpu占用明显提高的情况。个人怀疑是测试程序的问题。
【 在 feiy 的大作中提到: 】
: 测试发现,CH340的驱动,似乎很消耗CPU资源。
:
: 测试方法:插上基于CH340的USB串口,通信时会发现,CPU占用率明显会比较高,多插几
: 个基于CH340的USB串口一起访问时,会看到CPU的温度会因为CPU的消耗迅速上升。
:
: 测试系统: Windows7
: ..................
发自「今日水木 on LYA-AL00」
--
FROM 221.218.212.*
CH340假货也挺多了,先排除。
【 在 feiy (null) 的大作中提到: 】
: 测试发现,CH340的驱动,似乎很消耗CPU资源。
: 测试方法:插上基于CH340的USB串口,通信时会发现,CPU占用率明显会比较高,多插几
: 个基于CH340的USB串口一起访问时,会看到CPU的温度会因为CPU的消耗迅速上升。
: ...................
--
FROM 36.45.170.*
re
cp210x什么的, 都试试呗
【 在 laserwin355 (laserwin355) 的大作中提到: 】
建议测一下FTDI的串口方案,看看cpu占用有没有区别,这样可以判断到底是ch340驱动的问题,还是你们应用层的问题。我经常基于串口做上位机开发,windows或linux下都没有发现cpu占用明显提高的情况。个人怀疑是测试程序的问题。
【 在 feiy 的大作中提到: 】
: 测试发现,CH340的驱动,似乎很消耗CPU资源。
:
: 测试方法:插上基于CH340的USB串口,通信时会发现,CPU占用率明显会比较高,多插几
: 个基于CH340的USB串口一起访问时,会看到CPU的温度会因为CPU的消耗迅速上升。
:
: 测试系统: Windows7
: ..................
发自「今日水木 on LYA-AL00」
--
FROM 63.210.148.*
可以在LINUX下测试下,或者有大致的测试条件么?我有空顺手也可以测测。
一般这种情况就是渣DRIVER。Linux下这个问题会好很多,因为Linux下的driver必须开源,这种低级问题应该很快就会被消除。
【 在 feiy 的大作中提到: 】
: 测试发现,CH340的驱动,似乎很消耗CPU资源。
: 测试方法:插上基于CH340的USB串口,通信时会发现,CPU占用率明显会比较高,多插几
: 个基于CH340的USB串口一起访问时,会看到CPU的温度会因为CPU的消耗迅速上升。
: ...................
--
FROM 180.111.50.*
我随手测试了下,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的缓冲区大小都有关系。
cpu占用高不一定是坏处。有可能是这样不容易丢数据
--
FROM 103.90.191.*
CP210x实测只占CPU 1%。
如果你换别的串口硬件没问题,那就是CH340没跑了。
--
FROM 121.69.13.*