隨著水文現代化進程的不斷推進,水情測報作為水文工作的重要手段也在迅速發展。水情測報應用遙測、計算機、控制和通信等先進科技對水文信息進行實時遙測、傳送和處理,其系統主要由遙測站、中繼站和中心站3部分組成。遙測站利用水情遙測終端(RTU)完成各種水文傳感器數據的采集和處理,最終與中心站進行雙向通信,實現水情的預報或調度決策。遙測終端是整個測報系統的信息和決策依據來源,因此如何構建功能完善、可靠性高、通用靈活、易維護的遙測終端成為設計的關鍵。
目前,水情遙測終端的設計基本采用MCS51、MSP430及ARM等系列單片機作為控制芯片,配置各種外圍電路實現系統功能。本文設計了一種基于AT89S52單片機的低功耗水情遙測終端,其功能完善、性能穩定,能為控制中心提供準確、綜合全面的水情信息。
1 系統總體設計
系統采用模塊化設計,根據功能,整個遙測終端可分為單片機模塊、數據采集模塊、數據通信模塊、人機交互模塊和電源供電模塊等部分,該系統結構如圖1所示。
系統工作流程:單片機讀取雨量、水位、閘位等參數,進行處理、存儲和編碼,在自報或召報方式下,經調制解調器后通過無線數傳電臺發送至中繼站或中心站。該系統具有良好的人機交互功能,可通過鍵盤操作實現參數的設置和數據實時動態顯示。
2 系統硬件電路設計
從遙測終端的功能需求、成本、接口電路及程序復雜度等方面綜合考慮,選用ATMEL公司的AT89S52單片機為控制核心,它帶有8 kB的Flash存儲器和256字節RAM,支持全靜態操作及空閑、掉電兩種可選節電模式。整個系統在硬件邏輯結構上由數據采集接口電路、通信接口電路、人機接口電路、實時時鐘電路、存儲擴展電路及電源電路組成。
2.1 數據采集接口電路設計
本文僅以雨量、水位的數據采集為例。
雨量采集采用翻斗式雨量計,當降雨量達到1 mm,雨量計翻動1次發出1個脈沖信號觸發中斷0,喚醒處于低功耗狀態的單片機,對雨量進行累加、存儲和即時發送。由于雨量計的干簧管開關吸合會出現抖動現象,為了確保雨量記錄的準確無誤,雨量計輸出脈沖信號須經過脈沖整形方能送入后繼單元進行處理。整形電路如圖2所示,MC14538是可重復觸發和復位的單穩態觸發器件,R2、R3為保護電阻。在非跳變期間,脈沖的不規則變化保持在一定范圍,VD1、VD2的比較結果相同,觸發器不工作,使輸出脈沖保持穩定。
系統設計2路水位采集,浮子式水位計的輸出為12位并行格雷碼,為節省單片機I/O口資源,經兩片MC14021移位寄存器鎖存,將并行數據轉換為串行數據后逐位輸出至單片機進行處理。串并轉換電路如圖3所示,接上拉保護電阻以增強電路的穩定性。
2.2 通信接口電路設計
遙測終端的最終目標是將采集的水情數據處理成幀,利用無線數傳電臺進行遠距離傳輸后傳送至中心站。使用RS-232作為與電臺連接的接口,它亦可連接SMS/GSM、GPRS等通信模塊,以滿足不同應用環境下的需求,提高了系統的通用性。
調制解調采用全雙工低速MODEM芯片MC145442,它含有完整的頻率變換調變(FSK)調制器、解調器和濾波器,提供300波特率的FSK信號的雙向數據傳輸,支持呼叫模式和應答模式。通信接口電路結構如圖4所示,串口電平轉換使用MAX232芯片,MC145442的RXD、TXD、RXA1/RXA 2、TXA端口分別為數據接收端、數據發送端、載波接收端和載波發送端。
2.3 人機接口電路設計
為體現系統友好的人機接口界面,便于輸入和顯示控制參數等,采用1602字符型液晶顯示模塊作為輸出顯示器件。1602顯示模塊內置控制驅動器HD44780,顯示和驅動工作均由此控制器和外圍電路完成。配置4x4鍵盤,負責快速、準確、方便地設置參數和實現各種控制功能。鍵盤直接由P1口的高、低字節構成,采用中斷輸出,即列線連接與門器件接外部中斷1,置行線和列線分別為高電平和低電平,當有鍵按下時,電路輸出低電平,觸發中斷后進入中斷例程,判斷哪個鍵被按下。
2.4 其他擴展電路
本系統選用低功耗的CMOS AT24C08芯片作為擴充存儲器,該芯片是帶有I2C總線接口的8 kB的串行EEPROM,電路上將P2.3、P2.4與SCL和SDA相連。該存儲器中保存設置參數、歷史水情數據和數據采集的時間標記,用戶可通過按鍵進行顯示、查閱。
數據采集的時間標記和報平安時間間隔計算則采用DS1302實時時鐘芯片來實現。DS1302提供年、月、周、日、時、秒的數據信息,采用SPI與CPU進行通信,接口簡單,只需RST復位、I/O數據線、SCLK串行時鐘線分別于P2.5、P2.6、P2.7相連。
遙測終端安裝在野外,沒有持續的電力供給,為實現長期無人值守環境下的自動監測,采用20 W/12 V的太陽能板和蓄電池供電系統。
3 系統軟件設計
遙測終端實現的主要功能有:根據規約(產生1 mm雨量:水位每變化1 cm,且滿足時間間隔5 min)采集各種傳感器數據和電源狀態參數信息,并進行存儲和發送;無參數發送時終端處于值守狀態下,按自報周期(缺省值為8 h)向中心站全量發送數據,以指示遙測站正常工作,實現報平安功能:招報方式下,響應中心站的數據要求指令,采集各種數據并全量發送:響應鍵盤指令,接收和更新參數的設置與修改,動態顯示水情數據、終端狀態信息等;通話功能,工作人員可現場通過電臺與中繼站或中心站聯系,為指揮調度、現場維護提供話務功能。
系統軟件的主程序流程如圖5所示:系統初始化,確保系統處于正常工作狀態:默認進入休眠模式,以降低終端系統功耗;等待外部中斷喚醒系統,進行數據采集、傳送,實現各種控制功能。實現功能的硬中斷例程主要包括雨量中斷例程、定時器中斷例程(圖5)、鍵盤中斷例程(圖5)。雨量中斷例程完成雨量的累加、存儲和發送。定時器中斷例程首先采集水位數據,檢查測量值變化是否超過1 cm,是則存儲數據并重新采集雨量、水位、閘位等水情數據及電源電壓參數后發送;否則讀取實時時鐘的值,計算時間間隔,若達報平安周期,則進行各種數據的采集和發送。鍵盤中斷例程主要負責接受鍵盤命令,進行相應處理,包括實時顯示和參數設置。例程中定時器的作用是規定最大按鍵操作時間(一般2~3 min),即在按鍵超時后強行進入低功耗狀態,防止無操作而無限的鍵盤掃描循環。
上述軟件流程中主要包括數據采集、數據存儲、數據發送和實時顯示等功能模塊。數據采集的重點是水位采集,浮子式水位計輸出12位格雷碼為統一存儲和發送格式,須將其轉換為BCD碼。由于測量水位時波浪沖擊會引起瞬時干擾,為提高準確性采用軟件濾波進行防浪處理,方法是對水位信息連續采樣5次,將采樣值從小到大排列,取中間3次取平均值為最終測量值。數據存儲包括數據存入和數據讀出,水情數據的存儲格式為:特征字、數據、時間標志。特征字用來區別數據是雨量、水位還是閘位,時標是在數據讀入前先讀取實時時鐘為數據進行的時間標記。數據發送首先根據緩沖區數據長度計算校驗字節,連同站號、參數特征碼和數據等整合成幀,送入MODEM進行調制后發送。
系統標準的數據幀格式如圖6所示,單一數據發送采用格式1,每次發送1個參數數據,通過數據特征區別;全量發送采用格式2。為了提高通信的可靠性,采用CRC-16信道編碼方式。
顯示模塊和按鍵配合,用于測站終端的參數設置,如測站編號、采樣時間間隔、發送時間間隔等;同時可用于測站的檢測維護。
4 結束語
基于AT89S52單片機實現的低功耗水情遙測終端硬件設計簡單靈活,軟件架構合理,功能與性能滿足水情測報的技術要求,可實時采集雨量、水位、閘位等多種水文數據和氣象參數,并進行固態存儲,同時具有水位防浪和報平安功能。系統通過采用低功耗的外圍器件和休眠、外部中斷喚醒的工作方式降低耗電量,實現低功耗。設計的RS-232通信接口,可連接多種通信模塊,提高了RTU的通用性。
該遙測終端可廣泛應用于水文水利、城市防洪、給排水、環境與氣象監測等方面,實際應用中該RTU在值守狀態下的整機電流<60μA,已存參數可掉電保持50年以上。由于系統功能相對完善,性能可靠,投入使用以來工作正常,取得了良好的效果。此外,針對不同項目需求和應用環境不同,需結合實際對系統進行進一步的完善和改進,如優化防雷擊、軟硬件抗干擾保護設計,增加各種新型的數字和模擬接口以擴展測報參數范圍,加強信道偵聽以提高數據傳輸質量等。