張建紅 劉宇翔 朱之貞 胡建明 任興平
(1.云南無線電有限公司 云南省昆明市 650223)
(2.陸軍裝備部防化軍事代表局駐昆明地區(qū)防化軍事代表室 云南省昆明市 650223)
(3.云南安防科技有限公司 云南省昆明市 650223)
在線監(jiān)測、控制系統(tǒng)通常需要通過各類傳感器采集相應的信號(模擬或數(shù)字信號),經(jīng)計算處理后應用。通常我們采用單片機控制實現(xiàn)所需功能,但當監(jiān)測系統(tǒng)較為復雜,采集數(shù)據(jù)種類較多時,普通單片機的資源難以實現(xiàn)功能需求。若想用普通單片機實現(xiàn)預期功能,需采用多單片機分工聯(lián)機處理,或通過外圍功能芯片擴展系統(tǒng)應用完成所需的監(jiān)測功能,這樣做的方式將大幅度增加電路的復雜性,在一定程度上還影響了在線監(jiān)測控制系統(tǒng)的可靠性和穩(wěn)定性,同時增加了系統(tǒng)的管理和采購成本。
為此,本文提出了基于FPGA 技術的解決方案,充分利用FPGA 的資源和輸入/輸出端口多(可并行工作),采集數(shù)據(jù)可是模擬信號也可是數(shù)字信號,可以支持自定義和自由編程支配所需資源,硬件運行速度快(是普通MCU 的10 倍)特點,通過VHDL語言設計,定義用途、功能、及數(shù)據(jù)采集和處理的應用編程,并行處理各傳感器傳輸?shù)臄?shù)據(jù),從而有效解決實時多路信號采集和處理問題,發(fā)揮在線監(jiān)測控制系統(tǒng)的效果。
本解決方案中所需的外圍電路較簡單,很大程度上提高了系統(tǒng)的可靠性;同時鑒于FPGA 多接口功能特點和VHDL 語言的靈活性,使系統(tǒng)具備良好的功能擴展特性,從而擴展了監(jiān)測控制系統(tǒng)應用領域,使其具備了較好的通用性。
監(jiān)測控制系統(tǒng)組成:監(jiān)測控制系統(tǒng)由FPGA 芯片、數(shù)字采集、多路A/D 選擇、PROM 存貯、時鐘電路、電源供電、交流信號整理、光耦隔離等部分組成。系統(tǒng)組成見圖1。
主要組成部分的功能描述:
本在線監(jiān)測、控制系統(tǒng)方案中所用FPGA 芯片,采用Altera 公司的EP1C6T144。該芯片具有5980 個邏輯單元(大概相當于60 萬系統(tǒng)門),集成了2 個延遲鎖相環(huán)、92160 位片上RAM(包括塊RAM 和分布式RAM),速度達到250MHz,支持16 個輸入/輸出高性能接口即可以外接16 種或個傳感器;支持自定義和自由編程,支持功能擴展和現(xiàn)場升級。
根據(jù)系統(tǒng)功能要求,將FPGA 內(nèi)部資源配置為邏輯運算、接口邏輯控制、數(shù)據(jù)采集、A/D 接口選擇等功能模塊。內(nèi)部功能配置示意見圖2。
2.1.1 邏輯運算模塊

圖1:監(jiān)測控制系統(tǒng)組成示意圖

圖2:FPGA 內(nèi)部功能配置示意圖
實現(xiàn)接收數(shù)據(jù)采集單元、A/D 接口單元傳輸來的數(shù)據(jù),對接收到的數(shù)據(jù),按預定的策略或算法進行邏輯運算,運算結(jié)果根據(jù)預設條件情況進行分析,按分析結(jié)果進行處理,向邏輯控制單元輸出處理指令及相應的數(shù)字量等功能。
2.1.2 數(shù)據(jù)采集模塊
實現(xiàn)對需監(jiān)測或控制的環(huán)境狀態(tài)的數(shù)據(jù)采集以及對外部設備控制指令輸出的功能。如接收傳感器采集到的數(shù)字或模擬信號;或?qū)ν饨釉O備發(fā)出開啟、關閉控制指令等。
2.1.3 A/D 接口選擇模塊
實現(xiàn)模數(shù)轉(zhuǎn)換芯片及各路數(shù)據(jù)采集的選擇。即通過發(fā)送指令(1為開通,0 為關閉)發(fā)送選擇時序,對所需監(jiān)測和控制的數(shù)據(jù)信號進行合理控制,避免數(shù)據(jù)混亂。
2.1.4 接口邏輯控制模塊
此模塊主要是考慮到監(jiān)測控制系統(tǒng)的通用和功能擴展,為與外部單片機(MCU)或計算機兼容和共享數(shù)據(jù),專門設置設計了此接口,以便與其它設備的數(shù)據(jù)通信或數(shù)據(jù)傳輸,以便完成利用采集數(shù)據(jù)進行復雜運算、分析、調(diào)試的功能。
傳感器采集的模擬信號通過光電耦合電路傳輸至控制電路中,經(jīng)半波整流進行信號整理后進行A/D 轉(zhuǎn)換;多路模擬信號就經(jīng)多路的A/D 轉(zhuǎn)換;經(jīng)選擇進行運算分析。
本系統(tǒng)中的A/D 轉(zhuǎn)換芯片選用的AD1674JN。模擬信號整理后經(jīng)多路開關選擇進入A/D 轉(zhuǎn)換芯片,變成FPGA 可以識別和處理的數(shù)字信號,并通過軟件進行相應的分析和處理。FPGA 對采集的模擬信號進行分析處理的軟件設置及控制有以下幾個方面:
首先是對與模擬信號轉(zhuǎn)換成數(shù)字信號有關寄存器組(16 位指令寄存器)進行定義:
ADPR(參數(shù)寄存器):對采樣點數(shù)(16、32、64 還是128 個點)、時鐘頻率、采樣信號頻率進行定義,分別是2 位、5 位和9 位數(shù)據(jù)。
ADOR(輸出控制寄存器):當外部單片機要讀取某傳感器傳輸?shù)男盘柣蛐畔r,由輸出控制寄存器定義FPGA 輸出的是某傳感器信號的某諧波的電壓,即是基波電壓還是2 次諧波電壓或是信號值。
ADCR(控制寄存器):用于選擇某通道或某幾個通過采樣傳感器及有關寄存器的有效或復位,如置為“1”表示選中,置為“0”表示復位,可選1 個通道,亦可選多個通道。
其次是設計控制A/D 轉(zhuǎn)換芯片及多路開關芯片的信號,通常設置5 位,1 位用于4 位A/D 轉(zhuǎn)換觸發(fā),4 位用于選擇通道,從0000至1111,經(jīng)編碼對應16 個通道。即可控制16 個傳感器的信號。多路開關芯片在接到控制信號后,順序切換。為確保切換有效,加入容錯即0.5μs 的導通延時。
A/D 轉(zhuǎn)換完成,轉(zhuǎn)換芯片的EOC 腳為低(即完成轉(zhuǎn)換),F(xiàn)PGA 收到完成轉(zhuǎn)換指令后,產(chǎn)生向A/D 轉(zhuǎn)換芯片AD1674JN 讀數(shù)據(jù)的時序,于是將轉(zhuǎn)換好的數(shù)據(jù)讀到數(shù)據(jù)緩沖區(qū)進行存貯,存貯位置按通道號和采樣點的二維數(shù)組ADV(x,y)方式存放。循環(huán)采集每個通道的數(shù)據(jù),當16 個通道的數(shù)據(jù)均采集完成后,設置“采集結(jié)束”標志,經(jīng)濾波處理后存到數(shù)組中,備分析用。
設計數(shù)據(jù)的計算方法,對設有標志的數(shù)據(jù),即濾波后的數(shù)據(jù)進行計算(如有效值均方根,差值平均等)和分析。計算分析后清除設置的標志。
當外部接口需要讀取采集數(shù)據(jù)時,由外部控制器(MCU)發(fā)出“讀”請求,F(xiàn)PGA 根據(jù)所選地址及輸出控制寄存器(ADOR)的值,將存貯的采集數(shù)據(jù)按時序要求發(fā)送至數(shù)據(jù)總線上,以便外部控制器接收。
在監(jiān)測控制系統(tǒng)中,假設監(jiān)測對象有16 個,即有16 個數(shù)據(jù)采集傳感設備,控制每個傳感設備需要1 路控制輸出,2 路數(shù)據(jù)采集狀態(tài)反饋信號,即共要16 路控制輸出,32 路狀態(tài)反饋信號。
在FPGA 中設置3 個指令寄存器對數(shù)字信號采集進行控制管理。分別是KGER(開關量允許寄存器),KGIR(開關量寄存器)和KGCR(跳閘閉合寄存器)。在FPGA 中設置16 組位矢量,分別對應16 個監(jiān)測對象,每個監(jiān)測對象有2 個狀態(tài)反饋位。FPGA 設16 個進程,分別對應位矢量的狀態(tài)反饋,當位矢量的電平發(fā)生變化時,啟動相應進程。根據(jù)監(jiān)測對象狀態(tài),記錄輸出數(shù)據(jù);輸出數(shù)據(jù)對應存在數(shù)據(jù)緩沖區(qū)的對應數(shù)據(jù)存儲器中。
當控制器要讀FPGA 數(shù)據(jù)時,發(fā)出啟動信號,將地址線對應位的信號置為“1”;FPGA 根據(jù)選擇的通道值,將對應通道數(shù)據(jù)存儲器中的數(shù)據(jù)發(fā)送至數(shù)據(jù)總線,控制器根據(jù)時序讀取數(shù)據(jù)。讀取數(shù)據(jù)正確時,數(shù)據(jù)校驗位即前13 位為0101101000000,若不是,說明數(shù)據(jù)出錯無效,需要重讀。
在數(shù)據(jù)采集過程中,控制器可以根據(jù)需要對需要控制的通道發(fā)送通道開/關指令,通過KGIR(開關量寄存器)設置實現(xiàn),要求通道處于開狀態(tài)時,對應位置為“1”,關則置為“0”,當置為0000H 時,表示復位;允許數(shù)據(jù)輸出或不允許數(shù)據(jù)輸出是通過KGER(開關量允許寄存器)實現(xiàn),“0”為不允許輸出,“1”為允許輸出。FPGA 根據(jù)KGIR 和KGER 寄存器的狀態(tài)判定被監(jiān)控通道的工作狀態(tài)。當檢測通道出現(xiàn)異常時,會將KGCR(跳閘閉合寄存器)相應位置為“1”,發(fā)出中斷,請求FPGA 給予相應處理,如發(fā)出接通指令等。
由于FPGA 的數(shù)據(jù)是RAM 的存貯方式,掉電后數(shù)據(jù)不能保存,故設計了外置PROM 來保存數(shù)據(jù),本系統(tǒng)選用通過復位引腳可編程的EPCS1 來實現(xiàn)數(shù)據(jù)存貯,容量1 兆,用一個I/O 口實現(xiàn)數(shù)據(jù)傳輸和存貯。系統(tǒng)一上電,F(xiàn)PGA 進行初始化,復位PROM;當PROM 的使能腳(CE)有效(為0)時,選中PROM,數(shù)據(jù)從DATA 腳傳輸?shù)紽PGA 的數(shù)據(jù)輸入腳(DIN),數(shù)據(jù)傳輸出完成后,置高DONE 腳,使PROM 處于省電的待機模式。
系統(tǒng)上電時,自動將燒入到PROM 中的數(shù)據(jù)文件下載到FPGA,系統(tǒng)即可開始工作。
FPGA 具有速度快,可現(xiàn)場編程,開發(fā)周期短等特點,在需要采集較多路信號時,其優(yōu)點是普通的MCU 無法相比的。本文基于FPGA 技術,充分利用其多路采集數(shù)據(jù)的特點,提出的在線監(jiān)測控制系統(tǒng)解決方案,可以很大程度上降低外圍電路設計的復雜性,同時更具有非常大的靈活性和適應性。由于很多功能的性能都可以通過仿真和綜合調(diào)試得以認證,系統(tǒng)設計的成功率非常高,這種方案在多路數(shù)據(jù)采集系統(tǒng),特別電氣測控系統(tǒng)中有較好的應用前景。