- 主题:Re: CH340驱动很占用CPU资源,如何破?
这个就是拍脑袋了。CPU占用率高只有两个原因,一个是驱动写的烂,
另一个是硬件为了cost down少了点啥,用软件模拟。
【 在 jaralist 的大作中提到: 】
: 这个应该和你的数据带宽、ch340的缓冲区大小都有关系。
: cpu占用高不一定是坏处。有可能是这样不容易丢数据
--
FROM 180.111.50.*
不是...串口设备我认为加多少个对现在的CPU来说都是没负担的...
【 在 feiy 的大作中提到: 】
: 和我的测试结果的一致性差异差不多。但我的测试结果CPU占比明显还要高一些,可能与
: 不同的操作系统一起APP软件等配合,也有一定的关系。
: 假设CPU刨去一些本身的系统占用消耗而剩余的负担份额可以有60%,如果按照10%和2%的
: ...................
--
FROM 180.111.50.*
如果写得好的话,应该没多大影响,
实际就是走usb口的设备cpu占用都会大些。
比如相机的usb口和网口或者camlink,usb是占cpu最大的。
【 在 lvsoft 的大作中提到: 】
: 不是...串口设备我认为加多少个对现在的CPU来说都是没负担的...
:
--
FROM 222.65.170.*
据说CH340现在里面就是CH55x MCU模拟的
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
这个就是拍脑袋了。CPU占用率高只有两个原因,一个是驱动写的烂,
另一个是硬件为了cost down少了点啥,用软件模拟。
【 在 jaralist 的大作中提到: 】
: 这个应该和你的数据带宽、ch340的缓冲区大小都有关系。
: cpu占用高不一定是坏处。有可能是这样不容易丢数据
--
FROM 63.210.148.*
我要能测早就测了...
主要是我现在找不到CH340的USB-TTL,理论上在我桌角的某个地方...但翻了一圈只找到CP210X的...
或者我也可以马上焊一块来测试,但我比较懒,所以直接拍了几只等送到了再测吧...
我还是那句话,现在的电脑带10Gbps的东西才有可能有点压力。usb-ttl这种玩意顶天了2mbps吧,来100个也不应该有任何压力的。
【 在 feiy 的大作中提到: 】
: 你可以自己测试看看CH340打开多个串口同时访问。
: 我之所以提出这个问题,是因为我需要在电脑上带多个CH340的USB串口进行批量化测试
: ,带多了,CPU句满负荷很明显,容易出现问题。 若只有1-2个CH340的USB串口,监控C
: ...................
--
FROM 180.111.50.*
我觉得你太高估CH340驱动码农的能力了
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 我要能测早就测了...
: 主要是我现在找不到CH340的USB-TTL,理论上在我桌角的某个地方...但翻了一圈只找到CP210X的...
: 或者我也可以马上焊一块来测试,但我比较懒,所以直接拍了几只等送到了再测吧...
: ...................
--
FROM 36.45.170.*
我在linux下基本上没观察到类似现象。
我自己做的usb2.0采集卡,实际带宽基本上要跑到30MBps上下,并且第一版对丢包和时延都非常敏感(因为还没做同步协议,所以丢包了就失去同步了,然后时延是也因为设置的缓冲区太小,延迟一大就必定丢包)。基本上达到usb2.0能的实际上限了。当时用的pc用的还是一台pi like的弱鸡atom X86,cpu是intel的Z8350,大概就相当于现在的RK3399的A72核心的一半速度。上面要跑cv算法的,这cpu太弱基本都被cv算法用掉了,usb这块的cpu占用率估计是1%吧,反正是根本就没引起我的注意,top上根本就看不见的那种...
【 在 rexxie 的大作中提到: 】
: 如果写得好的话,应该没多大影响,
: 实际就是走usb口的设备cpu占用都会大些。
: 比如相机的usb口和网口或者camlink,usb是占cpu最大的。
: ...................
--
FROM 180.111.50.*
所以我比较感兴趣的是linux下的表现嘛。
这个是CH340的LINUX驱动代码,看了下作者应该跟WCH的人没啥关系。
https://github.com/torvalds/linux/blob/master/drivers/usb/serial/ch341.c
【 在 spadger 的大作中提到: 】
: 我觉得你太高估CH340驱动码农的能力了
:
--
FROM 180.111.50.*
内部MCU模拟对外也是表现为一个硬件的样子,不应该在驱动这里耗时间的。
我刚扫了眼LINUX下的CH340驱动,基本上这个代码就没有能耗CPU的地方。唯一一个FOR循环,计数也只有4次。
估计八成是WCH自己的驱动实现里面有忙等待了。
【 在 tom6bj 的大作中提到: 】
: 据说CH340现在里面就是CH55x MCU模拟的
: 这个就是拍脑袋了。CPU占用率高只有两个原因,一个是驱动写的烂,
: 另一个是硬件为了cost down少了点啥,用软件模拟。
: ...................
--
FROM 180.111.50.*