基于PCIe總線的航空視頻采集記錄系統的設計
PCIe橋接口的邏輯設計最重要的部分是為它的局部總線(Local bus)提供無縫的粘合邏輯,支持PCIe的單次訪問和burst訪問。其接口狀態機如下:


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