u盤2.0和3.0的區別「usb2.0驅動怎麼安裝」

USB2.0 規範中傳輸速度是 480 Mbps(即 60 MB/s)。但是很多 USB2.0 設備在實際工作時的數據傳輸速度卻與此相差甚遠,比如用 PC 用 U 盤拷個東西,往往比 60MB/s 慢很多,這是為什麼呢?

其實想想也能知道一些原因,USB 總線中傳輸數據的就一對差分線,單是其要同時支持各種設備(一個 USB HOST 設備通過 USB HUB 下面掛多個從設備是可以同時用的),支持雙向傳輸,必然存在複雜的協議,協議上面的開銷肯定不少,另外對於其中的單個設備來說也只能得到部分傳輸帶寬。

USB2.0實際傳輸速度為什麼與480Mbps相差甚遠

總的來說,主要有以下幾個因素:USB 協議開銷,USB 帶寬的分配,硬件結構,USB 設備驅動程序

USB 協議開銷

在 USB 數據通信的過程中,總線上傳輸的並不是所有都是有效信息,還要包括諸如同步信號、類型標識、校驗碼、握手信號等各種協議信息。因此實際數據傳輸的速率根本沒有可能達到總線傳輸的極限速度 480 Mbps。且對不同的傳輸類型,存在不同的協議開銷。

USB 有 4 中傳輸模式:控制傳輸、批量傳輸、中斷傳輸、同步傳輸。

根據 USB 協議,USB2.0 的告訴模式,1 秒有 8 個微幀,計算 4 中模式的最大速度傳輸如下:

傳輸類型 數據包長度 /Byte 每微幀最大傳輸次數 最大速度 /(MB/s)
控制傳輸 64 31 15.137
中斷傳輸 1024 3 23.436
批量傳輸 512 13 50.781
同步傳輸 1024 3 24.436

控制傳輸:控制傳輸是雙向傳輸,數據量通常較小,主要用來進行查詢、配置和給 USB 設備發送通用的命令。

中斷傳輸:中斷傳輸方式主要用於定時查詢設備是否有中斷數據要傳送,該傳輸方式應用在少量的、分散的、不可預測的數據傳輸場合。鍵盤,鼠標等。

批量傳輸:在訪問 USB 總線時,相對其他傳輸類型具有最低的優先級,USB HOST 總是優先安排其他類型的傳輸,當總線帶寬有富餘時才安排批量傳輸,打印機,掃描儀,存儲設備等。

同步傳輸:同步傳輸適用於以固定速率傳輸,可以容忍偶爾錯誤的數據上。實時傳輸一般用於 UVC 攝像頭等設備。數據傳錯時不會重傳。

USB 帶寬的分配

USB 協議規定,控制傳輸應確保在低 / 全速時能夠使用 10%的帶寬,高速時能夠使用 20%的帶寬。而批量傳輸並沒有保留任何帶寬。即批量傳輸只有在控制傳輸和其它傳輸不需要使用其帶寬的情況下,方能使用剩下的帶寬。因此,儘管總線閑置時批量傳輸可以在一段時間裡儘快地傳輸大量的數據,但總線忙時批量傳輸就可能工作很慢。

通常主機同時使用鼠標、鍵盤、攝像頭、打印機和掃描儀等多種 USB 設備,它們分別採用不同的傳輸方式。如果開始只有一個設備以批量傳輸方式獨佔系統的全部帶寬,速度會很快(接近 53 MB/s)。但如果新插入的若干設備需要使用控制傳輸全部 20%的保留帶寬,那麼先前設備批量傳輸的可用帶寬就會下降到原先的 80%,傳輸速度可能變為 42 MB/s 以下。作為一種更極端情況是批量傳輸設備插入前,已有設備以控制傳輸方式完全佔有了 20%的保留帶寬。其它設備也以中斷或者同步傳輸方式共同佔據了剩下的 80%帶寬,那麼批量傳輸設備就會因為沒有保留帶寬,只能處於等待的狀態。

硬件結構

其實常用 USB 接口的硬件結構如下圖,一個 USB HUB 下面掛了多個設備,即時我們用 PC 時是直接用的電腦的 USB 接口,那也是因為廠家把 USB HUB 做到 PC 裡面了,這樣才能有這麼多的 USB 接口。

USB HUB 的外設(Device 端)所有的數據之和是和 HOST 端一樣的,而 HOST 端也不能超過 480Mb/s,所以 480Mb/s 的速度是大家共享的,而不是某一個獨享。

USB2.0實際傳輸速度為什麼與480Mbps相差甚遠

USB 設備驅動程序

USB 設備的驅動可以分為設備驅動程序、USB 總線驅動程序、USB 控制器驅動程序三個部分。應用程序通過使用 API 函數與 USB 設備驅動程序聯繫。USB 設備驅動程序通過調用驅動程序完成對設備的數據讀寫。USB 總線驅動程序和 USB2.0 控制器驅動程序由操作系統提供。設備驅動通過構造 URB(USB Request Block),並傳給總線驅動程序來完成與總線驅動程序的通信。

通常情況下設備驅動程序需要頻繁產生中斷。而設備驅動程序系統優先級並不高,當計算機負荷較重或者有其它優先級較高的中斷髮生時,它的中斷得不到處理而需要等待。如果設備驅動程序向 USB 總線傳遞 URB 的時候設置一個較大的緩衝區 . 便可減少了中斷的頻率而減少等待時間。從而提高數據傳輸的速度。此外,調整驅動程序中諸如命令排隊策略、改變請求包大小等措施,也能對 USB 的數據傳輸速度產生一定的影響。

綜上所述,通常所說的 480 Mbps 是 USB2.0 總線速度的上限 . 考慮通信協議的開銷後,實際數據的傳輸速度存理論上最高也只有 53 MB/s(426Mbps). 實際綜合條件下 15 MB/s 至 25 MB/s 都可以作為合理的高速目標。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/276509.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-19 13:22
下一篇 2024-12-19 13:22

相關推薦

發表回復

登錄後才能評論