• 正文
  • 推薦器件
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

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

2024/09/29
9萬
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

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

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

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

USB 協(xié)議開銷

在 USB 數(shù)據(jù)通信的過程中,總線上傳輸?shù)牟⒉皇撬卸际怯行畔ⅲ€要包括諸如同步信號、類型標識、校驗碼、握手信號等各種協(xié)議信息。因此實際數(shù)據(jù)傳輸?shù)乃俾矢緵]有可能達到總線傳輸?shù)臉O限速度 480 Mbps。且對不同的傳輸類型,存在不同的協(xié)議開銷。

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

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

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

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

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

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

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

USB 帶寬的分配

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

通常主機同時使用鼠標、鍵盤、攝像頭、打印機和掃描儀等多種 USB 設備,它們分別采用不同的傳輸方式。如果開始只有一個設備以批量傳輸方式獨占系統(tǒng)的全部帶寬,速度會很快(接近 53 MB/s)。但如果新插入的若干設備需要使用控制傳輸全部 20%的保留帶寬,那么先前設備批量傳輸?shù)目捎脦捑蜁陆档皆鹊?80%,傳輸速度可能變?yōu)?42 MB/s 以下。作為一種更極端情況是批量傳輸設備插入前,已有設備以控制傳輸方式完全占有了 20%的保留帶寬。其它設備也以中斷或者同步傳輸方式共同占據(jù)了剩下的 80%帶寬,那么批量傳輸設備就會因為沒有保留帶寬,只能處于等待的狀態(tài)。

硬件結構

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

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

USB 設備驅動程序

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

通常情況下設備驅動程序需要頻繁產(chǎn)生中斷。而設備驅動程序系統(tǒng)優(yōu)先級并不高,當計算機負荷較重或者有其它優(yōu)先級較高的中斷發(fā)生時,它的中斷得不到處理而需要等待。如果設備驅動程序向 USB 總線傳遞 URB 的時候設置一個較大的緩沖區(qū) . 便可減少了中斷的頻率而減少等待時間。從而提高數(shù)據(jù)傳輸?shù)乃俣?。此外,調整驅動程序中諸如命令排隊策略、改變請求包大小等措施,也能對 USB 的數(shù)據(jù)傳輸速度產(chǎn)生一定的影響。

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

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
PMZ2035RE6100K150R06 1 KEMET Corporation RC Network
$4.23 查看
39-00-0041 1 Molex Wire Terminal, LEAD FREE

ECAD模型

下載ECAD模型
$0.18 查看
7775-2 1 Keystone Electronics Corp PCB Terminal,

ECAD模型

下載ECAD模型
$0.71 查看

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄