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