Linux USB札记
?嵌入式linux內核添加USB模塊(U盤)支持
使用menuconfig工具進行配置
1、Device Drivers->SCSI device support->SCSI disk support此選項必須勾選
2、Device Drivers->USB support->Support for Host-side USB 此選項選中后會出現子菜單,故必須選中
3、Device Drivers->USB support->USB Mass Storage support 此選項必須選中,否則/dev/下沒有設備
4、因為我是在DM6467平臺下,所以需要Device Drivers->USB support->Inventra USB Highspeed Dual Role Controller Support選項,并選擇其子選項下的DaVinci 644x USB support下Driver Mode為Host
編譯內核即可,下載內核后成功支持USB的熱插拔及其文件系統
以上選項僅基于我自己的平臺,且測試條件單一(只有一個U盤、linux內核為2.6.0.10)
EHCI和OHCI,UHCI的比較和區別?
2012-07-20 23:25 34488人閱讀 評論(1) 收藏 舉報
interface工作
什么是 ehci?什么是 ohci?就是host controller 的接口
EHCI和OHCI的比較和區別
?? 什么是 ehci?什么是 ohci?就是host controller 的接口.從硬件上來說,usb 設備要想工作,除了外設本身,必須還有一個咚咚叫做 usb host controller.一般來說,一個電腦里有一個 usb host controller就可以了,她就可以控制很多個設備了,比如 u 盤,比如 usb 鍵盤,比如 usb 鼠標.所有的外設都把自己的請求提交給usb host controller.然后讓 usb host controller 統一來調度.
?? 現在一般的USB橋接器模塊有兩種類型,UHCI和OHCI。在決定插入那一個橋接器模塊時,可以察看/proc/pci文件來決定。。一般而言,UHCI類型的橋接器它的插入模塊是uhci或usb-uhci(由內核版本決定);而對于OHCI類型的橋接器它的插入模塊是ohci或usb-ohci。
? ? uhci(universal host controller interface): Intel用在自家芯片組上的usb 1.1主控制器(host controller)的硬件實例
? ? ehci(enhanced host controller interface): usb 2.0的主控制器標準接口。
?? ? ohci(open host controller inferface):一個不僅僅是usb用的主控制器接口標準。主要是遵循csr (configuration space register)標準。是其他廠商在設計usb host controller時遵循的標準,如via, nec, ali, 包括nvidia等等。
?? ? ehci是滿足usb 2.0 specification里面對usb host controller (high speed)的要求的硬件設計。
為了實現USB主機功能的統一,提高系統的可靠性與可移植性,上游芯片生產廠家在確定USB標準的同時,也確定了相應的主機規范。現在用得比較廣泛的有三種,其中的用于USB2.0高速設備的EHCI(Enhanced Host Control Interface增強主機控制接口)規范是INTEL用于USB2.0高速主機的。而同是INTEL推出的UHCI(Universal Host Control Interface 通用主機)與前Compaq 、Microsoft等推出的OHCI(Open Host Control Interface開放主機控制接口)可用于全速與低速USB系統中,硬件的要求與系統性能、軟件復雜的要求相對較低,也能夠滿足大部分的具有USB接口嵌入式系統的要求。而在UHCI與OHCI的對比中,UHCI對硬件的要求相對較少,但對系統的處理能力與軟件的開發要求相對要高(PC機就較多地采用了UHCI);OHCI則把較多的功能定義在硬件中,軟件需要處理的內容就相對容易,對系統的處理能力和系統資源的要求就低。
因此,在嵌入式的USB HOST功能中,較多地選用了遵循OHCI的規范的硬件,從而簡化了系統的設計。
EHCI 驅動程序的功能包括:
- 符合支持 USB 2.0 的增強主機控制器接口的標準。
- 支持高速控制、批處理和中斷傳輸。
- 目前尚不支持高速同步事務。
- USB 2.0 芯片包含一個 EHCI 控制器以及一個或多個 OHCI 或 UHCI 控制器。
- USB 1.1 設備插入后會動態分配給 OHCI 或 UHCI 控制器。USB 2.0 設備插入后會動態分配給 EHCI 控制器。
簡單地講,OHCI、UHCI都是USB1.1的接口標準,而EHCI是對應USB2.0的接口標準,最新的xHCI是USB3.0的接口標準。 - 1. OHCI(Open Host Controller Interface)是支持USB1.1的標準,但它不僅僅是針對USB,還支持其他的一些接口,比如它還支持Apple的火線(Firewire,IEEE 1394)接口。與UHCI相比,OHCI的硬件復雜,硬件做的事情更多,所以實現對應的軟件驅動的任務,就相對較簡單。主要用于非x86的USB,如擴展卡、嵌入式開發板的USB主控。
- 2. UHCI(Universal Host Controller Interface),是Intel主導的對USB1.0、1.1的接口標準,與OHCI不兼容。UHCI的軟件驅動的任務重,需要做得比較復雜,但可以使用較便宜、較簡單的硬件的USB控制器。Intel和VIA使用UHCI,而其余的硬件提供商使用OHCI。
- 3. EHCI(Enhanced Host Controller Interface),是Intel主導的USB2.0的接口標準。EHCI僅提供USB2.0的高速功能,而依靠UHCI或OHCI來提供對全速(full-speed)或低速(low-speed)設備的支持。
- 4. xHCI(eXtensible Host Controller Interface),是最新最火的USB3.0的接口標準,它在速度、節能、虛擬化等方面都比前面3中有了較大的提高。xHCI支持所有種類速度的USB設備(USB 3.0 SuperSpeed, USB 2.0 Low-, Full-, and High-speed, USB 1.1 Low- and Full-speed)。xHCI的目的是為了替換前面3中(UHCI/OHCI/EHCI)。
總結
以上是生活随笔為你收集整理的Linux USB札记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js对象调用方法 财富值39
- 下一篇: 深入理解linux系统下proc文件系统