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

          新聞中心

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

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

          作者: 時間:2012-10-18 來源:網(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ù)寫入FrameBuffer 中來顯示圖像。FrameBuffer 設(shè)備是運(yùn)行在 控制臺上的一個優(yōu)秀的圖形接口,幾乎支持所有硬件,提供了統(tǒng)一的API 接口,很好地實(shí)現(xiàn)了硬件無關(guān)性。FrameBuffer的設(shè)備節(jié)點(diǎn)是/dev/fb* , 在編譯內(nèi)核時選中FrameBuffer.LCD 顯示程序流程圖如圖4 所示:

          圖4 圖像顯示程序流程圖

          圖4 圖像顯示程序流程圖

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

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

          # cam 640 480 16 video0

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

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

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

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

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

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

          圖6 信號波形圖。

          圖6 信號波形圖。

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

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

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

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

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

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

          6 結(jié)論

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

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

          上一頁 1 2 下一頁

          評論


          相關(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); })();