張潔瓊,徐東明,付秀華,田野,邸旭
(1.長春理工大學(xué) 光電工程學(xué)院,長春 130022;2.東莞光陣顯示器制品有限公司,深圳 518000)
當(dāng)前,傳感器技術(shù)正朝著智能化、網(wǎng)絡(luò)化的方向發(fā)展,無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)正是適應(yīng)這種需求而出現(xiàn)的。它具有信息采集、數(shù)據(jù)處理和無線傳輸?shù)榷喾N功能[1,2,3]。本文論述了基于WSN的多點(diǎn)溫度采集系統(tǒng),由于具有聯(lián)線簡單、設(shè)置便捷的優(yōu)點(diǎn),該系統(tǒng)可以在很多場合廣泛應(yīng)用。
在環(huán)境溫度監(jiān)測系統(tǒng)中,由于存在較大局部溫度差異,采用單點(diǎn)測溫的方式不能準(zhǔn)確反映一個測溫環(huán)境的實(shí)際情況,因此只能采用多點(diǎn)溫度采集的方式來解決局部溫度差異的問題。但由于多點(diǎn)采集溫度數(shù)據(jù)時測溫點(diǎn)的布局較為分散,傳統(tǒng)的有線溫度測量方式存在布線復(fù)雜,給測溫環(huán)境中的人造成不方便、更改采溫點(diǎn)麻煩等缺點(diǎn),采用無線數(shù)據(jù)傳輸?shù)亩帱c(diǎn)溫度采集系統(tǒng)可以很好地解決上述問題。
本文詳細(xì)介紹了以AVR系列單片機(jī)Atmega16為主機(jī),以MCS—51系列單片機(jī)STC12C2052為子機(jī)的無線多點(diǎn)溫度采集系統(tǒng),給出了無線多點(diǎn)溫度采集系統(tǒng)的具體設(shè)計方案。
圖1 多點(diǎn)溫度采集系統(tǒng)原理框圖Fig.1 General diagram of the multipoint temperature acquisition system
無線多點(diǎn)溫度采集系統(tǒng)由上位機(jī)和16個下位機(jī)構(gòu)成,系統(tǒng)原理框圖如圖1所示。其中上位機(jī)用于完成溫度數(shù)據(jù)的收集管理、數(shù)據(jù)的顯示儲存以及人機(jī)交互等功能;下位機(jī)用于采集各點(diǎn)的實(shí)時溫度,并且在主機(jī)讀取時通過無線通信的方式將溫度數(shù)據(jù)發(fā)送給主機(jī)。
系統(tǒng)主要性能指標(biāo):
1.測溫點(diǎn)個數(shù):16個;2.測量溫度范圍:-55℃~125℃;3.溫度測量精度:0.5℃;4.持續(xù)工作時間:>72小時;5.數(shù)據(jù)采集時間間隔:10秒~3600秒可變;6.無線通信距離:>150米;7.具有16路溫度及工作狀態(tài)顯示功能;8.存儲器容量:2GB。
無線多點(diǎn)溫度采集系統(tǒng)的主機(jī)部分由Atmel公司的高性能單片機(jī)ATMEGA16、觸摸液晶顯示屏、SD存儲器卡、無線數(shù)傳模塊ZF01、串行切換接口和電源等部分組成。系統(tǒng)主機(jī)的主要功能是完成工作模式的設(shè)定,各子機(jī)數(shù)據(jù)的讀取、存儲,溫度顯示、溫度曲線顯示,溫度數(shù)據(jù)簡單處理及與PC機(jī)數(shù)據(jù)通訊等。下面對部分硬件電路予以介紹。
為了滿足系統(tǒng)工作時數(shù)據(jù)存儲量較大的需要,采用SD卡存儲溫度數(shù)據(jù)。SD卡具有使用方便靈活、存儲容量大等優(yōu)點(diǎn),在數(shù)據(jù)存儲與交換方面得到廣泛應(yīng)用。存儲系統(tǒng)采用南京沁恒公司生產(chǎn)的CH375通用接口芯片,它支持SD卡的讀寫,可以方便地將存儲的數(shù)據(jù)傳送到上位機(jī)。CH375通用接口芯片的特點(diǎn)如下:
1.采用并行接口完成數(shù)據(jù)傳輸,包含8位數(shù)據(jù)總線,采用4線控制:讀選通、寫選通、片選輸入、中斷輸出。
2.工作電壓低,支持5V電源電壓和3.3V電源電壓,支持低功耗模式。
3.內(nèi)置固件處理海量存儲設(shè)備的專用通訊協(xié)議,支持 Bulk-Only 傳輸協(xié)議和 SCSI、UFI、RBC或等效命令集的USB存儲設(shè)備(包括USB硬盤/USB 閃存盤/U盤)[4]。
CH375接口芯片的硬件電路如圖2所示:
圖2 CH375的硬件電路圖Fig.2 Hardware circuit diagram of CH375
Atmega16單片機(jī)只有一個串行通訊口,但系統(tǒng)連接的無線通信模塊、觸摸屏及PC通信都需要使用串行口通訊,為此系統(tǒng)設(shè)計了由CD4052構(gòu)成的分時選通串行通信電路,串口分時選通電路如圖3所示,該電路將串行連接設(shè)備增加為4個,其中包括2個RS-232電平接口,1個TTL電平接口和1個RS-485接口。
為了使連接到串口上的外部設(shè)備在該口沒有選通的情況下不產(chǎn)生影響,需要使未選通的串口處于邏輯0狀態(tài)。為此,串口分時選通電路在CD4052的輸出端增加了4個上拉電阻。系統(tǒng)還可以通過RS-485通信接口輕松實(shí)現(xiàn)上位機(jī)組網(wǎng)功能。
上位機(jī)主要用于完成數(shù)據(jù)的接收、存儲、處理、顯示等功能,采用迪文觸摸顯示屏可以方便的實(shí)現(xiàn)人機(jī)交互,提高系統(tǒng)性能,便于用戶進(jìn)行觀察操作。其具體功能如下:
1.實(shí)時溫度顯示功能:在觸摸液晶屏上可以同時顯示16個測溫點(diǎn)的溫度變化情況,并實(shí)時刷新溫度數(shù)據(jù),便于用戶觀察操作,用戶可以根據(jù)需要顯示單個測溫點(diǎn)的溫度變化曲線。
2.采集點(diǎn)位置顯示功能:用VB編寫軟件,用戶根據(jù)所處的測溫環(huán)境,輸入采集點(diǎn)的位置,通過串口寫入觸摸屏內(nèi),并給采集點(diǎn)編寫序列號,如果需要修改采溫點(diǎn)的位置可以利用軟件重新寫入。當(dāng)某個采集點(diǎn)不能正常工作時,上位機(jī)會報警,并顯示相應(yīng)的采集點(diǎn)位置,便于查找維修。
3.實(shí)時監(jiān)測功能:用戶可以根據(jù)需要設(shè)定溫度測量的上下界限,將環(huán)境溫度限定在所要求的監(jiān)測范圍內(nèi),當(dāng)所測溫度超出設(shè)定的范圍時,系統(tǒng)發(fā)出報警信號[3]。
4.求平均值功能:在系統(tǒng)的主顯示界面上,用戶可以根據(jù)需要任意選中某幾個采溫點(diǎn),監(jiān)測其平均溫度,并將不同時刻的平均溫度值以曲線形式顯示。上位機(jī)可以根據(jù)不同時刻的溫度均值,做平穩(wěn)分析,精確監(jiān)測環(huán)境溫度。
圖3 串口分時選通電路Fig.3 Serial time-sharing electricity choose way
無線多點(diǎn)溫度采集系統(tǒng)的下位機(jī)終端由16個從機(jī)組成,每個從機(jī)的硬件結(jié)構(gòu)設(shè)計完全相同,保證了下位機(jī)硬件的一致性。下位機(jī)由控制器芯片STC12C2052、無線數(shù)傳模塊ZF01、數(shù)字溫度傳感器DS18B20、太陽能電池及鋰電池等組成。
為了能夠使主機(jī)和16個從機(jī)分時進(jìn)行數(shù)據(jù)傳輸,必須對下位機(jī)進(jìn)行編碼,下位機(jī)地址碼的設(shè)定有軟件與硬件兩種方法。
軟件方法是通過修改軟件,給下位機(jī)設(shè)定一個地址碼,每一個下位機(jī)都有一個地址,軟件設(shè)計的優(yōu)點(diǎn)是沒有硬件開銷,可為從機(jī)CPU節(jié)省I/O口線,同時可以不受硬件限制隨意增加下位機(jī)的個數(shù)。但是由于每一個下位機(jī)的軟件各不相同,因此存在互換性差,不利于大批量生產(chǎn)的缺點(diǎn)。
硬件方法是在設(shè)計硬件電路時,加入撥碼開關(guān),通過撥碼設(shè)定下位機(jī)的地址。每一個下位機(jī)都有一個獨(dú)立的撥碼,即具有唯一的地址。它的優(yōu)點(diǎn)是硬件的外觀可以通過撥碼作區(qū)分,不宜搞混;上電時下位機(jī)自動取地址碼,使用方便靈活,便于維護(hù),同時省去了修改軟件的麻煩。它的缺點(diǎn)是設(shè)置撥碼開關(guān),占用從機(jī)CPU的I/O口線(撥碼開關(guān)的位數(shù)受CPU的I/O口線的限制),同時限制了下位機(jī)的個數(shù),如使用4位撥碼開關(guān),則下位機(jī)的個數(shù)最多為16個。
綜上所述,用戶可以根據(jù)需要選擇以上兩種方法設(shè)定下位機(jī)的地址碼。本系統(tǒng)最終采用硬件方法,這樣就保證了下位機(jī)軟件與硬件的一致性,便于維護(hù)。
由于下位機(jī)采用電池供電,為了使下位機(jī)有大于72小時的工作時間,有效地利用電池電能。下位機(jī)采用兩種節(jié)能模式:無線數(shù)傳模塊ZF01休眠模式和太陽能充電模式。
1.無線數(shù)傳模塊ZF01休眠模式:電路圖如圖4所示,在下位機(jī)單元中,無線數(shù)傳模塊是功耗相對最大的設(shè)備,當(dāng)上位機(jī)與下位機(jī)需要數(shù)據(jù)通信時,使P10為低電平,三極管TR1導(dǎo)通,無線數(shù)傳ZF01模塊上電工作;需要進(jìn)入休眠模式時,使P10輸出高電平,三極管TR1截止,ZF01模塊處于斷電狀態(tài),為下位機(jī)節(jié)省電能。
圖4 節(jié)能電路Fig.4 Energy-saving circuit
2.太陽能充電模式:下位機(jī)采用鋰電池與太陽能電池配合供電。當(dāng)所處環(huán)境中有太陽光照射時,太陽能電池自動地給鋰電池充電。實(shí)驗(yàn)證明,在較強(qiáng)日光照射時,采用100mm*40mm的太陽能電池給鋰電池充電,最大輸出電壓為6V,最大輸出電流為75mA,充電效果十分明顯;無光照條件下,采用3000mA/h的鋰電池系統(tǒng)可以連續(xù)工作72小時。
從機(jī)安裝在各個測溫點(diǎn),測量該點(diǎn)的溫度值,在主機(jī)讀取時,把溫度數(shù)據(jù)通過無線通信方式傳送到上位機(jī)。為提高測溫精度,在下位機(jī)測溫時,采用平均值濾波的方法,即每采集10次溫度數(shù)據(jù)為一組,然后求平均值,作為當(dāng)前溫度數(shù)據(jù),并將其保存到數(shù)據(jù)緩存區(qū)中。
用戶可以根據(jù)需要隨時更改下位機(jī)個數(shù),上位機(jī)通過點(diǎn)名查詢方式向下位機(jī)發(fā)送地址碼,和設(shè)定地址一致,下位機(jī)將向上位機(jī)發(fā)送采集到的溫度數(shù)據(jù);如果驗(yàn)證不通過,則不做任何處理回到繼續(xù)接收狀態(tài)??紤]到溫度采集時間不會很快,點(diǎn)過名之后再次點(diǎn)到需要一段時間,軟件上、下位機(jī)完成一次通信后立即將ZF01無線數(shù)傳模塊關(guān)閉,使其進(jìn)入休眠模式,在固定時間間隔前1S自動喚醒,等待下一次收發(fā)。
整個系統(tǒng)軟件包括兩個部分:上位機(jī)軟件和下位機(jī)軟件。
1.上位機(jī)軟件:上位機(jī)軟件重點(diǎn)是觸摸屏操作,按系統(tǒng)設(shè)計要求,上位機(jī)每間隔固定時間(如10秒)與下位機(jī)通信一次,與下位機(jī)通信完成后保證選通PC機(jī)等待PC的命令,因此,如果和每臺從機(jī)采樣間隔是10秒,在通信波特率為19200bps時,和從機(jī)的通信時間為1秒左右,在每個10秒內(nèi)90%的時間在選通PC機(jī)等待PC的命令,因此PC的數(shù)據(jù)發(fā)送請求將得到充分的響應(yīng)。每完成一次巡檢,把數(shù)據(jù)送到觸摸屏進(jìn)行顯示,由于與觸摸屏通信采用115200bps的波特率,因此與觸摸屏的數(shù)據(jù)按200個字節(jié)計算,將在20ms以內(nèi)完成。上位機(jī)軟件流程如圖5所示。
2.下位機(jī)軟件:主要部分是DS18B20數(shù)字溫度傳感器的初始化、地址接收校驗(yàn)與數(shù)據(jù)發(fā)送。下位機(jī)軟件流程如圖6所示。
圖5 上位機(jī)系統(tǒng)流程圖Fig.5 PC system flow chart
圖6 下位機(jī)軟件流程圖Fig.6 The software flow chart of lower computer
系統(tǒng)采用的是一對多無線通信方式,上位機(jī)收發(fā)模塊在可靠通信范圍內(nèi)分別與每個下位機(jī)通信。上位機(jī)與每個下位機(jī)都有唯一的地址,避免通信失誤。在通信過程中必須明確收發(fā)方的地址,因此系統(tǒng)采用通信協(xié)議,具體如表1所示。
表1 系統(tǒng)通信協(xié)議格式Tab.1 Format of system communication protocol
Head為數(shù)據(jù)包頭,Add為接收端地址,接下來根據(jù)數(shù)據(jù)類型(命令/數(shù)據(jù))決定發(fā)送的數(shù)據(jù)內(nèi)容,CRC 為校驗(yàn)碼,最后是數(shù)據(jù)包尾[5]。系統(tǒng)設(shè)置時,若用戶設(shè)置采溫時間為1秒、時間間隔為10秒,則在10秒內(nèi)上位機(jī)與下位機(jī)通訊一次,此時一幀數(shù)據(jù)包括10個有效數(shù)據(jù),即一秒一個有效數(shù)據(jù)。
在試驗(yàn)室條件下,本系統(tǒng)能準(zhǔn)確顯示當(dāng)前的實(shí)時溫度,并把記錄的溫度數(shù)據(jù)繪制成曲線顯示在觸摸屏上,方便比較觀察。在記錄好溫度數(shù)據(jù)后,能夠?qū)囟葦?shù)據(jù)按日期保存起來,以便查詢、統(tǒng)計。系統(tǒng)運(yùn)行穩(wěn)定,在空曠處傳輸距離可以達(dá)到150米以上。本系統(tǒng)可以根據(jù)需要方便的擴(kuò)展通信節(jié)點(diǎn)的數(shù)量,實(shí)現(xiàn)較大范圍的溫度監(jiān)測,能夠用于諸多工業(yè)及民用領(lǐng)域。
[1]盛超華,陳章龍.無線傳感器網(wǎng)絡(luò)及應(yīng)用[J].微型電腦應(yīng)用,2005,21(6):10-13.
[2]李國華,沈樹群.自組織無線傳感器網(wǎng)絡(luò)的研究[J].數(shù)據(jù)通信,2004(4):1-4.
[3]譚量,胡冀.基于nRF9E5的多點(diǎn)無線溫度采集系統(tǒng)設(shè)計[J].杭州電子科技大學(xué)學(xué)報,2006(4):30-31.
[4]楊容.ch375[EB-OL].http://www.pudn.com/downloads33/so-urcecode/embed/detail106260.html,2005-08-06.
[5]董寧,楊昭,馮進(jìn)良.多點(diǎn)無線溫度采集系統(tǒng)設(shè)計[J].長春理工大學(xué)學(xué)報:自然科學(xué)版,2010,32(4):118-119.