新聞中心

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

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

        作者: 時間:2012-05-21 來源:網(wǎng)絡 收藏

        1、基于ARM920T的硬件平臺

        圖(1) 硬件結(jié)構(gòu)原理圖

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

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

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

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

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

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

        2、基于ARM920T的的軟件系統(tǒng)

        由于嵌入式具有成本低、代碼開放、移植性好的特點,其用于嵌入式系統(tǒng)的優(yōu)勢和發(fā)展?jié)摿κ遣蝗葜靡傻摹\浖糠值拇罱ㄖ饕蕾囉谝韵氯齻€部分:

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

        ② Kernel:本系統(tǒng)采用-2.4.18.tar.gz版本的內(nèi)核。

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

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

        >>insmod videodev.o

        >>insmod usb-ohci-s3c2410.o

        >>insmod ov511.o

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

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

        3、在Linux下采集并顯示數(shù)據(jù)

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

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

        上一頁 1 2 下一頁

        關(guān)鍵詞: USB攝像頭 Linux 圖像采集

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 安陆市| 定西市| 宜君县| 清水县| 嘉兴市| 德化县| 绥江县| 北安市| 满城县| 舟曲县| 磐安县| 博白县| 昌都县| 二连浩特市| 门头沟区| 泰兴市| 花垣县| 四平市| 五原县| 抚顺县| 永寿县| 什邡市| 濮阳县| 那坡县| 宝应县| 抚宁县| 伽师县| 洛隆县| 临邑县| 星座| 阆中市| 本溪市| 丁青县| 临汾市| 新郑市| 开远市| 宁化县| 锦屏县| 墨玉县| 新建县| 荣成市|