据我所知,使用等时传输的USB端点有一个“wMaxPacketSize”参数,内核使用该参数来保证端点的一定带宽。
如果我没有弄错,这个最大数据包大小可以在0到1024字节之间(用于高速传输)。如何将此参数转换为Linux系统中高速(EHCI)控制器的Mbps带宽分配?
USB带宽分配所依赖的其他因素,如果有的话?
谢谢!
发布于 2012-01-13 01:14:48
经过一番研究,我现在可以回答我自己的问题了。高速设备的最大等时分组大小为1024字节。每个微帧最多可以有三个包,一个微帧有125微秒宽,这意味着每毫秒可以传输8个微帧。
这使我们的最大带宽分配为3*1024*8*1000 = 23.438 MB/s (编辑:用于表示mbps)。
wMaxPacketSize参数是一个两个字节值,其中包含存储每个数据包的最大大小和每个微帧的数据包数的位映射。
因此,带宽分配如下:
(包/微帧)* (max_packet_size) * (8微帧/毫秒)*(1000毫秒/S)
还需要注意的是,根据USB2.0规范,只有80%的带宽可以分配给周期性传输,比如等时传输和中断传输。
https://unix.stackexchange.com/questions/28817
复制相似问题