方 挺,林君煥,徐有為
(臺州職業(yè)技術(shù)學(xué)院 機(jī)電系,浙江 臺州 318000)
基于DS18B20的無線溫度測量電路設(shè)計
方 挺,林君煥*,徐有為
(臺州職業(yè)技術(shù)學(xué)院 機(jī)電系,浙江 臺州 318000)
針對惡劣工作環(huán)境下溫度測量難的問題,提出了一種基于無線通信方式與一線數(shù)字式溫度傳感器的溫度測量電路設(shè)計方案,設(shè)計出一款顯示終端與溫度測量探頭分離的無線溫度測量儀,避免測試人員置身于危險環(huán)境中測試溫度。軟硬件調(diào)試結(jié)果證明電路測量精度高、工作穩(wěn)定可靠、無線傳送距離可達(dá)100m。
DS18B20;單片機(jī);無線通信;溫度測量儀
溫度是實際應(yīng)用中使用最多的參數(shù),溫度檢測被廣泛用于工農(nóng)業(yè)生產(chǎn)、科學(xué)研究和人們的日常生活等領(lǐng)域。針對惡劣工作環(huán)境下溫度測量難的問題,提出了一種基于無線數(shù)傳模塊與一線數(shù)字式溫度傳感器的溫度測量電路設(shè)計方案,使顯示終端與溫度測量探頭分離,避免了測試人員置身于危險、惡劣的環(huán)境中測試溫度帶來的危險。測量電路采用無線通信模塊SRWF-1021-50、低功耗高性能單片機(jī)以及單總線數(shù)字式測溫器件DS18B20等硬件設(shè)備,實現(xiàn)溫度的實測顯示,保存、統(tǒng)計,遠(yuǎn)程監(jiān)控和報警等功能。一線式數(shù)字溫度傳感器的采用能降低布線成本、易于維護(hù)、降低硬件系統(tǒng)的復(fù)雜性[1]。
本研究的特點是:采用高度集成的射頻芯片,大大簡化系統(tǒng)的硬件和軟件設(shè)計減小了體積提高了系統(tǒng)工作的可靠性,并以無線數(shù)字通訊為紐帶,方便了在惡劣環(huán)境下的溫度采集。
圖1.系統(tǒng)總結(jié)構(gòu)框圖Fig.1 System blockdiagram
系統(tǒng)按功能分為以下兩個部分:一是無線數(shù)據(jù)采集部分,包括溫度數(shù)據(jù)的采集模塊(DS18B20)、溫度數(shù)據(jù)處理模塊 (單片機(jī))、獨立式按鍵模塊、數(shù)據(jù)發(fā)送模塊(SRWF-1021-50);二是無線溫度顯示部分,包括數(shù)據(jù)接收模塊(SRWF-1021-50)、溫度數(shù)據(jù)處理模塊(單片機(jī))、獨立式按鍵部分、ROM存儲部分、LED溫度顯示部分。兩者通過無線數(shù)傳模塊聯(lián)系。系統(tǒng)總結(jié)構(gòu)框圖如圖1所示。
系統(tǒng)具體運行過程:無線采集部分,由溫度傳感器對環(huán)境溫度信號采集,由I/O接口直接傳給單片機(jī),單片機(jī)接收到數(shù)字信號轉(zhuǎn)變成對應(yīng)的數(shù)值,由按鍵開啟無線數(shù)傳模塊,并按一定通信協(xié)議格式進(jìn)行數(shù)據(jù)打包,打包后的數(shù)據(jù)寫入無線通訊模塊的發(fā)送緩沖區(qū),由無線收發(fā)模塊經(jīng)天線完成數(shù)據(jù)的傳輸,測得的溫度數(shù)據(jù)經(jīng)單片機(jī)分析處理后存入EPROM并送LED實時顯示。
因為DS18B20是單線數(shù)字接口元器件,因此它與單片機(jī)的硬件接口十分簡單。只需占單片機(jī)的一個雙向I/O口,通過單片機(jī)的P2.5口與DSl8B20的2口(數(shù)據(jù)線DQ)連接,實現(xiàn)傳感器與單片機(jī)之間的數(shù)據(jù)傳輸。這里采用插槽的方式連接,以方便更換DS18B20溫度傳感器,硬件電路如圖2所示。
3.2.1 無線模塊接口電路
系統(tǒng)硬件電路是以SRWF-1021-50和單片機(jī)為核心元件。由單片機(jī)的I/O端口分別控制SRWF-1021-50的狀態(tài)接口、模式接口和RS接口。SRWF-1021-50的3口RXD和單片機(jī)P3.1口TXD連接,SRWF-1021-50的4口TXD和單片機(jī)P3.0口RXD連接如圖2、3所示。實現(xiàn)數(shù)傳模塊與單片機(jī)的數(shù)據(jù)傳輸。
圖2 測量端電路圖Fig.2 Temperature measuring circuit
圖3 顯示端電路圖Fig.3 Display circuit
3.2.2 LED接口電路
LED顯示器是由發(fā)光二極管顯示字段的顯示器件。如圖2、3所示電路采用3個共陰極的數(shù)碼管。3個數(shù)碼管a……DP8個接口外接8個限流電阻分別和單片機(jī)P1.0……P1.7的8個接口連接,3個數(shù)碼管COM接口和3個晶體管的集電極連接,發(fā)射機(jī)接公共地,3個晶體管的基極分別和單片機(jī)P2.0……P2.2的3個接口連接。通過P2.0……選通數(shù)碼管,以此實現(xiàn)數(shù)碼管的動態(tài)顯示。
3.2.3 按鍵接口電路
按鍵主要有兩種形式:1.獨立式按鍵;2.矩陣編碼鍵盤。獨立式按鍵的每個按鍵都單獨接到單片機(jī)的一個I/O口上,獨立式按鍵則通過判斷按鍵端口的點位即可識別按鍵操作;而矩陣式鍵盤則通過行列交叉按鍵編碼進(jìn)行識別。這里采用獨立式按鍵,如圖2、3所示單片機(jī)P3.2……P3.5的4個接口與其4個按鍵相連接,并接4個上拉電阻。按鍵輸入都設(shè)置為低電平有效。上拉電阻保證了按鍵斷開時,I/O口線有確定的高電平。
溫度模塊程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等。
4.1.1 DS18B20主程序
主程序主要完成單片機(jī)寄存器初始化、DS18B20復(fù)位、寫入上下限溫度值、設(shè)置轉(zhuǎn)換精度、調(diào)用讀溫度子程序、調(diào)用數(shù)據(jù)處理子程序、調(diào)用顯示子程序以及主循環(huán)結(jié)構(gòu)程序。在循環(huán)體內(nèi),每個1s中讀取ds18B20寄存器內(nèi)溫度數(shù)據(jù),并刷新顯示。程序框圖如圖4所示。
圖4 DS18B20主程序流程圖Fig.4 Flow chart of main program for DS18B20
圖5 讀溫度流程圖Fig.5 Flow chart of temperature reading
4.1.2 讀出溫度子程序
讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進(jìn)行CRC校驗,校驗有錯時不進(jìn)行溫度數(shù)據(jù)的改寫[2]。其程序流程圖如圖5所示。
4.1.3 溫度轉(zhuǎn)換命令子程序
溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時轉(zhuǎn)換時間約為750 ms,在本程序設(shè)計中采用1s顯示程序延時法等待轉(zhuǎn)換的完成[2]。溫度轉(zhuǎn)換命令子程序流程圖如圖6所示:
圖6 溫度轉(zhuǎn)換流程圖Fig.6 Flow chart of temperature transformation
4.1.4 計算溫度子程序
計算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運算,并進(jìn)行溫度值正負(fù)的判定[2],其程序流程圖如圖7所示。
圖7 計算溫度流程圖Fig.7 Flow chart of temperature computation
圖8 顯示數(shù)據(jù)刷新流程圖Fig.8 Flow chart of data refreshment
4.1.5 顯示數(shù)據(jù)刷新子程序
顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時將符號顯示位移入下一位[2]。程序流程圖如圖8所示。
測試端單片機(jī)發(fā)出指令按一定通訊協(xié)議格式把溫度信息進(jìn)行數(shù)據(jù)打包,再發(fā)出指令把打包后的數(shù)據(jù)寫入無線數(shù)傳模塊的發(fā)送緩沖器中。顯示端單片機(jī)發(fā)出指令將無線數(shù)傳模塊的接受緩沖器中的數(shù)據(jù)傳入單片機(jī)。
單片機(jī)指令:兩塊無線數(shù)傳模塊的波特率相同的設(shè)置、串行口工作方式的設(shè)置、允許串行接收位的設(shè)置、發(fā)送中斷標(biāo)志位的清零設(shè)置等等。總流程圖如圖9、10所示:
圖9 測量端流程圖Fig.9 Flow chart of measurement
圖11所示為本次設(shè)計的無線溫度測量儀實物圖,其顯示端和測量端可以分離。為了驗證遠(yuǎn)程數(shù)據(jù)傳送的可靠性,設(shè)計時特地在測量端也設(shè)置了LED顯示,在測試中通過觀測顯示端與測量端是否顯示相同的溫度值來檢驗無線傳輸?shù)目煽啃?。圖中為測試現(xiàn)場情況:測得現(xiàn)場的環(huán)境溫度為19.8℃,與實際情況相符,驗證了測量端電路能夠有效工作,同時顯示端溫度值與測量端保持一致,證明了無線傳輸數(shù)據(jù)的可靠性。此外,將兩個電路模塊分開遠(yuǎn)距離的試驗也證明了該電路工作的可靠性,且遠(yuǎn)程測量距離可達(dá)100m,從而可以使得測試人員在遠(yuǎn)離環(huán)境現(xiàn)場的情況下依然可以觀察到環(huán)境溫度的變化,尤其是需要測惡劣環(huán)境下的溫度時,避免了測試人員直接置身其中,保障了其安全性。
圖11 無線溫度測量電路Fig.11 wireless temperature measuring circuit
本系統(tǒng)是以STC89單片機(jī)和SRWF-1021-50無線數(shù)傳模塊相結(jié)合,構(gòu)成了無線傳輸系統(tǒng),實現(xiàn)環(huán)境溫度參數(shù)的測量。采用基于SRWF-1020-50的無線傳輸方式,具有低能耗、抗干擾能力強、克服有限通訊電纜線路架設(shè)的困難的缺點,使測量工作更加方便。系統(tǒng)無線傳輸?shù)挠行О霃皆陂_闊的地方約800米,數(shù)據(jù)傳輸可靠。
[1]張銀勝,單慧琳.一種無線溫度報警系統(tǒng)的設(shè)計[J].武漢理工大學(xué)學(xué)報.2009,31(2):232-235.
[2]張維君,王珠忠,索世文.基于PC機(jī)串口與DS18B20的單線多點溫度測量[J].儀表技術(shù)與傳感器.2009,(4):52-53.
[3]李建蘭,邵建龍,張志宏,呂英英,羅景文.基于 STC12C 系列單片機(jī)的 DS18B20 編程[J].理論與方法.2009,28(1):23-25.
Design on the Wireless Temperature Measuring Circuit Based on DS18B20
FANG Ting,LIN Jun-huan,XU You-wei
(1.Department of Mechanical and Electrical Engineering,Taizhou Vocational&Technical College,Taizhou 318000,China;2.School of Physics&Electronics Engineering,Taizhou University,Taizhou 318000,China)
A temperature measuring circuit based on radio frequency(RF)and 1-wire digital thermometer is designed and assembled. The display circuit and measuring circuit are separated, which can keep users out of dangerous environment during measuring the temperature.The software and hardware testing results show that the designed circuit is characterized by high accuracy,stable operation and a long transfer distance of 100 meters.
PSNRDS18B20;micro-computer;wireless communication;temperature measurement
周小莉)
TP338.1
A
1672-3708(2010)06-0033-06
2010-10-08;
2010-11-30
項目資助:2010年浙江省大學(xué)生科技創(chuàng)新項目(2009DKC04)
林君煥(1982- )男,浙江溫嶺人,講師,主要研究嵌入式系統(tǒng)應(yīng)用。