- 相關推薦
基于FPGA的多路模擬量、數字量采集與處理系統
摘要:提出一種基于FPGA技術的多路模擬量、數字量采集與處理系統的設計方案,分析整個系統的結構,并討論FPGA內部硬件資源的劃分和軟件的設計方案等。本設計方案外部電路結構簡單可靠,特別適用于多路檢測系統中,而且可以根據需要容易地對系統進行擴展,對于檢測系統來講具有一定的通用性。在電氣測控系統中,常常需要采集各種模擬量信號、數字量信號,并對它們進行相應的處理。一般情況下,測控系統中用普通MCU(如51、196等單片機或控制型DSP)是可以完成系統任務的。但當系統中要采集的信號量特別多時(特別是各種信號量、狀態量),僅僅靠用普通MCU的資源就往往難以完成任務。此時,一般只能采取多MCU聯機處理模式,或者靠其它芯片擴展系統資源來完成系統的監測任務。這樣做不僅增加了大量的外部電路和系統成本,而且大大增加了系統的復雜性,因而系統的可靠性就會受一定的影響,這顯然不是設計者所愿意看到的。本文所提出的一種基于FPGA技術的模擬量、數字量采集與處理系統,利用FPGA的I/O端口多,且可以自由編程支配、定義其功能的特點,配以VHDL編寫的FPGA內部執行軟件,能很好地解決采集的信號路數多的問題。因為用VHDL編寫的執行軟件內部對各組數字量是按并行處理的,而且FPGA硬件的速度是ns級的,這是當前任何MCU都難以達到的速度,因此本系統比其它系統更能實時地、快速地監測信號量的變化。所以在狀態量特別多的監測系統中,本系統將更能發揮出自身的優勢。
本系統中的外圍電路設計相對簡單、可靠,且鑒于FPGA和VHDL語言自身的特點,系統具有較好的擴展性,在監測和控制系統中也具有一定的通用性。系統主要包括:FPGA芯片區、多路選擇與A/D采樣電路、交流信號調理電路、光耦隔離驅動電路、時鐘電源區、PROM代碼下載電路等幾部分。結構示意如圖1所示。
圖1 基于FPGA技術的多路模擬量、數字量采集與處理系統框圖
1 FPGA芯片特點分析及資源分配
本系統中的FPGA是采用Xilinx公司的Spantan-II系理XC2S100-5 PQ208。該系列的內核采用2.5V供電,工作頻率最高可達200 MHz;I/O端口供電電壓為3.3V,可以承受5V的輸入高電平。
Spartan-II系列具有豐富的I/O口資源,I/O口輸出緩沖器呆以接收高達24mA的拉電流和48mA的灌電流。缺省時,I/O輸出口的驅動能力的12mA,也可以設置成2、4、6、8、16或24mA。
FPGA內部資源劃分為四大部分,如圖2所示。
①FPGA邏輯運算中心。用來接收其它各部分的數據,并按照程序中設定的方案對所收到的數據進行相應的分析和處理。包括:對從MCU接收來的數據指令進行分析,并按其指令要求進行相應操作;接收A/D采樣來的數據,對數據進行各種處理,如求其有效值,進行FFT分析等;接收來自數字量的各種信息數據,按設定的模式對其進行判斷處理,并負責按接收的CPU指令輸出相應的數字量。
②A/D控制單元。主要負責控制外部A/D芯片和多路開關的選通時序,以及實現對A/D采要過程的合理控制。因為,在FPGA芯片內部,不像在MCU內部那樣有豐富的外設控制資源供用戶使用,要用FPGA來控制A/D采樣過程的動作,必須用軟件來模擬實現各種A/D控制資源。利用這些自設定的A/D控制管理資源,配以合理的軟件控制時序,才能保證采樣過程的順利進行。
③數字量監測控制單元。負責所有要監視和控制的數字量的狀態數據的采集和控制命令的輸出。這一部分同樣也需要用軟件來模擬實現各種對數字量的管理控制,只有配備較完備的外設控制管理單元,整個數字量的管理控制才能正確合理地進行。
④FPGA接口邏輯控制單元。在FPGA內部設計了FPGA模塊與外界MCU的接口單元,這雖然占去了一定的內部資源,但是考慮到在一般的工程系統中不僅僅包括對各種信息的采集控制,還往往包括通信、顯示以及進行一些復雜算術運行等等。FPGA雖然有其顯著的長處,但是在這些方面實現起來就往往不如普通MCU來得容易,因此考慮到本系統的通用性,在設計上增加了FPGA模塊與外界MCU的接口單元。
圖2 FPGA內部資源分配示意圖
2 交流模擬量采集的控制與管理
在交流模擬量采集外圍電路中,A/D芯片采用的是BB公司的ADS774。多路交流量是通過4051的多路開關后輸入到ADS774芯片的。交流信號在進入ADS774之前要經過信號調量電路,調理成ADS774認可的模擬信號。
FPGA實現的交流量采樣處理控制軟件由五部分組成:
第一部分為設定的3個與A/D采樣有關的16位指令寄存器組:A/D參數寄存器(ADPR)、輸出控制寄存器(ADOR)、A/D控制寄存器(ADCR)。
ADPR(XXXXXXXXX XXXXX XX)的各位定義如下:位1、位0選擇每周波采樣的點數(00表示每周波采16個點,01表示每周波采32個點,10表示每周波采64個點,11表示每周波采128個點)。位6~位2用來表示FPGA的時鐘頻率,00001表示時鐘頻率為1MHz,11111表示時鐘頻率為31MHz,00000表示時鐘頻率為32MHz。位15~位7表示所采樣信號的頻率,這9位表示的范圍為1Hz~512Hz。
ADOR是與FPGA輸出有關的寄存器。該寄存器的作用是:當MCU要讀取某通道信號的信息時,FPGA應該輸出該信號的哪次諧波電壓。如為FFFFH,表示DSP讀到的是該通道信號的有效值;如果ADOR的值為0010H,那么,DSP讀到的是該通道信號的2次諧波電壓。
ADCR寄存器控制A/D采樣的通道數的選擇以及與A/D采樣有關的寄存器的復位控制等,這也是考慮到系統的通用性而設計的:如000C表示采樣第11路交流模擬量電壓;0011則表示同時采樣前六路信號等等。
第二部分為設計產生A/D與CD4051芯片的控制信號。如在圖2中,在采樣12路交流模擬量的情況下,FPGA需要產生7路控制信號,這7路控制信號應該滿足一定的時序要求。圖3給出了同時采樣前六路信號時FPGA的控制信號時序。
Abcs2[0,1,2]總線信號實際上是多路開關通道選擇的3個控制信號selA、selB、selC。需要說明的是,因為要進行修正,在對6路交流信號采樣的同時,也對4051的 5V和AGND進行了采樣,所以實際上測量的通道數為8路。
從圖3可看出,abcs2[0,1,2]總線信號每19.5
【基于FPGA的多路模擬量、數字量采集與處理系統】相關文章:
基于DM642的多路視頻采集系統03-03
基于FPGA的前端圖像采集卡的設計11-22
基于FPGA/CPLD和USB技術的無損圖像采集卡03-18
基于DSP和以太網的數據采集處理系統03-20
基于FPGA的雙功能多普勒超聲成像儀實時信號處理系統設計03-07
基于EDA技術的FPGA設計03-18
基于FPGA的快速傅立葉變換03-19