文獻標識碼: A
文章編號: 0258-7998(2011)08-0046-03
在空調(diào)生產(chǎn)過程中,為確??照{(diào)產(chǎn)品的質(zhì)量,,空調(diào)制造商在產(chǎn)品出廠前都必須對空調(diào)進行加熱帶、制熱,、制冷等環(huán)節(jié)的測試,,通過標準機的電壓、功率,、輸入管溫,、輸出管溫、回氣溫度、排氣溫度等參數(shù)判斷空調(diào)是否合格,,其中溫度參數(shù)檢測是整個空調(diào)檢測系統(tǒng)的重要部分,。
在傳統(tǒng)的空調(diào)檢測系統(tǒng)中,溫度采集模塊多以熱電阻,、熱電偶為溫度傳感器,,溫度模擬信號必須經(jīng)過專門的調(diào)理電路轉(zhuǎn)換為數(shù)字信號后才能被單片機處理,使用一段時間后,,系統(tǒng)檢測到的溫度值往往不夠準確,,同時由于溫度采集點分布范圍廣,增加了布線難度,,也給系統(tǒng)維護帶來不便,。
本文采用DS18B20數(shù)字溫度傳感器、AT89S52單片機,,設(shè)計出適合空調(diào)檢測現(xiàn)場的溫度采集模塊,,實現(xiàn)現(xiàn)場16個采集點溫度數(shù)據(jù)的同步采集和傳輸。
1 系統(tǒng)構(gòu)成
空調(diào)檢測系統(tǒng)溫度采集模塊的結(jié)構(gòu)框圖如圖1所示,。溫度采集模塊包括電源子模塊,、16路溫度采集子模塊、看門狗子模塊,、報警子模塊,、RS485接口子模塊。微控制器采用Atmel公司的AT89S52,,溫度采集采用Dallas公司的數(shù)字溫度傳感器DS18B20。上位機采用研祥工控機,,監(jiān)控軟件采用Visual Basic 6.0編程,。
溫度采集模塊電路板固定在每個工作站的控制柜里,并將現(xiàn)場采集到的各點溫度值實時傳送給上位機,,因此,,溫度采集模塊并沒有集成LCM子模塊和鍵盤電路。
2 硬件連接
2.1 DS18B20數(shù)字溫度傳感器
DS18B20數(shù)字溫度傳感器溫度測量范圍為-55 ℃~+125 ℃,,在-10 ℃~+85 ℃范圍內(nèi),精度為±0.5 ℃,,可實現(xiàn)9 bit~12 bit溫度讀取。DS18B20具有一線總線的特點,,可以輕松組建溫度采集網(wǎng)絡,,并且體積小、分辨率高,、抗干擾能力強,,實用性和可靠性比同類產(chǎn)品更高[1],因此,在軸承測溫[2],、凍土區(qū)公路路基溫度測量[3]等場合有著廣泛的應用,。
DS18B20溫度寄存器中的溫度值以9 bit數(shù)據(jù)格式表示,而輸出溫度則是以16 bit符號擴展的二進制補碼形式提供,,其中低8 bit用補碼表示,,第9 bit~16 bit為擴展符號位??照{(diào)檢測系統(tǒng)所需檢測的溫度值均在0 ℃以上,,這樣,只需讀取緩存9個字節(jié)的前兩個字節(jié)即可,。
2.2 DS18B20硬件連接
DS18B20器件都有一個唯一的64 bit ROM地址,,通過協(xié)議就能識別這些序列號,這樣多個DS18B20可以掛接在同一條單總線上,,構(gòu)成多點溫度采集網(wǎng)絡,。由于DS18B20具有“單總線”的技術(shù)特點,因此可以采用兩種不同的方式連接單片機,。
(1)單端口并聯(lián)連接:所有DS18B20均連接在同一條總線上,,然后再連接到單片機的某個I/O端口。這種連接方式具有硬件開銷小的優(yōu)點,,理論上一根總線可以掛接256個DS18B20,,但若連接的數(shù)字傳感器數(shù)量較多,單片機需要花較多的時間才能獲得每個傳感器的序列號,,會降低系統(tǒng)的實時性,,同時使得軟件編程變得復雜。
(2)多端口并行連接:每個DS18B20獨占單片機某個I/O端口,。這種并行連接方式使得單片機能夠?qū)λ械臄?shù)字傳感器進行并行操作,,同一時間能實現(xiàn)多個輸入輸出,實現(xiàn)對溫度數(shù)據(jù)的快速讀取,,從而提高系統(tǒng)的實時性,,同時也使得軟件編程變得簡單,縮短了項目的開發(fā)周期,。這種連接方式的缺點是硬件開銷比較大,。
根據(jù)空調(diào)檢測系統(tǒng)的實際需要,系統(tǒng)使用16片DS18B20構(gòu)成小型溫度數(shù)據(jù)采集網(wǎng)絡,,結(jié)合單端口并聯(lián)連接和多端口并行連接的連接特點,,每個I/O端口連接兩片DS18B20,共使用8個I/O端口,,單片機與16片DS18B20連接框圖如圖2所示,。DS18B20芯片的DQ端和單片機的I/O端口相連,,并接上一個4.3 kΩ的上拉電阻,芯片的GND端接地線,, VDD端接5 V電源線,。AT89S52是一種低功耗、高性能CMOS 8 bit微控制器,,具有8 KB Flash,,256 B RAM,32 bit I/O口線,,3個16 bit定時器/計數(shù)器,,其資源性能可以滿足空調(diào)檢測系統(tǒng)溫度采集的需要。
單片機需要通過接口電路實現(xiàn)與DS18B20的連接,,接口電路圖如圖3所示,。J1是接線端子臺, DS18B20通過三芯電纜連接到J1,;二極管IN4148實現(xiàn)電壓鉗位,;RWDS1和單片機AT89S52的一個I/O端口相連;16片DS18B20通過J1~J8與溫度采集模塊連接,。
3 程序設(shè)計
3.1 DS18B20溫度采集
DS18B20溫度采集基本流程:單片機發(fā)出復位脈沖,,當信號線上的DS18B20發(fā)出存在脈沖后,即完成DS18B20的初始化工作,;單片機檢測到存在脈沖,,便發(fā)起ROM操作命令;發(fā)送內(nèi)存操作指令,,啟動DS18B20溫度轉(zhuǎn)換,;延時2 μs等待溫度轉(zhuǎn)換完成;發(fā)出匹配ROM命令后緊接著發(fā)送片內(nèi)ROM序列號,;讀取序列號對應的DS18B20暫存器,,從而讀出溫度值;讀完一個DS18B20溫度值后,,接著轉(zhuǎn)向下一個DS18B20的操作。這樣的操作循環(huán)進行,,從而完成對所有DS18B20溫度值的讀取,。溫度采集基本流程圖[1]如圖4所示。
DS18B20作為智能集成溫度傳感器,,其智能化實現(xiàn)要以高質(zhì)量代碼作保障,。因為讀取每一個DS18B20都需要匹配序列號,復位,、讀,、寫操作都需要針對不同的I/O口,,所以,16片DS18B20經(jīng)單片機8個I/O口接入,,需要定義對應8個I/O口的變量:18b20_0~18b20_7,、18b20_0定義語句表示如下:“sbit 18b20_0=P1^0;”;需要定義8個復位(初始化)函數(shù):void re18b20_0()~void re18b20_7(),;需要定義8個寫函數(shù):void wr18b20_0(uchar ml)~void wr18b20_7(uchar ml),;需要定義8個讀函數(shù):void rd18b20_0()~void rd18b20_7()。對于單個I/O口(如P1.0),,單片機在發(fā)送溫度轉(zhuǎn)換命令后,,發(fā)送匹配命令wr18b20_0(0x55);連續(xù)調(diào)用8次寫函數(shù)發(fā)送序列號,;發(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端口,,溫度讀取過程相同,。所有傳感器的溫度值都保存到wd數(shù)組中,最后由單片機AT89S52按照Modbus協(xié)議發(fā)送給上位機,。
3.2 程序編寫需要注意以下幾點
(1)單片機采用C51編程,,代碼功能模塊清晰,可讀性強,。從本應用狀況來看,,其實時性能得到保證,因此,,匯編語言不一定是最好的選擇,。
(2)空調(diào)檢測系統(tǒng)所采集的溫度均在0 ℃以上,并且上位機軟件可以實現(xiàn)溫度報警功能,,因此,,讀函數(shù)讀取RAM寄存器只需讀取前兩個字節(jié)。
(3)單片機和上位機軟件通信采用Modbus協(xié)議的RTU模式,,因此,,溫度轉(zhuǎn)換函數(shù)實現(xiàn)的功能就是將溫度低字節(jié)轉(zhuǎn)化為十六進制數(shù)據(jù),并保存到數(shù)組里,。
4 應用分析
空調(diào)檢測是在一個溫濕度變化復雜,、干擾源多的空調(diào)檢測房里進行,,空調(diào)檢測系統(tǒng)包括1#~6#工作站,每個工作站均配有5臺標準室內(nèi)機,。定頻,、變頻一拖一、一拖多等機型的室外機由生產(chǎn)線運送到各站臺,,電源線,、信號線等連接完畢后,即可掃描條碼進行檢測,。檢測過程中,,上位機軟件能實時檢測溫度、壓力等參數(shù),,檢測完畢,,系統(tǒng)自動存儲各種數(shù)據(jù),如果參數(shù)不合格,,則發(fā)出報警信號,。
基于空調(diào)檢測環(huán)境溫濕度變化復雜的現(xiàn)場狀況,數(shù)字溫度傳感器DS18B20需要采用不銹鋼外殼封裝,,以達到防水防潮目的,。DS18B20溫度采集點主要分布在室內(nèi)標準機的進風口、出風口和盤管,。測量壓縮機排氣管溫度時,,不銹鋼封裝的DS18B20需要嵌入固定到金屬夾里面,通過這樣測量方式得到的是排氣管表面溫度,,需要利用上位機軟件進行必要的數(shù)據(jù)處理,,才能得到排氣管的實際溫度。
上位機監(jiān)控軟件采用模塊化設(shè)計,,軟件分為數(shù)據(jù)通信,、數(shù)據(jù)采集、數(shù)據(jù)顯示,、數(shù)據(jù)管理,、用戶管理模塊,并將各模塊的實現(xiàn)代碼封裝成模塊和類模塊,。需要注意的是:為了方便對DS18B20數(shù)字溫度傳感器進行安裝,、測試和維護,監(jiān)控軟件應該有針對連接溫度傳感器的I/O端口,,以及I/O端口上的溫度傳感器的測試界面。上位機監(jiān)控界面溫度顯示區(qū)如圖5所示,,圖中顯示的是某機型在制冷期間某時刻溫度值,,圖中排氣溫度1和排氣溫度2為壓縮機管溫,。
采用DS18B20的溫度采集模塊已應用到某大型空調(diào)生產(chǎn)廠的空調(diào)檢測系統(tǒng)中,溫度采集的準確性和實時性均滿足系統(tǒng)的要求,。數(shù)字溫度傳感器DS18B20和單片機AT89S52組成的溫度采集模塊,,能同時滿足成本和技術(shù)的要求,對組建多點溫度采集網(wǎng)絡具有一定的借鑒意義,。
參考文獻
[1] 周月霞,,孫傳友.DS18B20硬件連接及軟件編程[J].傳感器世界,2001(12):25-29.
[2] 張海傳,,吳晨霞,,許東衛(wèi),等.低功耗軸承溫度無線檢測系統(tǒng)的設(shè)計[J].電子技術(shù)應用,,2009,,35(10).
[3] 何東坡,任貴波,,韓春鵬,,等.DS18B20在季凍土區(qū)公路路基溫度場測量中的應用[J].電子技術(shù)應用,2010,,36(4).
[4] 求是科技.單片機典型模塊設(shè)計實例導航[M].北京:人民郵電出版社,,2004.