全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:5441
推到 Plurk!
推到 Facebook!

如何知道USB2.0裝置被判為插入USB1.1 Hub

尚未結案
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-06 10:25:32 IP:61.66.xxx.xxx 未訂閱
請問各位前輩 我目前在做USB裝置的傳輸率測試 有時候USB2.0裝置插入USB2.0的PORT會被判為USB1.1 以至於傳輸率一定會達不到預期 請問我的程式該從哪邊知道(registry or ....)
rogan321
高階會員


發表:21
回覆:307
積分:200
註冊:2003-05-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-06 22:39:22 IP:203.204.xxx.xxx 未訂閱
Hi~blk5743 可抓取Device Descriptor(裝置描述元?)即可知道~利用M$~DDK附的一隻小程式來抓取(USBVIEW.EXE)或直接用API來抓
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-07 07:57:51 IP:61.66.xxx.xxx 未訂閱
rogan321你好 我想要用程式去判斷,所以應該不會用USBVIEW.EXE去做 而使用API要用哪一種呢?? 因為我的裝置和PORT都是USB2.0,所以API去抓會不會永遠都抓2.0 而不會像OS一樣,有時候誤判為USB1.1??
jimmy_and_you
初階會員


發表:20
回覆:74
積分:33
註冊:2003-05-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-07 11:04:55 IP:203.70.xxx.xxx 未訂閱
你可以去 http://www.usb.org 看看USB的SPEC 由DEVICE 的描述就可知道DEVICE為USB 1.1 或是2.0 至於怎麼去抓出這些描述.... 參考DDK的USBVIEW.EXE的做法就可以了
rogan321
高階會員


發表:21
回覆:307
積分:200
註冊:2003-05-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-07 12:45:07 IP:203.204.xxx.xxx 未訂閱
引言: rogan321你好 我想要用程式去判斷,所以應該不會用USBVIEW.EXE去做 而使用API要用哪一種呢?? 記得好像是GetDescriptor() 和SetDescriptor(),用法可能要查一下MSDN才清楚 因為我的裝置和PORT都是USB2.0,所以API去抓會不會永遠都抓2.0 而不會像OS一樣,有時候誤判為USB1.1??
請問一下jimmy_and_you大大, USBVIEW.EXE有開放源嗎,有的話可從哪得到?
lij1208
一般會員


發表:1
回覆:5
積分:1
註冊:2005-01-07

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-07 19:13:40 IP:203.67.xxx.xxx 未訂閱
引言:
引言: rogan321你好 我想要用程式去判斷,所以應該不會用USBVIEW.EXE去做 而使用API要用哪一種呢?? 記得好像是GetDescriptor() 和SetDescriptor(),用法可能要查一下MSDN才清楚 因為我的裝置和PORT都是USB2.0,所以API去抓會不會永遠都抓2.0 而不會像OS一樣,有時候誤判為USB1.1??
請問一下jimmy_and_you大大, USBVIEW.EXE有開放源嗎,有的話可從哪得到?
在MS的DDK裡有Source code
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-01-08 23:43:55 IP:61.31.xxx.xxx 未訂閱
感謝rogan321的指導 因為這問題我也不是常常遇到,等我試了再給分就太慢了 所以分數就給rogan321了
ryuhuang
一般會員


發表:0
回覆:7
積分:1
註冊:2004-03-31

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-02-24 18:24:58 IP:220.130.xxx.xxx 未訂閱
基本上可以用USB Device Request去下Get Descriptor的Request得知目前的USB裝置是否可在HiSpeed下動作, 如果USB裝置有回Device Qualifier Descriptor的話, 就表示該裝置有支援HiSpeed。    關於如何在Windows下來得知USB裝置的Descriptor的方法, 就是參考上面前輩所提供的意見, 參考USBView這個程式的SourceCode, 在enum.c這裡, 有一段可以參考看看。
 
    success = DeviceIoControl(hHubDevice,
                              IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION,
                              configDescReq,
                              nBytes,
                              configDescReq,
                              nBytes,
                              &nBytesReturned,
                              NULL);
如果想在有USB2.0的HOST想實驗一個USB2.0的DEVICE插入非USB2.0的HOST的話, 可以先在裝置管理員裡把USB Enhanced Host Controller停用, 此時你的USB HOST就變成非USB2.0的HOST, 就可以做實驗了, 如果你的作業系統是Windows XP的話, 當你把USB2.0的DEVICE插入非USB2.0的HOST時, 作業系統也會提醒。 發表人 - ryuhuang 於 2005/02/24 18:28:38
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-02-24 19:44:12 IP:61.66.xxx.xxx 未訂閱
基本上我的Hub及Device都是USB2.0的裝置 但是有時候插拔會被誤判 所以我想知道的是,這一次被"誤判"為USB 1.1的Hub
系統時間:2024-11-24 8:41:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!