基于ATmega16的多路水文參數采集及無線傳輸系統
引言
本文引用地址:http://www.104case.com/article/90451.htm為適應防汛和水利調度的現代化、信息化要求,水文監測系統的建設進入了數字化、網絡化階段。在許多重點水域(重點河流、湖泊、水庫、水利工程等),往往需要監測多個水文數據才能滿足實際需求,包括流速、水位、水質、流量、溫度、降水量等。這就為多路數據采集提出了應用需求。另外,大壩上下、河流交匯處、汛情多發地段、引水隧洞等不同地段水文參數往往也各不相同,這就需要進行多點組網實時數據采集和傳輸。為此設計了一套數據采集和無線傳輸系統。
系統總體設計
該系統由若干個監測點組成無線監測網絡,如圖1a所示。監控中心向各監測點發出的各項指令由無線電臺發送出去,各監測點在接收到指令后先進行身份識別,當確認本身被選中時便開始執行相應的指令,在執行完指令后,通過無線電臺把采集到的數據返回監控中心。其他沒被選中的監測點則處于監聽狀態。圖1b為各監測點的原理框圖。各監測點子系統由3路傳感器(水位、雨量、流量)、ATmega16單片機、RS-485接口電路和無線數傳電臺組成。3路傳感器輸出的信號經信號調理電路送入ATmega16單片機,它利用內部自帶的A/D轉換器采集3路傳感器的數據,將其經由RS-485接口電路傳送給無線數傳電臺。
系統硬件實現
ATmega16單片機主要特征及片內A/D轉換器
ATmega16單片機芯片內集成了較大容量的非易失性程序和數據存儲器以及工作存儲器;豐富強大的外部接口性能;特殊的微控制處理器性能。其主要優點是芯片本身自帶看門狗電路,片內程序Flash及8通道復用的10位A/D轉換器;通用I/O接口具有很強的驅動能力,可省去部分驅動電路,節約了系統成本;附帶同步和異步串行接收和轉發器(USART),可以實現與PC機和無線電臺的聯網通訊功能。ATmega16有一個10位的逐次比較的A/D轉換器,ADC與一個8通道的模擬多路復用器連接,能夠對以PORTA口作為ADC輸入引腳的8路單端電壓輸入進行采樣。
多路數據采集的實現
A/D多路數據采集系統是本設計的關鍵之一,它主要由微處理器、A/D采集處理部分、參數設置、輸出單元和通訊接口等功能模塊組成。ADC包括樣保持電路,以確保輸入電壓在ADC轉換過程中保持恒定。ADC功能單元有獨立的專用模擬電源引腳AVCC供電。AVCC和VCC的電壓差別不能大于0.3V。ADC轉換的參考電源可采用外部的參考電源,外部參考電源由引腳AREF接入,同時AREF引腳外部并接一個0.1μF的電容來提高ADC的抗噪性能。
采集的3路數據是0-15mA的電流信號,通過在輸出端加上匹配的負載電阻,可將電流值轉換為電壓值,電路連接如圖2所示。
放大后的模擬信號利用微處理器提供的內部ADC進行模數轉換處理,并將10位轉換結果放在ADC數據寄存器ADCH和ADCL中。在連續采樣模式下,ADC連續取樣,并不斷更新ADC數據寄存器。通過讀取ADC內的數據即可得到所要采集數值的二進制值。
單片機與數傳電臺的通信
RS-232串口標準是低速率串行通訊中的單端標準。RS-232采取不平衡傳輸方式,即單端通訊,其收發端的數據信號都是相對于地信號的,所以共模抑制能力差,再加上雙絞線的分布電容,傳輸距離最大約為15米。由于本系統需要工作在室外,氣候環境相對惡劣,且需要長距離傳輸,針對RS-232串口的局限性,所以系統采用具有極強的抗共模干擾能力的RS-485接口。單片機的RS-485接口電路原理圖如圖3所示,RS-485的A、B為總線接口,DI是發送端,RO是接收端,/RE、DE為RS-485收發使能端,由單片機的PD4口控制。
通信網絡
監控中心和若干監測點的數傳電臺聯網組成無線監控網絡,通過應答式通信協議可實時監測不同地域的水情。本系統采用GD230V-8電臺,該電臺的主要參數如下:(1)調制方式:MSK/FSK;(2)接收靈敏度:≤0.25μV;(3)輸出功率:8W ;(4)頻率范圍:220-240MHz;(5)信道速率:2400/1200bps(MSK方式),0-1200bps(FSK方式);(6)數據接口:異步傳輸,EIA-232/ EIA - 485 /TTL。
監控中心在向各監測點發出指令前先發送一組地址信息,各監測點收到地址信息后首先需要進行身份,如果收到的地址信息與自身相符便給監控中心返回一應答信號,監控中心收到應答信號后即可發出各項指令,被選中的監測點便開始執行相應的指令,并把數據傳回監控中心,從而實現多點聯網監測。
系統軟件設計
軟件編程也是實現該多路數據采集的關鍵之一,本文主要介紹數據采集部分。系統上電后執行初始化程序,復位各個端口。當處于監聽狀態時,各監測點數據采集模塊處于3路自動巡回監測狀態,系統開始對0~3通道間隔1s時間采集一次電壓值;當接收到監控中心發送來的指令便選中相應的采集通道執行數據采集,調用數字濾波子程序進行濾波得到精確的數值。再通過數據轉換和處理后送微處理器的數據存儲器,等待數傳電臺的讀取,其工作流程如圖4所示。
A/D采集子程序
結束語
ATmega16單片機本身帶有多路10位精度的逐次比較式A/D轉換器,在該多回路數據采集器系統中可以顯著地降低成本。由于ATmega16的A/D轉換器轉換速度比較高,可以采取一些數字濾波算法來得到較為精確和穩定的轉換結果。利用C語言編程,使該多回路數據采集器系統的硬件設計變得簡單,A/D采集處理編程也更為容易,大大縮短了開發周期。該方案可應用在河道水文、湖泊水庫和沿海潮汛潮位等監測項目上,經山西某水文站實際使用,結果表明:系統工作穩定可靠,具有建網費用低、建設周期短、維護量小等優點。
評論