戴 明,孟召議
(1.無錫商業(yè)職業(yè)技術(shù)學(xué)院,江蘇 無錫214153;2.江蘇省無線傳感系統(tǒng)應(yīng)用工程技術(shù)研究開發(fā)中心,江蘇 無錫214153)
溫度對(duì)于人類生活環(huán)境有極大的意義,在工業(yè)行業(yè)中,幾乎80%的工業(yè)生產(chǎn)都要考慮溫度因素的影響.目前隨著“互聯(lián)網(wǎng) +”的快速發(fā)展,基于工業(yè)網(wǎng)絡(luò)的智能溫控系統(tǒng)的應(yīng)用越來越多.本系統(tǒng)利用ZigBee無線網(wǎng)絡(luò),實(shí)現(xiàn)工業(yè)現(xiàn)場(chǎng)溫度的無線傳輸,解決了布線的麻煩.上位機(jī)采用Lab VIEW軟件設(shè)計(jì),實(shí)現(xiàn)了溫度數(shù)據(jù)的遠(yuǎn)程顯示和查詢,便于現(xiàn)場(chǎng)管理.
本系統(tǒng)由3部分組成:溫度數(shù)據(jù)采集電路;ZigBee無線傳輸電路;顯示電路.在設(shè)計(jì)采集溫度數(shù)據(jù)電路時(shí),將DS18B 20的數(shù)據(jù)端連接到單片機(jī)STC89C52RC的P 1.3引腳,單片機(jī)將接收到的數(shù)字溫度進(jìn)行處理,然后把實(shí)時(shí)溫度數(shù)據(jù)顯示在本地LCD 1602液晶顯示器上.另外,單片機(jī)STC89C52RC同時(shí)將溫度數(shù)據(jù)通過串口傳輸送到芯片MAX232上實(shí)現(xiàn)電平轉(zhuǎn)換,利用RS 232串口發(fā)送給已經(jīng)配置好的ZigBee終端節(jié)點(diǎn),再通過ZigBee網(wǎng)絡(luò)將數(shù)據(jù)以無線方式傳輸給ZigBee中心節(jié)點(diǎn),中心節(jié)點(diǎn)與上位機(jī)連接,最終上位機(jī)采用Lab VIEW軟件自帶的VISA驅(qū)動(dòng)器采集和處理串行數(shù)據(jù),并實(shí)現(xiàn)溫度的顯示、保存和調(diào)用.本系統(tǒng)結(jié)構(gòu)圖如圖1所示.
圖1 系統(tǒng)結(jié)構(gòu)圖
2.1.1 DS18B 20溫度傳感器簡(jiǎn)介
DS18B 20是一種數(shù)字溫度傳感器,它可以直接讀出被測(cè)量物體的溫度,進(jìn)而通過簡(jiǎn)單編程讀取出對(duì)應(yīng)的數(shù)字量.DS18B 20的性能特點(diǎn)如下[1]:
1)獨(dú)特的單線接口方式:DS18B 20與單片機(jī)連接時(shí),只需要將其數(shù)據(jù)端連接到單片機(jī)的輸入端即可.
2)在使用中不需要任何外圍元件.
3)可用數(shù)據(jù)線供電,電壓范圍:+3.0V—+5.5V.
4)測(cè)溫范圍:-55—+125℃,固有測(cè)溫分辨率為0.5℃.
DS18B 20與單片機(jī)的引腳連接,如圖2所示:
圖2 DS18B20與單片機(jī)的引腳連接
2.1.2 DS18B20的二進(jìn)制溫度數(shù)據(jù)
DS18B20溫度傳感器可讀出溫度數(shù)值,其對(duì)應(yīng)的二進(jìn)制數(shù)據(jù)位有11位,再加上5位符號(hào)位,共組成了16位的數(shù)據(jù)形式,其溫度值格式表,如表1所示.DS18B20測(cè)溫范圍為:-55—+125℃.當(dāng)溫度在0—+125℃之間時(shí),溫度值格式表中的高5位均等于0,用溫度值除以0.0625得到一個(gè)十進(jìn)制數(shù)值,將該十進(jìn)制進(jìn)行二進(jìn)制轉(zhuǎn)換即得到溫度對(duì)應(yīng)的11位數(shù)據(jù),加上5位符號(hào)位即得到了16位的溫度數(shù)據(jù);當(dāng)溫度在-55—0℃之間時(shí),溫度值格式表中的高5位均等于1,用溫度值除以0.0625得到一個(gè)十進(jìn)制數(shù)值,將該十進(jìn)制進(jìn)行二進(jìn)制轉(zhuǎn)換,再將該二進(jìn)制減1取反,即得到溫度對(duì)應(yīng)的11位數(shù)據(jù),加上5位符號(hào)位即得到了16位的溫度數(shù)據(jù).部分溫度與二進(jìn)制數(shù)字輸出的轉(zhuǎn)換關(guān)系,如表2所示.
表1 DS18B20溫度值格式表
1)+125℃的數(shù)字輸出轉(zhuǎn)換過程:
2)-55℃的數(shù)字輸出轉(zhuǎn)換過程:
表2 溫度與二進(jìn)制數(shù)字輸出的轉(zhuǎn)換關(guān)系
2.2.1 單片機(jī)STC89C52RC簡(jiǎn)介
本系統(tǒng)中使用的STC89C52RC是一款小型單片機(jī),如圖3所示.其最主要的特點(diǎn)是高速,超低功耗,有很強(qiáng)的抗干擾能力.它的指令集和輸出引腳都與MCS-51兼容[2],共有40個(gè)引腳,8k字節(jié)的Flash,512字節(jié)的RAM,32位I/O接口.本系統(tǒng)通過單片機(jī)的P 1.3引腳采集溫度數(shù)據(jù),采集的溫度數(shù)據(jù)及相關(guān)信息通過液晶LCD1602進(jìn)行顯示,由單片機(jī)的引腳P 2.4-2.6及P 0.0-P 0.7連接至LCD 1602,串口數(shù)據(jù)通過引腳P 3.1進(jìn)行發(fā)送.
圖3 單片機(jī)STC89C52RC測(cè)溫原理圖
2.2.2 串口通信
1)串行通信協(xié)議
串行通信協(xié)議是指通信的雙方為了保證通信成功而制定的一系列約定,其主要內(nèi)容包含數(shù)據(jù)格式定義和數(shù)據(jù)位定義等.51系列單片機(jī)串行數(shù)據(jù)的發(fā)送與接收采用異步通信方式,其數(shù)據(jù)是一幀一幀進(jìn)行傳送的,每一幀的數(shù)據(jù)格式如圖4所示.
圖4 串行異步通信的數(shù)據(jù)格式
從圖4可以看出,完整的一幀數(shù)據(jù)由4部分組成,包括起始位、數(shù)據(jù)位、校驗(yàn)位、停止位[3].
2)串行口工作模式及波特率設(shè)置
波特率是串行通信中的一個(gè)重要指標(biāo),它反映了對(duì)傳輸通道的要求,本系統(tǒng)波特率設(shè)置為9600 b/s.
波特率的取值方法如下:
將串行口控制寄存器SCON中的SM0SM1設(shè)為01,此時(shí)串行通信以方式1進(jìn)行工作,串行通信的波特率求解公式如下:
“定時(shí)器/計(jì)數(shù)器1的溢出率”是指單位時(shí)間(秒)內(nèi)定時(shí)器/計(jì)數(shù)器1回0溢出的次數(shù),求解公式如下:
單片機(jī)串口常用波特率的參數(shù)設(shè)置,如表3所示.當(dāng)波特率為9600 b/s時(shí),串行口工作方式采用方式1,晶振只能選取11.0592MHz,其中TMOD=0X20,初值TH1=0XFD=253.
表3 串行口常用波特率
根據(jù)要求,單片機(jī)串口初始化程序如下:
ZigBee是IEEE 802.15.4標(biāo)準(zhǔn)協(xié)議之一,是一種低功耗的局域網(wǎng)協(xié)議.ZigBee也是一種短距離、低功耗的無線通信技術(shù),其網(wǎng)絡(luò)節(jié)點(diǎn)容量達(dá)65 535個(gè),具有非常強(qiáng)大的組網(wǎng)優(yōu)勢(shì).ZigBee網(wǎng)絡(luò)有3種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),分別為星型、樹狀型和網(wǎng)狀型,如圖5所示.其按照網(wǎng)絡(luò)節(jié)點(diǎn)功能劃分,可分為有協(xié)調(diào)器節(jié)點(diǎn)(中心節(jié)點(diǎn))、路由器節(jié)點(diǎn)和終端節(jié)點(diǎn)[4].本系統(tǒng)采用星型網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)絡(luò)內(nèi)通過3個(gè)終端節(jié)點(diǎn)采集本地溫度數(shù)據(jù),利用廣播方式將溫度數(shù)據(jù)發(fā)送給中心節(jié)點(diǎn).
圖5 ZIGBEE的3種網(wǎng)絡(luò)拓?fù)淠J?/p>
Lab VIEW軟件是由NI公司研發(fā)推出的一種程序開發(fā)環(huán)境[5].它和C語言及BASIC語言的開發(fā)環(huán)境十分的相似,但Lab VIEW軟件是用圖形語言來編寫程序,生成的程序以框圖的形式表現(xiàn)出來,這一點(diǎn)與其他計(jì)算機(jī)語言有明顯的區(qū)別.Lab VIEW的函數(shù)庫內(nèi)包括數(shù)據(jù)采集、GPIB、串口控制等一系列的函數(shù)[6],如圖6所示.本系統(tǒng)的Lab VIEW界面實(shí)現(xiàn)了溫度的實(shí)時(shí)顯示,同時(shí)還利用數(shù)據(jù)庫將歷史溫度數(shù)據(jù)進(jìn)行保存,可以按時(shí)間和節(jié)點(diǎn)進(jìn)行查詢,如圖7所示.
圖6 Lab VIEW顯示界面
圖7 數(shù)據(jù)庫操作面板
本系統(tǒng)可以實(shí)現(xiàn)3路終端節(jié)點(diǎn)的溫度數(shù)據(jù)采集及顯示.圖8是單節(jié)點(diǎn)溫度數(shù)據(jù)的測(cè)量圖,圖8左邊為單節(jié)點(diǎn)測(cè)溫的實(shí)物,圖8右邊為串口調(diào)試助手顯示其實(shí)時(shí)溫度;圖9是多節(jié)點(diǎn)溫度的無線測(cè)量圖,圖9右邊為各終端節(jié)點(diǎn)及中心節(jié)點(diǎn)實(shí)物,圖9左邊為串口調(diào)試助手顯示多節(jié)溫度值.系統(tǒng)測(cè)試結(jié)果,如表4所示.
表4 系統(tǒng)測(cè)試結(jié)果
圖8 單節(jié)點(diǎn)溫度數(shù)據(jù)的測(cè)量
圖9 多節(jié)點(diǎn)溫度的無線測(cè)量
本文介紹了基于ZigBee的無線測(cè)溫采集傳輸系統(tǒng)設(shè)計(jì)過程.ZigBee技術(shù)組網(wǎng)方便、網(wǎng)絡(luò)容量大,由Zig-Bee中心節(jié)點(diǎn)接收到的各終端節(jié)點(diǎn)溫度可以通過Lab VIEW軟件進(jìn)行顯示和存儲(chǔ),系統(tǒng)實(shí)時(shí)性較好,顯示界面易讀,數(shù)據(jù)可保存,調(diào)取方便,有較好的應(yīng)用價(jià)值.