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