在測試USB3.0移動硬盤的時候,發(fā)現(xiàn)一個奇怪的現(xiàn)象:
如果將USB3.0設(shè)備緩慢插入或者分段插入USB3.0口后(所謂分段插入即插入一小部分,略做停留再完整插入)
用HDD Tach檢測USB3.0移動硬盤的突發(fā)傳輸速度,居然是USB2.0的速度(35MB/s左右)。
在使用NEC,ASMedia USB3.0,芯片的各家主板上驗證后,都有這種現(xiàn)象,這是為什么呢?
后來通過仔細(xì)研究了USB2.0,USB3.0的接線定義及多次試驗后,終于真相大白,讓我們一起來看看原因
從上圖我們可看到,USB2.0的1-4Pin的定義和USB3.0一致,
不同的是增加了2對TX,RX信號線及1根Gnd線
后部分的5根Pin腳才是USB3.0的關(guān)鍵Pin腳
當(dāng)在主板上的USB3.0母口上插入USB3.0設(shè)備時:
公口前端的4 pin(USB2.0)信號線會與母口的4 pin(USB2.0)信號線先接觸,接著再是5pin的信號線接觸.
如果系統(tǒng)偵測設(shè)備的短暫時間里,如果我們還沒有讓后5Pin(USB3.0)信號線接通的話,設(shè)備就被系統(tǒng)判定為USB2.0設(shè)備了,即:
設(shè)備插入時間>系統(tǒng)識別設(shè)備的時間,則USB3.0設(shè)備被系統(tǒng)提前識別為USB2.0設(shè)備
設(shè)備插入時間指的是從設(shè)備插入開始到后5Pin信號線接通之間的一小段非常短暫的時間.
疑問:
設(shè)備只是開始插慢了一點,但是設(shè)備最后還是被完全插入了,為何設(shè)備還是被認(rèn)成USB2.0設(shè)備呢?
這是因為,系統(tǒng)把設(shè)備偵測為USB2.0設(shè)備后,當(dāng)公口,母口的USB2.0 pin腳接觸后,沒有再次啟動設(shè)備偵測。
我們只需要重啟OS,或者在設(shè)備管理器下disable USB3.0 Controller,再Enable USB3.0 Controller即可。
通過這樣的操作后,我們可以通過運行HD-Tach來驗證突其發(fā)傳輸速度,可以達(dá)到100MB/s以上。
這是小編剛剛實測的,傳同一個壓縮文件,用的USB3.0的移動硬盤
﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
免責(zé)聲明:
本文轉(zhuǎn)自網(wǎng)絡(luò),版權(quán)歸原作者所有,如涉及作品版權(quán)問題,請及時與我們聯(lián)系,謝謝!
單片機(jī)開發(fā)設(shè)計之"十層功力"
老司機(jī)們都是怎么學(xué)習(xí)STM32的?
若覺得文章不錯,轉(zhuǎn)發(fā)分享,也是我們繼續(xù)更新的動力。
5T資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、單片機(jī)、等等!
在公眾號內(nèi)回復(fù)「
更多資源
」,即可免費獲取,期待你的關(guān)注~
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!