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

          新聞中心

          EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > 基于PCIe總線的航空視頻采集記錄系統(tǒng)的設(shè)計

          基于PCIe總線的航空視頻采集記錄系統(tǒng)的設(shè)計

          作者: 時間:2012-02-16 來源:網(wǎng)絡(luò) 收藏

          橋接口的邏輯最重要的部分是為它的局部(Local bus)提供無縫的粘合邏輯,支持的單次訪問和burst訪問。其接口狀態(tài)機如下:
          j.jpg
          k.jpg
          橋片的局部了50MHz的時鐘,對32-bit數(shù)據(jù)寬度,理論上可以達(dá)到200Mb/s的吞吐率。經(jīng)過應(yīng)用軟件的實測,可以達(dá)到143Mb/s的速率,考慮到軟件的許多開銷,這個速率已經(jīng)比較理想了。

          5 的軟件
          的軟件設(shè)計平臺采用WindowsXP Embedded,軟件分為針對本硬件的驅(qū)動程序和壓縮與處理的應(yīng)用程序。應(yīng)用程序把存為普通播放器能播放的格式,每幀視頻為256行×256列共64K像素。在驅(qū)動軟件中,當(dāng)打開設(shè)備時,申請一組緩沖,共128個緩沖。這個緩沖對應(yīng)用程序是透明的,每個緩沖可以存放一個完整的視頻幀,如圖6所示。驅(qū)動程序中有兩個主要線程,中斷線程和數(shù)據(jù)讀出線程。
          在邏輯設(shè)計時,每當(dāng)FIFO中寫入4kx32bi時產(chǎn)生中斷,則驅(qū)動程序的中斷線程在響應(yīng)中斷時,每次至少讀16kB。在中斷響應(yīng)讀取FIFO數(shù)據(jù)時,不要用類似于for(;;)的軟件循環(huán)實現(xiàn),這種策略在硬件時序上屬于單次訪問,效率低下。只有DMA才能觸發(fā)邏輯設(shè)計中的burst周期,最大限度利用硬件性能。在啟動DMA時,一定要使能它的burst位操作長度固定為16kB。這樣,每次中斷響應(yīng)就變成了維護DMA當(dāng)前寫入緩沖的指針,填入當(dāng)前寫入緩沖地址,然后啟動DMA。

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

          l.jpg


          在應(yīng)用程序中,使用一個定時線程,通過驅(qū)動程序讀取視頻數(shù)據(jù),然后經(jīng)過壓縮,存放成JPEG2000格式的視頻文件。定時讀取視頻數(shù)據(jù)的算法需要進行優(yōu)化,因為如果數(shù)據(jù)讀出線程太慢,中斷線程寫入時可能覆蓋未讀走的緩沖,會造成存儲視頻出現(xiàn)丟失數(shù)據(jù)幀的現(xiàn)象,影響視頻的連續(xù)性。

          5 結(jié)束語
          本文采用FPGA與嵌入式CPU大容量數(shù)據(jù)存儲相結(jié)合的方案,在系統(tǒng)各個處理環(huán)節(jié)均充分考慮到對視頻數(shù)據(jù)實時性和可靠性的要求,設(shè)計了機載多通道實時視頻數(shù)據(jù)系統(tǒng)。系統(tǒng)硬件設(shè)計簡單,并且可同時多路視頻數(shù)據(jù)。在某型數(shù)字化對抗訓(xùn)練評估系統(tǒng)中的應(yīng)用表明,本設(shè)計方案滿足了預(yù)期的指標(biāo)要求,解決了載機任務(wù)系統(tǒng)多路視頻數(shù)據(jù)采集與實時記錄的關(guān)鍵問題,在實時視頻信息采集和數(shù)據(jù)記錄應(yīng)用中具有較好的通用性和擴展性。


          上一頁 1 2 3 4 下一頁

          評論


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