[導(dǎo)讀] 嵌入式系統(tǒng)因其高可靠性、低成本、低功耗、軟硬件可裁剪而廣泛應(yīng)用于智能式儀表測量領(lǐng)域。通過在FPGA中的SOPC定制外圍設(shè)備,提出了一種基于NIOSⅡ軟核處理器的明渠流量測量系統(tǒng),闡述了人機交互、數(shù)據(jù)處理、串行通訊等模塊功能并進行相應(yīng)的軟件程序設(shè)計。實驗結(jié)果表明,該流量計不僅抗干擾能力強、測量精度高、穩(wěn)定性好,而且因其可定制性提高了系統(tǒng)的靈活性及易維護性。
流量測量在工礦企業(yè)、農(nóng)田河流、環(huán)境保護等許多領(lǐng)域中占有非常重要的位置。作為流量監(jiān)測的重要組成部分,明渠流量測量廣泛應(yīng)用于工業(yè)企業(yè)、河流、農(nóng)業(yè)用水中給、排水槽流量測量,由于多數(shù)場合被測液體均有較多雜質(zhì)和一定的腐蝕性,故采用非接觸法測量,從而超聲波流量計得到大量應(yīng)用。
目前多數(shù)超聲波流量計都是以MCU作為主控芯片,其輸出信號頻率較低且可升級性差、精度低。文中采用在FPGA中構(gòu)建NIOSⅡ軟核的方法實現(xiàn)對超聲波明渠流量計的核心控制,在設(shè)計過程中由于SOPC(可編程片上系統(tǒng))的可定制性,使其硬件設(shè)計靈活可靠。
1 超聲波明渠流量計的基本原理
明渠流量計是在非滿管狀敞開渠道測量自由表面自然流的流量儀表。非滿管狀態(tài)流動的水路稱作明渠,測量明渠中水流流量的儀表稱作明渠流量計(openchannelflowmeter)。明渠流通剖面除圓形外,還有U字形、梯形、矩形等多種形狀。按測量原理大體可分為堰法、測流槽法、流速-水位計算法和電磁流量計法。實際應(yīng)用最為廣泛的是堰式和槽式流量計[1]。以超聲法檢測明渠液位并進而計算流量的儀器儀表稱為超聲波明渠流量計。圖1為超聲波明渠流量計原理圖。
圖1 超聲波明渠流量計原理圖
當被測介質(zhì)全部通過流量槽(Parshall-巴歇爾槽,無喉道槽)或堰(直角三角形缺口薄壁堰、矩形缺口薄壁堰)形成自然流動時,其流量Q與流量槽上流水位H就有如下關(guān)系式:
(1)
式中K、n為流量系數(shù),對于不同規(guī)格的槽或堰有不同的值,H是液位高度(m)。
氣介質(zhì)超聲波液位傳感器在微處理機系統(tǒng)的控制下,進行超聲發(fā)射和接收,由超聲波的傳播時間T來計算傳感器與液面之間的距離h:
(2)(2)
式中C為超聲波在空氣介質(zhì)中傳播速度(m/s),設(shè)傳感器至流量槽堰零液位時距離為hmax,則液位高度。在得知液位高度H=hmax-h后便可以通過計算求的液體的流量了。
2 SOPC硬件系統(tǒng)設(shè)計
圖2為系統(tǒng)SOPC結(jié)構(gòu)圖[2]。主要由32位NIOSⅡ軟核處理器、Avalon數(shù)據(jù)總線、串行通訊控制器、EPCS串行Flash控制器、數(shù)據(jù)存儲控制器、LCD顯示控制器、鍵盤交互控制器、RS485通訊控制器、超聲波信號處理控制器、實時時鐘控制器、電流環(huán)輸出電路控制器組成,整個控制系統(tǒng)在一片現(xiàn)場可編程邏輯陣列(FPGA)上實現(xiàn)。
圖2 系統(tǒng)的SOPC框圖
FPGA發(fā)送超聲波控制信號給超聲波收發(fā)電路,等待收到超聲波信號,放大、處理經(jīng)超聲波信號處理控制器得到實時流量,分別送到LCD顯示器顯示和數(shù)據(jù)存儲器存儲,鍵盤電路可以查詢之前記錄的流量值和設(shè)置時鐘、通訊等相關(guān)參數(shù);RS485串行通訊和電流環(huán)輸出電路用于上位數(shù)據(jù)采集及異地顯示聯(lián)網(wǎng)。由于FPGA掉電丟失數(shù)據(jù),故將程序存儲于EPCS串行flash中,F(xiàn)PGA上電后從flash中加載程序執(zhí)行。
SOPC系統(tǒng)通過AlteraQuartusⅡ軟件中的SOPCBuilder構(gòu)建。在SOPCBuilder中提供了NIOSⅡCPU、Flash存儲器接口、SPI控制器、定時器等IP核,其他模塊自定義設(shè)計[3]。如圖3為通過SOPCBuilder開發(fā)工具定制本系統(tǒng)的SOPC硬件系統(tǒng)。添加完FPGA引腳編譯后得到的原理圖文件如圖4所示。
圖3 系統(tǒng)的SOPC硬件系統(tǒng)
圖4 編譯后得到的原理圖
3 基于NIOSⅡ軟件設(shè)計
在進行NIOSⅡ軟件設(shè)計前,應(yīng)先將上面產(chǎn)生的.sof下載到FPGA中,而后所有的軟件開發(fā)任務(wù)就在NIOSⅡIDE上完成,其中包括驅(qū)動程序和應(yīng)用程序[4]。部分模塊驅(qū)動程序如下。
3.1 工程LCD接口驅(qū)動
本設(shè)計用到的LCD是一種具有3線串行接口方式,內(nèi)含國際一級、二級簡體中文字庫的圖形液晶顯示模塊,通過CS、SCLK、SLD三線控制LCD的顯示。
圖5為LCD讀寫時序圖。
圖5 LCD讀寫時序圖
部分驅(qū)動程序如下:
3.2 數(shù)據(jù)存儲控制模塊
設(shè)計中采用FM31256來實現(xiàn)數(shù)據(jù)存儲[5]和實時時鐘功能,該芯片是通過I2C串行控制線操作完成的[3]。I2C總線上的所有操作都是由SDA和SCL兩個腳的狀態(tài)確定的。在傳送數(shù)據(jù)時有三種類型信號:開始信號、結(jié)束信號和應(yīng)答信號。開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數(shù)據(jù);結(jié)束信號:SCL為高電平時,SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù);應(yīng)答信號:接收信號的IC收到8位數(shù)據(jù)后,向發(fā)送數(shù)據(jù)IC發(fā)出低電平脈沖。圖6為I2C總線時序圖。
圖6 I2C總線時序圖
其I2C的部分驅(qū)動程序如下:
3.3 DAC控制模塊
本系統(tǒng)4~20mA電流環(huán)的硬件電路使用AD42芯片,在NIOSⅡIDE中控制4~20mA電流輸出。Clock信號上升沿輸出數(shù)據(jù)按從高到低順序輸出到AD421中,并在LATCH信號上升沿將上面輸入到AD421的數(shù)據(jù)傳送到DAC輸出端[4],其控制時序圖如圖7所示。
圖7 DAC控制時序圖
3.4 程序總流程
系統(tǒng)上電后,F(xiàn)PGA及各外圍模塊初始化,根據(jù)檢測環(huán)境對系統(tǒng)參數(shù)進行設(shè)置,啟動采樣,超聲波發(fā)射脈沖,產(chǎn)生激勵文件,經(jīng)過噪聲門限脈寬檢測分析信號最大值及過零點后,計算發(fā)送和接收的傳播時間,并進行修正處理。之后進入超聲波明渠流量計主程序,采用Altera公司的NIOSIIIDE開發(fā)環(huán)境,通過軟硬件協(xié)調(diào)設(shè)計,自頂向下設(shè)計方法,實現(xiàn)了程序時序控制及中斷處理、流量計算與修正、數(shù)據(jù)存儲與上位機通訊等功能。其流程圖如圖8所示。
圖8 軟件流程圖
4 實驗結(jié)果
SOPC建立的軟核編譯后下載到FPGA目標板上,然后通過USBBlaster將軟件程序下載到系統(tǒng)中,得到的流量測量數(shù)據(jù)如表1所示,該數(shù)據(jù)是由時差法測量得到的。多次實驗測量其誤差小于±3mm(準確度3%),小于國家流量測量標準5%,且掉電不丟失數(shù)據(jù)。從而驗證了系統(tǒng)的正確性和穩(wěn)定性。
表1 實驗數(shù)據(jù)
5 結(jié)論
本文采用基于NIOSⅡ的嵌入式軟核技術(shù),使得系統(tǒng)軟件開發(fā)過程簡便快捷,在此基礎(chǔ)上實現(xiàn)了超聲波明渠流量計的工作要求,有效地提高了超聲波流量計的可靠性、穩(wěn)定性及精度。在實際應(yīng)用中,對于不同水質(zhì)的測量超聲波明渠流量計采用非接觸測量使得保持傳感器不受污染,并且測量結(jié)果不受被測介質(zhì)的影響,從而提高了流量計的壽命和易于維護性。