《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > DS18B20在空調(diào)檢測(cè)系統(tǒng)溫度采集模塊中的應(yīng)用
DS18B20在空調(diào)檢測(cè)系統(tǒng)溫度采集模塊中的應(yīng)用
來(lái)源:電子技術(shù)應(yīng)用2011年第8期
王福泉,萬(wàn) 頻,馮孔淼,張 昱
(廣東工業(yè)大學(xué) 自動(dòng)化學(xué)院,廣東 廣州510006)
摘要: 為了克服空調(diào)檢測(cè)系統(tǒng)存在的布線復(fù)雜、溫度采集穩(wěn)定性差的缺點(diǎn),利用數(shù)字溫度傳感器DS18B20具有一線總線、可組網(wǎng)的特點(diǎn),結(jié)合AT89S52單片機(jī),給出一種用于空調(diào)檢測(cè)系統(tǒng)的高效穩(wěn)定的溫度采集方案,討論了16片DS18B20數(shù)字溫度傳感器硬件連接和程序設(shè)計(jì)。應(yīng)用情況表明,該溫度采集方案具有準(zhǔn)確率高、穩(wěn)定性好、安裝方便等特點(diǎn),有效提高了空調(diào)檢測(cè)系統(tǒng)的性能。
中圖分類(lèi)號(hào): TP274.2
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)08-0046-03
Application of DS18B20 in the temperature collect module of air detection system
Wang Fuquan,Wan Pin,F(xiàn)eng Kongmiao,Zhang Yi
Automation College,Guangdong University of Technology,Guangzhou 510006,China
Abstract: In air detection system,there is the disadvantage that stability of temperature collection is not good and the system need complex wiring,this paper develops a scheme for temperature measurement that was efficient and stable used in air detection system,using digital temperature sensor DS18B20 networked with the feature of one-wire and single-chip microcomputer AT89S52. Hardware connection and software design of sixteen pieces of DS18B20 digital temperature sensors have been discussed. The application shows that the scheme of temperature measurement is characterized by high-precision, good stability, easy installation and so on,which can improve the performance of air conditioning detection system effectively.
Key words : DS18B20;air detection system;temperature collect module;AT89S52 SCM


    在空調(diào)生產(chǎn)過(guò)程中,為確保空調(diào)產(chǎn)品的質(zhì)量,空調(diào)制造商在產(chǎn)品出廠前都必須對(duì)空調(diào)進(jìn)行加熱帶、制熱、制冷等環(huán)節(jié)的測(cè)試,通過(guò)標(biāo)準(zhǔn)機(jī)的電壓、功率、輸入管溫、輸出管溫、回氣溫度、排氣溫度等參數(shù)判斷空調(diào)是否合格,其中溫度參數(shù)檢測(cè)是整個(gè)空調(diào)檢測(cè)系統(tǒng)的重要部分。
    在傳統(tǒng)的空調(diào)檢測(cè)系統(tǒng)中,溫度采集模塊多以熱電阻、熱電偶為溫度傳感器,溫度模擬信號(hào)必須經(jīng)過(guò)專(zhuān)門(mén)的調(diào)理電路轉(zhuǎn)換為數(shù)字信號(hào)后才能被單片機(jī)處理,使用一段時(shí)間后,系統(tǒng)檢測(cè)到的溫度值往往不夠準(zhǔn)確,同時(shí)由于溫度采集點(diǎn)分布范圍廣,增加了布線難度,也給系統(tǒng)維護(hù)帶來(lái)不便。
    本文采用DS18B20數(shù)字溫度傳感器、AT89S52單片機(jī),設(shè)計(jì)出適合空調(diào)檢測(cè)現(xiàn)場(chǎng)的溫度采集模塊,實(shí)現(xiàn)現(xiàn)場(chǎng)16個(gè)采集點(diǎn)溫度數(shù)據(jù)的同步采集和傳輸。
1 系統(tǒng)構(gòu)成
    空調(diào)檢測(cè)系統(tǒng)溫度采集模塊的結(jié)構(gòu)框圖如圖1所示。溫度采集模塊包括電源子模塊、16路溫度采集子模塊、看門(mén)狗子模塊、報(bào)警子模塊、RS485接口子模塊。微控制器采用Atmel公司的AT89S52,溫度采集采用Dallas公司的數(shù)字溫度傳感器DS18B20。上位機(jī)采用研祥工控機(jī),監(jiān)控軟件采用Visual Basic 6.0編程。
    溫度采集模塊電路板固定在每個(gè)工作站的控制柜里,并將現(xiàn)場(chǎng)采集到的各點(diǎn)溫度值實(shí)時(shí)傳送給上位機(jī),因此,溫度采集模塊并沒(méi)有集成LCM子模塊和鍵盤(pán)電路。

2 硬件連接
2.1 DS18B20數(shù)字溫度傳感器

    DS18B20數(shù)字溫度傳感器溫度測(cè)量范圍為-55 ℃~+125 ℃,在-10 ℃~+85 ℃范圍內(nèi),精度為±0.5 ℃,可實(shí)現(xiàn)9 bit~12 bit溫度讀取。DS18B20具有一線總線的特點(diǎn),可以輕松組建溫度采集網(wǎng)絡(luò),并且體積小、分辨率高、抗干擾能力強(qiáng),實(shí)用性和可靠性比同類(lèi)產(chǎn)品更高[1],因此,在軸承測(cè)溫[2]、凍土區(qū)公路路基溫度測(cè)量[3]等場(chǎng)合有著廣泛的應(yīng)用。
    DS18B20溫度寄存器中的溫度值以9 bit數(shù)據(jù)格式表示,而輸出溫度則是以16 bit符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式提供,其中低8 bit用補(bǔ)碼表示,第9 bit~16 bit為擴(kuò)展符號(hào)位??照{(diào)檢測(cè)系統(tǒng)所需檢測(cè)的溫度值均在0 ℃以上,這樣,只需讀取緩存9個(gè)字節(jié)的前兩個(gè)字節(jié)即可。
2.2 DS18B20硬件連接

 


    DS18B20器件都有一個(gè)唯一的64 bit ROM地址,通過(guò)協(xié)議就能識(shí)別這些序列號(hào),這樣多個(gè)DS18B20可以掛接在同一條單總線上,構(gòu)成多點(diǎn)溫度采集網(wǎng)絡(luò)。由于DS18B20具有“單總線”的技術(shù)特點(diǎn),因此可以采用兩種不同的方式連接單片機(jī)。
    (1)單端口并聯(lián)連接:所有DS18B20均連接在同一條總線上,然后再連接到單片機(jī)的某個(gè)I/O端口。這種連接方式具有硬件開(kāi)銷(xiāo)小的優(yōu)點(diǎn),理論上一根總線可以掛接256個(gè)DS18B20,但若連接的數(shù)字傳感器數(shù)量較多,單片機(jī)需要花較多的時(shí)間才能獲得每個(gè)傳感器的序列號(hào),會(huì)降低系統(tǒng)的實(shí)時(shí)性,同時(shí)使得軟件編程變得復(fù)雜。
    (2)多端口并行連接:每個(gè)DS18B20獨(dú)占單片機(jī)某個(gè)I/O端口。這種并行連接方式使得單片機(jī)能夠?qū)λ械臄?shù)字傳感器進(jìn)行并行操作,同一時(shí)間能實(shí)現(xiàn)多個(gè)輸入輸出,實(shí)現(xiàn)對(duì)溫度數(shù)據(jù)的快速讀取,從而提高系統(tǒng)的實(shí)時(shí)性,同時(shí)也使得軟件編程變得簡(jiǎn)單,縮短了項(xiàng)目的開(kāi)發(fā)周期。這種連接方式的缺點(diǎn)是硬件開(kāi)銷(xiāo)比較大。
    根據(jù)空調(diào)檢測(cè)系統(tǒng)的實(shí)際需要,系統(tǒng)使用16片DS18B20構(gòu)成小型溫度數(shù)據(jù)采集網(wǎng)絡(luò),結(jié)合單端口并聯(lián)連接和多端口并行連接的連接特點(diǎn),每個(gè)I/O端口連接兩片DS18B20,共使用8個(gè)I/O端口,單片機(jī)與16片DS18B20連接框圖如圖2所示。DS18B20芯片的DQ端和單片機(jī)的I/O端口相連,并接上一個(gè)4.3 kΩ的上拉電阻,芯片的GND端接地線, VDD端接5 V電源線。AT89S52是一種低功耗、高性能CMOS 8 bit微控制器,具有8 KB Flash,256 B RAM,32 bit I/O口線,3個(gè)16 bit定時(shí)器/計(jì)數(shù)器,其資源性能可以滿足空調(diào)檢測(cè)系統(tǒng)溫度采集的需要。

    單片機(jī)需要通過(guò)接口電路實(shí)現(xiàn)與DS18B20的連接,接口電路圖如圖3所示。J1是接線端子臺(tái), DS18B20通過(guò)三芯電纜連接到J1;二極管IN4148實(shí)現(xiàn)電壓鉗位;RWDS1和單片機(jī)AT89S52的一個(gè)I/O端口相連;16片DS18B20通過(guò)J1~J8與溫度采集模塊連接。

3 程序設(shè)計(jì)
3.1 DS18B20溫度采集

    DS18B20溫度采集基本流程:?jiǎn)纹瑱C(jī)發(fā)出復(fù)位脈沖,當(dāng)信號(hào)線上的DS18B20發(fā)出存在脈沖后,即完成DS18B20的初始化工作;單片機(jī)檢測(cè)到存在脈沖,便發(fā)起ROM操作命令;發(fā)送內(nèi)存操作指令,啟動(dòng)DS18B20溫度轉(zhuǎn)換;延時(shí)2 μs等待溫度轉(zhuǎn)換完成;發(fā)出匹配ROM命令后緊接著發(fā)送片內(nèi)ROM序列號(hào);讀取序列號(hào)對(duì)應(yīng)的DS18B20暫存器,從而讀出溫度值;讀完一個(gè)DS18B20溫度值后,接著轉(zhuǎn)向下一個(gè)DS18B20的操作。這樣的操作循環(huán)進(jìn)行,從而完成對(duì)所有DS18B20溫度值的讀取。溫度采集基本流程圖[1]如圖4所示。

    DS18B20作為智能集成溫度傳感器,其智能化實(shí)現(xiàn)要以高質(zhì)量代碼作保障。因?yàn)樽x取每一個(gè)DS18B20都需要匹配序列號(hào),復(fù)位、讀、寫(xiě)操作都需要針對(duì)不同的I/O口,所以,16片DS18B20經(jīng)單片機(jī)8個(gè)I/O口接入,需要定義對(duì)應(yīng)8個(gè)I/O口的變量:18b20_0~18b20_7、18b20_0定義語(yǔ)句表示如下:“sbit 18b20_0=P1^0;”;需要定義8個(gè)復(fù)位(初始化)函數(shù):void re18b20_0()~void re18b20_7();需要定義8個(gè)寫(xiě)函數(shù):void wr18b20_0(uchar ml)~void wr18b20_7(uchar ml);需要定義8個(gè)讀函數(shù):void rd18b20_0()~void rd18b20_7()。對(duì)于單個(gè)I/O口(如P1.0),單片機(jī)在發(fā)送溫度轉(zhuǎn)換命令后,發(fā)送匹配命令wr18b20_0(0x55);連續(xù)調(diào)用8次寫(xiě)函數(shù)發(fā)送序列號(hào);發(fā)送讀溫度暫存器命令wr18b20_0(0xbe);調(diào)用讀函數(shù)rd18b20_0()讀取溫度低8 bit;經(jīng)溫度轉(zhuǎn)換函數(shù)處理后,將溫度整數(shù)部分保存在wd[0],小數(shù)部分保存到wd[1]。讀取另外一片DS18B20,其溫度值的整數(shù)和小數(shù)部分分別保存到wd[2]、wd[3]。讀取P1.1端口,溫度讀取過(guò)程相同。所有傳感器的溫度值都保存到wd數(shù)組中,最后由單片機(jī)AT89S52按照Modbus協(xié)議發(fā)送給上位機(jī)。
3.2 程序編寫(xiě)需要注意以下幾點(diǎn)
    (1)單片機(jī)采用C51編程,代碼功能模塊清晰,可讀性強(qiáng)。從本應(yīng)用狀況來(lái)看,其實(shí)時(shí)性能得到保證,因此,匯編語(yǔ)言不一定是最好的選擇。
    (2)空調(diào)檢測(cè)系統(tǒng)所采集的溫度均在0 ℃以上,并且上位機(jī)軟件可以實(shí)現(xiàn)溫度報(bào)警功能,因此,讀函數(shù)讀取RAM寄存器只需讀取前兩個(gè)字節(jié)。
    (3)單片機(jī)和上位機(jī)軟件通信采用Modbus協(xié)議的RTU模式,因此,溫度轉(zhuǎn)換函數(shù)實(shí)現(xiàn)的功能就是將溫度低字節(jié)轉(zhuǎn)化為十六進(jìn)制數(shù)據(jù),并保存到數(shù)組里。
4 應(yīng)用分析
    空調(diào)檢測(cè)是在一個(gè)溫濕度變化復(fù)雜、干擾源多的空調(diào)檢測(cè)房里進(jìn)行,空調(diào)檢測(cè)系統(tǒng)包括1#~6#工作站,每個(gè)工作站均配有5臺(tái)標(biāo)準(zhǔn)室內(nèi)機(jī)。定頻、變頻一拖一、一拖多等機(jī)型的室外機(jī)由生產(chǎn)線運(yùn)送到各站臺(tái),電源線、信號(hào)線等連接完畢后,即可掃描條碼進(jìn)行檢測(cè)。檢測(cè)過(guò)程中,上位機(jī)軟件能實(shí)時(shí)檢測(cè)溫度、壓力等參數(shù),檢測(cè)完畢,系統(tǒng)自動(dòng)存儲(chǔ)各種數(shù)據(jù),如果參數(shù)不合格,則發(fā)出報(bào)警信號(hào)。
    基于空調(diào)檢測(cè)環(huán)境溫濕度變化復(fù)雜的現(xiàn)場(chǎng)狀況,數(shù)字溫度傳感器DS18B20需要采用不銹鋼外殼封裝,以達(dá)到防水防潮目的。DS18B20溫度采集點(diǎn)主要分布在室內(nèi)標(biāo)準(zhǔn)機(jī)的進(jìn)風(fēng)口、出風(fēng)口和盤(pán)管。測(cè)量壓縮機(jī)排氣管溫度時(shí),不銹鋼封裝的DS18B20需要嵌入固定到金屬夾里面,通過(guò)這樣測(cè)量方式得到的是排氣管表面溫度,需要利用上位機(jī)軟件進(jìn)行必要的數(shù)據(jù)處理,才能得到排氣管的實(shí)際溫度。
    上位機(jī)監(jiān)控軟件采用模塊化設(shè)計(jì),軟件分為數(shù)據(jù)通信、數(shù)據(jù)采集、數(shù)據(jù)顯示、數(shù)據(jù)管理、用戶管理模塊,并將各模塊的實(shí)現(xiàn)代碼封裝成模塊和類(lèi)模塊。需要注意的是:為了方便對(duì)DS18B20數(shù)字溫度傳感器進(jìn)行安裝、測(cè)試和維護(hù),監(jiān)控軟件應(yīng)該有針對(duì)連接溫度傳感器的I/O端口,以及I/O端口上的溫度傳感器的測(cè)試界面。上位機(jī)監(jiān)控界面溫度顯示區(qū)如圖5所示,圖中顯示的是某機(jī)型在制冷期間某時(shí)刻溫度值,圖中排氣溫度1和排氣溫度2為壓縮機(jī)管溫。

    采用DS18B20的溫度采集模塊已應(yīng)用到某大型空調(diào)生產(chǎn)廠的空調(diào)檢測(cè)系統(tǒng)中,溫度采集的準(zhǔn)確性和實(shí)時(shí)性均滿足系統(tǒng)的要求。數(shù)字溫度傳感器DS18B20和單片機(jī)AT89S52組成的溫度采集模塊,能同時(shí)滿足成本和技術(shù)的要求,對(duì)組建多點(diǎn)溫度采集網(wǎng)絡(luò)具有一定的借鑒意義。
參考文獻(xiàn)
[1] 周月霞,孫傳友.DS18B20硬件連接及軟件編程[J].傳感器世界,2001(12):25-29.
[2] 張海傳,吳晨霞,許東衛(wèi),等.低功耗軸承溫度無(wú)線檢測(cè)系統(tǒng)的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2009,35(10).
[3] 何東坡,任貴波,韓春鵬,等.DS18B20在季凍土區(qū)公路路基溫度場(chǎng)測(cè)量中的應(yīng)用[J].電子技術(shù)應(yīng)用,2010,36(4).
[4] 求是科技.單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航[M].北京:人民郵電出版社,2004.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。