3、對于海量儲存而言,上面標記了“●”的命令是必須響應。當然,海量儲存包括了USB移動存放裝置,因此USB移動存放裝置也必須響應這些命令。
4、上面第3點說明,對于海量存放裝置的命令,部分命令碼被重複定義不會導致通訊出錯,因為它們根本不會被系統調用。
5、其實,細心一點,回顧上圖,會發現無論是USB Controller、RootHub還是USB裝置,其地址都是遞增的,即不會重複。一開始我認為一個PC可能有多個USB Controller,後來我大膽推測,一個PC(或者說一塊主板),只有一個USB Controller。【註:當然,如果這個地址只是BusHound自己分配的,那麼所有推測就都沒意義了。】
再後來,上網查了下,真相大白。
在USB2.0出來之前,一個主板上只有一個USBController,即USB1.1的Controller。USB2.0出來之後,為了支援USB2.0,只支援USB1.1的主板上就多加了一個USB2.0的適配器,但是這個適配器和USB1.1Controller是獨立工作,互不影響的。而在USB2.0後面設計的主板,就只有一個USB Controller了,你也可以說是USB2.0Controller,但是這個USB2.0 Controller是支援USB1.0和USB1.1的,即相容了FS和LS。
再再後來,我又做了一個推測,對於主板上這個唯一的USB Controller,它早已把地址做了劃分,先對每個子Controller劃分地址,同時標明該Controller會被用於串連哪些裝置。接著按序又為每個子Controller的RootHub分配接下來的地址,然後才是Hub和USB移動存放裝置。當然,如何劃分,是不是這樣劃分,還有指定每個子Controller的用途,對於不同的主板應該有各自不同的規定。於是,從這個推測中得到一個推測的結論,一個PC上能夠讓使用者外接的USB裝置不可能有127個。
6、從協議分析儀可以看到BusHound顯示的Controller都是什麼樣的USB Controller類型。
Host controller interface (HCI) is a registerlevelinterfacewhich allows ahost controller forUSB orFireWireto communicate with theoperatingsystem of apersonal computer.
Open Host Controller Interface, orOHCI,is anopen standard.
Universal Host Controller Interface (UHCI)was created by Intel forUSB 1.0 (full and low speeds).
Enhanced Host ControllerInterface (EHCI)is a high speed controller standard which is publicly specified. The USB-IFinsisted on this for USB 2.0 instead of having a different standard forPCI-based USB interfaces, which would have increased complexity and thereforecosts. Intel hosted the EHCI conformance testing, which helped to preventdivergence from the standard.
7、USB協議規定,USB的延長線不能超過5M,因此在實際使用時,最好使用短且粗的USB延長線。
8. 解析資料:a3 00 00 00 01 00 04 00
a3:其它類型請求=裝置到主機,00:指定命令=GET STATUS ,00 00:值為0 ,00 01:裝置 ,00 04:長度4
查看通訊的資料,需要在設定介面裡,把IN、OUT兩個勾選上
9.用BusHound測量出資料轉送速率
在設定介面可以勾選命令回應時間的顯示
10.只要是usb端和host端的通訊資料,bushound都可以抓到。另外Data資料區的長度是可以設定的。