久久久18,天天躁夜夜躁狠狠躁婷婷,国产成人三级一区二区在线观看一,最近的2019中文字幕视频 ,最新免费av在线观看

a&s專業(yè)的自動(dòng)化&安全生態(tài)服務(wù)平臺(tái)
公眾號(hào)
安全自動(dòng)化

安全自動(dòng)化

安防知識(shí)網(wǎng)

安防知識(shí)網(wǎng)

手機(jī)站
手機(jī)站

手機(jī)站

大安防供需平臺(tái)
大安防供需平臺(tái)

大安防供需平臺(tái)

資訊頻道橫幅A1
首頁 > 資訊 > 正文

USB通信技術(shù)研究

USB設(shè)備已成為當(dāng)前移動(dòng)設(shè)備數(shù)據(jù)傳輸?shù)闹饕獋鬏斀涌?,即便在安防,移?dòng)存儲(chǔ)或擴(kuò)展存儲(chǔ)時(shí),也時(shí)常需要到,但USB技術(shù)如何?可怎樣設(shè)計(jì)和利用?請(qǐng)看本文就USB的體系結(jié)構(gòu)、USB通信技術(shù)基礎(chǔ)、USB固

  文/張凡忠 公安部第一研究所 

  摘要:USB設(shè)備已成為當(dāng)前移動(dòng)設(shè)備數(shù)據(jù)傳輸?shù)闹饕獋鬏斀涌?,即便在安防,移?dòng)存儲(chǔ)或擴(kuò)展存儲(chǔ)時(shí),也時(shí)常需要到,但USB技術(shù)如何?可怎樣設(shè)計(jì)和利用?請(qǐng)看本文就USB的體系結(jié)構(gòu)、USB通信技術(shù)基礎(chǔ)、USB固件程序的開發(fā)方法等是如何論述的。

  前言

  不管是計(jì)算機(jī)還是連接的外圍設(shè)備,在新品開發(fā)時(shí)保持兼容性是必須考慮的。即使是革命性的新外圍設(shè)備,也必須使用到連接計(jì)算機(jī)的接口。當(dāng)設(shè)計(jì)一個(gè)外圍設(shè)備的接口時(shí),下列是該外圍設(shè)備應(yīng)該具備的特性:

  穩(wěn)定性:具備自動(dòng)差錯(cuò)與除錯(cuò)的功能,使錯(cuò)誤的發(fā)生率幾乎為零;

  便宜:讓大部分的用戶都有能力購(gòu)買;

  省電:在便攜式計(jì)算機(jī)上節(jié)省電池的消耗;

  有彈性:讓許多不同種類的外圍設(shè)備,都可以使用這個(gè)接口;

  快速:此接口不可以成為傳輸?shù)钠款i;

  容易使用:用戶容易安裝、設(shè)置與使用;

  操作系統(tǒng)的支持:如果操作系統(tǒng)支持此接口,開發(fā)者就不必要自行開發(fā)底層的驅(qū)動(dòng)程序來使用此接口。

  USB就是一個(gè)為符合上述所有條件而開發(fā)的最新外圍設(shè)備接口。USB是一種通用串行總線。它是由COMPAQ、INTEL、MICROSOFT和NEC等公司共同開發(fā)的一種新型、快速、雙向、同步傳輸?shù)牟⒖梢詿岵灏蔚臄?shù)據(jù)傳輸總線接口。

  規(guī)范的版本

  USB規(guī)范的版本變動(dòng),如表1所示。

  經(jīng)過多次版本的更新后,USB1.0發(fā)表于1996年1月。USB1.1則修訂了1.0版本的問題,并且新增一個(gè)新的傳輸類型(中斷傳輸)。USB2.0在2000年4月發(fā)表,新增了高速模式。對(duì)于支持USB1.1規(guī)范的設(shè)備最高傳輸率可達(dá)12Mb/s,而支持USB2.0規(guī)范的設(shè)備最高速率可達(dá)48012Mb/s。

  USB系統(tǒng)結(jié)構(gòu)

  一個(gè)USB系統(tǒng)主要被定義為三個(gè)部分:

  USB互連;

  USB設(shè)備;

  USB主機(jī)。

  USB互連是指USB設(shè)備與主機(jī)之間進(jìn)行連接和通信的操作,支持?jǐn)?shù)據(jù)在USB主機(jī)與USB設(shè)備之間的流動(dòng)。在任何USB系統(tǒng)中,只有一個(gè)主機(jī)。USB和主機(jī)系統(tǒng)的接口稱作主機(jī)控制器,主機(jī)控制器可由硬件、固件和軟件綜合實(shí)現(xiàn)。USB的主機(jī)通過主機(jī)控制器與USB設(shè)備進(jìn)行交互。主機(jī)功能如下:

  檢測(cè)USB設(shè)備的安裝和拆卸;

  管理主機(jī)和USB設(shè)備之間的控制流;

  收集狀態(tài)和動(dòng)作信息;

  提供能量給連接的USB設(shè)備。

  USB設(shè)備包含一些設(shè)備描述符,它們指出了一個(gè)給定設(shè)備的屬性和特征。當(dāng)設(shè)備被連接、編號(hào)后,該設(shè)備就擁有一個(gè)唯一的USB地址。設(shè)備就是通過該USB地址被操作的,每一個(gè)USB設(shè)備通過一個(gè)或多個(gè)通道與主機(jī)通訊。所有USB設(shè)備必須在零號(hào)端口上有一指定的通道,每個(gè)USB設(shè)備的USB控制通道將與之相連。通過此控制通道,所有的USB設(shè)備都列入一個(gè)共同的準(zhǔn)入機(jī)制,以獲得控制操作的信息。

  圖2展示了USB通信模型之間基本的信息流與互連關(guān)系。

  USB通信基礎(chǔ)

  傳輸基礎(chǔ)

  USB通信可以分為兩類:配置通信、應(yīng)用通信。在配置通信中,主機(jī)通知設(shè)備,然后使它準(zhǔn)備好交換數(shù)據(jù)。大部分這類通信發(fā)生在上電或連接時(shí)主機(jī)檢測(cè)到外設(shè)的時(shí)候。應(yīng)用通信出現(xiàn)在主機(jī)的應(yīng)用程序與一個(gè)檢測(cè)到的外設(shè)交換數(shù)據(jù)的時(shí)候。這些是實(shí)現(xiàn)設(shè)備目的的通信。例如:對(duì)鍵盤來說,應(yīng)用通信是發(fā)送按鍵數(shù)據(jù)給主機(jī),告訴一個(gè)應(yīng)用程序顯示一個(gè)特性或執(zhí)行其他動(dòng)作。

  配置通信

  在檢測(cè)過程中,設(shè)備的固件對(duì)主機(jī)的一系列標(biāo)準(zhǔn)請(qǐng)求做出響應(yīng)。設(shè)備必須識(shí)別出每一個(gè)請(qǐng)求,返回被請(qǐng)求的信息,并且采取其他一些請(qǐng)求指定的動(dòng)作。在PC上,Windows執(zhí)行檢測(cè)工作,所以不涉及用戶編程的問題。然而,為了完成檢測(cè)工作,Windows必須有兩個(gè)可用的文件:一個(gè)識(shí)別這個(gè)設(shè)備的驅(qū)動(dòng)程序的文件名和位置的INF文件和設(shè)備驅(qū)動(dòng)程序本身。

  應(yīng)用通信

  在主機(jī)已經(jīng)與設(shè)備交換了檢測(cè)信息并且設(shè)備驅(qū)動(dòng)已經(jīng)被分配并載入后,應(yīng)用程序段可以非常順利地進(jìn)行。在主機(jī)上,應(yīng)用程序可以使用標(biāo)準(zhǔn)Windows API功能來讀取和寫設(shè)備。在外設(shè)上,傳輸數(shù)據(jù)通常需要把要發(fā)送的數(shù)據(jù)放在USB控制器的傳輸緩存器中,當(dāng)一個(gè)硬件中斷發(fā)出數(shù)據(jù)已經(jīng)到達(dá)的信號(hào)時(shí)從接收器中讀取接收到的數(shù)據(jù),并且在完成傳輸時(shí)確保外設(shè)準(zhǔn)備好下一次傳輸??偩€上的每一次數(shù)據(jù)傳輸使用下列四種類型之一:控制、中斷、批量或同步。

  傳輸類型

  USB共有四種類型傳輸方式:分別為控制傳輸,中斷傳輸,批量傳輸和同步傳輸。

  控制傳輸:用于主機(jī)對(duì)USB外設(shè)的配置,對(duì)USB設(shè)備的狀態(tài)查詢和控制命令的發(fā)送,也可用于用戶自定義的命令的發(fā)送。

  中斷傳輸:用于小批量的、點(diǎn)式的、非連續(xù)性的數(shù)據(jù)傳輸?shù)膱?chǎng)合,它是低速設(shè)備可以傳輸數(shù)據(jù)的唯一方法。

  批量傳輸:用于批量的,非實(shí)時(shí)的數(shù)據(jù)傳輸,即那些需要一次傳輸較多的數(shù)據(jù),但傳輸過程對(duì)時(shí)間要求不嚴(yán)格的傳輸類型。

  同步傳輸:適用于那些要求數(shù)據(jù)連續(xù)的、實(shí)時(shí)的,以固定的數(shù)據(jù)率產(chǎn)生、傳送的場(chǎng)合。

  傳輸(transfers)和事務(wù)(transactions)是經(jīng)常提到的兩個(gè)概念,分清這兩個(gè)概念是設(shè)計(jì)USB外設(shè)的關(guān)鍵。傳輸是指一次完整的發(fā)出請(qǐng)求到該請(qǐng)求被完整的處理結(jié)束的整個(gè)過程。事務(wù)是傳輸中的一個(gè)基本元素,或者叫一個(gè)傳輸?shù)膬?nèi)建模塊。每一次傳輸由一個(gè)或多個(gè)事務(wù)組成。事務(wù)又由包組成,而包還包含一個(gè)包識(shí)別器(PID),一個(gè)錯(cuò)誤校驗(yàn)位以及有時(shí)還有其他信息。參見圖3。

  事務(wù)按照它們的目的和數(shù)據(jù)流方向可以分為三種類型:SETUP事務(wù)、IN事務(wù)、OUT事務(wù)。它們都是由一個(gè)令牌階段,一個(gè)數(shù)據(jù)階段和一個(gè)握手階段組成。對(duì)于SETUP事務(wù)來說,在令牌階段有主機(jī)發(fā)出SETUP令牌,然后主機(jī)又發(fā)出數(shù)據(jù)包,由該數(shù)據(jù)包指出本次請(qǐng)求的具體的內(nèi)容。在握手階段指出本次事務(wù)是否成功。各種事務(wù)的組成如圖4。

  IN事務(wù)是從一個(gè)設(shè)備接收數(shù)據(jù),OUT事務(wù)是發(fā)送數(shù)據(jù)給其他一個(gè)設(shè)備。(IN和OUT事務(wù)的命名是從主機(jī)的角度出發(fā)的,在一個(gè)IN事務(wù)中,數(shù)據(jù)是從外設(shè)傳輸給主機(jī)的;在一個(gè)OUT事務(wù)中,數(shù)據(jù)是從主機(jī)傳輸?shù)酵庠O(shè)的。)在一個(gè)Setup事務(wù)中,數(shù)據(jù)也是從主機(jī)傳輸?shù)酵庠O(shè)的,但一個(gè)Setup事務(wù)是一個(gè)特殊情況,因?yàn)樗鼏?dòng)一個(gè)控制傳輸。任何事務(wù)都可以用IN或OUT事務(wù),但只有控制傳輸可以使用Setup事務(wù)。

  在應(yīng)用程序可與一個(gè)設(shè)備通信之前,主機(jī)需知道設(shè)備支持哪些傳輸類型和終端。主機(jī)也須分配一個(gè)地址給設(shè)備,主機(jī)通過一個(gè)被稱為枚舉的信息交換來完成這些工作。

  USB設(shè)備的枚舉過程

  枚舉是使得主機(jī)的設(shè)備驅(qū)動(dòng)程序能與這個(gè)設(shè)備通信的最基本的信息交換。該過程可以由以下動(dòng)作來完成:

  1、一個(gè)設(shè)備連到一個(gè)USB端口

  或者系統(tǒng)上電時(shí)有一個(gè)設(shè)備已經(jīng)插入到一個(gè)端口中了。這個(gè)端口可以在主機(jī)的根基線器上或者在連接主機(jī)下游的基線器上。集線器正常給這個(gè)端口供電,這個(gè)設(shè)備正處于上電狀態(tài)。

  2、集線器檢測(cè)到這個(gè)設(shè)備

  集線器監(jiān)視著它的每一個(gè)端口的信號(hào)線的電壓。集線器端口的兩根信號(hào)線(D+和D-)的每一根都有一個(gè)15k 的下拉電阻,而一個(gè)設(shè)備在D+(為全速設(shè)備)和D-(為低速設(shè)備)都有一個(gè)1.5 k 的上拉電阻。當(dāng)一個(gè)設(shè)備插入到一個(gè)端口中時(shí),設(shè)備的上拉電阻使信號(hào)線為高,使得集線器可以檢測(cè)到一個(gè)設(shè)備連接上了。

  3、主機(jī)知道了這個(gè)新設(shè)備

  每個(gè)集線器使用它的中斷流程來報(bào)告發(fā)生在集線器上的事件。當(dāng)主機(jī)知道了這個(gè)事件,它給集線器發(fā)送一個(gè)Get_Port_Status請(qǐng)求來了解更多的知識(shí)。返回的信息告訴主機(jī)該設(shè)備是什么時(shí)候連接的。

  4、集線器重新設(shè)置這個(gè)設(shè)備

  當(dāng)主機(jī)知道有一個(gè)新設(shè)備時(shí),主機(jī)控制器給集線器發(fā)送一個(gè)Set_Port_Feature請(qǐng)求,請(qǐng)求集線器來重新設(shè)置端口。集線器使得設(shè)備的USB數(shù)據(jù)線處于重啟狀態(tài)至少10ms。

  5、集線器在設(shè)備和總線之間建立一個(gè)信號(hào)通路

  主機(jī)通過發(fā)送一個(gè)Get_Port_Status請(qǐng)求來驗(yàn)證設(shè)備是否激起重啟狀態(tài)。返回的數(shù)據(jù)的一位表示設(shè)備是否仍然處于重啟狀態(tài)。當(dāng)集線器已經(jīng)釋放了重啟狀態(tài),設(shè)備就處于默認(rèn)狀態(tài)了。設(shè)備的USB寄存器已經(jīng)處于它們的默認(rèn)狀態(tài),設(shè)備已經(jīng)準(zhǔn)備好通過終端0的默認(rèn)流程來響應(yīng)控制傳輸。設(shè)備現(xiàn)在可以能與主機(jī)通信,使用默認(rèn)地址0h。在這一點(diǎn)上,設(shè)備可以從總線上抽取不超過100毫安的電流。

  6、集線器檢測(cè)設(shè)備速度

  或在重啟之前或在重啟之后,集線器通過檢查兩個(gè)信號(hào)線的電壓來檢測(cè)設(shè)備的速度。集線器通過測(cè)試那根信號(hào)線在空閑時(shí)有更高的電壓來檢測(cè)一個(gè)設(shè)備的速度。集線器發(fā)送信息給主機(jī),以響應(yīng)下一個(gè)Get_Port_Status請(qǐng)求。

  7、主機(jī)發(fā)送一個(gè)Get_Descriptor請(qǐng)求來獲取默認(rèn)流程的最大包的大小

  主機(jī)發(fā)送請(qǐng)求給設(shè)備地址0、終端0。因?yàn)橹鳈C(jī)一次只列舉一個(gè)設(shè)備,只有一個(gè)設(shè)備將響應(yīng)尋址設(shè)備地址0的通信。最大包的大小是這個(gè)描述符的第8位,因此主機(jī)只需要讀取頭8B。一個(gè)Windows主機(jī)請(qǐng)求64B,但在僅接收一個(gè)包后,它就開始了狀態(tài)階段。在完成狀態(tài)階段時(shí),主機(jī)請(qǐng)求集線器來重啟這個(gè)設(shè)備。這里不需要重啟,因?yàn)樵O(shè)備應(yīng)該可以用響應(yīng)下一個(gè)設(shè)置階段的動(dòng)作來處理任何時(shí)候的主機(jī)放棄一個(gè)控制傳輸情況。

  8、主機(jī)分配一個(gè)地址

  主機(jī)控制器通過發(fā)送一個(gè)Set_Address請(qǐng)求來分配一個(gè)單獨(dú)的地址給設(shè)備。設(shè)備讀取這個(gè)請(qǐng)求,返回一個(gè)確認(rèn),并且保存新的地址。這個(gè)設(shè)備現(xiàn)在處于一個(gè)地址狀態(tài)。從這現(xiàn)在開始的所有通信使用這個(gè)新地址。

  9、主機(jī)知道了設(shè)備的能力

  主機(jī)給新地址發(fā)送一個(gè)Get_Descriptor請(qǐng)求來讀取這個(gè)設(shè)備描述符,這次讀取整個(gè)部分。這個(gè)描述符是一個(gè)數(shù)據(jù)結(jié)構(gòu)包括終端0的最大包的大小,設(shè)備支持的配置號(hào),及關(guān)于這個(gè)設(shè)備的其他信息。主機(jī)把這些信息應(yīng)用在其后的通信中。然后主機(jī)通過請(qǐng)求在設(shè)備描述符規(guī)定的一個(gè)或多個(gè)配置描述符來了解這個(gè)設(shè)備。一個(gè)Windows主機(jī)開始申請(qǐng)配置描述符的9B。含在這些B中的是這個(gè)配置描述符和它所有的從屬描述符的總長(zhǎng)度。Windows然后再次請(qǐng)求配置描述符,這次使用得到的總長(zhǎng)度,最多可達(dá)到FFhB。這導(dǎo)致設(shè)備發(fā)送跟隨在每個(gè)配置額的接口描述符后的配置描述符,在它后面是每個(gè)接口的終端描述符。若這些描述符總共超過了FFhB,則Windows在第三次請(qǐng)求時(shí)得到整套描述符。每個(gè)描述符以它的長(zhǎng)度和類型開始,使主機(jī)能分解其后的數(shù)據(jù)。

  10、主機(jī)分配和載入一個(gè)設(shè)備驅(qū)動(dòng)

  在主機(jī)已經(jīng)從它的描述符中知道了能夠知道的所有信息后,它開始在一個(gè)設(shè)備啟動(dòng)中查找最合適的匹配來管理與設(shè)備間的通信。在選擇一個(gè)驅(qū)動(dòng)時(shí),Windows盡量去與從設(shè)備得到的、保存在系統(tǒng)INF文件中的信息中的銷售商和產(chǎn)品ID、發(fā)布號(hào)和類信息相匹配。在驅(qū)動(dòng)程序被載入以后,它經(jīng)常請(qǐng)求設(shè)備來重新發(fā)送描述符或者發(fā)送應(yīng)用于這個(gè)設(shè)備的類描述符。

  11、主機(jī)的設(shè)備驅(qū)動(dòng)選擇一個(gè)配置

  在從描述符了解了設(shè)備后,設(shè)備驅(qū)動(dòng)程序發(fā)送一個(gè)Set_Configuration命令來請(qǐng)求希望的配置號(hào)。設(shè)備讀取這個(gè)請(qǐng)求并且設(shè)置它的配置來匹配它。設(shè)備現(xiàn)在處于配置狀態(tài),并且設(shè)備的接口已經(jīng)被使能。

  主機(jī)枚舉是通過給端點(diǎn)0發(fā)送包含標(biāo)準(zhǔn)USB請(qǐng)求的控制傳輸。所有的USB設(shè)備必須支持控制傳輸,標(biāo)準(zhǔn)USB請(qǐng)求和端點(diǎn)0。對(duì)一個(gè)成功的枚舉來說,設(shè)備必須對(duì)每一個(gè)請(qǐng)求響應(yīng),返回請(qǐng)求的信息以及采取其他請(qǐng)求的動(dòng)作。USB設(shè)備的枚舉過程是在缺省的控制管道進(jìn)行的,每一步都是在控制傳輸?shù)腟ETUP階段提出請(qǐng)求的。而具體的請(qǐng)求在SETUP事務(wù)的數(shù)據(jù)階段中,用戶可讀取并根據(jù)USB協(xié)議來分析該請(qǐng)求,然后根據(jù)分析的結(jié)果進(jìn)入該控制傳輸?shù)臄?shù)據(jù)階段。在USB設(shè)備的枚舉過程中,主機(jī)要讀取USB設(shè)備的設(shè)備描述符、配置描述符、接口描述符和端點(diǎn)描述符。

  固件設(shè)計(jì)

  為了實(shí)現(xiàn)上述的枚舉過程在設(shè)備端需要固件程序的支持。下面以PDIUSBD12為例講述一下固件的設(shè)計(jì)方法。PDIUSBD12的固件設(shè)計(jì)成完全的中斷驅(qū)動(dòng),當(dāng)PDIUSBD12檢測(cè)到有相應(yīng)的事務(wù)發(fā)生時(shí),就中斷CPU處理器調(diào)用中斷服務(wù)程序。

  D12的固件程序可采用如圖5的積木式結(jié)構(gòu)。

  硬件抽象層:這是固件中的最低層代碼,它執(zhí)行對(duì)PDIUSBD12和硬件與I/O 相關(guān)的訪問。當(dāng)與其它CPU 平臺(tái)接口時(shí)這部分代碼需要修改或增加。

  PDIUSBD12命令接口:利用這些命令實(shí)現(xiàn)對(duì)D12的控制。

  中斷服務(wù)程序:處理USB的各種事務(wù)。

  標(biāo)準(zhǔn)請(qǐng)求:USB設(shè)備必須對(duì)這11種標(biāo)準(zhǔn)請(qǐng)求做出響應(yīng),這11種標(biāo)準(zhǔn)代碼可以查詢?cè)O(shè)備的能力和狀態(tài)以及選擇配置。當(dāng)收到請(qǐng)求時(shí),程序通過解析接收到的請(qǐng)求把要發(fā)送的數(shù)據(jù)存放到發(fā)送緩沖器中。設(shè)備不必執(zhí)行每一個(gè)請(qǐng)求;它只需要以一種可以理解的方式對(duì)請(qǐng)求做出響應(yīng)。

  廠商請(qǐng)求:一個(gè)供應(yīng)商也可以與特定設(shè)備進(jìn)行的傳輸控制而定義請(qǐng)求。

  主程序:完成D12的初始化。

  在USB通信過程中需要處理多種事務(wù),有些事務(wù)的處理需要特別注意,設(shè)計(jì)者往往忽視,下面分別介紹。

  D12初始化過程

  D12的中斷寄存器清零

  Set Address Enable

  Set Endpoint Enable

  Disconnect

  延時(shí)1~2秒鐘

  Connect

  Setup Transaction處理流程

  如圖6所示,對(duì)于Setup Transaction的處理需要注意,在讀取D12的FIFO數(shù)據(jù)前必須要選擇端點(diǎn),為了使以后的Setup Packet數(shù)據(jù)包能夠被接收要用Acknowledge Setup命令使能Control In和Control Out端點(diǎn)。當(dāng)D12接收到一個(gè)數(shù)據(jù)包時(shí)一個(gè)內(nèi)部端點(diǎn)緩存滿標(biāo)志有效。后續(xù)的數(shù)據(jù)包將不能夠被接收,必須通過Clear Buffer命令來清出標(biāo)志位。在讀取D12的數(shù)據(jù)后先要利用Acknowlege命令對(duì)主機(jī)進(jìn)行回應(yīng),然后再清除D12的緩存。這兩個(gè)命令處理順序不能交換,因?yàn)樵跊]有回應(yīng)主機(jī)前不能夠清除掉D12的緩存,這樣就不能接收新的數(shù)據(jù)。

  Control In Transaction處理流程

  如圖7所示,在Control In Transaction處理過程中注意,要發(fā)送的數(shù)據(jù)是端點(diǎn)0能傳送的最大數(shù)據(jù)報(bào)的整數(shù)倍時(shí),在傳送完所有的數(shù)據(jù)后,必須向主機(jī)發(fā)送零長(zhǎng)度數(shù)據(jù)報(bào)。

  Get Descriptor命令處理流程

  如圖8所示,在列舉過程中,被請(qǐng)求的描述符逐涉及設(shè)備的小的元素:首先是整個(gè)設(shè)備,然后是每個(gè)配置,接著是每個(gè)配置的接口,最后是每個(gè)接口的終端。對(duì)于字符串描述符是可選的。關(guān)于描述符是設(shè)計(jì)者可以配置的,可以根基設(shè)備的通信能力和要求來定義需要的描述符。

  Set Address命令處理流程

  如圖9所示,通過這個(gè)請(qǐng)求,主機(jī)指定以后與設(shè)備通信的地址。值字段是要設(shè)置的設(shè)備的新的地址。允許值為1到127。當(dāng)上電或連接后集線器使能一個(gè)端口,端口使用默認(rèn)地址0直到它 從主機(jī)接收到一個(gè)Set_Address請(qǐng)求。這個(gè)請(qǐng)求和大部分的其他請(qǐng)求不同,因?yàn)樵O(shè)備直到通過發(fā)送零長(zhǎng)度數(shù)據(jù)包完成請(qǐng)求的狀態(tài)階段后才執(zhí)行這個(gè)請(qǐng)求。主機(jī)發(fā)送狀態(tài)階段標(biāo)志包到默認(rèn)地址,因?yàn)樵O(shè)備必須在改變地址之前發(fā)送這個(gè)包。完成這個(gè)請(qǐng)求后,所有通信都使用這個(gè)新地址。一個(gè)使用默認(rèn)地址0的設(shè)備處于默認(rèn)狀態(tài)。在完成Set_Address請(qǐng)求設(shè)置一個(gè)非0的新地址后,設(shè)備進(jìn)入地址狀態(tài)。一個(gè)設(shè)備必須在接收到請(qǐng)求后的50毫秒內(nèi)發(fā)送交換包,并且它必須在完成狀態(tài)階段后的2毫秒內(nèi)完成請(qǐng)求。

  另外要注意的是當(dāng)USB設(shè)備接收主機(jī)發(fā)送的IN事務(wù),如果設(shè)備沒有要發(fā)送到主機(jī)的數(shù)據(jù)時(shí),這時(shí)設(shè)備進(jìn)入掛起狀態(tài),為了避免這種情況出現(xiàn),當(dāng)沒有數(shù)據(jù)要發(fā)送時(shí)可以發(fā)送零長(zhǎng)度的數(shù)據(jù)報(bào)。

  同時(shí)利用D12開發(fā)時(shí)有兩個(gè)突出的優(yōu)點(diǎn):軟連接和GoodLink接口。所謂的軟連接就是把D12內(nèi)部集成的1.5K的上拉電阻連接到數(shù)據(jù)線D+上,通過此特性可以使設(shè)備CPU有充足的時(shí)間進(jìn)行初始化,同時(shí)也避免頻繁的插拔USB數(shù)據(jù)線。GoodLink接口可以連接發(fā)光二極管,當(dāng)設(shè)備枚舉成功后發(fā)光二極管常亮,當(dāng)D12進(jìn)行傳送數(shù)據(jù)時(shí)發(fā)光二極管閃爍。

參與評(píng)論
回復(fù):
0/300
文明上網(wǎng)理性發(fā)言,評(píng)論區(qū)僅供其表達(dá)個(gè)人看法,并不表明a&s觀點(diǎn)。
0
關(guān)于我們

a&s傳媒是全球知名展覽公司法蘭克福展覽集團(tuán)旗下的專業(yè)媒體平臺(tái),自1994年品牌成立以來,一直專注于安全&自動(dòng)化產(chǎn)業(yè)前沿產(chǎn)品、技術(shù)及市場(chǎng)趨勢(shì)的專業(yè)媒體傳播和品牌服務(wù)。從安全管理到產(chǎn)業(yè)數(shù)字化,a&s傳媒擁有首屈一指的國(guó)際行業(yè)展覽會(huì)資源以及豐富的媒體經(jīng)驗(yàn),提供媒體、活動(dòng)、展會(huì)等整合營(yíng)銷服務(wù)。

免責(zé)聲明:本站所使用的字體和圖片文字等素材部分來源于互聯(lián)網(wǎng)共享平臺(tái)。如使用任何字體和圖片文字有冒犯其版權(quán)所有方的,皆為無意。如您是字體廠商、圖片文字廠商等版權(quán)方,且不允許本站使用您的字體和圖片文字等素材,請(qǐng)聯(lián)系我們,本站核實(shí)后將立即刪除!任何版權(quán)方從未通知聯(lián)系本站管理者停止使用,并索要賠償或上訴法院的,均視為新型網(wǎng)絡(luò)碰瓷及敲詐勒索,將不予任何的法律和經(jīng)濟(jì)賠償!敬請(qǐng)諒解!
? 2024 - 2030 Messe Frankfurt (Shenzhen) Co., Ltd, All rights reserved.
法蘭克福展覽(深圳)有限公司版權(quán)所有 粵ICP備12072668號(hào) 粵公網(wǎng)安備 44030402000264號(hào)
用戶
反饋