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

圖1:監測控制系統組成示意圖

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