鄒顯圣
(大連職業(yè)技術(shù)學院,遼寧大連 116037)
小環(huán)境溫度監(jiān)測在各種不同類型的精密儀器間、倉庫中有著廣泛的應用。但目前多數(shù)精密儀器間、倉庫溫度的管理水平仍然停留在人工監(jiān)測、人工記錄數(shù)據(jù)、人工控制的較低水平,往往無法做到實時自動控制,離無人值守的自動化水平還有較大的差距[1]。為此,針對小環(huán)境溫度控制的發(fā)展現(xiàn)狀和事實,開發(fā)了一套基于AT89C51單片機和單總線技術(shù)的通用型溫度監(jiān)測系統(tǒng)。該系統(tǒng)的溫度傳感器采用Dallas公司的DS18B20數(shù)字式溫度傳感器。利用計算機技術(shù)實現(xiàn)對小環(huán)境溫度的智能化監(jiān)測,符合溫度自動化控制的發(fā)展趨勢[2]。
單總線(1-Wire)是美國Dallas Semiconductor公司的一項專利技術(shù)。與目前廣泛使用的其他串行數(shù)據(jù)總線(如I2C總線、SPI總線等)不同,它采用單根信號線完成數(shù)據(jù)的雙向傳輸,并同時通過該信號線為單總線器件提供電源,具有節(jié)省I/O引腳資源、結(jié)構(gòu)簡單、成本低廉、便于總線擴展和維護等諸多優(yōu)點。它將地址線、數(shù)據(jù)線、控制線合為一根信號線,設(shè)備(主機或從機)通過一個漏極開路或三態(tài)端口連至該數(shù)據(jù)線,以允許設(shè)備在不發(fā)送數(shù)據(jù)時能夠釋放總線,而讓其他設(shè)備使用總線。其內(nèi)部等效電路如圖1所示[3]。單總線通常要求外接一個約為4.7 kΩ的上拉電阻,這樣,當總線閑置時,其狀態(tài)為高電平。主機和從機之間的通信可通過3個步驟完成,分別為初始化1-Wire器件、識別1-Wire器件和交換數(shù)據(jù)。由于它們是主從結(jié)構(gòu),只有主機呼叫從機時,從機才能應答,因此主機訪問1-Wire器件都必須嚴格遵循單總線命令序列,即初始化、ROM命令、功能命令。如果出現(xiàn)序列混亂,1-Wire器件將不響應主機(搜索ROM命令,報警搜索命令除外)[4]。
單總線器件通常采用3引腳TO-92封裝,外形類似于小功率三極管。在3個引腳中有1個公共地端、1個數(shù)據(jù)輸入/輸出端和1個電源端,這個電源端可以為單總線器件提供電源,從而免除總線集中饋電。對于大多數(shù)采用總線集中供電的單總線器件,等效于在各器件內(nèi)部有1個5 mA的恒流電源,從而使得單總線器件功耗較低。單總線技術(shù)允許在這根信號線上掛上百個由Dallas公司提供的芯片作為控制對象。單總線器件的最基本特點就是每個器件都有1個采用激光刻制的序列號。該序列號是由64位二進制數(shù)組成的識別碼,其中包括8位單總線芯片的分類碼(Family Code)、48位標識器件本身的序列號(Serial Number)和8位循環(huán)校驗碼(CRC Code),如圖2所示[5]。
DS18B20是美國Dallas公司生產(chǎn)的單總線數(shù)字式溫度傳感器,如圖3所示。具有結(jié)構(gòu)簡單,操作靈活,無需外接電路的優(yōu)點。在使用過程中,可由一根I/O數(shù)據(jù)線既供電又傳輸數(shù)據(jù),并可由用戶設(shè)置溫度報警界限,被廣泛應用于精密儀器間、存儲倉庫等需要測量和控制溫度的地方[6]。
DS18B20測溫范圍為-55℃~125℃,在-10℃ ~85℃范圍內(nèi)保持±0.5℃的精度;可編程的分辨率為9~12位,對應的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.062 5℃,可實現(xiàn)高精度測溫[7]。此外,傳感器內(nèi)部還具有掉電數(shù)據(jù)不丟失的可擦寫存儲單元,可用該單元存儲設(shè)定的報警溫度值;DS18B20支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)組網(wǎng)多點測溫。
DS18B20內(nèi)部結(jié)構(gòu)如圖4所示,主要由4部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。光刻ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。光刻ROM的作用是使每一個DS18B20都各不相同,這樣就可以實現(xiàn)一根總線上掛接多個DS18B20的目的[8]。
由于溫度傳感器采用數(shù)字輸出形式,故不需要A/D轉(zhuǎn)換器。
為了適應對多個監(jiān)測點的監(jiān)測與管理,系統(tǒng)設(shè)計時采用了分布式系統(tǒng)的組成方式。從機由1個上位機進行監(jiān)測管理;上下采用主從式監(jiān)測管理形式。
溫度監(jiān)測系統(tǒng)的硬件電路主要包括溫度信號采集、單片機數(shù)據(jù)處理、報警電路和與上位機通信4部分組成。其中溫度信號采集選用了智能傳感器DS18B20,單片機選用AT89C51,報警電路選用了聲光報警。電路整體方案圖如圖5所示。
系統(tǒng)的各個部分功能為:主機為管理機,完成參數(shù)設(shè)置、數(shù)據(jù)存儲、處理及管理功能;從機為控制機,采用單片機AT89C51,直接實現(xiàn)對溫度的監(jiān)測功能,并能在主機關(guān)機的條件下實現(xiàn)所有的監(jiān)測功能;從機與主控機的通信采用RS-232數(shù)據(jù)通信方式。主機通過其向從機發(fā)送控制參數(shù),從機將現(xiàn)場采集數(shù)據(jù)通過其傳給主機;數(shù)據(jù)采集實現(xiàn)對傳感器及運行設(shè)備的監(jiān)測;輸入部分的輸入模塊將采集的信號轉(zhuǎn)換后輸入到從機,經(jīng)數(shù)據(jù)線將該信號傳送到上位管理機進行最后的數(shù)據(jù)的處理。
系統(tǒng)以AT89C51單片機為核心,可對16個測點的溫度進行監(jiān)測。測量所得到的溫度值存儲在非易失性RAM芯片DS1230Y中,AT89C51同時可以通過RS-232串行接口將數(shù)據(jù)集中上傳到監(jiān)控中心的PC機進行存檔、分析。監(jiān)測系統(tǒng)將不間斷對下屬的各個節(jié)點進行巡檢,并將溫度值間隔一段時間進行一次存儲,對于出現(xiàn)了溫度異常的時刻及溫度數(shù)值立即進行存儲,并發(fā)出聲光報警信號。當監(jiān)控中心從監(jiān)測系統(tǒng)讀取測量數(shù)據(jù)時,監(jiān)測系統(tǒng)將記錄的數(shù)據(jù)上傳給監(jiān)控中心。
圖5中,蜂鳴器B1用于在溫度超出設(shè)定值范圍時提供聲音報警。它由單片機的 P1.1引腳控制,當P1.1引腳被置為低電平時,蜂鳴器鳴叫。發(fā)光二極管DS1用于在溫度超出設(shè)定范圍時提供閃爍的光報警信號。它由單片機的P1.0引腳控制,當P1.0引腳被置為低電平時,發(fā)光二極管 DS1處于閃爍狀態(tài)。DS1230Y是Dallas公司生產(chǎn)的非易失性RAM存儲器,存儲容量為32 kB。將地址線A15用于DS1230Y的片選,這樣得到DS1230Y的地址范圍是0000H~7FFFH。CN2插座用于連接數(shù)字溫度傳感器DS18B20,監(jiān)測系統(tǒng)可連接的16個測點都并行連接在從CN2引出去的3個接線端子上,用于DS18B20數(shù)據(jù)輸入/輸出的I/O端口DQ連接到單片機的P1.2引腳。
在單總線系統(tǒng)中,軟件設(shè)計是技術(shù)的關(guān)鍵。簡單的硬件配置是靠復雜的軟件來支撐的。在溫度監(jiān)測系統(tǒng)的軟件設(shè)計過程中,采用了模塊化的設(shè)計思想,利用C51語言進行程序設(shè)計。主程序流程圖如圖6所示[9]。
采用滑動平均算法計算各個區(qū)域的溫度平均值。滑動平均算法:采用隊列作為測量數(shù)據(jù)存儲器,隊列長度固定為16,每進行一次新的測量,就把測量結(jié)果放在隊尾,而去掉原來隊首的1個數(shù)據(jù),使隊列中始終有16個新數(shù)據(jù)。只要把隊列中的16個數(shù)據(jù)進行算術(shù)平均,就可得到新的算術(shù)平均值。這樣,每進行一次測量,就可以計算出1個新的算術(shù)平均值。若系統(tǒng)中連接有16個傳感器即有16個采樣點,則各去掉最大和最小的各2點,對余下的12個點再求平均值。
設(shè)采樣值按大小順序排序后為x1<x2<…<x15<x16,則實時計算的各個區(qū)域溫度平均值ˉY為
實驗證明:這種算法效果好,速度快,完全可以用于系統(tǒng)計算平均值[10]。
該監(jiān)測系統(tǒng)是為較小面積的精密儀器實驗室、倉庫、工作間而設(shè)計,所以在軟、硬件的設(shè)計上僅僅預留了16個測點。但該系統(tǒng)采用了完全模塊化的設(shè)計思想,并為眾多監(jiān)測系統(tǒng)的組網(wǎng)使用提供了接口,使得該監(jiān)測系統(tǒng)既可以作為一個獨立的小系統(tǒng)運行,也可以作為大型監(jiān)控系統(tǒng)的一個子系統(tǒng)運行,具有較強的靈活性。
[1]楊金巖,鄭應強,張振仁.8051單片機數(shù)據(jù)傳輸接口擴展技術(shù)與應用實例[M].北京:人民郵電出版社,2005.
[2]姚良,張振仁.基于MODBUS協(xié)議的小環(huán)境恒濕系統(tǒng)設(shè)計[J].儀表技術(shù)與傳感器,2006,6(6):35 -37.
[3]高占鳳,劉玉紅,杜彥良,等.基于單總線技術(shù)的溫濕度監(jiān)測系統(tǒng)[J].電子器件,2006,12(4):1135 -1138.
[4]鄒顯圣.單片機原理與應用項目式教程[M].北京:機械工業(yè)出版社,2010.
[5]白宜誠,楊學順,肖建平,等.單總線技術(shù)在地電場多電極數(shù)據(jù)采集系統(tǒng)中的應用[J].中南大學學報:自然科學版,2004,6(3):457-462.
[6]付華科,任子暉,李偉濼.基于單片機的礦井瓦斯?jié)舛燃皽囟缺O(jiān)測系統(tǒng)設(shè)計[J].儀表技術(shù)與傳感器,2010,7(7):87 -91.
[7]雷建龍.單總線數(shù)字溫度傳感器DS18B20在礦井溫度監(jiān)測中的應用[J].礦山機械,2006,9(34):34 -36.
[8]王勝利,馮偉,劉劍科.單總線分布式測溫系統(tǒng)[J].工礦自動化,2005,10(5):49 -51.
[9]王文成.基于單片機的糧倉多點溫度監(jiān)測系統(tǒng)設(shè)計[J].農(nóng)機化研究,2010,7(7):90 -92.
[10]劉瑋婧,魏學業(yè),謝濤.分布式環(huán)境監(jiān)測系統(tǒng)中的溫度監(jiān)測設(shè)計[J].鐵道通信信號,2005,11(11):50 -52.