<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          1、基于ARM920T的硬件平臺(tái)

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

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

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

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

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

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

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

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

          由于嵌入式具有成本低、代碼開放、移植性好的特點(diǎn),其用于嵌入式系統(tǒng)的優(yōu)勢(shì)和發(fā)展?jié)摿κ遣蝗葜靡傻?。軟件部分的搭建主要依賴于以下三個(gè)部分:

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

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

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

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

          >>insmod videodev.o

          >>insmod usb-ohci-s3c2410.o

          >>insmod ov511.o

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

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

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

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

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

          上一頁 1 2 下一頁

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

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();