新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Linux的嵌入式視覺(jué)系統(tǒng)設(shè)計(jì)方案

基于Linux的嵌入式視覺(jué)系統(tǒng)設(shè)計(jì)方案

作者: 時(shí)間:2012-10-18 來(lái)源:網(wǎng)絡(luò) 收藏

內(nèi)存映射:char* memoryMap = (char*)mmap (0,memoryBuffer.size, PROT_READ PROT_WRITE,MAP_SHARED, device, 0);

圖像數(shù)據(jù): memoryMap + memory Buffer.offsets[bufferIndex]

4.2 圖像顯示程序

采用直接將數(shù)據(jù)寫(xiě)入FrameBuffer 中來(lái)顯示圖像。FrameBuffer 設(shè)備是運(yùn)行在 控制臺(tái)上的一個(gè)優(yōu)秀的圖形接口,幾乎支持所有硬件,提供了統(tǒng)一的API 接口,很好地實(shí)現(xiàn)了硬件無(wú)關(guān)性。FrameBuffer的設(shè)備節(jié)點(diǎn)是/dev/fb* , 在編譯內(nèi)核時(shí)選中FrameBuffer.LCD 顯示程序流程圖如圖4 所示:

圖4 圖像顯示程序流程圖

圖4 圖像顯示程序流程圖

應(yīng)用程序編寫(xiě)完之后,用交叉編譯環(huán)境對(duì)這個(gè)文件進(jìn)行編譯,沒(méi)有錯(cuò)誤后可生成cam 可執(zhí)行文件。然后把cam 拷貝到根目錄下的bin 文件夾,在主機(jī)windows 超級(jí)終端下輸入命令:

#ln -s /dev/v4l/video0 /dev/video0

# cam 640 480 16 video0

就可以在屏幕上看到采集的圖像了。樣機(jī)如圖5 所示。

圖5 嵌入式視覺(jué)系統(tǒng)樣機(jī)。

圖5 系統(tǒng)樣機(jī)。

5 系統(tǒng)性能測(cè)試

S3C2410 控制板的I/O 口資源有限,因此,對(duì)圖像采集的控制信號(hào)線(xiàn)采用普通I/O 口,而不是用中斷I/O 口與其攝像頭模塊相連,因此只能用軟件實(shí)時(shí)檢測(cè)I/O 的電平狀態(tài),決定何時(shí)采集開(kāi)始,何時(shí)讀數(shù)據(jù),何時(shí)結(jié)束。為了采集到圖像數(shù)據(jù)并能分辨出來(lái),必須能夠跟蹤控制信號(hào)的變化狀態(tài)。

由于I/O 口的電平的變化頻率遠(yuǎn)低于攝像頭控制信號(hào)的變化頻率,如果不對(duì)攝像頭模塊進(jìn)行降頻處理,這將導(dǎo)致I/O 口無(wú)法跟蹤控制信號(hào)變化,即將無(wú)法判斷幀、行、點(diǎn)何時(shí)開(kāi)始與結(jié)束等狀態(tài)信息。當(dāng)攝像頭的最高頻率(點(diǎn)象素頻率最高)降到1MHZ 左右,系統(tǒng)就能跟蹤并完整的采集到圖像信息,進(jìn)一步處理之后完好的顯示出來(lái)。圖6 是示波器對(duì)幀、行、點(diǎn)信號(hào)及Y0 信號(hào)的波形圖。

圖6 信號(hào)波形圖。

圖6 信號(hào)波形圖。

從上圖可以看出,系統(tǒng)的控制信號(hào)非常完整和穩(wěn)定,沒(méi)有出現(xiàn)毛刺、變形等情況,給檢測(cè)讀取帶來(lái)了好處。Y0 的波形圖有些段是低電平,出現(xiàn)的位置不一樣,是因?yàn)閿z像頭移動(dòng)時(shí),環(huán)境光發(fā)生了變化,引起整個(gè)Y 數(shù)據(jù)變化。

表1 采集到的實(shí)驗(yàn)數(shù)據(jù)(示波器采用x10 檔)。

表1 采集到的實(shí)驗(yàn)數(shù)據(jù)(示波器采用x10 檔)。

把示波器調(diào)整到x10 檔,在不同情況下,多次采集YSYN 信號(hào)、HREF 信號(hào)、PCLK 信號(hào)的峰-峰值、平均值、周期、頻率等數(shù)據(jù),從Y0~Y7 中選擇Y0信號(hào)進(jìn)行觀察。從數(shù)據(jù)中可以看出各信號(hào)的峰-峰值變化幅度不大,尤其是信號(hào)的頻率比較穩(wěn)定。Y0 數(shù)據(jù)信號(hào)很規(guī)整,那么其他數(shù)據(jù)信號(hào)如Y1~Y7 也是如此。

多次實(shí)驗(yàn)數(shù)據(jù)如下表1 所示。

測(cè)試硬件性能穩(wěn)定之后,在 系統(tǒng)下把圖像采集、圖像顯示和保存圖像命令寫(xiě)成一個(gè)腳本,放在文件系統(tǒng)etc/init.d 目錄下。重新把文件系統(tǒng)下載到開(kāi)發(fā)板里,當(dāng)開(kāi)機(jī)啟動(dòng)后,系統(tǒng)會(huì)自動(dòng)執(zhí)行圖像采集、顯示和保存。

6 結(jié)論

本文主要S3C2410 開(kāi)發(fā)板和 操作系統(tǒng)視覺(jué)系統(tǒng)。該視覺(jué)系統(tǒng)不僅可以較好地實(shí)現(xiàn)圖像采集和顯示,還可實(shí)現(xiàn)圖像存儲(chǔ)、網(wǎng)絡(luò)獲取圖像等功能,并且可以在該基礎(chǔ)上研究圖像處理等算法。與PC 組合的視覺(jué)系統(tǒng)相比,結(jié)構(gòu)簡(jiǎn)單,體積和重量減小,功耗低,可移植性強(qiáng)、功能擴(kuò)展方便,成本顯著降低,所以對(duì)這種嵌入式視覺(jué)系統(tǒng)研究具有相當(dāng)重要的實(shí)用價(jià)值。

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

上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉