基于PCIe總線的航空視頻采集記錄系統(tǒng)的設(shè)計
PCIe橋接口的邏輯設(shè)計最重要的部分是為它的局部總線(Local bus)提供無縫的粘合邏輯,支持PCIe的單次訪問和burst訪問。其接口狀態(tài)機如下:
橋片的局部總線設(shè)計了50MHz的時鐘,對32-bit數(shù)據(jù)寬度,理論上可以達(dá)到200Mb/s的吞吐率。經(jīng)過應(yīng)用軟件的實測,可以達(dá)到143Mb/s的速率,考慮到軟件的許多開銷,這個速率已經(jīng)比較理想了。
5 系統(tǒng)的軟件設(shè)計
系統(tǒng)的軟件設(shè)計平臺采用WindowsXP Embedded,軟件分為針對本硬件系統(tǒng)的驅(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
在應(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)用中具有較好的通用性和擴展性。
評論