USB的全稱是通用串行總線(英語:UniversalSerialBus),USB協(xié)議或通用串行總線最初由英特爾的AjayBhatt于1996年開發(fā)和推出,通用串行總線(USB)是一種廣泛采用的接口標(biāo)準(zhǔn),用于將設(shè)備連接到計(jì)算機(jī),從而實(shí)現(xiàn)設(shè)備之間的數(shù)據(jù)傳輸、電源傳輸和通信。
USB協(xié)議是一套規(guī)則和標(biāo)準(zhǔn),用于管理通過USB連接進(jìn)行的設(shè)備通信,對(duì)于使用USB設(shè)備或開發(fā)基于USB的應(yīng)用程序的個(gè)人來說,它是必備知識(shí)。USB協(xié)議定義了數(shù)據(jù)包的結(jié)構(gòu)、數(shù)據(jù)傳輸?shù)臅r(shí)間以及連接的電氣特性。
通用串行總線旨在實(shí)現(xiàn)熱插拔和增強(qiáng)即插即用。即插即用允許操作系統(tǒng)自發(fā)配置和發(fā)現(xiàn)新外圍設(shè)備,而無需啟動(dòng)計(jì)算機(jī),而熱插拔則無需重新啟動(dòng)即可移除和更換新外圍設(shè)備。市場(chǎng)上有不同類型的USB連接器,其中A型和B型是最常用的。目前,舊款連接器已被Mini-USB、Micro-USB和USB-C電纜取代,典型的A型USB連接器用于各種應(yīng)用。這些USB包括下面給出的4個(gè)引腳。這種類型的USB主要用于將各種設(shè)備連接到PC,因?yàn)樗堑湫偷乃尼楿SB連接器。這種連接器更高更窄,包括排列在一個(gè)盒子內(nèi)的4個(gè)引腳。
A型USB的引腳用彩色線表示,以執(zhí)行特定功能,PIN1(VBUS):紅色線,用于提供電源,PIN2(D-):白色差分對(duì)引腳,用于USB連接,PIN3(D+):綠色差分對(duì)引腳,用于USB連接,Pin4(GND):黑色接地引腳,在上述引腳中,D+和D-引腳均表示數(shù)據(jù)傳輸。當(dāng)通過線路發(fā)送“1”時(shí),D+線將有正向流動(dòng),如果發(fā)送“0”,則發(fā)生反向流動(dòng)。
USB協(xié)議的架構(gòu)如下所示。一旦各種I/O設(shè)備通過USB連接到計(jì)算機(jī),它們就會(huì)像一棵樹一樣構(gòu)成結(jié)構(gòu)。在這種USB結(jié)構(gòu)中,每個(gè)I/O設(shè)備都會(huì)進(jìn)行點(diǎn)對(duì)點(diǎn)連接,以通過串行傳輸格式傳輸數(shù)據(jù)。
在這種架構(gòu)中,IO模塊設(shè)備通過USB連接到計(jì)算機(jī),這被稱為集線器。架構(gòu)中的集線器是I/O設(shè)備和計(jì)算機(jī)之間的連接點(diǎn)。此架構(gòu)中的根集線器用于將整個(gè)結(jié)構(gòu)連接到主機(jī)計(jì)算機(jī)。此架構(gòu)中的I/O設(shè)備包括鍵盤、鼠標(biāo)、揚(yáng)聲器、攝像頭等
USB協(xié)議只是基于輪詢?cè)砉ぷ鳎驗(yàn)樵谳喸冎校幚砥鲿?huì)不斷檢查輸入/輸出設(shè)備是否準(zhǔn)備好傳輸數(shù)據(jù)。因此,以太網(wǎng)I/O模塊設(shè)備不必向處理器更新其狀況,因?yàn)樘幚砥鞯闹饕氊?zé)是不斷檢查。因此,這將使USB低成本且簡(jiǎn)單,每當(dāng)新設(shè)備連接到集線器時(shí),它的地址都是“0”。在正常情況下,主機(jī)將輪詢集線器以獲取其狀況,從而使主機(jī)知道系統(tǒng)中的I/O設(shè)備已連接到系統(tǒng)還是已從系統(tǒng)斷開連接。一旦主機(jī)對(duì)新設(shè)備做出響應(yīng),它就會(huì)通過讀取設(shè)備USB接口特定內(nèi)存中的可用數(shù)據(jù)來了解設(shè)備容量。這樣主機(jī)就會(huì)使用合適的驅(qū)動(dòng)程序與設(shè)備通信。之后,主機(jī)會(huì)為新設(shè)備分配一個(gè)地址,該地址會(huì)寫入設(shè)備寄存器。有了此設(shè)備,USB便可提供即插即用功能。USB協(xié)議的另一個(gè)特性是“熱插拔”,這意味著,無需關(guān)閉或重啟,即可將I/O設(shè)備連接到主機(jī)系統(tǒng)或從主機(jī)系統(tǒng)移除。因此,無論I/O設(shè)備連接或斷開,系統(tǒng)都會(huì)持續(xù)運(yùn)行。USB協(xié)議還可以支持等時(shí)通信,只要數(shù)據(jù)以預(yù)設(shè)的時(shí)間間隔傳輸即可。與同步和異步數(shù)據(jù)傳輸相比,等時(shí)數(shù)據(jù)傳輸速度非常快。為了保持通信的等時(shí)性,根集線器通過USB傳輸一系列位,這些位指定等時(shí)數(shù)據(jù)的開始,實(shí)際數(shù)據(jù)可以在這一系列位之后傳輸。
USB協(xié)議時(shí)序圖如下所示,主要用于工程領(lǐng)域,解釋USB線沿時(shí)間軸的開/關(guān)值,“1”表示無電荷,“0”表示活動(dòng)。隨著時(shí)間的推移,您可以觀察到開/關(guān)的進(jìn)程。下面的系統(tǒng)顯示了非歸零反轉(zhuǎn)(NRZI)編碼,這是一種更有效的數(shù)據(jù)傳輸方法。
USB信息格式,USB協(xié)議的數(shù)據(jù)在數(shù)據(jù)包中以LSB優(yōu)先的方式傳輸,SB數(shù)據(jù)包主要有四種類型:令牌、數(shù)據(jù)、握手和幀起始。每個(gè)數(shù)據(jù)包都由各種字段類型設(shè)計(jì)而成,如下面的信息格式圖所示。
SYNC:在USB協(xié)議中,每個(gè)USB數(shù)據(jù)包都會(huì)以一個(gè)SYNC字段開始,該字段通常用于同步發(fā)送端和接收端,以精確傳輸數(shù)據(jù)。在低速或全速USB系統(tǒng)中,SYNC字段包含3對(duì)KJ序列,隨后是2個(gè)K,用于組成8位的數(shù)據(jù)。在高速USB系統(tǒng)中,同步需要15對(duì)KJ序列,隨后是2個(gè)K,用于組成32位的數(shù)據(jù)。該字段的長(zhǎng)度在低速和全速模式下為8位,而在高速模式下為32位,其目的是用于同步發(fā)送端和接收端的時(shí)鐘(CLK)。最后的2位指示PID字段的起始位置
PID:USB協(xié)議中的數(shù)據(jù)包標(biāo)識(shí)符字段主要用于識(shí)別正在傳輸?shù)臄?shù)據(jù)包類型,從而識(shí)別數(shù)據(jù)包數(shù)據(jù)格式。此字段的長(zhǎng)度為8位,其中高4位識(shí)別數(shù)據(jù)包類型,低4位是高4位的逐位補(bǔ)碼
Address:USB協(xié)議的地址字段指示數(shù)據(jù)包主要指定用于哪個(gè)設(shè)備。7位長(zhǎng)度僅允許支持127個(gè)設(shè)備。地址零無效,因?yàn)槿魏紊形捶峙涞刂返脑O(shè)備都應(yīng)對(duì)傳輸?shù)搅愕刂返臄?shù)據(jù)包做出反應(yīng)。
Endpoint:USB協(xié)議中的端點(diǎn)字段長(zhǎng)度為4位,允許在尋址方面具有額外的靈活性。通常,這些字段被劃分為數(shù)據(jù)的輸入/輸出。端點(diǎn)“0”是一種特殊情況,稱為控制端點(diǎn),每個(gè)設(shè)備都包含一個(gè)端點(diǎn)0。
Data:數(shù)據(jù)字段的長(zhǎng)度不固定,因此其長(zhǎng)度范圍為0到8192位,并且始終是字節(jié)數(shù)的整數(shù),在其后面是循環(huán)冗余校驗(yàn)(CRC),循環(huán)冗余校驗(yàn)在數(shù)據(jù)包有效負(fù)載中的數(shù)據(jù)上執(zhí)行,其中所有令牌數(shù)據(jù)包都包含5位CRC,數(shù)據(jù)包包含16位CRC。CRC-5長(zhǎng)度為5位,由令牌數(shù)據(jù)包以及幀數(shù)據(jù)包的開頭使用。每個(gè)數(shù)據(jù)包以EOP(EndofthePacket,數(shù)據(jù)包結(jié)束)字段結(jié)束,該字段包括持續(xù)2位時(shí)間的SE0(單端零),隨后是持續(xù)1位時(shí)間的J。
今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的發(fā)展,提升資源利用率,更多產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)和企業(yè)公眾號(hào)(微信號(hào):cdebyte)進(jìn)行了解,也可以直接撥打400電話咨詢技術(shù)專員!
相關(guān)閱讀:
1、USB轉(zhuǎn)藍(lán)牙模塊藍(lán)牙適配器設(shè)備透?jìng)鞴δ軠y(cè)試教程
2、【干貨分享】常見網(wǎng)絡(luò)協(xié)議匯總
3、USB2.0設(shè)備如何與主機(jī)建立連接教程