新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Linux 下基于ARM920T 的USB 攝像頭圖像采集

        Linux 下基于ARM920T 的USB 攝像頭圖像采集

        作者: 時間:2012-05-21 來源:網絡 收藏

        1、基于ARM920T的硬件平臺

        圖(1) 硬件結構原理圖

        圖(1)中各個主要模塊基本組成描述如下:

        ① 微處理器(MPU):針對開發多媒體視頻終端的需要,并考慮到系統外圍設備的需求情況,本系統采用SAMSUNG公司內嵌ATM920T內核的三星S3C2410處理器。最高主頻可達203MHz [1]。

        ② SDRAM存儲部分采用兩顆Hynix公司的HY57V561620CT內存,大小為32M。

        ③ FLASH存儲器采用SAMSUNG公司的K9F1208UOM Nand Flash,大小為64M。

        ④ USB集線器芯片:采用ALCOR MICRO公司的AU9254A21,可擴展為4個USB外圍接口,分別連接圖(1)中所示的四個外圍設備。

        ⑤ LCD:采用Sharp公司的3.5寸LCD,分辨率為240×320。

        2、基于ARM920T的的軟件系統

        由于嵌入式具有成本低、代碼開放、移植性好的特點,其用于嵌入式系統的優勢和發展潛力是不容置疑的。軟件部分的搭建主要依賴于以下三個部分:

        ① Boatloader:可以從SAMSUNG公司的官方網站獲取,經過交叉編譯生成映像文件,然后通過JTAG接口將映像燒寫到目標板,實現引導程序的裝載[2]。

        ② Kernel:本系統采用-2.4.18.tar.gz版本的內核。

        ③ 文件系統:由于本系統要進行動態的擦寫FLASH,所以采用了支持此功能的YAFFS文件系統[3]。

        平臺的驅動一般分為字符設備、塊設備和網絡設備三種類型。而在Linux下要使系統所掛接的外部設備正常工作,必須加載相應的驅動程序。 Linux下對于一個硬件的驅動,可以有兩種方式:一種是直接加載到系統的內核當中去,另一種是以模塊方式進行加載,就是在編譯內核的時候,同時生成可重定位的目標文件(.o文件)[4]。項目中所用的SBC2410X的實驗板的USB主控器驅動程序模塊為USB-OHCI- S3C2410.o。在Linux下要采集視頻類數據,需要加載Video4Linux驅動模塊Videodev.o。然后再加相應的攝像頭驅動程序。在項目開發中,我們所使用的攝像頭采用的USB控制器為ov511+,所對應的驅動程序模塊為ov511.o。所以在系統啟動時必須要通過如下命令:

        >>insmod videodev.o

        >>insmod usb-ohci-s3c2410.o

        >>insmod ov511.o

        來加載所需要的模塊。通過開源項目spca5xx可以得到上邊所需模塊的全部源代碼。上層軟件部分我們參考了 vidcat,vgrabber,w3cam,gqcam這幾種軟件的操作過程,重點參照了vidcat進行了V4L編程,使用了v4l.c和 vidcat.c 中的函數,經過交叉編譯,在實驗板上實現了實時的目的。

        在圖(2)中顯示了各個模塊之間的關系,其中從上到下的箭頭流向表示通過各個模塊啟動和配置攝像頭,從下到上的箭頭流向表示由攝像頭所采集的圖像數據經各個模塊采集到用戶指定的位置。

        3、在Linux下采集并顯示數據

        Linux下攝像頭的驅動程序是以81為主設備號,在編寫應用程序的時候,要通過打開一個具有該主設備號的設備文件來建立與設備驅動程序的通信,我們所使用的Linux沒有該文件,所以需要手工創建,并建立其軟連接,因為要對文件進行操作,所以要改變其訪問權限為666。我們用到的 videodev.o模塊即為視頻部分的標準Video for Linux (簡稱V4L)。這個標準定義了一套接口,內核、驅動、應用程序以這個接口為標準進行通信。

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

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 门源| 福泉市| 乐平市| 兴化市| 剑河县| 上林县| 宝坻区| 安化县| 姚安县| 手游| 临汾市| 海宁市| 张家港市| 五家渠市| 清涧县| 镇安县| 正安县| 礼泉县| 万山特区| 崇州市| 华容县| 兴化市| 洪洞县| 聂拉木县| 泌阳县| 太谷县| 久治县| 遂溪县| 满城县| 平昌县| 张家港市| 通海县| 东港市| 定安县| 大厂| 东丰县| 五河县| 西平县| 周口市| 江油市| 大足县|