楊獻偉
(西山煤電(集團)公司官地礦,山西 太原 030022)
隨著信息化的不斷深入和發展,信息機房中設備對環境的要求也越來越高,尤其是機房溫度對核心設備通信效率有著較大的影響。目前,大部分機房中的空調系統,雖然在設定一定的溫度后,會自動進行調節機房溫度,但是對于值班人員來說,如果想要了解機房溫度的實時情況,須進入機房進行觀測,這對機房環境中的恒溫狀況會引起一定的擾動,導致破壞機房現有的恒溫環境,對核心設備造成一定的影響。
本文設計的信息機房溫度在線實時監測系統,主要以DS18B20為溫度芯片,ATMEGA16L為單片機控制單元,LCD1602為顯示器件,利用RS485總線配合上位機程序與PC機進行通信,實現機房溫度在線實時監測。
DS18B20是美國DALLAS半導體公司生產的單總線數字式溫度傳感器,它是通過對其內部溫度系統振蕩器輸出的脈沖信號計數來測量溫度,并在芯片內部將溫度信號轉換成串行數字信號后,通過外部微處理器對其進行一系列的讀寫操作來取得溫度值,它的測溫范圍為-50℃ ~+125℃,這個溫度范圍對于機房來說,是完全可以滿足的。DSl8B20的內部結構圖見圖1。

圖1 DS18B20內部結構示意圖
ATmega16L芯片是基于增強的AVR RISC(精簡指令集)結構所設計,屬于低功耗8位CMOS微處理器,是比51單片機功能更為強大的微處理器,其指令在單時鐘周期內就可執行完成,所以ATmega16L的數據吞吐率高達1 MIPS/MHz,對于本系統中的數據處理量來說,也是可以滿足的,所以選擇該芯片用于主控芯片。
本系統是由AVR最小系統、測溫系統、顯示系統和通信系統等主要部分組成。
AVR單片機由ATMEGA16L為主控單元,外部8 M晶振提供振蕩源,配有復位電路以及外接5 V恒流源等,實現了AVR最小系統的運行,是該溫度監測系統的核心控制部分。
測溫電路是為DS18B20數據線串接10 kΩ的電阻后與ATMEGA16L的PA0相連,通過嚴格的時序與其通信,啟動并獲取其實時的溫度。
顯示系統是通過4組按鍵設定上限溫度和下限溫度,并保存在AVR的EEROM中,系統啟動后將對其實時溫度進行顯示,并做出判斷,若越界,則能使蜂鳴電路發出報警。
通信電路是通過RS485接口每隔100 ms向上位機發一次溫度信息,上位機將接收到的數據,利用上位機程序實時地在PC機上顯示溫度曲線。
由于DS18B20采用的是單總線協議方式,有嚴格的時序邏輯,所以讀寫時序顯得尤為重要。其復位、讀和寫時序圖見圖2~4。



操作DS18B20的所有時序邏輯都是將ATMEGA16L芯片作為主設備,DS18B20芯片作為從設備,每一次命令和數據的傳輸都是從ATMEGA16L發送指令,主動啟動寫時序開始,在進行寫命令后,ATMEGA16L再發送相應指令啟動讀時序完成數據接收。所有的數據和命令的傳輸都是遵循低位在先的原則來進行的。
溫度監測系統啟動自檢完成后,初始化各部件,然后進行主循環。在主循環中,讀取溫度—〉顯示溫度—〉向上位機發信息—〉判斷及是否報警。其中的中斷部分是按鍵中斷程序,用來設定監測溫度的上下限閾值。
3.2.1 初始化部分程序

3.2.2 向DS18B20寫操作部分


3.2.3 讀取DS18B20計數部分

3.2.4 轉換計數為溫度值


3.2.5 串口通信部分

3.2.6 上位機部分
上位機程序采用VS2005中的C#進行WINDOW FORM編程,利用圖形組件實時地顯示出溫度的波動曲線。部分程序如下:



該程序段僅顯示出接收AVR單片機的數據部分,曲線顯示溫度部分程序代碼較復雜,限于篇幅,在此未列出。
AVR單片機以其結構簡單,功能強大,協議支持多,在實際生產和科學研究中有著較為廣闊應用前景。本系統利用DS18B20芯片作為溫度傳感器,只需要1根數據線就可完成與單片機的通信。RS485總線將采集到的溫度數據實時地傳輸給值班室的監測主機,值班人員在電腦前便可實時了解機房內部溫度的波動情況,保障了機房核心設備對環境中溫度無較大波動的要求。該系統的成功應用,不僅提高了工作效率,而且會使機房管理更為有效、規范和完善。