基于PCIe總線的航空視頻采集記錄系統(tǒng)的設計
PCIe橋接口的邏輯設計最重要的部分是為它的局部總線(Local bus)提供無縫的粘合邏輯,支持PCIe的單次訪問和burst訪問。其接口狀態(tài)機如下:
橋片的局部總線設計了50MHz的時鐘,對32-bit數(shù)據(jù)寬度,理論上可以達到200Mb/s的吞吐率。經(jīng)過應用軟件的實測,可以達到143Mb/s的速率,考慮到軟件的許多開銷,這個速率已經(jīng)比較理想了。
5 系統(tǒng)的軟件設計
系統(tǒng)的軟件設計平臺采用WindowsXP Embedded,軟件分為針對本硬件系統(tǒng)的驅(qū)動程序和視頻壓縮與處理的應用程序。應用程序把視頻存為普通播放器能播放的視頻格式,每幀視頻為256行×256列共64K像素。在驅(qū)動軟件中,當打開設備時,申請一組緩沖,共128個緩沖。這個緩沖對應用程序是透明的,每個緩沖可以存放一個完整的視頻幀,如圖6所示。驅(qū)動程序中有兩個主要線程,中斷線程和數(shù)據(jù)讀出線程。
在邏輯設計時,每當FIFO中寫入4kx32bi時產(chǎn)生中斷,則驅(qū)動程序的中斷線程在響應中斷時,每次至少讀16kB。在中斷響應讀取FIFO數(shù)據(jù)時,不要用類似于for(;;)的軟件循環(huán)實現(xiàn),這種策略在硬件時序上屬于單次訪問,效率低下。只有DMA才能觸發(fā)邏輯設計中的burst周期,最大限度利用硬件性能。在啟動DMA時,一定要使能它的burst位操作長度固定為16kB。這樣,每次中斷響應就變成了維護DMA當前寫入緩沖的指針,填入當前寫入緩沖地址,然后啟動DMA。本文引用地址:http://m.butianyuan.cn/article/165890.htm
在應用程序中,使用一個定時線程,通過驅(qū)動程序讀取視頻數(shù)據(jù),然后經(jīng)過壓縮,存放成JPEG2000格式的視頻文件。定時讀取視頻數(shù)據(jù)的算法需要進行優(yōu)化,因為如果數(shù)據(jù)讀出線程太慢,中斷線程寫入時可能覆蓋未讀走的緩沖,會造成存儲視頻出現(xiàn)丟失數(shù)據(jù)幀的現(xiàn)象,影響記錄視頻的連續(xù)性。
5 結束語
本文采用FPGA與嵌入式CPU大容量數(shù)據(jù)存儲相結合的方案,在系統(tǒng)各個處理環(huán)節(jié)均充分考慮到對視頻數(shù)據(jù)采集記錄實時性和可靠性的要求,設計了機載多通道實時視頻數(shù)據(jù)采集記錄系統(tǒng)。系統(tǒng)硬件設計簡單,并且可同時采集多路視頻數(shù)據(jù)。在某型數(shù)字化對抗訓練評估系統(tǒng)中的應用表明,本設計方案滿足了預期的指標要求,解決了載機任務系統(tǒng)多路視頻數(shù)據(jù)采集與實時記錄的關鍵問題,在實時視頻信息采集和數(shù)據(jù)記錄應用中具有較好的通用性和擴展性。
評論