在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

USB是如何工作的

FPGA之家 ? 來(lái)源:TopSemic嵌入式 ? 作者:TopSemic嵌入式 ? 2022-07-12 09:13 ? 次閱讀

1.USB概述

USB設(shè)備現(xiàn)在是用的非常普遍的一種接口了,它即插即用的特性給人們帶來(lái)了很大的方便。在嵌入式的應(yīng)用中, USB經(jīng)常被用來(lái)作為與上位機(jī)通信的接口,還用來(lái)通過(guò)U盤(pán)存儲(chǔ)數(shù)據(jù)等。USB按通訊速度可分為低速,全速和高速設(shè)備。在我們的應(yīng)用中,低速和全速是最為普遍的,在此我們對(duì)USB從物理層到協(xié)議層做一個(gè)簡(jiǎn)要的介紹。高速USB的原理是一樣的,在理解了低速和全速設(shè)備的工作原理后再去理解高速設(shè)備就比較簡(jiǎn)單了,在此我們暫不討論。

低速(Low Speed, 1.5Mbps):鍵盤(pán),鼠標(biāo),手寫(xiě)筆

全速(Full Speed, 12Mbps):音頻

高速(High Speed, 480Mbps):視頻

USB協(xié)議是開(kāi)放的,可以從官方網(wǎng)站usb.org下載

2.主機(jī),設(shè)備(Host, Device)

de08718c-017b-11ed-ba43-dac502259ad0.jpg

上圖是一個(gè)典型的USB全速主機(jī)和設(shè)備的連接示意圖。主機(jī)要有對(duì)外的供電能力,圖中可以看到作為主機(jī)的單片機(jī),一個(gè)引腳用來(lái)控制三極管或MOSFET,提供5V的電源至USB口。設(shè)備供電有兩種方法:一種是通過(guò)USB總線,從主機(jī)提供的5V獲得,如我們常用的U盤(pán);一種是自己從另外的電源獲得,此時(shí)主機(jī)至設(shè)備的電源線可以不連。如果設(shè)備的1.5k上拉電阻是加在D-上,那么此設(shè)備將被主機(jī)識(shí)別為低速設(shè)備。高速設(shè)備的上拉與全速設(shè)備一樣是加到D+,需要靠軟件協(xié)議進(jìn)一步區(qū)分。

通過(guò)USB總線獲得供電的設(shè)備,分為兩種配置:

低功率設(shè)備(Low-power devices): 最大電流不超過(guò)100mA

高功率設(shè)備(High-power devices): 剛連接后設(shè)備后的枚舉階段不超過(guò)100mA,配置完成后最大不超過(guò)500mA。

USB所有的通訊都是由主機(jī)發(fā)起。當(dāng)主機(jī)檢測(cè)到有設(shè)備連接時(shí),首先會(huì)詢(xún)問(wèn)設(shè)備,讓設(shè)備自報(bào)家門(mén),看看設(shè)備都具備哪些能力,其中就包括最大電流,然后主機(jī)根據(jù)上報(bào)的描述進(jìn)行相應(yīng)的操作。這個(gè)過(guò)程叫自舉(Enumeration)。設(shè)備通過(guò)描述符(Descriptor)來(lái)聲明自己的能力,包括:

設(shè)備描述符(Device Descriptor)

配置描述符(Configuration Descriptor)

接口描述符(Interface Descriptor)

端點(diǎn)描述符(Endpoint Descriptor)

字符串描述符(String Descriptor)

端點(diǎn)(Endpiont)是USB通信的基本單元,每個(gè)USB設(shè)備都會(huì)包含若干個(gè)端點(diǎn)。主機(jī)下發(fā)的數(shù)據(jù)最終會(huì)根據(jù)設(shè)備地址和端點(diǎn)地址到達(dá)某一個(gè)端點(diǎn),主機(jī)獲取數(shù)據(jù)也是給某個(gè)端點(diǎn)發(fā)出讀數(shù)據(jù)命令,此端點(diǎn)隨后把存儲(chǔ)在自己緩沖區(qū)的數(shù)據(jù)發(fā)給主機(jī)。

在端點(diǎn)之上是邏輯組織,多個(gè)端點(diǎn)可以歸到一個(gè)接口,多個(gè)接口可以歸為一個(gè)配置。而一個(gè)設(shè)備可以有多個(gè)配置。

3.USB物理層

de1893e6-017b-11ed-ba43-dac502259ad0.jpg

(USB Specification 2.0)

1 紅色 Vbus(5V)

2 白色 D-

3 綠色 D+

4 黑色 GND

有的USB接口會(huì)多出一根ID線,以支持OTG(On The Go)。支持OTG的線兩端是不一樣的,其中一端插到OTG設(shè)備時(shí)會(huì)把設(shè)備接口的識(shí)別引腳ID拉低,此設(shè)備識(shí)別到自己的ID拉低后會(huì)進(jìn)入主機(jī)狀態(tài)(Host),連線另一端的設(shè)備ID沒(méi)有拉低,默認(rèn)進(jìn)入設(shè)備狀態(tài)(Device)。之后通過(guò)軟協(xié)議可以主從切換。但是集中這種應(yīng)用不是太多,一臺(tái)設(shè)備要么作主機(jī),要么作設(shè)備的情況比較多。

USB使用的是差分傳輸模式,有兩根數(shù)據(jù)線D+和D-。

Differential 1:D+ 》 VOH(min) (2.8V) 且D- 《 VOL(max)(0.3V)

Differential 0:D- 》 VOH and D+ 《 VOL

J狀態(tài):對(duì)于低速USB是Differential 0,對(duì)于全速USB是 Differential 1

K狀態(tài):對(duì)于低速USB是Differential 1,對(duì)于全速USB是 Differential 0

除此之外,通過(guò)把D+,D-當(dāng)作單端信號(hào)拉低,拉高,可以表示一些特殊的狀態(tài)。

SE0狀態(tài)(Single Ended 0):D+ 低,D- 低

SE1狀態(tài)(Single Ended 1):D+ 高,D- 高

Reset信號(hào):D+ and D- 《 VOL for 》= 10ms

主機(jī)在要和設(shè)備通信之前會(huì)發(fā)送Reset信號(hào)來(lái)把設(shè)備設(shè)置到默認(rèn)的未配置狀態(tài)。即主機(jī)拉低兩根信號(hào)線(SE0狀態(tài))并保持10ms。

看到這里也許有點(diǎn)暈,不過(guò)沒(méi)關(guān)系,你如果看USB協(xié)議會(huì)更暈。

我們千萬(wàn)不要掉進(jìn)這個(gè)坑里出不來(lái),就像我們用串口也從來(lái)不會(huì)去觸發(fā)一個(gè)起始信號(hào),或者拉出一個(gè)結(jié)束信號(hào)一樣,這些物理層信號(hào)狀態(tài)的處理完全由芯片集成的USB控制器來(lái)處理。而且提供USB軟件協(xié)議棧也是必須的,靠用戶(hù)自己完全把所有細(xì)節(jié)搞清楚是不現(xiàn)實(shí)的。然而就像開(kāi)車(chē)一樣,你如果對(duì)汽車(chē)的原理有更深入的了解,一定更能充分的發(fā)揮出這輛車(chē)的性能。

繼續(xù),除了以上狀態(tài),還有:

Idle State, Resume State, Start of Packet, End of Packet, Disconnect, Connnect.

4.Packet

Packet是USB通訊最基本的單位。

de2a27fa-017b-11ed-ba43-dac502259ad0.jpg

SOP:Start Of Packet,標(biāo)志由空閑狀態(tài)轉(zhuǎn)入數(shù)據(jù)包發(fā)送。

SYNC:同步段,供USB設(shè)備進(jìn)行時(shí)鐘同步。

PID:Packet Identifier。種類(lèi)比較多,下面再詳細(xì)說(shuō)明。

Address:設(shè)備和端點(diǎn)地址。一個(gè)主機(jī)可以掛接多個(gè)設(shè)備,主機(jī)會(huì)給每個(gè)設(shè)備分配不同地址。

Frame Number:幀號(hào),每發(fā)一幀加1,達(dá)到7FFFH時(shí)變?yōu)?。

Data:數(shù)據(jù)段。

CRC:校驗(yàn)和。

EOP:End Of Packet。

通過(guò)不同的PID,數(shù)據(jù)包被分成4個(gè)大類(lèi),每個(gè)大類(lèi)又包含一些小類(lèi):

令牌 (Token) OUT,IN,SETUP,SOF

數(shù)據(jù) (Data) DATA0,DATA1

握手 (Handshake) ACK,NAK,STALL,NYET

特殊包 (Special) PRE,ERR

5.Transaction

一次Transaction總是從主機(jī)向設(shè)備發(fā)出一個(gè)令牌(Token)開(kāi)始。再次強(qiáng)調(diào),USB所有的通信過(guò)程都是由主機(jī)發(fā)起。三種令牌把Transaction分為三類(lèi):

OUT:主機(jī)發(fā)送數(shù)據(jù)給設(shè)備。

IN:主機(jī)從設(shè)備獲取數(shù)據(jù)。

SETUP:主機(jī)對(duì)設(shè)備進(jìn)行設(shè)置。

USB協(xié)議里的OUT和IN,都要站在主機(jī)的角度來(lái)看。下面是比較典型的獲取,發(fā)送數(shù)據(jù)的例子:

de4053a4-017b-11ed-ba43-dac502259ad0.jpg

每一次Transaction,Token總是必需的,數(shù)據(jù)段和握手則視情況而定。比如在上一個(gè)例子中,當(dāng)主機(jī)發(fā)出IN令牌獲取數(shù)據(jù)時(shí),如果設(shè)備沒(méi)準(zhǔn)備好數(shù)據(jù),則可以返回NAK結(jié)束此Transaction。

6.Transfer

好了,有了以上這些,似乎萬(wàn)事俱備了。但是如果進(jìn)一步想一下,那么還是有些問(wèn)題不好解決。什么呢?比方說(shuō)DATA數(shù)據(jù)段的長(zhǎng)度規(guī)定多長(zhǎng)好呢?主機(jī)多長(zhǎng)時(shí)間發(fā)起一次通信比較好呢?

一個(gè)USB主機(jī)上是允許掛載多個(gè)設(shè)備的,而這些設(shè)備千差萬(wàn)別:比如像鼠標(biāo),按鍵后需要快速響應(yīng),把位置信息發(fā)送到主機(jī),它的數(shù)據(jù)量很少,而像U盤(pán)則需要傳輸大量的數(shù)據(jù)。如果按鼠標(biāo)的時(shí)候U盤(pán)正在傳輸數(shù)據(jù)怎么辦呢?

為了解決上述問(wèn)題,USB首先規(guī)定了四種傳輸類(lèi)型:

控制傳輸(Control Transfers): 主要用來(lái)在設(shè)備剛連接到主機(jī)時(shí)對(duì)設(shè)備進(jìn)行設(shè)置。還有平時(shí)對(duì)設(shè)備狀態(tài)的管理。它需要雙向的數(shù)據(jù)傳輸。

批量傳輸(Bulk Data Transfers): 主要用來(lái)進(jìn)行量大,但對(duì)傳輸時(shí)間要求不嚴(yán)格的場(chǎng)景。例如U盤(pán)。

中斷傳輸(Interrupt Data Transfers): 需要及時(shí)準(zhǔn)確的傳輸信息的場(chǎng)景。中斷傳輸總是單向的。比如鼠標(biāo)。

??

同步傳輸(Isochronous Data Transfers): 一般需要占用相對(duì)固定的帶寬,延時(shí)短而且比較確定。傳輸是單向的,數(shù)據(jù)出錯(cuò)后不需要重傳。比如USB攝像頭。

然后,為了解決設(shè)備的及時(shí)響應(yīng)問(wèn)題,USB每隔1ms (高速USB是每隔125us)發(fā)出一個(gè)SOF令牌,緊接令牌進(jìn)行同步類(lèi)型的傳輸,之后依次是中斷類(lèi)型,控制類(lèi)型和批量數(shù)據(jù)傳輸類(lèi)型。在每一個(gè)Frame內(nèi),Isochronous,Interrupt和Control都會(huì)保證一定的帶寬。而B(niǎo)ulk型的傳輸優(yōu)先級(jí)最低,不一定每幀都得到帶寬進(jìn)行數(shù)據(jù)傳輸。

de50c6bc-017b-11ed-ba43-dac502259ad0.jpg

一個(gè)Transfer 由一個(gè)或多個(gè)Transactions組成。比如一次控制傳輸可以由Setup,IN,OUT等Transactions組成。Packet和Transaction是不允許被中間打斷的,而Transfer的多個(gè)Transactions可以分多次傳輸。

7.小結(jié)

我們對(duì)USB的物理層和協(xié)議層做了簡(jiǎn)要的介紹。在接下來(lái)的文章里我們將通過(guò)實(shí)際的例子來(lái)看一下USB是如何工作的,并對(duì)很多工程師經(jīng)常忽略或者沒(méi)有意識(shí)到的一些問(wèn)題進(jìn)行探討。

原文標(biāo)題:?jiǎn)纹瑱C(jī)外圍模塊-USB總線基本概念。

文章出處:【微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16400

    瀏覽量

    178552
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7960

    瀏覽量

    265096
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7081

    瀏覽量

    89201
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Micro USB接口與USB-C的區(qū)別

    隨著科技的快速發(fā)展,USB接口已經(jīng)成為我們?nèi)粘I钪胁豢苫蛉钡囊徊糠帧臄?shù)據(jù)傳輸?shù)皆O(shè)備充電,USB接口的應(yīng)用范圍越來(lái)越廣泛。Micro USBUSB-C是兩種常見(jiàn)的
    的頭像 發(fā)表于 11-27 09:55 ?853次閱讀

    PCM2707做了個(gè)usb的聲卡,有時(shí)工作不穩(wěn)定,容易斷線怎么解決?

    PCM2707做了個(gè)usb的聲卡,有時(shí)工作不穩(wěn)定,容易斷線怎么解決?
    發(fā)表于 11-08 08:32

    USB-C 與 USB-A 的區(qū)別

    隨著技術(shù)的發(fā)展,USB(通用串行總線)接口已經(jīng)成為連接電子設(shè)備的標(biāo)準(zhǔn)。從最初的 USB 1.0 到現(xiàn)在的 USB 4.0,USB 接口經(jīng)歷了多次迭代,以適應(yīng)不斷增長(zhǎng)的數(shù)據(jù)傳輸速度和電力
    的頭像 發(fā)表于 11-05 11:43 ?1945次閱讀

    USB控制器的作用、工作原理及技術(shù)規(guī)范

    通用串行總線(Universal Serial Bus,簡(jiǎn)稱(chēng)USB)控制器是一種用于計(jì)算機(jī)和外部設(shè)備之間通信的硬件設(shè)備。它廣泛應(yīng)用于各種電子設(shè)備中,包括計(jì)算機(jī)、智能手機(jī)、平板電腦、打印機(jī)、掃描儀
    的頭像 發(fā)表于 08-29 15:36 ?1211次閱讀

    CYUSB3014是否會(huì)自動(dòng)調(diào)整工作模式USB3.0還是USB2.0?

    CYUSB3014是否會(huì)自動(dòng)調(diào)整工作模式USB3.0還是USB2.0?它的工作模式是否可以或怎么通過(guò)FLAG傳輸給FPGA?
    發(fā)表于 08-14 08:00

    HPM USB系列:HPM6700雙USB功能介紹

    系列在多種應(yīng)用場(chǎng)景下具有極高的靈活性和適應(yīng)性。以下是演示視頻↓雙主機(jī)場(chǎng)景在雙主機(jī)應(yīng)用場(chǎng)景中,HPM6700系列的2個(gè)USB端口均工作在Host模式下,能夠同時(shí)與2
    的頭像 發(fā)表于 05-31 08:17 ?587次閱讀
    HPM <b class='flag-5'>USB</b>系列:HPM6700雙<b class='flag-5'>USB</b>功能介紹

    Diodes公司推出USB 2.0信號(hào)調(diào)節(jié)器產(chǎn)品PI5USB212

    Diodes公司新推出的PI5USB212是一款高性能的USB 2.0信號(hào)調(diào)節(jié)器,即便在供電電壓低至2.3V的極端環(huán)境下也能穩(wěn)定工作。這款產(chǎn)品特別適用于筆記本電腦、個(gè)人計(jì)算機(jī)、擴(kuò)充塢、延長(zhǎng)線、電視及顯示器等廣泛場(chǎng)景,為用戶(hù)帶來(lái)卓
    的頭像 發(fā)表于 05-09 14:27 ?636次閱讀

    Diodes公司宣布推出一款USB 2.0信號(hào)調(diào)節(jié)器產(chǎn)品PI5USB212

    Diodes 公司 (Diodes) (Nasdaq:DIOD) 宣布推出 USB 2.0 信號(hào)調(diào)節(jié)器產(chǎn)品 PI5USB212,可在供電電壓低至2.3V 的狀態(tài)下工作
    的頭像 發(fā)表于 05-06 15:55 ?538次閱讀

    USB口不同顏色所代表的意義是什么

    平時(shí)工作生活中我們會(huì)看到各種顏色的USB口,但是大多數(shù)人都不知道不同顏色的USB口代表什么含義?
    發(fā)表于 04-09 09:49 ?4093次閱讀
    <b class='flag-5'>USB</b>口不同顏色所代表的意義是什么

    STM32H743以太網(wǎng)與高速USB同時(shí)工作遇到的疑問(wèn)求解

    STM32H743以太網(wǎng)與高速USB同時(shí)工作不可靠 各位大俠,我在一個(gè)項(xiàng)目中使用STM32H743的100M以太網(wǎng)和高速USB,高速USB是外置的PHY
    發(fā)表于 04-09 07:53

    cx3.0如何才可以在usb2.0模式下工作

    目前:我的cx3 在usb3.0狀態(tài)下正常的輸出圖像,分辨率是2500*1024,工作都正常,現(xiàn)在我想兼容usb2.0,但是必須是同樣分辨率(2500*1024),可以降低fps,我應(yīng)該怎么配置。謝謝
    發(fā)表于 02-29 07:33

    CY7C65215A-32LTXI USB配置工作模式失敗怎么解決?

    舊CY7C65215-32LTXI芯片可以配置,但換了新CY7C65215A-32LTXI,32PIN QFN封裝 ,USB配置工作模式失敗。
    發(fā)表于 02-21 06:50

    什么是USB HOST、USB Slave和USB OTG?它們之間有什么區(qū)別?

    什么是USB HOST、USB Slave和USB OTG?它們之間有什么區(qū)別? USB(通用串行總線)是一種用于連接設(shè)備的通信接口標(biāo)準(zhǔn),它允許設(shè)備之間進(jìn)行數(shù)據(jù)傳輸和通信。
    的頭像 發(fā)表于 02-02 15:32 ?1.4w次閱讀

    XMC4500 USB主機(jī)不工作的原因?

    速度。 當(dāng)設(shè)備需要“低速”時(shí),此USB主機(jī)驅(qū)動(dòng)程序似乎反應(yīng)不正確。 有沒(méi)有人成功使用此USB主機(jī)驅(qū)動(dòng)程序? 英飛凌CAN有人向我保證此驅(qū)動(dòng)程序工作正常? 我不知道它是否相關(guān),但我已經(jīng)看到 mode \" Mis \" 中斷不斷被
    發(fā)表于 01-26 06:50

    USB C和USB Type C的傳輸性能

    USB-C和USB Type-C是同一種標(biāo)準(zhǔn),用于連接電子設(shè)備和傳輸數(shù)據(jù)、音頻和視頻信號(hào)。USB-C是USB Type-C的簡(jiǎn)稱(chēng),兩者可以互換使用。
    的頭像 發(fā)表于 01-17 09:18 ?3334次閱讀
    主站蜘蛛池模板: 中文字幕在线第一页| 手机看片久久青草福利盒子| 男人j进入女人j在线视频| 久久综合操| 玖操在线| 1024亚洲视频| 国内精品久久久久久久久野战 | 精品久久久久久中文字幕欧美| 欧美xxxx日本| 久久夜夜操| 49pao强力在线高清基地| 黄色在线观看视频网站| 大杳蕉伊人狼人久久一本线| 爽死你个放荡粗暴小淫视频| 日本加勒比在线播放| 国产精品久久福利网站| 操女人视频网站| 欧洲熟色妇| 日本aaaaa| 在线观看一区二区三区视频| 男人j进女人j免费视频视频| 亚洲香蕉久久一区二区三区四区 | 激情五月婷婷综合| 国产成人在线网址| 免费黄色在线观看| 欧美性狂猛xxxxxbbbbb| 久久婷婷丁香| 久久99精品久久久久久园产越南| 香蕉久久久久久狠狠色| 四虎影院一级片| 久色99| 一级视频在线观看免费| www.xxx日本人| 波多野结衣在线视频观看| 国产片一级特黄aa的大片| 在线观看精品国产入口| 久久婷五月综合| 午夜精品久久久久久| 欧美一区二区三区视频在线观看| 中文一区在线| 亚洲激情五月|