第 13 章 USB 驅(qū)動

2018-02-23 16:24 更新

第?13?章?USB 驅(qū)動

通用串行總線(USB)是一個在主機(jī)和許多外設(shè)之間的連接. 最初它被創(chuàng)建來替代許多慢速和不同的總線-并口, 串口, 和鍵盤連接--有一個單個的所有設(shè)備都可以連接的總線類型.[45] USB 已經(jīng)成長超出了這些慢速連接并且現(xiàn)在支持幾乎每種可以連接到 PC 的設(shè)備. USB 規(guī)范的最新版本增加了高速連接, 理論上到 480 MBps.

拓?fù)浣Y(jié)構(gòu)上, 一個 USB 子系統(tǒng)沒有如同一個總線一樣分布; 它更多是一個樹, 有幾個點(diǎn)對點(diǎn)連接. 這些連接是 4-線 電纜(地, 電源, 和 2 個信號線)來連接一個設(shè)備和一個集線器, 如同雙絞線以太網(wǎng). USB 主控制器負(fù)責(zé)詢問每個 USB 設(shè)備是否它有數(shù)據(jù)發(fā)送. 由于這個拓?fù)潢P(guān)系, 一個 USB 設(shè)備在沒有首先被主控制器詢問時從不啟動發(fā)送數(shù)據(jù). 這個配置允許一個非常容易即插即用的系統(tǒng), 這樣各種設(shè)備可自動被主機(jī)配置.

在技術(shù)層面這個總線是非常簡單的, 因?yàn)樗且粋€單主實(shí)現(xiàn), 其中主機(jī)查詢各種外設(shè). 除了這個固有的限制, 這個總線有一些有趣的特性, 例如一個設(shè)備能夠請求一個固定的數(shù)據(jù)傳送帶寬, 為了可靠地支持視頻和音頻 I/O. 另一個重要的特性是它只作為設(shè)備和主機(jī)之間的一個通訊通道, 對它傳遞的數(shù)據(jù)沒有特殊的含義和結(jié)構(gòu)要求.

實(shí)際上, 有一些結(jié)構(gòu), 但是它大部分精簡為適應(yīng)一個預(yù)先定義的類別: 例如, 一個鍵盤不會分配帶寬, 而一些視頻攝像頭會.

USB 協(xié)議規(guī)范定義了一套標(biāo)準(zhǔn), 任何特定類型的設(shè)備都可以遵循. 如果一個設(shè)備遵循這個標(biāo)準(zhǔn), 那么給那個設(shè)備的一個特殊的驅(qū)動就不必了. 這些不同的類型稱為類, 并且包含如同存儲設(shè)備, 鍵盤, 鼠標(biāo), 游戲桿, 網(wǎng)絡(luò)設(shè)備, 和貓. 其他不適合這些類的設(shè)備需要一個特殊的供應(yīng)商-特定的驅(qū)動給這些特別的設(shè)備. 視頻設(shè)備和 USB-到-串口 設(shè)備是一個好的例子, 這里沒有定義好的標(biāo)準(zhǔn), 并且需要一個驅(qū)動給每個來自不同制造商的不同的設(shè)備.

這些特性, 連同固有的設(shè)計上的熱插拔能力, 使 USB 稱為一個方便的, 低成本的機(jī)制來連接(和去連接)多個設(shè)備到計算機(jī), 而不必關(guān)機(jī), 開盒子, 并且旋開螺釘和電線.

Linux 內(nèi)核支持 2 類 USB 驅(qū)動: 位于主機(jī)系統(tǒng)的驅(qū)動和位于設(shè)備的驅(qū)動. 給主機(jī)系統(tǒng)的 USB 驅(qū)動控制插入其中的 USB 設(shè)備, 從主機(jī)的觀點(diǎn)看(一個通常的 USB 主機(jī)是一個桌面計算機(jī)). 在設(shè)備中的 USB 驅(qū)動, 控制單個設(shè)備如何作為一個 USB 設(shè)備看待主機(jī)系統(tǒng). 由于術(shù)語" USB 設(shè)備驅(qū)動"是非常迷惑, USB 開發(fā)者已經(jīng)創(chuàng)建了術(shù)語" USB 器件驅(qū)動"來描述控制一個連接到計算機(jī)的 USB 設(shè)備的驅(qū)動(記住 Linux 也運(yùn)行在這些小的嵌入式的設(shè)備中). 本章詳述了運(yùn)行在一臺桌面計算機(jī)上的 USB 系統(tǒng)如何工作的. USB 器件驅(qū)動此時超出了本書的范圍.

如同圖USB 驅(qū)動概覽所示, USB 驅(qū)動位于不同的內(nèi)核子系統(tǒng)(塊, 網(wǎng)絡(luò), 字符, 等等)和硬件控制器之間. USB 核心提供了一個接口給 USB 驅(qū)動用來存取和控制 USB 硬件, 而不必?fù)?dān)心出現(xiàn)在系統(tǒng)中的不同的 USB 硬件控制器.

圖?13.1.?USB 驅(qū)動概覽

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號