[HPM-DIY]hpm6750 USB开源协议栈性能对比-cherryusb or tinyusb?
<div class='showpostmsg'><p><span style="font-family:宋体;"><span style="font-size:22px;"> 由于目前hpm的sdk使用的是tinyusb,但目前搞起来,性能速度还是极其不配这个MCU的高速USB,在之前的贴子也有提过,速度大概在6M/S到8M/S之间,这个速度中平。</span></span></p><p><span style="font-family:宋体;"><span style="font-size:22px;"> 还好国内有大佬自己搞了个开源的协议栈,叫cherryusb。这个协议栈之前有了解,但是也没去深入用。昨天和今天试了下,代码很直观,协议栈处理也在中断处理,最大保证性能执行。</span></span></p>
<p><span style="font-family:宋体;"><span style="font-size:22px;"> 把之前的类uvc传输的例子,替换tinyusb为cherryusb,经过对比,性能差距很大。</span></span></p>
<p><span style="font-family:宋体;"><span style="font-size:22px;"> cherryusb传输能达到30MB/S+,tinyusb只能最大在8MB/s多。</span></span></p>
<p></p>
<p> </p>
<p><span style="font-family:宋体;"><span style="font-size:22px;"> 从传输显示帧率看,cherryusb能到16fps,而tinyusb在5fps左右。</span></span></p>
<p> </p>
</div><script> var loginstr = '<div class="locked">查看精华帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
}
</script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p>usb本身还能衍生出这么多usb,然后各种速度还不一样</p>
<p>是因为usb原始协议里对传输速度的定义,是机动的吗,那是不是可以直接自己设置速度,然后跑到上限</p>
<p>cherryusb 又学到新知识了</p>
本帖最后由 IC爬虫 于 2022-7-30 18:13 编辑
<p>不知道移植替换到ESP32会不会复杂</p>
<p>-------------------------------------------------------</p>
<p>查了以下已经有支持了ESP32:https://github.com/CherryUSB/cherryusb_esp32/tree/master/esp32s2</p>
<p>过段时间时间试试</p>
nmg 发表于 2022-7-30 16:44
usb本身还能衍生出这么多usb,然后各种速度还不一样
是因为usb原始协议里对传输速度的定义,是机动的吗 ...
<p> 虽然我们在日常生活都会用到USB,而且也享受着它带来的便利。但是通信的交互还是得靠协议栈来干活,协议层处理USB规范中定义的与USB设备相关的所有操作。</p>
<p> 故市面上有很多USB协议栈,开源的,商用的都有。hpm用的就是tinyusb协议栈,他是开源的。同样cherryusb协议栈也是开源的,而且还是国内的人搞的。</p>
<p> 速度是硬件决定的。协议栈的处理决定着USB的速度性能能不能达到理想速度。</p>
IC爬虫 发表于 2022-7-30 18:07
cherryusb 又学到新知识了
<p>国内人搞的,仓库 <a href="https://github.com/sakumisu/CherryUSB">https://github.com/sakumisu/CherryUSB</a></p>
<p>port支持不少,demo也不少。协议栈代码简洁易懂</p>
<p>按作者的readme,cherryusb的优势:</p>
<p> </p>
IC爬虫 发表于 2022-7-30 18:09
不知道移植替换到ESP32会不会复杂
-------------------------------------------------------
查了以 ...
<p>esp32没有usb啊,支持usb的只有esp32s2 esp32s3。esp32c3也只是jtag作用</p>
RCSN 发表于 2022-7-31 09:28
esp32没有usb啊,支持usb的只有esp32s2 esp32s3。esp32c3也只是jtag作用
<p>是的,计划在ESP32S3上试试</p>
<p>目前打算用ESP32S3实现类似OpenMV那种CDC和MSC复合USB设备</p>
<p>cherryusb支持单片机?</p>
IC爬虫 发表于 2022-8-1 17:32
是的,计划在ESP32S3上试试
目前打算用ESP32S3实现类似OpenMV那种CDC和MSC复合USB设备
<p>有什么进展么</p>
<p>版主,我用先楫的HPM6750EVK2做UVC摄像头,摄像头模块用0v5640,图片大小1280*720,采集一张图片需要65ms感觉有点慢,然后经过jpeg编码,一张图片大小差不多50K左右,cherryusb发送,帧率只有7左右。感觉传输速度差太多了,有什么优化的点吗?</p>
页:
[1]