基于CPLD/FPGA高速數(shù)據(jù)采集系統(tǒng)的設計
0 引 言
傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)一般采用單片機,系統(tǒng)大多通過PCI總線完成數(shù)據(jù)的傳輸。其缺點是數(shù)學運算能力差;受限于計算機插槽數(shù)量和中斷資源;不便于連接與安裝;易受機箱內電磁環(huán)境的影響。這些問題遏制了基于PCI總線的數(shù)據(jù)采集系統(tǒng)的進一步開發(fā)和應用。因此,需要一種更為簡便通用的方式完成采集系統(tǒng)和計算機數(shù)據(jù)的交互。
數(shù)據(jù)采集系統(tǒng)性能的好壞,主要取決于它的精度和速度。在保證精度的條件下應盡可能地提高采樣速度,以滿足實時采集、實時處理和實時控制的要求。實踐表明,采用ARM 32位嵌入式微處理器作為控制器,用USB(通用串行總線)和上位機連接構成的數(shù)據(jù)采集系統(tǒng)能大大提高系統(tǒng)數(shù)據(jù)處理的能力,降低對PC機和接口速度的依賴。
1 系統(tǒng)硬件設計
實現(xiàn)系統(tǒng)功能的基本思路是:以CPLD/FPGA實現(xiàn)儀器的數(shù)字平臺,和ARM嵌入式處理器及單片機一起實現(xiàn)對整機的智能控制和高速的數(shù)據(jù)處理。
1.1 系統(tǒng)框圖
系統(tǒng)原理方框圖如圖1所示,該系統(tǒng)主要由微處理器、數(shù)字邏輯平臺、輸入控制、A,B通道輸入處理、C通道輸入處理、整形、A/D轉換、采樣時序控制、鍵盤液晶顯示、存儲器擴展等模塊構成。
1.2 系統(tǒng)結構圖
系統(tǒng)硬件如圖2所示,利用一片規(guī)模較小的CPLD和一片規(guī)模較大的FPGA組合構成系統(tǒng)的數(shù)字邏輯平臺。CPLD主要用作輸入控制,FPGA則連接了系統(tǒng)的其他各個部分。CPLD/FPGA可實現(xiàn)現(xiàn)場編程,使用CPLD/FPGA可使設計方便,利用它靈活、校驗快以及設計可隨意改變的特點,可大大縮短研制時間。
1.3 主要部分功能
1.3.1 微處理器
系統(tǒng)采用由Philips公司生產的ARM 32位微處理器LPC2105作為主CPU,進行高速的數(shù)據(jù)處理,用8位單片機P89C51RD2作為輔CPU,進行速度較慢的數(shù)據(jù)處理,控制其他外圍芯片和模塊實現(xiàn)A,B通道模擬帶寬100 MHz、峰值電壓±100 V和C通道二極管通斷、電壓、電流、電阻值的數(shù)據(jù)采集功能。
1.3.2 A,B通道部分
通過自動增益電路(AGC)即程序控制放大器,將被測模擬信號調理到適合ADC芯片(AD9288)采樣的范圍。根據(jù)頻率的大小和觸發(fā)方式,運用實時采樣或等效采樣對調理后的模擬信號進行采樣(A/D轉換)。利用高速FIFO存貯器(IDT72V261LAl0A)存儲采樣后得到的數(shù)據(jù)。
結合鍵盤操作和系統(tǒng)設置,對采樣后的數(shù)據(jù)進行數(shù)學運算,將還原后的波形數(shù)據(jù)和參數(shù)送液晶顯示器顯示或存入閃存里面或通過USB接口傳送給PC機,從而實現(xiàn)了A,B通道高速數(shù)據(jù)采集的功能。
1.3.3 C通道部分
C輸入通道為多功能輸入通道,系統(tǒng)通過控制繼電器矩陣來選擇不同的模塊測量電壓、電流或二極管的通斷和電阻。被測元件參數(shù)或電壓、電流經過多功能轉換電路處理后,其信號送24 b的A/D轉換器ADS1211采樣后送單片機P89C51RD2,分析被測元件或電壓、電流的參數(shù)值,從而實現(xiàn)了C通道高精度數(shù)據(jù)采集的功能。
1.3.4 鍵盤、液晶顯示接口電路
本系統(tǒng)采用4×8的鍵盤和320×240不帶驅動器的液晶顯示模塊,驅動器和顯存設計在FPGA內。以上系統(tǒng)通過USB接口與PC機通信,在上位機的控制下,實現(xiàn)可視化人機交互界面。同時系統(tǒng)也保留了傳統(tǒng)的RS 232接口,但只是用于ARM和單片機的編程下載。
2 軟件設計流程
LPC2105芯片作為系統(tǒng)主控制中心及數(shù)據(jù)處理中心,整個系統(tǒng)的運轉受到它的控制,例如響應用戶的按鍵操作,發(fā)出通道控制,A/D采樣時鐘控制,F(xiàn)IFO寫時鐘的選擇,菜單及系統(tǒng)狀態(tài)顯示,F(xiàn)IFO數(shù)據(jù)的處理,信號或參數(shù)的自動測試等。
數(shù)據(jù)采集卡的軟件程序結構如圖3所示,可分為系統(tǒng)初始化模塊、鍵語分析模塊、系統(tǒng)核心控制模塊、通道控制模塊、觸發(fā)控制模塊、A/D采樣控制模塊、FIFO讀寫控制模塊、讀取頻率字模塊、參數(shù)測試模塊、狀態(tài)顯示模塊、波形顯示模塊、存儲控制模塊、其他功能模塊。
系統(tǒng)的初始化模塊包括開機自檢、硬件參數(shù)初始化、系統(tǒng)狀態(tài)初始化(如通道的波形顯示狀態(tài)初始化)等。鍵語分析模塊對面板上的用戶輸入進行分析處理,通過核心控制模塊調用相應的功能處理模塊,通過對通道控制模塊、觸發(fā)控制模塊、A/D采樣控制模塊、FIFO讀寫控制模塊、讀取頻率字模塊、參數(shù)測試模塊、狀態(tài)顯示模塊、波形顯示模塊、存儲控制模塊、其他功能模塊的函數(shù)調用來實現(xiàn)對來自鍵語分析的處理功能。狀態(tài)顯示模塊顯示程序運行時的各種狀態(tài),如當前數(shù)據(jù)采集的掃描速率、通道的垂直靈敏度等。波形顯示模塊顯示采集的波形。
整個系統(tǒng)的程序又可分成底層驅動和上層軟件。底層驅動指對本系統(tǒng)其他外設或器件直接控制或訪問的程序部分,包括LPC2105和單片機的初始化(即對片內各核心寄存器的操作賦值、對片上外設的初始化賦值、對片內各外設中斷及外部中斷的控制操作)。上層軟件主要指:菜單的設計及顯示、數(shù)據(jù)的處理、波形的恢復及平滑等。
評論