CH32V307 USBHS的吞吐量

请问CH32V307 USBHS的吞吐量有多少?

USB 2.0HS所提供的理论带宽是480Mbps。通常情况下实际最大吞吐量应该能达到约为320Mbps (40MBps),大致是理论值的三分之二。

我这边使用的是贵司官方的 EVT\EXAM\USB\USBHS\DEVICE\CH372Device 示例,底层将数据复制部分的代码全部注释掉,这样只测试USB的通道速率。

    else if(end_num == 1)
    {
      if(rx_token == PID_IN) 
      {
      }
      else if(rx_token == PID_OUT)
      {
#if 0
        rx_len = USBHSD->RX_LEN;
        for(i=0; i< rx_len; i++)
        {
          EP1_Tx_Databuf[i] = EP1_Rx_Databuf[i];
        }
#endif

        USBHSD->UEP1_TX_LEN  = rx_len;

        USBHSD->UEP1_RX_CTRL &= ~ USBHS_EP_R_RES_MASK;
        USBHSD->UEP1_RX_CTRL |= USBHS_EP_R_RES_ACK;    

        USBHSD->UEP1_TX_CTRL &= ~USBHS_EP_T_RES_MASK;  
        USBHSD->UEP1_TX_CTRL |= USBHS_EP_T_RES_ACK;
      }
    }

上位机一次发送5120个字节,发送10000次,统计单向发送速率(只发不收)发现吞吐量在200Mbps,和320Mbps相差还不小,单向测试接收(不发送,只读取)稍快一些,但是基本也是这个值。

后来继续增加单次发送的数据量,已验证可以达到320Mbps,稳定在346Mbps。谢谢!

我这边刚好也有一组测试数据可以参考下,最近测试了以下几种USB2.0方案(STM32F407+USB3320,CH132,CH32V307)的速度情况,库函数操作方式进行USB2.0批量传输速度测试,上传数据由MCU到计算机,下传数据计算机到MCU,测试结果如下图。我的下传速度是53MB/s,也就是424Mbps,感觉你的速度应该还能提升。

image.png


@see 感谢回复,目前已经达到了产品通信需求,如果改成DMA双缓冲应该还有提升,424Mbps的速率还是令人印象深刻,迄今为止见过最高的实测速率,我这边测试是基于USB BULK协议(最大包长512)的,不知道您那边是基于什么协议测试的?


我用的也不是双缓冲,和你一样直接用的EVT例程,批量传输,看你描述应该和我差不多,我也是直接将复制部分代码直接注释掉,测试包大小是4194304字节。


CH32V307 USBHS,开发板发送、PC接收一直调不通,麻烦帮忙发一下相关程序,个人信息保护,已隐藏,万分感谢!


您好,若你直接使用我们例程做测试,附件例程为模拟CH372设备,需要配合对应的上位机软件使用,上位机软件下载链接如下:

/downloads/CH372DBG_ZIP.html

同时需要安装对应的驱动,驱动下载链接如下:

/downloads/CH372DRV_EXE.html

后续若有问题,可直接通过邮箱沟通(lzs@wch.cn)


EVT\EXAM\USB\USBHS\DEVICE\SimulateCDC-HID
使用这个虚拟串口上传数据到主机最大速度只有   19MB/s  你们速度那么高是咋测试的,用的程序和软件能发一下吗?邮箱地址:个人信息保护,已隐藏


我调试out没问题,in 在bushound一直挂住,请帮忙解决啊


你好,例程实现的是

端点1/3/5分别通过端点1/4/6下载数据和上传数据

端点1通过环形缓冲区上传和下载,无数据反转,端点3/4和端点5/6复制和上传。

我这边测试了端点3out,后端点4对此数据取反上传,未发现问题,请保持例程为最新版本:/downloads/CH32V307EVT_ZIP.html

后续若有问题,可直接邮箱与我沟通(yrl@wch.cn)

image.png


只有登录才能回复,可以选择微信账号登录