微软为Vista系统的ehci驱动做了优化,其中一个优化是这样的:对于bulk管道,如果驱动一次请求比较大的数据传输的时候,系统驱动每收到512k的数据之后会有250纳秒延迟,也就是会有2个微帧不去向设备读数据。
对于这个现象,我的分析(不一定正确)是:这样有可能导致设备认为主机不再需要后面的数据了,因此如果设备一帧的数据大于512k,设备会认为系统驱动只请求512k,后面的会丢弃。而主机延迟了250纳秒之后再来请求却因为设备已经丢弃了数据而读不到数据了。
为此我想请教对固件比较熟悉的网友,是否可以让设备对250纳秒的延迟进行检测而能够继续把512k之后的数据传输上去呢?
如果这个方法不行的话,那也许以后的高分辨率的摄像头将只能采用isochronous的方式来进行传输了。
请问在win7下有什么方式去避免批量传输512K后的250纳秒延时?谢谢 |