新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Linux環境下的USB攝像頭驅動開發

        Linux環境下的USB攝像頭驅動開發

        作者:李茂杰,柳寅秋,王勇 時間:2012-03-23 來源:電子產品世界 收藏

        摘要:嵌入式環境下的驅動需要充分利用USB總線與內核中的USB核心密切配合并且保證數據流的高速與穩定。本文從內核的USB核心模塊出發,遵循Video4接口標準,采用urb策略與內存映射的方式以提高數據讀取速度,設計開發了基于環境下的驅動,并在ARM9實驗平臺上對該驅動程序進行了測試與分析。

        本文引用地址:http://www.104case.com/article/130629.htm

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        引言

          嵌入式圖像處理的應用范圍隨著嵌入式技術的不斷發展而不斷擴大,攝像頭作為數字圖像采集的基礎,驅動程序的開發顯得尤為重要。作為操作系統內核與硬件設備之間的接口,驅動程序是否優良,直接影響著硬件設備能否正常、高效運轉。帶有USB(通用串行總線)接口的攝像頭因其具有支持熱插拔、接口通用性好、實時性強、較高的傳輸速率、低成本、易于擴展等優點而備受青睞。但是嵌入式系統中支持的驅動程序很少,因此,研究和開發嵌入式環境下的USB攝像頭驅動程序具有應用價值和現實意義。

        USB攝像頭驅動程序構架

          設備驅動程序是計算機軟、硬件之間存在的悖論的產物:軟件和硬件不應該互相滲透到對方的領域。因此,設備驅動程序是介于操作系統與硬件之間,將硬件設備的具體工作細節對操作系統內核完全屏蔽的接口。用戶的操作通過標準化的調用執行,經設備驅動程序映射到實際的硬件設備上。

          由于在不同的環境下通常需要不同的方式來操作硬件,所以在編寫訪問硬件的設備驅動程序時,不能給用戶強加任何特定的策略(策略,既是如何使用這些功能[1])。驅動程序應該處理如何使硬件工作的問題,而將怎樣使用硬件的問題留給上層應用程序,即驅動程序的作用在于提供機制(機制,既是需要提供什么功能[1])。

        USB子系統分析

          一個USB子系統是由幾個點對點的連接方式構建而成的樹狀結構,在該系統中USB只是擔當設備和主控制器之間通信通道的角色,對它所發送或者接受的數據沒有任何特殊的內容和結構上的要求。

          Linux內核支持兩種主要類型的USB驅動程序:宿主系統上的驅動程序和設備上的驅動程序[2]。宿主系統上的USB驅動程序控制插入其中的USB設備,而設備上的驅動程序則控制該設備如何與主機通信。

          Linux內核提供了USB核心模塊,該模塊將不同類型的USB主控制器完全屏蔽,而為上層的USB設備驅動程序提供了用于訪問和控制USB設備的接口(如圖1)。因此USB核心模塊將USB主控制器和USB設備驅動程序隔開,也同時將USB驅動程序的編寫與具體的硬件隔開。

        驅動模塊構架

          每個硬件設備在操作系統內核中都對應一個驅動模塊。USB攝像頭設備在內核中表現為一個字符設備,并且屬于視頻類的硬件設備。Linux內核為視頻類設備提供了內核接口Video4Linux,該內核接口使得Linux環境下的上層應用程序可以像訪問普通文件一樣對其進行讀寫操作。因此該驅動模塊提供的機制應該符合Video4Linux接口:

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        linux相關文章:linux教程


        攝像頭相關文章:攝像頭原理


        關鍵詞: Linux USB攝像頭 201203

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 辛集市| 湖口县| 茂名市| 虎林市| 五常市| 长宁县| 景谷| 成武县| 酒泉市| 无极县| 肥东县| 绥棱县| 句容市| 宿州市| 汪清县| 和龙市| 错那县| 罗甸县| 桃源县| 合山市| 舒城县| 河间市| 屏山县| 福建省| 湟源县| 株洲市| 葫芦岛市| 洞头县| 丁青县| 桓台县| 沙田区| 兴安县| 奇台县| 彭泽县| 平塘县| 岗巴县| 宁晋县| 庄河市| 沾化县| 东兰县| 五华县|