通過usb hound分別監(jiān)控到ch567和電腦枚舉的過程,左圖是電腦主機的usb2.0,右圖是ch567的usb2.0。
可以看出usb的版本號、PID、bcddevice、設(shè)備序列號都是不一樣的。圈圈說PID、序列號不一樣會導(dǎo)致加載的驅(qū)動不同,所以我猜測是因為這個原因?qū)е聝烧呙杜e的過程不一樣,ch567才會重新枚舉一次,設(shè)備才能正常工作。
請問是什么原因會導(dǎo)致兩者的描述符不一樣的?
通過usb hound分別監(jiān)控到ch567和電腦枚舉的過程,左圖是電腦主機的usb2.0,右圖是ch567的usb2.0。
可以看出usb的版本號、PID、bcddevice、設(shè)備序列號都是不一樣的。圈圈說PID、序列號不一樣會導(dǎo)致加載的驅(qū)動不同,所以我猜測是因為這個原因?qū)е聝烧呙杜e的過程不一樣,ch567才會重新枚舉一次,設(shè)備才能正常工作。
請問是什么原因會導(dǎo)致兩者的描述符不一樣的?
你所說的重新枚舉一次指什么情況?重新枚舉抓包會跟第一次不一樣?
第二次就變成這樣了...
CTL? 80 06 00 01? 00 00 12 00 ?
IN?? 12 01 10 02? 00 00 00 40? 1d 2a 01 00? 00 00 01 02? 00 01?? ???????
有嘗試過其他設(shè)備嗎?重新枚舉是硬件自動完成,還是需要手動復(fù)位這種?
其它設(shè)備沒發(fā)現(xiàn)右這樣的情況,重新枚舉是主機請求,然后設(shè)備再響應(yīng)。沒有手動復(fù)位的過程。
那既然自動重新枚舉,后面的枚舉能夠成功嗎?
后面枚舉是成功的,只是為什么會出現(xiàn)這樣的情況。是同一個設(shè)備啊,同樣的接口,裝的也是同一個驅(qū)動,為什么第一次枚舉得到的描述符是不相同的。
你仔細(xì)看下,除了設(shè)備描述符,配置描述符也不一樣。你看下配置描述描述的設(shè)備類別。麻煩貼完整點。
設(shè)備類別(bDeviceClass)這個域是在設(shè)備描述符(Standard Device Descriptor)里的,不是配置描述符的,而且這個域是沒變過的。
。。。。。