基于MSP430單片機的智能水位計設計
摘要:為解決我國水位監(jiān)測野外條件下長期無人看守的問題,研制開發(fā)了基于MSP430單片機的智能水位計。從其組成到各功能分別進行了詳細的介紹,該智能水位計不僅實現(xiàn)了水位數(shù)據(jù)的實時監(jiān)測、記錄和定期采集等多種工作模式,而且提高了水位監(jiān)測精度,實現(xiàn)了水位監(jiān)測的智能化。
關鍵詞:MSP430單片機;水位監(jiān)測;遠程控制;智能儀器
隨著微電子技術和計算機技術的不斷發(fā)展,引起了儀表結構的根本性變革,以微型計算機為主體,將計算機技術和檢測技術有機結合,組成新一代“智能化儀表”,在測量過程自動化、測量數(shù)據(jù)處理及功能多樣化方面與傳統(tǒng)儀表的常規(guī)測量電路相比較,取得了巨大進展。智能儀表不僅能解決傳統(tǒng)儀表不易或不能解決的問題,還能簡化儀表電路,提高儀表的可靠性,更容易實現(xiàn)高精度、高性能、多功能的目的。水位監(jiān)測廣泛應用于水利、電力、城市供水、防洪等多領域,但是目前的水位觀測方法精度不高,不能全自動、實時動態(tài)監(jiān)測,因此,在綜合研究目前水位監(jiān)測的實際情況以及特點的基礎上,利用現(xiàn)代電子技術,特別是單片機技術和傳感器技術,設計開發(fā)一種通用性好、可靠性高、維護方便,可適用于多種監(jiān)測環(huán)境的多模式智能水位計具有重要的實際意義。
1 智能水位計系統(tǒng)組成
該智能水位計以單片機為核心,由主控系統(tǒng)、水位采集模塊、數(shù)據(jù)保存模塊、控制顯示模塊與上位機通信模塊組成,完成水位測量、存儲、控制與實時顯示等功能。也可作為終端,通過單片機的串口與上位機通信,實現(xiàn)終端遙控和水位遙測。組成框圖如圖1所示。
主控系統(tǒng)對各個模塊起到控制作用,是各個模塊正常工作的基礎,主要由單片機完成。
水位信息采集模塊是水位計的核心部分,采集到的水位信息的精度是衡量水位計質量的重要參數(shù)。由傳感器、模數(shù)轉換,單片機完成。數(shù)據(jù)存儲模塊由外部非易失存儲器和單片機完成,水位計定時采集水位信息,并保存在外存上。記錄可通過液晶屏讀出。
控制與顯示模塊由鍵盤和液晶屏完成,提供人機接口。
與上位機通信部分是智能儀表的必要條件,主要由MAX3485和MSP430單片機的串口部分實現(xiàn)。
2 各模塊功能實現(xiàn)
2.1 主控系統(tǒng)
主控系統(tǒng)對各個模塊的供電、使能,工作等起到控制作用,是各個模塊正常工作的基礎,主要由MSP430單片機完成。
相比于MCS和PIC等系列,MSP430系列單片機是超低功耗、功能強大的16位單片機。本系統(tǒng)選用的是MSP430F435,工作電壓范圍1.8~3.6 V;5種節(jié)電模式,每1 MHz功耗電流0.1~400 μA,同時能夠在實現(xiàn)液晶顯示的情況下只耗電0.8μA。此外MSP430單片機片上資源豐富,集成度高,能夠滿足智能遙測終端機對體積功耗的需求。
2.2 數(shù)據(jù)采集模塊
水位信息采集模塊是水位計的核心部分,采集到的水位信息的精度是衡量水位計質量的重要參數(shù)。水位采集模塊主要由ADS1110和傳感器完成。ADS1110是一種精密、可連續(xù)自校準的串行A/D轉換器,帶有差分輸入和高達16位的分辨率,測量的電壓誤差為0.001 V,精度高。其串行接口為I2C總線。單片機可通過軟件模擬I2C總線實現(xiàn)與ADS1110的連接。具體方法是將單片機的I/O接口連接至I2C的數(shù)據(jù)線SDA和時鐘線SCL。通過軟件控制時鐘和數(shù)據(jù)的傳輸。水位采集流程如圖2所示。
2.3 數(shù)據(jù)保存模塊
水位數(shù)據(jù)保存模塊及復位電路都通過X4043實現(xiàn)。X4043也采用I2C接口,SDA,SCL連接方法與ADS1110相同。
水位計每小時記錄一次,緩沖區(qū)可保留一天24次的記錄信息,新的信息覆蓋舊的信息。每條記錄由水位值和采樣的時間組成。
水位信息保存程序流程圖如圖3所示。
保存數(shù)據(jù)時,先保存水位值,再依次保存時間。確定保存地址時,用最初的地址加上偏移量。偏移量為數(shù)據(jù)長度乘以個數(shù)。
在定時器中斷中,每個整點時間,定時器都會把保存數(shù)據(jù)的標志變量置有效。在主循環(huán)中判斷,如果標志位有效,就調用保存水位信息的函數(shù)。
2.4 控制與顯示模塊
控制與顯示模塊由鍵盤,液晶屏LCD12232和SD2300完成,提供人機接口。鍵盤可設置水位計參數(shù),安裝高度,誤差,量程等,當有鍵按下時水位計顯示相應菜單。不在設置狀態(tài)時,水位計終端顯示主界面:上行顯示當前水位,下行顯示實時時間。智能水位計在啟動時讀取SD 2300時間,再通過定時器中斷保證時間的更新。
2.5 與上位機通信模塊
工作時,在一條總線上可掛接一個上位機和多個水位計實現(xiàn)多點的水位采集,如圖4所示。水位計與上位機通過單片機的串口通信,上位機能夠獲得水位計實時水位數(shù)據(jù)實現(xiàn)遙測,可以為流域的水雨情測報、預報、報汛及水庫大壩分洪瀉洪、抵抗自然災害、水資源的管理和調度提供快速準確的分析數(shù)據(jù)和科學決策依據(jù),同時上位機也能夠獲取和修改水位計工作參數(shù)實現(xiàn)遙控,無需專人值守。
智能水位計中使用MAX3485和單片機串口實現(xiàn)這一功能,協(xié)議采用MODBUS協(xié)議。
數(shù)據(jù)包收發(fā)程序放在單片機中斷服務程序中,接收完成后把標志位置有效,在主循環(huán)中不斷掃描標志位,發(fā)現(xiàn)標志位有效,會調用數(shù)據(jù)包處理函數(shù)。水位計協(xié)議包格式如表1所示。
功能碼主要有:
功能碼0x03:Read Holding Registers讀取寄存器數(shù)據(jù)(系統(tǒng)時間或配置)。功能碼0x04:Read Input Register讀輸入寄存器(遙測)。功能碼0x10:Write Multiple Registers寫多個寄存器(系統(tǒng)時間、參數(shù))。
工作模式共有3種:實時,分時,變幅上報。
在實時模式下,水位計時刻打開串口電源,準備接收上位機信息,作出處理。
分時模式下,只有在定時時間到的時候打開串口電源,等待上位機信息。
變幅模式下,當水位計采集到的水位值和前一次的差的絕對值大于一個閾值時再打開串口電源。
由于整個網(wǎng)絡采用總線型拓撲結構,且沒有沖突退避算法,所以與上位機通信時采用應答方式。不論水位計工作在實時、分時,還是變幅模式下,只有接收到上位機信息時才返回數(shù)據(jù)包。
3 結束語
該水位計在工作時可以靈活配接浮子式水位計或壓力式水位計等水位傳感器,能夠靈活適應測量庫水位、電廠攔污柵壓差、河流等變化緩慢或劇烈的水位的需要,適應不同的監(jiān)測環(huán)境,適用于無電源場合。水位采集站工作模式可靈活編程設定,通用性好,可靠性高,維護方便,是一種可適用于多種監(jiān)測環(huán)境的多模式水位自動監(jiān)測系統(tǒng)。