王 特,李 杰,胡陳君,趙計(jì)賀,薛 棟
(1.中北大學(xué) 電子測試技術(shù)重點(diǎn)實(shí)驗(yàn)室,太原 030051;2.蘇州中盛納米科技有限公司,江蘇 蘇州 215123)
煤炭產(chǎn)業(yè)一直是我國社會(huì)生產(chǎn)和經(jīng)濟(jì)發(fā)展重要物質(zhì)保障,由于近些年的不斷開采,容易開采的淺層礦層已經(jīng)接近枯竭,只能向更深的礦層開采,而伴隨著開采深度的增加,危險(xiǎn)源也隨之到來,如甲烷氣體,礦層坍塌等[1-2]。為保障煤下的人員安全,一套可靠的礦下環(huán)境監(jiān)測顯得尤為重要。而現(xiàn)如今我國的礦下的監(jiān)測系統(tǒng)還存在采集傳感器接口單一,擴(kuò)展性能差,系統(tǒng)和分站之間布設(shè)電纜不易維護(hù),采集系統(tǒng)分析處理大量數(shù)據(jù)所需時(shí)間長等問題,這些問題可能導(dǎo)致礦下安全監(jiān)測中心不能及時(shí)地獲取可靠的信息,影響人們的生命和財(cái)產(chǎn)安全[3-4]。
針對以往的礦用傳感器采集系統(tǒng)存在的問題,設(shè)計(jì)了一款基于FPGA的傳感器采集傳輸系統(tǒng),相比于使用ARM或單片機(jī)來進(jìn)行控制,數(shù)據(jù)吞吐率更快、實(shí)時(shí)性更好、接口數(shù)量更多且易于實(shí)現(xiàn)。本設(shè)計(jì)相比其他以FPGA為控制核心的采集系統(tǒng)通道數(shù)量更多,采樣精度更高,能夠滿足目前對采集系統(tǒng)的要求。
采集系統(tǒng)設(shè)計(jì)的目標(biāo)主要是為實(shí)現(xiàn)對于多通道、模擬量和數(shù)字量輸出的傳感器進(jìn)行同步的采集和存儲(chǔ)。系統(tǒng)構(gòu)成部分包括電源模塊、信號調(diào)理模塊、模數(shù)轉(zhuǎn)換模塊、FPGA控制模塊、無線傳輸模塊等部分構(gòu)成個(gè)部分,系統(tǒng)總體框架如圖1所示,主要設(shè)計(jì)參數(shù)如表1所示。
圖1 系統(tǒng)總體框圖
表1 信號主要設(shè)計(jì)參數(shù)表
系統(tǒng)的主要設(shè)計(jì)思路是首先對模擬輸出的傳感器信號進(jìn)行適當(dāng)?shù)恼{(diào)理,如放大濾波等[5-6],然后 FPGA通過控制具有16 bit的高精度模數(shù)轉(zhuǎn)換芯片AD7616對于4路的模擬信號進(jìn)行采樣,并將其轉(zhuǎn)換為數(shù)字量。同時(shí)將4路輸出數(shù)字量的傳感器通過相應(yīng)的轉(zhuǎn)換輸入到控制芯片中,以實(shí)現(xiàn)同步采樣。最后FPGA將采集到的數(shù)據(jù)進(jìn)行相應(yīng)的編幀,然后發(fā)送到無線傳輸模塊或存儲(chǔ)到備份存儲(chǔ)模塊中。同時(shí)FPGA將采到的傳感器數(shù)據(jù)進(jìn)行判別,程序中設(shè)定每種傳感器的閾值當(dāng)采集到的傳感器數(shù)據(jù)達(dá)到各自設(shè)定的閾值時(shí),控制聲光報(bào)警器開始報(bào)警。
硬件是整個(gè)前段采集系統(tǒng)的核心,對于礦下采集系統(tǒng)而言確保采集到的信號的完整性和準(zhǔn)確性,以及將采集到的數(shù)據(jù)及時(shí)處理并發(fā)送到控制中心非常關(guān)鍵。同時(shí)由于礦下環(huán)境監(jiān)測傳感器種類較多,輸出類型也有所差別,因此兼容性在設(shè)計(jì)時(shí)也應(yīng)該考慮到。
電源模塊是保證系統(tǒng)正常工作的基礎(chǔ),電源的質(zhì)量直接影響系統(tǒng)的精度,針對電源可能存在的不能響應(yīng)負(fù)載電流的快速變化及供電路徑阻抗引起的電壓波動(dòng)問題,采用電源去耦來解決這一問題[7-8]。去耦電容提供了一條低阻抗回路使高頻分量從地釋放,從而減弱電源系統(tǒng)噪聲對其供電器件的影響??紤]到有時(shí)模擬供電和數(shù)字供電可能由不同芯片提供,為防止相互干擾將模擬供電和數(shù)字供電用0歐電阻單點(diǎn)相接。采集部分電壓轉(zhuǎn)換模塊如圖2所示。
圖2 電壓轉(zhuǎn)換模塊
對于AD7616而言,為滿足A/D芯片的精度要求,供電噪聲一定要小于其最低有效位,計(jì)算公式為:
(1)
其中:LSB為A/D芯片的最低有效位,F(xiàn)S為A/D的輸入電壓最大值5 V,N為A/D的位數(shù),經(jīng)計(jì)算AD7616最低有效位大小為152 μV。電壓轉(zhuǎn)換模塊采用REG104-5芯片,輸出噪聲峰-峰值小于33 μV,噪聲遠(yuǎn)小于LSB的值,滿足A/D芯片的供電要求。
在設(shè)計(jì)采集系統(tǒng)時(shí),信號調(diào)理模塊的主要是根據(jù)系統(tǒng)對于模擬信號的要求,將模擬信號進(jìn)行放大、濾波,同時(shí)隔離被測信號和采集電路的地線。通過隔離電路將電路的前后級地線相互隔離,保證采集電路安全,還可以用來增強(qiáng)輸入信號的驅(qū)動(dòng)能力[10-11]。此外,模擬輸出的傳感器有效信號的頻率一般集中在1 kHz以下,因此采用濾波器將輸出信號集中在所需頻段。
基于以上要求,運(yùn)放采用OP4177ARUZ作為調(diào)理前段的運(yùn)放。由于模擬信號的輸出電壓在-5~5 V之間,滿足AD的輸入電壓范圍,因此采用電壓跟隨方式。濾波器采用MAX291,作為集成的八階巴特沃斯濾波器,通過電容來調(diào)節(jié)信號的輸出頻率。
數(shù)模轉(zhuǎn)換模塊的作用是將傳感器輸出的模擬信號轉(zhuǎn)換為可被處理器接收的數(shù)字信號[12]。為滿足設(shè)計(jì)的需要,最終選用AD7616為模數(shù)轉(zhuǎn)換芯片,它是一款可以進(jìn)行16個(gè)通道同步采樣的高精度模數(shù)轉(zhuǎn)換芯片。為防止信號輸入端產(chǎn)生反射,造成采到的傳感器噪聲過大,因此需要阻抗匹配。計(jì)算阻抗的公式為:
(2)
其中:VDD為供電電壓5 V,Ripple為供電電壓波動(dòng)范圍的上限10%,ΔIMAX為最大工作電流65 mA,得到阻抗為7.692 Ω。為避免通道間的失調(diào)誤差,同時(shí)將輸入電流限制在規(guī)定的范圍內(nèi)。
圖3 前端調(diào)理電路
控制模塊由FPGA與外圍電路組成,主要功能是控制ADC的采樣、還要控制數(shù)字量輸出傳感器的采集,并將相應(yīng)的的數(shù)據(jù)進(jìn)行編幀處理后發(fā)送給無線傳輸模塊或存儲(chǔ)到備份存儲(chǔ)模塊無線傳輸模塊主要是由ZigBee無線通信模塊構(gòu)成,采用MESH網(wǎng)絡(luò)結(jié)構(gòu),支持多跳轉(zhuǎn)發(fā),為實(shí)現(xiàn)在礦下的無線傳輸在兩采集模塊或網(wǎng)關(guān)模塊和采集模塊之間加入若干路由節(jié)點(diǎn),從而實(shí)現(xiàn)數(shù)據(jù)的多級轉(zhuǎn)發(fā)。當(dāng)信號某一傳輸路徑損壞時(shí),會(huì)自動(dòng)尋找新的路徑實(shí)現(xiàn)信息傳輸。
主控芯片采用FPGA是由于其工作穩(wěn)定性好,擁有豐富的門陣列資源,非常適合進(jìn)行復(fù)雜的邏輯控制,有豐富的I/O口資源,系統(tǒng)擴(kuò)展性好,滿足多通信接口的需要。選用ZigBee進(jìn)行無線網(wǎng)絡(luò)通信是由于礦井下巷道錯(cuò)綜復(fù)雜,監(jiān)測點(diǎn)數(shù)量如果增多,鋪設(shè)線纜和維護(hù)時(shí)成本太高,采用ZigBee無線傳輸模塊低成本、低功耗、延時(shí)短和安全性高。
采集系統(tǒng)的軟件設(shè)計(jì)主要是針對FPGA編寫控制程序,其中主要包括了采集控制程序、FIFO緩存程序、數(shù)據(jù)分析與預(yù)警程序和無線模塊數(shù)據(jù)交互等部分。采集控制程序主要是FPGA控制AD進(jìn)行模擬信號的轉(zhuǎn)換和數(shù)字信息的采集。
FIFO緩存程序是應(yīng)對不同時(shí)鐘的信號過來之后的時(shí)鐘域轉(zhuǎn)換問題。而數(shù)據(jù)分析與預(yù)警程序是將采集到的數(shù)據(jù)與設(shè)定的每個(gè)傳感器閾值對比,控制聲光報(bào)警器實(shí)現(xiàn)危險(xiǎn)報(bào)警。FPGA與無線模塊數(shù)據(jù)交互是通過使用I/O口資源實(shí)現(xiàn)串口功能,通過串口將傳感器整合后的數(shù)據(jù)傳輸?shù)綗o線模塊。
為了節(jié)省FPGA的I/O口的數(shù)量,減少對PCB板布局的影響,避免并行總線可能產(chǎn)生的串?dāng)_和反射,本文采用串行工作模式,時(shí)序如圖4所示。為提高吞吐率,AD工作在軟件串行接口2線模式下,此時(shí)V0A到V7A通道的轉(zhuǎn)換結(jié)果從SDOA引腳輸出,V0B到V7B通道的轉(zhuǎn)換結(jié)果從SDOB引腳輸出。
圖4 AD工作時(shí)序圖
當(dāng)轉(zhuǎn)換信號從低電平變?yōu)楦唠娖綍r(shí),啟動(dòng)對輸入模擬信號的轉(zhuǎn)換。BUSY信號為高電平表示轉(zhuǎn)換正在進(jìn)行,BUSY信號從高電平變?yōu)榈碗娖奖硎巨D(zhuǎn)換已完成,可以通過串行接口回讀轉(zhuǎn)換結(jié)果。為使數(shù)據(jù)輸出線路SDOA和SDOB脫離三態(tài)CS必須為下降沿,此時(shí)轉(zhuǎn)換后的最高有效位開始輸出。時(shí)鐘的上升沿時(shí)將隨后的數(shù)據(jù)位逐個(gè)發(fā)到串行數(shù)據(jù)輸出口。
AD轉(zhuǎn)換程序流程如圖5所示。頂層程序定義了FPGA與AD模塊之間信號的輸出和輸入。
圖5 模擬量轉(zhuǎn)換流程圖
當(dāng)系統(tǒng)上電時(shí),F(xiàn)PGA控制復(fù)位引腳完成對AD7616的初始化,然后發(fā)送啟動(dòng)轉(zhuǎn)換的信號。當(dāng)轉(zhuǎn)換完成后BUSY變?yōu)榈碗娖綍r(shí),開始進(jìn)行數(shù)據(jù)的讀取,此時(shí)片選信號CS置低。在讀取數(shù)據(jù)有效的時(shí)候?qū)?6通道的數(shù)據(jù)讀到內(nèi)部緩存中,此時(shí)一次的轉(zhuǎn)換完成。這樣不斷循環(huán)實(shí)現(xiàn)模擬量的采集。
對于數(shù)字量輸出的傳感器,它一般為UART串口輸出。對于普通串口輸出的傳感器,它的接口電平為LVTTL電平,對于這種類型的接口,可以直接通過IO接口讀入FPGA中。對于輸出接口是RS422或者RS232的傳感器而言,就需要先將422或者232轉(zhuǎn)換為LVTTL電平,然后傳輸?shù)紽PGA中。FPGA對讀取到的數(shù)據(jù)進(jìn)行編幀然后緩存到FIFO中。對于外部通過IO口接入FPGA的信號,一般對其先進(jìn)行消抖處理,去除毛刺的干擾。
為解決跨時(shí)鐘域的數(shù)據(jù)傳輸和不同位寬的數(shù)據(jù)匹配問題,本文采用在FPGA內(nèi)部搭建FIFO緩存模塊來解決這個(gè)問題。本文的FIFO模塊共有3種,一種是對于模擬量通過AD轉(zhuǎn)換過后,用于暫時(shí)存放轉(zhuǎn)換過后整合的32位數(shù)據(jù)。還有對于數(shù)字信號經(jīng)過相應(yīng)處理后通過IO口輸入數(shù)據(jù),這個(gè)8位的數(shù)字量也要存入一個(gè)FIFO中。最后這個(gè)FIFO是用于實(shí)現(xiàn)FPGA到FLASH的接口轉(zhuǎn)換功能。
模擬信號的采集速率往往大于數(shù)字量信號,為實(shí)現(xiàn)對輸入輸出數(shù)據(jù)速率和位寬匹配的要求,本文通過對FIFO模塊讀寫操作來控制,進(jìn)而達(dá)到實(shí)時(shí)、高速采集的采集信號,保證數(shù)據(jù)的完整性。
為方便之后對數(shù)據(jù)的判讀和處理,采用編幀方式來編碼數(shù)據(jù)。將不同傳感器的信息采用固定的幀格式編為一幀數(shù)據(jù),以采樣率高的模擬量傳感器為基準(zhǔn),同時(shí)加上特定的幀頭“EB 90”方便對于數(shù)據(jù)讀取后的分析。數(shù)據(jù)編幀格式如表2所述。
表2 編幀格式
幀頭是為方便接收端在接收到數(shù)據(jù)后進(jìn)行準(zhǔn)確性的判斷。幀計(jì)數(shù)是確保在讀取數(shù)據(jù)后判斷與前一幀數(shù)據(jù)是否連貫,保證數(shù)據(jù)的連續(xù)性。傳感器數(shù)據(jù)包括模擬量輸出和數(shù)字量輸出兩種,前面32字節(jié)為模擬量傳感器輸出,后面4字節(jié)為數(shù)字量傳感器輸出。最后考慮到數(shù)據(jù)的傳輸和處理,在幀尾加上校驗(yàn)和,即前面所有數(shù)據(jù)和的低八位,如果處理時(shí)發(fā)現(xiàn)校驗(yàn)和錯(cuò)誤,就丟棄此幀數(shù)據(jù)。
預(yù)警程序主要是控制聲光報(bào)警器,在檢測到有危險(xiǎn)時(shí)及時(shí)有效地提醒井下工作人員的目的,主要滿足燈光和響度的要求,報(bào)警燈光要在井下20 m內(nèi)清晰可見,而響度要求不低于80 db。程序在設(shè)計(jì)時(shí)考慮到井下環(huán)境的復(fù)雜性,將危險(xiǎn)等級分為兩級,當(dāng)井下處于安全環(huán)境時(shí),亮綠燈,蜂鳴器和紅燈均不工作;當(dāng)采到的傳感器數(shù)據(jù)處于第一個(gè)閾值時(shí),輕度危險(xiǎn)報(bào)警,綠燈亮蜂鳴器開始報(bào)警;當(dāng)采集到的傳感器到達(dá)第二閾值時(shí),嚴(yán)重危險(xiǎn)報(bào)警開始,蜂鳴器和紅色LED燈都工作,綠燈不工作,同時(shí)向控制中心開始發(fā)送報(bào)警信息。與無線模塊交互程序是通過FPGA的I/O接口將處理后的傳感器數(shù)據(jù)編幀處理后發(fā)送到無線模塊,同時(shí)接受無線模塊發(fā)送的相關(guān)指令,并將其存儲(chǔ)到外部設(shè)備中。
為驗(yàn)證所寫程序的準(zhǔn)確性和系統(tǒng)工作的可靠性,在ISE中對AD7616轉(zhuǎn)換程序進(jìn)行編寫、調(diào)試和仿真。為驗(yàn)證系統(tǒng)能否實(shí)現(xiàn)對于模擬信號和數(shù)字信號的同步采集,將系統(tǒng)安裝在三軸轉(zhuǎn)臺上轉(zhuǎn)動(dòng)一定的角度檢測采集到的數(shù)據(jù)完整性和準(zhǔn)確性。最后進(jìn)行ZigBee模塊的無障礙距離與采集到的傳感器精度測試。圖6為AD7616的時(shí)序仿真,由chipscope的時(shí)序仿真確定AD轉(zhuǎn)換程序的準(zhǔn)確性。
圖6 AD轉(zhuǎn)換時(shí)序仿真
由圖6可以看出,在AD串行輸出的模式下,當(dāng)轉(zhuǎn)換信號convst_OBUF來臨后,片選信號CS_n置地。當(dāng)遇到時(shí)鐘SCLK的上升沿時(shí),計(jì)數(shù)器rx_numA開始計(jì)數(shù),同時(shí)移位寄存器reve_dataA在每個(gè)時(shí)鐘上升沿后左移一位,當(dāng)經(jīng)過十六時(shí)鐘后得到一個(gè)16位轉(zhuǎn)換后的值,然后將datacheckA輸入到FIFO之中,此時(shí)完成一個(gè)通道的轉(zhuǎn)換。當(dāng)連續(xù)的64個(gè)時(shí)鐘之后,一次轉(zhuǎn)換完成。
對于最終的實(shí)物而言,系統(tǒng)時(shí)序上連續(xù)性與準(zhǔn)確性,以及采集傳感器的精度是必須要檢驗(yàn)的參數(shù)。為驗(yàn)證系統(tǒng)對于模擬信號和數(shù)字信號采集的同步性,通過在三軸轉(zhuǎn)臺上采集數(shù)字量輸出的傳感器和模擬量輸出的傳感器來判讀采集到數(shù)據(jù)的判讀。采樣率調(diào)整為1 K,將采集到的數(shù)據(jù)經(jīng)過分離和處理,得到數(shù)據(jù)如圖7所示。
圖7 傳感器輸出測試
通過采集模擬量和數(shù)字量輸出的加速度計(jì)的連續(xù)采樣,證實(shí)了系統(tǒng)在模擬與數(shù)字量采集上的時(shí)序上的同步性和連續(xù)性,對比設(shè)定的位置與采集到的加速度信息,可以證明系統(tǒng)能準(zhǔn)確的采集到傳感器的輸出信號。同時(shí)為保證采集到的的傳感器精度符合要求,對采集電路的精度進(jìn)行測試,測試結(jié)果如圖8所示。
圖8為系統(tǒng)采集高精度電源輸出的2 V電壓,其采集誤
圖8 采集系統(tǒng)精度測試
差為400 μV,可以滿足被采傳感器的精度要求。對ZigBee無線網(wǎng)絡(luò)的接受和發(fā)送距離測試采用有障礙和無障礙測試,有障礙測試是在教學(xué)樓樓道中進(jìn)行,測試結(jié)果表3所示,以下都是測得6組后取得的平均值。
表3 ZigBee接收有無障礙對比
根據(jù)測試結(jié)果顯示,在空曠無障礙區(qū)域,兩個(gè)ZigBee模塊可以再200 m以內(nèi)正常通信,無丟數(shù)現(xiàn)象。而在有障礙的情況下,兩模塊之間在50 m內(nèi)能正常通信,大于50 m逐漸出現(xiàn)丟包現(xiàn)象。所以根據(jù)煤礦井下情況的不同,合理布置ZigBee通信節(jié)點(diǎn)以達(dá)到降低數(shù)據(jù)丟失的目的,來提高數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和可靠性。
本文首先介紹了系統(tǒng)的設(shè)計(jì)目的,隨后介紹了采集電路的總體設(shè)計(jì)思路,詳細(xì)闡述了系統(tǒng)的硬件電路設(shè)計(jì)和FPGA的軟件程序設(shè)計(jì),并且通過程序仿真和實(shí)物驗(yàn)證充分證明了設(shè)計(jì)的可行性和穩(wěn)定性。設(shè)計(jì)中采用FPGA為主控芯片使得系統(tǒng)的擴(kuò)展性得到提高,處理數(shù)據(jù)能力更強(qiáng),避免數(shù)據(jù)的冗余,增強(qiáng)了井下環(huán)境監(jiān)測系統(tǒng)的可靠性。同時(shí)該電路具有非常靈活的移植性,適用于各種高精度和多通道的數(shù)據(jù)采集環(huán)境,包括彈載數(shù)據(jù)采集,大棚溫控等諸多測控領(lǐng)域。