USB協議簡介

2021-08-17 16:50:10 字數 2303 閱讀 1801

usb,是英文universal serial bus(通用序列匯流排)的縮寫,其中文簡稱「通串線」,是乙個外部匯流排標準,用於規範電腦與外部裝置的連線和通訊。是應用在 pc 領域的接**術。usb 介面支援裝置的即插即用和熱插拔功能。 usb 是在 1994 年底由英特爾、康柏、 ibm、microsoft 等多家公司聯合提出的。

(1) 簡化計算機與外圍裝置的連線;

(2)即插即用pnp(plug and play)(在計算機執行過程中隨意地接入,並且立刻就能正常投入工作),支援熱插拔(在系統不重啟,不斷電的情況下可以更換裝置);

(3) 傳輸速度快,在 usb1.0 和 usb1.1 版本中,只支援 1.5mb/s 的低速模式和 12mb/s 的全速模式。在 usb2.0 中,又加入了速度更快 480mb/s 的高速模式,usb3.0 協議高速模式達 5gb/s。

(1) 傳輸距離短;

(2) 開發、除錯難度大。

標準 usb 共四根線組成,除 vcc/gnd 外,另外為 d+(dp,data positive),d-(dm,data minus); 這兩根資料線採用的是差分電壓的方式進行資料傳輸的。在usb 主機上, d+ 和 d- 都是接了 15k 的電阻到地的,所以在沒有裝置接入的時候, d+、 d- 均是低電平。而在usb 裝置中,如果是高速裝置,則會在 d+上接乙個 1.5k 的電阻到 vcc,而如果是低速裝置,則會在 d-上接乙個 1.5k 的電阻到 vcc。這樣當裝置接入主機的時候,主機就可以判斷是否有裝置接入,並能判斷裝置是高速裝置還是低速裝置。

usb 只是乙個匯流排,只提供乙個資料通路而已。usb 匯流排驅動程式並不知道乙個裝置具體如何操作,有哪些行為。具體的乙個裝置實現什麼功能,要由裝置自己來決定。那麼usb主機是如何知道乙個裝置的功能以及行為呢?這就要通過描述符來實現了。描述符中記錄了裝置的型別、廠商id和產品id(通常依靠它們來載入對應的驅動程式)、斷點情況、版本號等眾多資訊。

usb 2.0 協議定義的標準描述符有:

(1)裝置描述符主要記錄的資訊有:裝置所使用的usb版本號、裝置型別、端點0的最大包大小、廠商id(vid)和產品id(pid)、裝置版本號、廠商字串索引、產品字串索引、裝置序列號索引、可能的配置數等。

(2)配置描述符主要記錄的資訊有:配置所包含的介面數、配置的編號、供電方式、是否支援遠端喚醒、電流需求量等。

(3)介面描述符主要記錄的資訊有:介面的編號、介面的端點數、介面所使用的類、子類、協議等。

(4)端點描述符主要記錄的資訊有:端點號及方向、端點的傳輸型別、最大包長度、查尋時間間隔等。

(5)字串描述符主要是提供一些方便人們閱讀的資訊,它不是必需的。

usb主機在檢測到usb裝置插入後,就要對裝置進行列舉了。什麼是列舉呢?列舉就是從裝置讀取各種描述符資訊,這樣主機就可以根據這些資訊來載入合適的驅動程式,從而知道裝置是什麼樣的裝置,如何進行通訊等。

首先由usb主控制器發出命令和資料,通過根集線器,再通過下面的集線器(如果有)發給usb裝置;裝置對接收到的資料進行處理後,返回一些資訊或者資料,它首先到達其上一層的集線器,上層的集線器再交給更上層的集線器,一直到usb主控制器為止;最終,usb主控制器將資料交給計算機的cpu處理。在標註的pc上,usb主控制器是掛接在pci匯流排上的。在windows中,由各種usb功能驅動程式負責產生和管理usb功能裝置(fdo)。這就是我們最終所看到的實際裝置。我們的應用程式可以通過windows提供的一些api函式來訪問usb裝置,例如 createfile(),readfile()等。

USB介面簡介

概述 usb的英文全稱為universal serial bus,中文含義是通用序列匯流排,它是一種快速的,雙向的,同步傳輸的廉價的並可以進行熱拔插的序列介面。usb介面使用方便,它可以連線多個不同的裝置,而過去的串列埠和並口只能接乙個裝置。速度快是usb技術的突出特點之一。全速usb介面的最高傳輸...

USB底層協議

usb它是序列匯流排,所以資料在匯流排上是一位一位傳輸的,先傳輸最低位資料,最後傳輸最高位資料。對於多個位元組的資料傳輸呢,採用的是小端格式,即先傳輸低位元組資料,最後傳輸高位元組資料。在 usb中,資料是以包為單位進行傳輸的,所有的包都必須以 sync 字段開始,以 eop end of pack...

USB協議總結

使用者將乙個usb裝置插入usb埠,主機為埠供電,裝置此時處於上電狀態。主機檢測裝置。集線器使用中斷通道將事件報告給主機。主機傳送get port status 讀埠狀態 請求,以獲取更多的裝置資訊。集線器檢測裝置是低速執行還是高速執行,並將此資訊送給主機,這是對get port status請求的...