VF3xx USB HS Controller /USB Throughput

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

VF3xx USB HS Controller /USB Throughput

跳至解决方案
1,074 次查看
soichiyamamoto
Contributor V

Hello,

Is Throughput of VF3xx USB HS Controller more than ten 40MB/s ?

※bulk transfer.

And, please give me usb Throughput data.

Best regards,

soichi yamamoto

标签 (1)
0 项奖励
回复
1 解答
890 次查看
richard_stulens
NXP Employee
NXP Employee

USB throughput depends much on the kind of traffic that is being sent.

For Bulk, per USB2.0 specification, the absolute maximum is about 53 MB/s. That is when all packets are 512 bytes long and no high-level protocol overhead is involved. (i.e. packes are sent back to back)

It is impossible to achieve this theoretical  maximum in a real-life system becaue there will always be protocol overhead.

Besided the protocol overhead, there is the CPU reponse time. The USB controller itself can transfer the packets at maximum speed but the CPU must prepare the data packets and the transfer descriptors (control blocks).If the CPU is busy with other tasks, or serving other interrupts, then the USB transfers will be delayed and throughput will be reduced.

So it all depends on what kind of data you transfer and how busy the CPU will be with other tasks. All this is application dependent. It is therefore impossible to give a meaninful throughput number.

In general. to achive 40 MB/sec, you would need to tailor the system and give priority to USB. I do not believe that you can achive that on a VF3 with Linux because of the system overhead in the device drivers.

Best regards,

Richard

在原帖中查看解决方案

0 项奖励
回复
1 回复
891 次查看
richard_stulens
NXP Employee
NXP Employee

USB throughput depends much on the kind of traffic that is being sent.

For Bulk, per USB2.0 specification, the absolute maximum is about 53 MB/s. That is when all packets are 512 bytes long and no high-level protocol overhead is involved. (i.e. packes are sent back to back)

It is impossible to achieve this theoretical  maximum in a real-life system becaue there will always be protocol overhead.

Besided the protocol overhead, there is the CPU reponse time. The USB controller itself can transfer the packets at maximum speed but the CPU must prepare the data packets and the transfer descriptors (control blocks).If the CPU is busy with other tasks, or serving other interrupts, then the USB transfers will be delayed and throughput will be reduced.

So it all depends on what kind of data you transfer and how busy the CPU will be with other tasks. All this is application dependent. It is therefore impossible to give a meaninful throughput number.

In general. to achive 40 MB/sec, you would need to tailor the system and give priority to USB. I do not believe that you can achive that on a VF3 with Linux because of the system overhead in the device drivers.

Best regards,

Richard

0 项奖励
回复