基于PC104(Plus)總線(xiàn)的數據接收存儲顯示系統設計
摘要:提出了一種雙通道大容量數據接收存儲顯示系統的實(shí)現方案。闡述了以PLX9054為核心、以異步FIFO為數據緩沖通道的PC104(Plus)接口電路的設計方法,同時(shí)給出了FPGA控制邏輯設計與Linux系統下基于Qt/Embedded和Framebuffer工控機存儲顯示程序的實(shí)現方法。
關(guān)鍵詞:PC104(Plus);Qt/Embedded;Framebuffer;實(shí)時(shí)存儲;同步顯示;工控機
0 引言
在現代數字信號處理領(lǐng)域,對于大容量高速數據的存儲和顯示是進(jìn)行后續相關(guān)處理的基礎,也是信息處理系統的關(guān)鍵組成部分。隨著(zhù)數字視頻視覺(jué)技術(shù)和視頻采集技術(shù)的發(fā)展,很多應用場(chǎng)合都需要對接收到的模擬數據進(jìn)行模數轉換,然后再進(jìn)行數據的實(shí)時(shí)存儲和同步顯示。為此,本文介紹了對模數轉換后的數字信號所進(jìn)行的處理,提出了一種基于PC104 (Plus)總線(xiàn)的雙通道大容量高速數據的接收、存儲和顯示系統的設計方法。該系統通過(guò)FPGA-PC104(Plus)接口對數據進(jìn)行接收和預處理,再通過(guò)FIFO數據傳輸通道來(lái)上傳數據,最后由工控機的軟件來(lái)實(shí)現數據的實(shí)時(shí)存儲和同步顯示。其中工控機軟件采用Linux(2.6內核)下Qt/Embedded的GUI來(lái)設計,并用Framebuffer的顯示技術(shù)來(lái)提供良好的人機界面交互和快速的存儲顯示操作。
1 系統結構
本系統由數據接收模塊、FPGA控制模塊和工控機顯示存儲模塊組成,其系統結構如圖1所示。圖中的FPGA選用Xilinx Spartan3系列的XC3S2000F456,其最大用戶(hù)IO為333個(gè),系統門(mén)達到200萬(wàn)門(mén),并內置576KB的RAM塊;FIFO選用IDT公司的IDT72V36110,該芯片容量為512KB,可支持36位輸入、輸出數據,最高工作頻率可達166MHz;另外,PLX9054是PLX公司的總線(xiàn)橋接芯片,它支持多種工作模式,本系統采用C模式。在該模式下的DMA傳輸時(shí),PLX9054對PC104(Plus)總線(xiàn)和本地總線(xiàn)都是主控制器;工控機選用Senbo公司的LX-3072PC/104 CPU模塊,該模塊搭載的AMD Geode LX800 CPU,其工作頻率高達500MHz,遵從PC/104+標準,并提供有PC104(Plus)總線(xiàn),同時(shí)集成了PS/2、RT、IDE、USB2.0和10M/100M網(wǎng)口等接口,而且功耗低,可靠性高,可廣泛適用于數據采集、通信等領(lǐng)域。為了保證系統的實(shí)時(shí)性和穩定性,本工控機上運行的是Linux操作系統。
數據接收模塊的兩路輸入通道分別連向FPGA的IO端口,在FPGA模塊的控制下,兩路輸入數據同時(shí)分別進(jìn)入各自的FIFO進(jìn)行緩存。為了避免PLX9054控制本地端時(shí)的總線(xiàn)競爭以及簡(jiǎn)化時(shí)序設計,可將兩片FIFO的輸出端復用,且經(jīng)由FPGA的IO端口連向PLX9054的本地數據端,進(jìn)而在FIFO產(chǎn)生相應狀態(tài)響應的時(shí)候,由FPGA控制模塊向PLX9054發(fā)出讀取FIFO的中斷請求,PLX9054在響應中斷后,即將數據以DMA的方式經(jīng)由PC104(Plus)總線(xiàn)上傳至上位機,上位機通過(guò)PCI驅動(dòng)讀取DMA傳輸的數據,然后進(jìn)行數據分析,再分別進(jìn)行存儲和顯示。
2 系統設計
2.1 數據接收模塊設計
本系統中的數據接收模塊采用J18型37針視頻通信接口,該接口協(xié)議可根據實(shí)際需求自行定義,但最大為32位。由于輸入數據為高速數字信號,因此,為防止輸入FPGA的信號產(chǎn)生過(guò)沖,可在視頻通信接口的后端對32位數據分別進(jìn)行RC端接,并串聯(lián)33Ω的電阻和0.01μF的電容。
2.2 FPGA控制模塊設計
本系統的數據傳送采用DMA結合中斷的方式。該方式不僅能保證數據傳輸的速率,而且能提高系統的工作效率。接收高速數據時(shí),要使用緩沖區對數據進(jìn)行緩存,但是,如果等緩沖區全部存滿(mǎn)以后再進(jìn)行DMA傳輸,那么,在數據流速率比較高的時(shí)候,就會(huì )造成數據的丟失。因此,在FIFO半滿(mǎn)時(shí)就必須進(jìn)行數據的DMA傳輸,這樣可使工控機從FIFO讀取數據和FPGA從外部接收數據能同時(shí)進(jìn)行。
FPGA控制模塊是本系統的硬件核心,其主要功能是完成系統復位,接收數據進(jìn)行緩存,控制讀取兩個(gè)FIFO數據的邏輯順序,并控制DMA傳輸。FPGA控制模塊電路如圖2所示。
在圖2電路中,為了保證FPGA與FIFO同步工作,應將兩片FIFO的各自讀寫(xiě)時(shí)鐘連接在一起,且分別由FPGA輸入到時(shí)鐘驅動(dòng)芯片以后獲得。
評論