序列程式設計/USB
序列程式設計: 介紹和 OSI 網路模型 -- RS-232 接線和連線 -- 典型的 RS232 硬體配置 -- 8250 UART -- DOS -- MAX232 驅動器/接收器系列 -- Windows 中的 TAPI 通訊 -- Linux 和 Unix -- Java -- Hayes 相容調變解調器和 AT 命令 -- 通用序列匯流排 (USB) -- 形成資料包 -- 糾錯方法 -- 雙向通訊 -- 資料包恢復方法 -- 序列資料網路 -- 實際應用開發 -- 序列連線上的 IP
USB 代表“通用序列匯流排”。它是一個在 1990 年代中期開發的行業標準,定義了用於連線、通訊和為計算機和電子裝置之間建立匯流排供電的電纜、聯結器和通訊協議。USB 的目的是標準化計算機外圍裝置(包括鍵盤、指示裝置、數碼相機、印表機、行動式媒體播放器、磁碟驅動器和網路介面卡)與個人計算機的連線,既用於通訊,也用於提供電力。它也已成為其他裝置上的常見功能,例如智慧手機、PDA 和影片遊戲機。USB 有效地取代了各種早期的介面,例如序列和並行埠。
USB 快閃記憶體驅動器是透過 USB 埠插入和供電的儲存裝置。它們儲存需要輕鬆訪問的資訊和資料。這些裝置便攜且方便外出人員使用。USB 埠是學生以及商務僱員或人員的常見需求。除了便利性外,它們的儲存容量範圍從 1GB 到 64GB,因此終端使用者能夠儲存與小型計算機一樣多的資訊。

USB 透過一系列集線器將多個裝置連線到主機控制器。在 USB 術語中,裝置被稱為功能,因為每個獨立的物理裝置實際上可能包含多個功能,例如帶有內建麥克風的網路攝像頭。集線器是專用裝置,在官方上不被視為功能。始終存在一個被稱為根集線器的集線器,它直接連線到主機控制器。
這些裝置/功能(和集線器)具有關聯的管道(邏輯通道)。管道與 Unix 中管道中的位元組流同義。管道是從主機控制器到裝置上名為端點的邏輯實體的連線。術語端點有時也用於指代整個管道。
這些端點(及其各自的管道)在每個方向上編號為 0-15,因此一個裝置/功能最多可以有 32 個活動管道,16 個進入主機控制器,16 個離開控制器。
每個端點只能在一個方向上傳輸資料,要麼進入裝置/功能,要麼離開裝置/功能,因此每個管道都是單向的。然而,端點 0 是為雙向匯流排管理保留的,因此佔用 32 個端點中的兩個 - 所有 USB 裝置都需要實現端點 0,因此在任何給定裝置上始終存在一個編號為 0 的入向和出向管道。
在這些管道中,資料以不同長度的資料包形式傳輸。每個管道都有一個最大資料包長度,通常為 位元組,因此 USB 資料包通常包含大約 8、16、32、64、128、256 到 512 位元組的資料。
管道也透過它們的傳輸型別分為四類
- 控制傳輸 - 通常用於傳送到裝置的簡短、簡單的命令和狀態響應,例如由匯流排控制管道編號 0 使用
- 等時傳輸 - 以某種保證的速度(通常但不一定是儘可能快)但可能會丟失資料,例如即時音訊或影片
- 中斷傳輸 - 需要保證快速響應(有限延遲)的裝置,例如指示裝置和鍵盤
- 批次傳輸 - 使用所有剩餘可用頻寬的大型零星傳輸(但不能保證吞吐量或延遲),例如檔案傳輸
當裝置(功能)或集線器透過總線上的任何集線器連線到主機控制器時,主機控制器會為其在總線上分配一個唯一的 7 位地址。
然後,主機控制器輪詢匯流排以獲取流量,通常以迴圈的方式,因此沒有裝置可以在沒有主機控制器的明確請求的情況下在總線上傳輸任何資料。中斷傳輸在相應端點上實際上不會中斷總線上的任何流量:它們只是被安排更頻繁地查詢,並在任何其他大型傳輸之間查詢,因此 USB 總線上的“中斷流量”實際上只是高優先順序流量。
要訪問端點,必須獲取分層配置。連線到匯流排的裝置有一個(且只有一個)裝置描述符,該描述符反過來又有一個或多個配置描述符。這些配置通常對應於狀態,例如活動模式與低功耗模式。每個配置描述符反過來又有一個或多個介面描述符,這些描述符描述了裝置的某些方面,以便它可以用於不同的目的:例如,攝像頭可能同時具有音訊和影片介面。這些介面描述符反過來又有一個預設介面設定和可能更多個備用介面設定,這些設定反過來又具有端點描述符,如上所述。但是,端點可以在多個介面和備用介面設定之間重複使用。

包含主機控制器和根集線器的硬體有一個面向程式設計師的介面,稱為主機控制器裝置 (HCD),由硬體實現者定義。在實踐中,這些是計算機中的硬體暫存器(埠)。
在 1.0 版和 1.1 版中,存在兩種競爭的 HCD 實現。康柏的開放主機控制器介面 (OHCI) 被 USB-IF 採用為標準。然而,英特爾隨後建立了一個他們稱之為通用主機控制器介面 (UHCI) 的規範,並堅持要求其他實現者付費許可和實施 UHCI。威盛科技從英特爾獲得了 UHCI 標準的許可;所有其他晶片組實現者都使用 OHCI。OHCI 和 UHCI 之間的最大區別是 UHCI 比 OHCI 更受軟體驅動,這使得 UHCI 的處理器佔用量略高,但實施成本更低。由於存在兩種實現方式,迫使作業系統供應商和硬體供應商在兩種實現方式上進行開發和測試,這增加了成本。在 USB 2.0 的設計階段,USB-IF 堅持只使用一種實現。USB 2.0 HCD 實現被稱為擴充套件主機控制器介面 (EHCI)。只有 EHCI 支援高速傳輸。每個 EHCI 控制器包含四個虛擬 HCD 實現,以支援全速和低速裝置。英特爾和威盛 EHCI 控制器上的虛擬 HCD 是 UHCI。所有其他供應商都使用虛擬 OHCI 控制器。
USB 裝置的裝置描述符具有一個簽名,該簽名指示已連線到匯流排的裝置型別。此簽名由類程式碼、子類程式碼和協議欄位組成。這些欄位共同標識了應使用哪個作業系統驅動程式來與該裝置進行通訊。此外,每個 USB 裝置介面描述符都包含相同的簽名欄位。介面簽名允許多個作業系統驅動程式同時與單個 USB 裝置進行通訊(例如具有音訊和影片介面的 USB 裝置),並且它們還允許相同驅動程式的多個例項與同一 USB 裝置的不同介面進行通訊(例如具有多個乙太網埠的 USB 乙太網介面卡)。
連線到匯流排的裝置可以是需要使用自定義裝置驅動程式的完全自定義裝置,或者可能屬於裝置類別。這些類別定義了裝置和介面描述符方面的預期行為,以便相同的裝置驅動程式可以用於聲稱屬於特定類別的任何裝置。作業系統應該實現所有裝置類別,以便為任何 USB 裝置提供通用驅動程式。
裝置類別程式碼由 USB 實現者論壇的裝置工作組決定。如果類別適用於整個裝置,則類別程式碼將分配給裝置描述符的bDeviceClass欄位,如果要為裝置上的單個介面設定類別程式碼,則將其分配給介面描述符的bInterfaceClass欄位。也可以透過使用介面關聯描述符將裝置的多個介面分組,在這種情況下,類別程式碼將分配給描述符的bFunctionClass欄位。類別程式碼是一個位元組,因此最多可以有 254 個不同的裝置類別(值 0x00 和 0xFF 保留)。如果bDeviceClass設定為 0x00,則作業系統將檢視bFunctionClass以獲取介面關聯描述符,並檢視每個介面的bInterfaceClass以確定裝置類別。每個類別還可選地支援子類別和協議子定義。這些可以在不斷修訂主要裝置類別時使用。
最常用的類別程式碼(按分配的類別 ID 分組)為:[1]
- 0x00 - 未指定類別(裝置描述符)
- USB 裝置沒有分配的類別程式碼。應使用裝置介面描述符的類別程式碼來識別裝置支援哪些驅動程式。
- 0x01 - 音訊類別(介面描述符)
- 介面遵循 USB 音訊裝置類別規範。此類別程式碼由類似音效卡的裝置使用。
- 0x02 - CDC / 通訊裝置類別(裝置或介面描述符)
- USB 通訊裝置類別 ("CDC"),用於調變解調器、網絡卡、ISDN 連線、傳真。
- 0x03 - HID 類別 / 人機介面裝置類別(介面描述符)
- USB 人機介面裝置類別 ("HID"),鍵盤、滑鼠等。
- 0x05 - 物理裝置類別(介面描述符)
- ?
- 0x06 - 靜態影像類別(介面描述符)
- 靜態影像捕獲裝置類別,與 USB 中使用的圖片傳輸協議相同。
- 0x07 - 印表機類別(介面描述符)
- USB 印表機裝置類別,類似印表機的裝置。
- 0x08 - 大容量儲存類別(介面描述符)
- 用於快閃記憶體驅動器、行動式硬碟驅動器、儲存卡讀卡器、數碼相機、數字音訊播放器等的 USB 大容量儲存裝置類別。此裝置類別將裝置呈現為塊裝置(幾乎總是用於儲存檔案系統)。
- 0x09 - 集線器(裝置描述符)
- USB 集線器。
- 0x0A - CDC 資料 / 通訊裝置類別資料(介面描述符)
- CDC-資料(通訊類別裝置)。
- 0x0B - 智慧卡類別(介面描述符)
- 智慧卡讀卡器。
- 0x0D - 內容安全類別(介面描述符)
- 內容安全。
- 0x0E - 影片類別(介面描述符)
- USB 影片裝置類別,類似網路攝像頭的裝置,動態影像捕獲裝置。
- 0xDC - 診斷裝置類別(裝置或介面描述符)
- 用於診斷裝置的類別。此類別有一個用於 USB 2.0 合規性測試裝置的子類別。
- 0xE0 - 無線控制器類別(裝置或介面描述符)
- 無線控制器,例如藍牙介面卡。此類別程式碼通常僅在介面描述符中使用,僅藍牙子類別允許在裝置描述符中使用。
- 0xEF - 雜項類別(裝置或介面描述符)
- ?
- 0xFE - 應用程式特定類別(介面描述符)
- ?
- 0xFF - 供應商特定類別(裝置或介面描述符)
- 自定義裝置類別 - 用於確定裝置或介面不支援任何標準裝置類別,需要自定義驅動程式。
USB 訊號
[edit | edit source]
| 引腳 | 功能 | |
|---|---|---|
| 1 | VBUS (4.01–5.25 volts) | |
| 2 | D− | |
| 3 | D+ | |
| 4 | GND | |
| 外殼 | 遮蔽 | |
助記符:維克多衝過地面零點 (Vbus , - , + , GND , Shield/Blank)
USB 訊號透過標記為 D+ 和 D− 的一對絞線傳輸。這些訊號共同使用半雙工差分訊號來對抗長線上電磁噪聲的影響。D+ 和 D− 通常一起執行;它們不是獨立的單向連線。傳輸的訊號電平為 0.0–0.3 伏特(低電平)和 2.8–3.6 伏特(高電平)。
傳輸模式
[edit | edit source]USB 支援四種傳輸模式
- 控制
- 中斷
- 塊
- 等時
傳輸速度
[edit | edit source]USB 支援三種資料速率
- 低速速率高達 1.5 Mbit/s (187.5 kB/s),主要用於人機介面裝置 (HID),如鍵盤、滑鼠和操縱桿。
- 全速速率高達 12 Mbit/s (1.5 [MB/s)。在 USB 2.0 規範之前,全速是最高速率,許多裝置會回退到全速。全速裝置在先到先得的基礎上分配 USB 頻寬,並且在使用多個等時裝置時,頻寬不足是常見的現象。所有 USB 集線器都支援全速。
- 高速速率高達 480 Mbit/s (60 MB/s)。
即使是高速集線器,如果為多個非高速裝置提供服務,也可能為這些裝置分配總計 12 Mbit/s 的頻寬,這將減慢它們的速度,除非集線器為每個埠都有事務轉換器。[3]
雖然高速裝置通常被稱為“USB 2.0”並宣傳為“高達 480 Mbit/s”,但並非所有 USB 2.0 裝置都是高速的。高速裝置通常僅以理論最大值 (60 MB/s) 資料吞吐量的一半執行。目前 (2006) 使用真實裝置獲得的最大速率約為一半,即 30 MB/s。[4] 大多數高速 USB 裝置通常以更低的速度執行,通常總體約為 3 MB/s,有時高達 10-20 MB/s。USB-IF 對裝置進行認證,並提供許可,以便在透過合規性測試並支付許可費後使用“基本速度”(低速和全速)或高速的特殊營銷徽標。所有裝置都根據最新的規範進行測試,因此最近符合規範的低速裝置也是 2.0。
高速裝置旨在當插入全速集線器時回退到全速的較慢資料速率。高速集線器有一個名為事務轉換器的特殊功能,可以將全速和低速匯流排流量與高速流量分離。高速集線器中的事務轉換器(或者可能取決於電路設計,每個埠都有一個)將充當一個完全獨立的全速匯流排,為連線到它的全速和低速裝置提供服務。這種分離僅針對頻寬;有關電源和集線器深度的匯流排規則仍然適用。
一個集線器將有一個或多個事務轉換器,並且沒有標準方法來確定集線器可能具有的事務轉換器數量。連線到一個事務轉換器的所有低速和全速裝置將共享低速/全速頻寬。這意味著集線器的效能可能會大不相同,具體取決於事務轉換器的數量以及連線到其埠的裝置。例如,一個只有一個事務轉換器、連線了 7 個低速/全速裝置的高速 7 埠集線器,與 USB 1.1 集線器沒有區別,所有裝置都競爭相同的低速/全速頻寬。如果集線器為七個埠中的每一個都有一個事務轉換器,那麼每個裝置將擁有可用的所有全速/低速頻寬,並且只會競爭高速頻寬,而高速頻寬要大得多。[5]
資料編碼
[edit | edit source]USB 標準使用 NRZI 系統來編碼資料,並使用位元填充來傳輸長度為六位的邏輯 1(在六位邏輯 1 後面放一個邏輯 0;接收器會忽略跟隨六個邏輯 1 的 0)。此外,接收一個連續七位的邏輯 1 塊,將在接收器處被訊號為位元填充錯誤。NRZI(非歸零反轉)編碼方法在傳輸邏輯1時不會改變訊號,但在傳輸每個邏輯0時會反轉訊號電平。
迷你 USB 訊號
[edit | edit source]

| 引腳 | 功能 |
|---|---|
| 1 | VBUS (4.4–5.25 V) |
| 2 | D− |
| 3 | D+ |
| 4 | ID |
| 5 | 接地 |
迷你 USB 聯結器的大多數引腳與標準 USB 聯結器中的引腳相同,除了引腳 4。引腳 4 被稱為“ID”,在迷你 A 插頭中連線到接地,但在迷你 B 插頭中未連線。這會導致支援 USB On-The-Go(帶有迷你 AB 插座)的裝置在連線到 USB 迷你 A 插頭(迷你 A - 迷你 B 電纜的“A”端)時最初充當主機。迷你 A 聯結器還包含額外的塑膠部件,以防止插入僅從屬裝置 (B 僅) 裝置。
USB 聯結器有多種型別,隨著規範的發展,又增加了一些型別。從最初的 USB 規範開始
- 標準-A 插頭
- 標準-A 插座
- 標準-B 插頭
- 標準-B 插座
在 USB 2.0 規範的第一個工程變更通知中新增
- Mini-B 插頭
- Mini-B 插座
在《通用序列匯流排 Micro-USB 電纜和聯結器規範》中新增
- Micro-A 插頭(白色)
- Micro-AB 插座(灰色)
- Micro-B 插頭(黑色)
- Micro-B 插座(黑色)
介面卡,也來自《通用序列匯流排 Micro-USB 電纜和聯結器規範》(注意:不允許使用其他介面卡)
- 標準-A 插座到 Micro-A 插頭


- “Micro 系列 USB 技術將在 OTG 產品中取代 Mini 系列 USB”[1]“比弗頓,俄勒岡州,2007 年 1 月 4 日 - 通用序列匯流排實施者論壇公司(USB-IF)今天宣佈完成 Micro-USB 規範的制定,這項新的聯結器技術將取代目前行動式產品中使用的許多 Mini 系列插頭和插座。”Micro-USB 插頭額定連線和斷開迴圈次數為 10,000 次。它的高度大約是目前廣泛使用的 mini-USB 聯結器的二分之一,但寬度相似。

電纜只有插頭,主機和裝置只有插座。主機具有 A 型插座;裝置如果具有插座,則具有 B 型插座。A 型插頭只能與 A 型插座匹配,B 型插頭只能與 B 型插座匹配。
On-the-Go 補充允許產品既是主機又是裝置,具有 Micro-AB 插座,可接受 Micro-A 插頭或 Micro-B 插頭。Micro-A、Micro-B 和 Micro-AB 聯結器透過顏色輕鬆識別。Micro-A 插頭和插座內部的塑膠始終為白色,Micro-B 聯結器內部的塑膠為黑色,Micro-AB 插座內部的塑膠為灰色。
USB 規範允許使用一組有限的電纜。電纜分為兩類 - “可拆卸”和“固定”。所有允許的 USB 電纜都具有一個 A 型插頭,無論是標準-A 還是 Micro-A。固定電纜的另一端要麼不可拆卸,要麼在裝置端具有自定義聯結器。如果電纜是“可拆卸”的,則電纜的另一端必須具有 B 型插頭。還存在一根特殊的介面卡電纜,它具有 Micro-A 插頭和標準-A 插座。
固定 USB 電纜型別
- 標準-A 插頭到裝置。
該電纜在裝置端可能具有自定義聯結器。 - Micro-A 插頭到裝置。
該電纜並非旨在由裝置的終端使用者拆卸。
可拆卸 USB 電纜型別
- 標準-A 插頭到標準-B 插頭。
這是將 USB 裝置連線到主機的最流行的電纜。 - 標準-A 插頭到 Mini-B 插頭。
用於將較舊的移動裝置連線到主機。 - 標準-A 插頭到 Micro-B 插頭。
用於將較新的移動裝置連線到主機。 - Micro-A 插頭到 Micro-B 插頭。
用於將移動裝置相互連線。 - Micro-A 插頭到標準-A 插座。
這是一根特殊的介面卡電纜,允許其最長為 150 毫米。需要它才能讓移動裝置充當 USB 主機,用於那些沒有使用 Micro-USB 聯結器的裝置。
任何帶有插座(上述特殊情況除外)或帶有兩個“A”或兩個“B”聯結器的電纜,根據定義,都不是 USB。[6]但是,許多電纜製造商生產並銷售與 USB 相容(但不是嚴格符合規範)的延長線,一端帶有標準-A 插頭,另一端帶有標準-A 插座。請注意,這些不符合規範的延長線不應與包含小型匯流排供電集線器的符合規範的電纜混用。帶有兩個 A 型插頭甚至兩個 B 型插頭的電纜可從更專業的供應商處獲得。
請注意,只有“全速”和“高速”裝置使用可拆卸電纜。符合規範的“低速”裝置僅使用固定電纜,因為低速規範不允許標準可拆卸 USB 電纜的電氣特性。
Mini-B、Micro-A、Micro-B 和 Micro-AB 聯結器用於較小的裝置,例如 PDA、手機或數碼相機。標準-A 插頭大約為 4 毫米 × 12 毫米,標準-B 大約為 7 毫米 × 8 毫米,Micro-A 和 Micro-B 插頭大約為 2 毫米 × 7 毫米。
USB 委員會指定的聯結器旨在支援 USB 的許多底層目標,並反映從當時正在使用的各種聯結器中吸取的教訓。特別是
- 聯結器設計為堅固耐用。許多以前的聯結器設計都很脆弱,引腳或其他精細部件容易彎曲或斷裂,即使只施加了非常小的力。USB 聯結器中的電氣觸點由相鄰的塑膠舌頭保護,整個連線元件進一步由封閉的金屬套保護。因此,USB 聯結器可以安全地處理、插入和拔出,即使是小孩也可以操作。外殼套和堅固的模製插頭主體意味著聯結器可以掉落、踩踏、甚至壓碎或敲擊,而不會損壞;需要相當大的力才能嚴重損壞 USB 聯結器。
- 很難錯誤地連線 USB 聯結器。聯結器不能倒置插入,當插頭和插座正確匹配時,從外觀和運動感覺上可以清楚地看出是否連線成功。然而,對於經驗不足的使用者(或沒有看到安裝過程的使用者)來說,乍一看並不明顯聯結器應該朝哪個方向,因此通常需要嘗試兩種方式。
- 聯結器製造成本特別低。
- 聯結器強制執行 USB 網路的定向拓撲。USB 不支援迴圈網路,因此來自不相容 USB 裝置的聯結器本身也不相容。與其他通訊系統(例如 RJ-45 電纜)不同,性別轉換器幾乎從不使用,這使得建立迴圈 USB 網路變得很困難。
- 指定了適度的插入/拔出力。USB 電纜和小型 USB 裝置由插座的夾持力固定(無需其他聯結器需要的螺釘、夾子或旋鈕)。連線或斷開連線所需的力很小,允許在笨拙的情況下或由有運動障礙的人進行連線。
- 聯結器構造始終確保插頭上的外部套管先與其在插座中的對應套管接觸,然後再連線內部的四個聯結器。該套管通常連線到系統接地,允許其他可能造成損壞的靜電透過此路徑安全地放電(而不是透過精密的電子元件)。這種外殼方式還意味著 USB 訊號在穿過匹配的聯結器對(這是否則必須平行行駛的扭絞資料對必須行駛一定距離的唯一位置)時具有一定的(適度)抗電磁干擾能力。此外,電源和公共連線是在系統接地之後但資料連線之前進行的。這種分階段的連線斷開時間安排允許安全熱插拔,並且長期以來一直是航空航天工業聯結器設計中的常見做法。
- USB 標準為符合規範的 USB 聯結器指定了較低的公差,旨在最大限度地減少不同供應商生產的聯結器之間的不相容性(這一目標已經非常成功地實現)。與大多數其他聯結器標準不同,USB 規範還定義了連線裝置在其插頭周圍區域的尺寸限制。這樣做是為了避免裝置符合聯結器規範,但其尺寸過大導致相鄰埠被堵塞的情況。符合規範的裝置必須要麼符合尺寸限制,要麼支援符合規範的延長線。
但是,在一些示例中,物理層發生了變化。例如,IBM UltraPort 是一個專有的 USB 聯結器,位於 IBM 筆記型電腦 LCD 的頂部。它使用不同的機械聯結器,同時保留 USB 訊號和協議。其他小型物品製造商也開發了自己的小型聯結器,並且出現了各種各樣的聯結器。出於規範目的,這些裝置被視為具有固定電纜。
USB 的副檔名為 USB On-The-Go,它允許單個埠充當主機或裝置 - 由電纜的哪一端插入裝置上的插座決定。即使在電纜連線好且裝置開始通訊之後,這兩個裝置也可能在程式控制下“交換”端點。這項功能針對諸如 PDA 之類的裝置,其中 USB 連結可能在一種情況下連線到 PC 的主機埠作為裝置,而在另一種情況下則作為主機連線到鍵盤和滑鼠裝置。因此,USB On-The-Go 定義了兩個小型聯結器,Mini-A 和 Mini-B,以及一個通用插座(Mini-AB),這應該阻止專有設計的激增。
無線 USB 是一種正在開發的標準,旨在擴充套件 USB 標準,同時在協議級別上保持與 USB 1.1 和 USB 2.0 的向後相容性。
USB 電纜的最大長度為 5 米;更長的長度需要集線器 [2]。USB 連線可以透過使用由各種製造商開發的專用 USB 擴充套件產品,透過 CAT5 線纜擴充套件到 50 米,或透過光纖擴充套件到 10 公里。
USB 規範提供了一條單線上 5 伏 (伏特) 的電源,連線的 USB 裝置可以從該電源獲取電源。該規範規定正負匯流排電源線之間的電壓不超過 5.25 伏,不低於 4.35 伏。
最初,裝置只允許汲取 100 mA 電流。它可以從上游裝置以 100 mA 為單位請求更多電流,最高可達 500 mA。實際上,大多數埠會在關閉電源之前提供 500 mA 或更多電流,即使裝置沒有請求或識別自身也是如此。如果(符合規範的)裝置需要的電源超過可用電源,則裝置無法執行,直到使用者更改網路(透過重新排列 USB 連線或新增外部電源)以提供所需的電源。
如果 USB 裝置檢測到 USB 匯流排的資料線處於空閒狀態 3 毫秒,則裝置必須進入掛起狀態。掛起的裝置允許汲取 500 μA 電流。如果裝置在掛起之前被配置為使用超過 100 mA 的電流,並且裝置被配置為遠端喚醒源,則裝置在掛起期間允許汲取 2.5 mA 電流。掛起期間的電流限制為一秒鐘的平均值。
請注意,即插即用 和 電池充電規範 都在 USB 規範中添加了新的供電模式。
如果使用匯流排供電的集線器,下游裝置的總電流只能使用四個單位——400 mA。這限制了符合規範的匯流排供電集線器只能有 4 個埠,除此之外還有其他限制。需要超過 500 mA 電流的裝置、埠數超過 4 個的集線器以及下游裝置總共使用超過四個 100 mA 單位電流的集線器必須提供自己的電源。主機作業系統通常會跟蹤 USB 網路的電源需求,並在特定段的電源需求超過可用電源時向計算機操作員發出警告。
- http://www.usb.org/ 是 USB 實現者論壇的網站,該論壇是一個由開發 USB 規範的公司成立的非營利性組織。
- USB 3.0 規範 是 USB 標準的正式定義。第 9 章涵蓋 USB 裝置。
- http://www.beyondlogic.org/index.html#USB 關於一些來自不同公司的 USB 微控制器和 IC 的實用資訊。
- USB 設計人員連結 http://homepage.hispeed.ch/ibhdoran/usb_link.html 關於來自許多不同公司的 USB 晶片的大量資訊。
- USB 開發人員指南,包含匯流排分析器示例,包括關於低階協議 的重要資訊
- 如果您正在為 USB 裝置開發韌體,USB 協議分析器是必不可少的
- http://www.micrel.com/product-info/USB.shtml
- USB 介面
- Linux USB http://linux-usb.org/
- Sycard Technology http://sycard.com/usb.html 出售 USB 開發工具。
- "USB 晶片:USB 主機和裝置控制器晶片",Jan Axelson 編輯
- Java RxTx 類(在 序列程式設計:序列 Java 中解釋)也可以與某些 USB 裝置通訊[3]。
- MATLAB 程式設計/寫入 USB 埠
- LPI Linux 認證/配置 USB 裝置
- 嵌入式系統/特定微處理器 簡要提到了可以與 USB 通訊的微控制器
- "Open USB FXS" 部落格描述了一個使用 Microchip 18F2550 與 USB 通訊的開源專案
- ↑ USB 類程式碼
- ↑ 通用序列匯流排規範修訂版 2.0 - 6.5.2 USB 聯結器端接資料
- ↑ 多 TT 集線器與單 TT 集線器正面交鋒 在 Tom's Hardware Guide
- ↑ http://www.barefeats.com/usb2.html
- ↑ http://www.tomshardware.com/2003/09/09/usb_technology/index.html
- ↑ 參見 http://www.usb.org/developers/whitepapers/cablew~1.pdf 和 http://www.usb.org/developers/docs/ecn1.pdf
序列程式設計: 介紹和 OSI 網路模型 -- RS-232 接線和連線 -- 典型的 RS232 硬體配置 -- 8250 UART -- DOS -- MAX232 驅動器/接收器系列 -- Windows 中的 TAPI 通訊 -- Linux 和 Unix -- Java -- Hayes 相容調變解調器和 AT 命令 -- 通用序列匯流排 (USB) -- 形成資料包 -- 糾錯方法 -- 雙向通訊 -- 資料包恢復方法 -- 序列資料網路 -- 實際應用開發 -- 序列連線上的 IP