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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的多路圖像采集系統(tǒng)的軟件設(shè)計

          基于FPGA的多路圖像采集系統(tǒng)的軟件設(shè)計

          作者: 時間:2011-04-06 來源:網(wǎng)絡(luò) 收藏

          用程序?qū)崿F(xiàn)比較簡單,設(shè)置一個地址寄存器sram_addr_reg,將它賦給SRAM的地址控制信號sram_addr。然后在對每一路圖像寫入時,將對應(yīng)的SRAM的起始地址加上一個固定的基數(shù)。如:

          本文引用地址:http://www.ex-cimer.com/article/191256.htm


          在系統(tǒng)中,LCD屏幕分辨率為640x480,像素時鐘CLK為25MHz,由于的主時鐘輸入選用了20 MHz的有源時鐘,那么就要求利用Cyclone芯片的內(nèi)部邏輯資源來實現(xiàn)時鐘倍頻,以產(chǎn)生所需要的CLK(25 MHz)、用Verilog語言編寫參數(shù)化的時序生成模塊,產(chǎn)生HSYNC(32 kHz)及VHY-NC(60 Hz)時鐘信號,如圖8所示。


          VGA顯示原理與LCD相似,除了在硬件上正確連接ADV7125芯片電路外根據(jù)需要的分辨率來生成相應(yīng)時鐘信號即可。

          5 圖像抖動的分析與解決
          在系統(tǒng)完成后軟硬件聯(lián)調(diào)時,出現(xiàn)畫面抖動現(xiàn)象,其中以RTSO為基準(zhǔn)而產(chǎn)生乒乓切換的那一路圖像穩(wěn)定,其他三路都出現(xiàn)不同程度的抖動現(xiàn)象。對此我們做了深入的分析和實驗,分析整個系統(tǒng)的結(jié)構(gòu)可知,系統(tǒng)在多個時鐘控制下共同工作,也就是所說的典型的異步系統(tǒng)。我們知道,數(shù)據(jù)在異步系統(tǒng)傳輸時對時鐘要求非常嚴(yán)格,稍微的一點時鐘偏差都會帶來對有效像素截取的偏差,最終影響圖像的顯示質(zhì)量。
          解決的辦法有兩個,一是加入緩沖機制,利用FIFO對數(shù)據(jù)存儲的特性來實現(xiàn)數(shù)據(jù)在異步時鐘之間的無縫傳輸;二是同步時鐘,利用狀態(tài)機等方法使得異步系統(tǒng)的時鐘能夠盡可能同步。采用第二種方法對系統(tǒng)進行改進,首先系統(tǒng)中所有的分頻、倍頻盡量使用Quartus 6.0自帶的PLL產(chǎn)生,并且使用專用時鐘引腳進行時鐘輸出;其次把寫時鐘write_clk降為54M,也就是每隔一個像素采集一次。最終,四路圖像都能穩(wěn)定顯示。

          6 結(jié)束語
          本文實現(xiàn)了一種結(jié)合Altera公司生產(chǎn)的CycloneII系列與視頻解碼芯片ADV7181B的嵌入式。系統(tǒng)具有低功耗、低成本、高可靠和靈活性好等特點?;?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/FPGA">FPGA采用兩片F(xiàn)PGA作為主控芯片,完成四路視頻畫面的同時顯示和切換,實現(xiàn)兩個FPGA的級聯(lián)配置,采用Verilog語言編寫的控制邏輯解決了畫面抖動問題。系統(tǒng)軟件集成度高,硬件結(jié)構(gòu)清晰簡單,即可滿足一般監(jiān)控場合對多處位置進行實時監(jiān)控的需求,又能為功能更復(fù)雜的圖像處理、壓縮、傳輸系統(tǒng)提供前端圖像數(shù)據(jù)采集。


          上一頁 1 2 3 下一頁

          評論


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