请问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。谢谢!