加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

USB接口概述(三)

2020/08/10
482
閱讀需 8 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

USB 接口

首先看一看 USB 的接口,當(dāng)你看到這些接口時,你應(yīng)該知道,哦,那是 USB 接口。

不然學(xué)完了 USB,USB 接口都不認(rèn)識那就很尷尬了。

看到這些接口是不是很熟悉?

常用的接口有 Type A 接口,這個接口一般直接插在電腦上的,Type B 接口比較少見,目前比較常見的是 Mini-B、Micro-B 接口,前者在 MP3 之類的設(shè)備中比較常見,當(dāng)然在我們工程師中的調(diào)試器中也經(jīng)常使用,后者多用于手機等設(shè)備,不過目前大部分手機接口用 Type-C 接口代替了:

(圖片來源于網(wǎng)絡(luò))

這種接口可以正反插,并且能提供比其它接口更大的電流,速度更快,所以今天可以看到越來越多的設(shè)備開始支持 Type-C 了。

我們可以看看這些接口內(nèi)部的引腳分布情況(不包含 Type-C 接口,這個接口引腳很多):

第四引腳在某些接口中可能沒有,其他引腳都是存在的。

Vbus 和 GND 兩個硬件用于供電,提供恒定的 4.4 ~5.25 V 電源(當(dāng) USB 為設(shè)備提供 5.25 V 電源時,數(shù)據(jù)線工作在 3.3 V),當(dāng)設(shè)備使用總線供電時,將由這兩根引腳提供所需電源,當(dāng)然總線提供的電流比較有限,所以如果說總線不足以提供足夠的電源,那么就需要使用外部供電。

D-、D+兩個引腳用于數(shù)據(jù)傳輸,類似串口的 Tx、Rx 數(shù)據(jù)線,不同的是,USB 采用差分方式傳輸,使用雙絞線,并且在線上傳輸?shù)臄?shù)據(jù)編碼遠(yuǎn)比串口的復(fù)雜,這個將在下節(jié)介紹。

這里需要注意一下線的顏色,一般的廠家生產(chǎn) USB 數(shù)據(jù)線時會按照標(biāo)準(zhǔn)來生產(chǎn),但是有些廠家卻不一定,紅色不一定是電源,黑色不一定就是地,使用的時候需要注意確認(rèn)。

標(biāo)準(zhǔn)的 USB 數(shù)據(jù)線外部一般會有屏蔽線包裹,防止外部干擾,但是有些廠家偷工減料,可能并沒有屏蔽線,甚至連 D-、D+數(shù)據(jù)線都沒有,只提供電源線。

(圖片來源于網(wǎng)絡(luò),外層白色包裹為屏蔽線)

因為采用差分傳輸,并且只有兩個引腳,所以總線為半雙工傳輸,即同一時刻只能發(fā)送或接收。同時 USB 采用一主多從模式,即 USB 網(wǎng)絡(luò)中只有一個主機,其他都是從機,也就是設(shè)備。

USB 歷史版本

USB 經(jīng)過多年的發(fā)展,經(jīng)歷了多個版本,初始版本 1.0,于 1996 年完成,支持低速(LS)模式(1.5Mb/s)和全速(FS)模式(12Mb/s)。

USB1.1 規(guī)范于 1998 年面世,改進了 1.0,但速度上沒有改變。

USB2.0 在 2000 年問世,增加了新的速度模式,即高速(HS)模式,最高支持 480 Mb/s。

USB3.0 在 2008 年發(fā)布,傳輸速率 5Gb/s。

這些版本保持向后兼容的特性,即 USB3.0 的主機接口可以接入 USB 1.0、2.0 的設(shè)備,但是受到設(shè)備本身的速度影響,所以最終的速度由低版本速度決定。

通過數(shù)據(jù)(D+或 D-)線上的上拉電阻的位置,主機可以識別低速設(shè)備和全速設(shè)備,而高速設(shè)備會在之后移除上拉電阻。

STM32F103 中,支持 USB 2.0 接口 ,但是只支持全速模式下的 2.0,即最大速度只有 12 Mb/s,換算到字節(jié)的話,只有 1.5 MB/s,除去 USB 本身的協(xié)議開銷的話(類似串口中的起始位、結(jié)束位開銷,但 USB 比這個復(fù)雜的多),最大有效數(shù)據(jù)帶寬差不多在 1.2 MB/s(我們接下來要學(xué)習(xí)的就是全速模式)。

所以不要認(rèn)為 USB2.0 的接口一定支持高速模式。

在 STM32F4 中,USB 開始支持高速模式,并且支持 OTG,這個模式使得 USB 設(shè)備既可以當(dāng)做主機也可以當(dāng)設(shè)備使用。

現(xiàn)在的手機一般都支持 OTG,即通過一根轉(zhuǎn)接線,即可將 U 盤之類的設(shè)備插入手機中使用,所以當(dāng)你的手機觸摸屏壞了,別著急,插上無線鼠

標(biāo)鍵盤套餐,照樣玩手機。

當(dāng)然這只是應(yīng)急使用,真正來說,沒誰會隨身帶著鼠標(biāo)鍵盤的。

HUB 與 USB 拓?fù)浣Y(jié)構(gòu)

除了常見的設(shè)備外,在 USB 網(wǎng)絡(luò)中,還有一種特殊的設(shè)備,即 HUB(集線器),這種設(shè)備只有一個作用,就是將一個 USB 接口分成多個 USB 接口(最多 7 個)使用,這樣即使你的電腦只有一個 USB 接口,通過 HUB,你也可以實現(xiàn)多個設(shè)備的連接。

HUB 對于用戶而言是透明的(即用戶在使用時不用特別去操作它),而為了實現(xiàn)這種透明,HUB 所做的工作要比上述復(fù)雜的多,具體可以找相關(guān)資料,魚鷹有時間也會研究一下這種特殊的設(shè)備。

?

上圖是 USB 連接圖,可以看到,通過 HUB,一個 USB 網(wǎng)絡(luò)中可以連接非常多的設(shè)備(最多 127 個,由 USB 設(shè)備 7 位地址決定),并且由于集線器的時間和電纜傳播的延遲,最多只能連接五個 HUB,在層次上表現(xiàn)為上圖的 7 層(在全速和高速設(shè)備中,最大線纜長度為 5 m,低速設(shè)備限制為 3 m)。

USB 網(wǎng)絡(luò)中的所有設(shè)備(包括 HUB)都有一個地址,范圍 0~127,地址 0 是所有設(shè)備在接入 USB 網(wǎng)絡(luò)時使用的默認(rèn)地址,當(dāng)設(shè)備完成枚舉后,即可擁有新的 USB 設(shè)備地址,之后所有的通信都將采用新地址通信。也就是說, USB 設(shè)備的地址是動態(tài)的,類似網(wǎng)絡(luò)的 IP 地址。

USB 層次結(jié)構(gòu)

下面再來看看 USB 層次結(jié)構(gòu):

在開發(fā)時,由于我們主要是軟件開發(fā),所以主要的關(guān)注對象是上面兩層,而底層的實現(xiàn)一般來說都是由硬件自動完成的,比如 STM32 就幫我們實現(xiàn)了這一層,我們只需要獲取底層的數(shù)據(jù)然后進行相應(yīng)的處理即可。

但是為了更好、更全面的理解 USB,這一層的內(nèi)容魚鷹也會在下一節(jié)進行介紹。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

六年開發(fā)經(jīng)驗,豐富的KEIL調(diào)試經(jīng)驗,STM32使用經(jīng)驗,C語言運用經(jīng)驗。