《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模拟设计 > 设计应用 > 基于无线通信的温度监测系统的设计
基于无线通信的温度监测系统的设计
摘要: 通过对单片机技术和无线传感器网络技术的研究,介绍了一种具有分层结构的无线通信的温度监测系统, 并设计了基于这种分层结构的通信协议,给出了系统的硬件结构和软件设计。应用结果表明,系统可以广泛应用在需要温度监测的领域。
關(guān)鍵詞: RF|微波 监测 温度 无线通信
Abstract:
Key words :

 1 引言

  溫度與人們的生產(chǎn)生活密切相關(guān),需要對溫度監(jiān)測的場合非常多。傳統(tǒng)的有線測溫方式存在著布線復(fù)雜,線路容易老化等問題。無線測溫技術(shù)與有線測溫技術(shù)相比,有成本低、攜帶方便、搭建網(wǎng)絡(luò)簡單快捷等特點,特別是在有線網(wǎng)絡(luò)不通暢或由于現(xiàn)場環(huán)境因素的限制不便架設(shè)線路的情況下,使用無線通信技術(shù)進(jìn)行溫度監(jiān)測顯得更加實用、快捷。

  無線傳感器網(wǎng)絡(luò)技術(shù)在21世紀(jì)有了很大的發(fā)展,典型的傳感器網(wǎng)絡(luò)是指由大量同構(gòu)的、微小的、資源受限的、基本不動的傳感器節(jié)點隨機(jī)分布在被測量區(qū)域形成的大規(guī)模的、自組織的、多跳的、未分割的網(wǎng)絡(luò)。

  而在一些場合我們并不需要構(gòu)建大規(guī)模的、自組織的網(wǎng)絡(luò),結(jié)合無線傳感器網(wǎng)絡(luò)的特點,本文提出了一種具有分層結(jié)構(gòu)的無線通信的溫度監(jiān)測系統(tǒng),并給出了這種分層結(jié)構(gòu)的通信協(xié)議,該系統(tǒng)吸取了無線傳感器網(wǎng)絡(luò)的特點同時又不需要考慮傳感器網(wǎng)絡(luò)的自組織建網(wǎng),降低了功耗。

  2 系統(tǒng)的組成結(jié)構(gòu)

  參照無線傳感器網(wǎng)絡(luò)中的分簇結(jié)構(gòu),以降低功耗為目的,本文提出了具有兩層結(jié)構(gòu)的基于無線通信的溫度監(jiān)測系統(tǒng),系統(tǒng)由大量的無線傳感器節(jié)點、二級節(jié)點和一個主節(jié)點組成。系統(tǒng)結(jié)構(gòu)如圖1所示,主節(jié)點M相當(dāng)于無線傳感器網(wǎng)絡(luò)中的一級簇首,同時又是主控節(jié)點。1、2、……、N相當(dāng)于無線傳感器網(wǎng)絡(luò)中的二級簇首,文中稱為二級節(jié)點,A1、A2、……、Am為二級節(jié)點1的子節(jié)點, B1、B2、……、Bm為二級節(jié)點2的子節(jié)點, N1、N2等為二級節(jié)點N的子節(jié)點等等。分布在傳感器網(wǎng)絡(luò)中的簇首節(jié)點主要用于接收傳感器節(jié)點的數(shù)據(jù)上報,并將其進(jìn)行融合處理。本系統(tǒng)的主控節(jié)點M沒有能量限制,主要負(fù)責(zé)收集和協(xié)調(diào)各個子節(jié)點的數(shù)據(jù),并將其處理后上傳給監(jiān)控主機(jī)。二級節(jié)點主要負(fù)責(zé)收集各個傳感器子節(jié)點的數(shù)據(jù),并且負(fù)責(zé)接收和下發(fā)主控節(jié)點的命令,在整個結(jié)構(gòu)起中轉(zhuǎn)的作用。傳感器子節(jié)點帶有射頻收發(fā)器主要用于溫度的采集和傳輸。為了節(jié)約能耗,底層傳感器節(jié)點工作在睡眠- 偵聽模式,只有收到二級節(jié)點的數(shù)據(jù)請求命令才傳送數(shù)據(jù)。

系統(tǒng)結(jié)構(gòu)

圖1 系統(tǒng)結(jié)構(gòu)

  主控節(jié)點通過串口與監(jiān)控計算機(jī)通信,各二級節(jié)點要放到與主控節(jié)點距離較近的位置,傳感器子節(jié)點隨機(jī)放置。本系統(tǒng)射頻傳輸成本低,功耗小,采用兩層結(jié)構(gòu)的通信方案,能夠滿足較遠(yuǎn)距離的溫度監(jiān)測。

  3 系統(tǒng)硬件設(shè)計

  3.1 傳感器節(jié)點的硬件設(shè)計

  一個完整的傳感器節(jié)點需要有小尺寸、低功耗,短距離通信的特點,因此一個傳感器節(jié)點通常由傳感器模塊、處理器模塊、無線通信模塊組成。本系統(tǒng)的傳感器節(jié)點硬件結(jié)構(gòu)如圖2所示。

傳感器節(jié)點硬件結(jié)構(gòu)圖

圖2 傳感器節(jié)點硬件結(jié)構(gòu)圖

  溫度傳感器采用DALLAS公司生產(chǎn)的DS18B20,DS18B20具有獨特的單總線接口,只需一個接口引腳即可通信,并且多個DS18B20可以存在于同一條單線總線上,測量范圍為- 55~125 ℃,以9位數(shù)字值方式讀出溫度,需要的外圍器件很少,體積小,滿足傳感器節(jié)點的要求。

  單片機(jī)ATmega16L是Atmel公司的基于AVR的增強(qiáng)型R ISC結(jié)構(gòu)的極低功耗的8位CMOS微控制器。

  Atmega16L數(shù)據(jù)吞吐率高達(dá)1M IPS/MHz,從而緩解了系統(tǒng)在功耗和處理速度之間的矛盾,有六種睡眠模式,并且在1MHz, 3V, 25 ℃時的功耗在正常模式是111mA,在空閑模式是0135mA,適合傳感器節(jié)點的低功耗要求。

  無線通信芯片采用Nordic公司的NRF905無線收發(fā)芯片。NRF905是一款工作在433 /868 /915頻段上的可編程的單片射頻收發(fā)器,體積小,外圍電路簡單,集成度高。NRF905可以自動完成處理字頭和CRC (循環(huán)冗余碼校驗)的工作,可由片內(nèi)硬件自動完成曼徹斯特編碼、解碼,使用SP I接口與微控制器通信。其功耗非常低,以- 10 dBm的輸出功率發(fā)射時電流只有11 mA,在接收模式時電流為1215 mA。最主要的特點是可以通過單片機(jī)編程給每片NRF905分配地址,地址寬度最多可達(dá)4字節(jié)。

  傳感器節(jié)點主要負(fù)責(zé)溫度的采集和無線發(fā)送,傳感器DS18B20將采集的數(shù)據(jù)發(fā)送給Atmega16L, At2mega16將數(shù)據(jù)通過SP I口發(fā)送給NRF905,再由NRF905將數(shù)據(jù)打包后發(fā)送給二級節(jié)點。

  3.2 主控節(jié)點和二級節(jié)點硬件設(shè)計

  主控節(jié)點和二級節(jié)點的硬件結(jié)構(gòu)如圖3所示,處理器都是采用了低功耗的單片機(jī)ATmenga16L,發(fā)射芯片采用Nordic公司的NRF905無線收發(fā)芯片,有區(qū)別的是主控節(jié)點通過RS232與監(jiān)控計算機(jī)通信,主控節(jié)點收集的來自各個傳感器節(jié)點的數(shù)據(jù)經(jīng)簡單處理后傳送給監(jiān)控計算機(jī),監(jiān)控計算機(jī)負(fù)責(zé)數(shù)據(jù)的保存和溫度值的顯示。

二級節(jié)點和主控節(jié)點硬件結(jié)構(gòu)

圖3 二級節(jié)點和主控節(jié)點硬件結(jié)構(gòu)

  4 通信協(xié)議的設(shè)計

  系統(tǒng)采用如圖1所示的分層結(jié)構(gòu),主節(jié)點采用數(shù)據(jù)請求工作方式,按順序?qū)Χ壒?jié)點進(jìn)行數(shù)據(jù)請求,二級節(jié)點收到數(shù)據(jù)請求命令后,將采集的數(shù)據(jù)交給主節(jié)點統(tǒng)一處理,主節(jié)點把帶有傳感器地址的溫度數(shù)據(jù)傳送給上位機(jī)。NRF905每次只能收發(fā)32字節(jié)數(shù)據(jù),因此底層傳感器節(jié)點并不是無限多,根據(jù)DS18B20的通信協(xié)議,DS18B20采集的溫度數(shù)據(jù)是用兩個字節(jié)表示,而每個傳感器有唯一的1字節(jié)地址,這樣每個傳感器傳送給二級節(jié)點的數(shù)據(jù)都是三個字節(jié),即兩個字節(jié)的溫度數(shù)據(jù)和一個字節(jié)的地址數(shù)據(jù)。二級節(jié)點一次最多傳送32字節(jié)數(shù)據(jù),為了保證數(shù)據(jù)傳送的穩(wěn)定性, 該系統(tǒng)每個二級節(jié)點對應(yīng)10個底層傳感器節(jié)點,共構(gòu)建了20個二級節(jié)點,系統(tǒng)總的底層傳感器節(jié)點的數(shù)目是200個。本系統(tǒng)的所有節(jié)點的通訊都是同一信道,當(dāng)出現(xiàn)多個節(jié)點同時傳送數(shù)據(jù)的情況時,會形成相互間的干擾導(dǎo)致數(shù)據(jù)無法正確的接收,因此需要一種機(jī)制來合理的分配信道資源,減少數(shù)據(jù)沖突?;贜RF905通訊的特點,即兩個NRF905模塊必需具有相同的頻段和地址才能通訊成功,設(shè)計了通信協(xié)議,通信協(xié)議的算法如下:

  (1)主節(jié)點M采用輪詢數(shù)據(jù)請求工作方式,按順序?qū)Χ壒?jié)點進(jìn)行數(shù)據(jù)請求,主節(jié)點對每一個二級節(jié)點發(fā)送完請求數(shù)據(jù)命令后都會進(jìn)入信道偵聽狀態(tài),一定的時間間隙T內(nèi)主節(jié)點一直處于偵聽信道狀態(tài)。

  (2)二級節(jié)點偵聽信道,接收來自主節(jié)點的數(shù)據(jù)請求命令, 收到數(shù)據(jù)請求命令后結(jié)束偵聽,發(fā)送應(yīng)答信息。

  (3)二級節(jié)點采用類似主節(jié)點M的工作方式,按順序?qū)鞲衅鞴?jié)點進(jìn)行數(shù)據(jù)請求,二級節(jié)點對每一個傳感器節(jié)點發(fā)送完請求數(shù)據(jù)命令后都會進(jìn)入信道偵聽狀態(tài),一定的時間間隙Tm內(nèi)二級節(jié)點一直處于偵聽信道狀態(tài)。

  (4)傳感器節(jié)點偵聽信道,接收來自二級節(jié)點的數(shù)據(jù)請求命令,收到命令后,結(jié)束偵聽,發(fā)送溫度數(shù)據(jù)信息。

  (5)二級節(jié)點與傳感器節(jié)點進(jìn)行數(shù)據(jù)傳輸,接收數(shù)據(jù)包。

  (6)主節(jié)點與二級節(jié)點進(jìn)行數(shù)據(jù)傳輸,接收來自二級節(jié)點的數(shù)據(jù)包。

  (7)主節(jié)點與監(jiān)控主機(jī)通信,傳送各個傳感器節(jié)點采集的溫度數(shù)據(jù)和傳感器地址。

  數(shù)據(jù)在系統(tǒng)中無線傳輸必須有統(tǒng)一的格式,數(shù)據(jù)包格式如下:



  其中,前導(dǎo)碼由器件自動添加,占用1個字節(jié);目的地址是表示數(shù)據(jù)包要到達(dá)的目的地址,占用1個字節(jié);數(shù)據(jù)屬性用來說明該數(shù)據(jù)包是數(shù)據(jù)包還是命令包,占用一個字節(jié);有效數(shù)據(jù)包括節(jié)點的采集信息和地址信息可設(shè)定最大為32個字節(jié); CRC校驗系統(tǒng)自動完成,本系統(tǒng)采用16位CRC校驗占用2個字節(jié)。

  主節(jié)點發(fā)出的通信數(shù)據(jù)包格式如下:


 

  其中,目的地址是二級節(jié)點的地址,命令字是指請求數(shù)據(jù)命令,用0AH代表數(shù)據(jù)請求命令,占用一個字節(jié),有效數(shù)據(jù)長度為空。

  二級節(jié)點的應(yīng)答數(shù)據(jù)包格式如下:


 

  其中目的地址是主節(jié)點的地址,應(yīng)答字用0BH表示,占用1字節(jié),有效數(shù)據(jù)長度為空。

  二級節(jié)點發(fā)出的帶有采集點數(shù)據(jù)的包格式如下:


  其中目的地址是主節(jié)點的地址,數(shù)據(jù)標(biāo)志用0CH表示,占用一個字節(jié),有效數(shù)據(jù)長度包括傳感器節(jié)點的溫度數(shù)據(jù)和傳感器地址數(shù)據(jù),占用30個字節(jié)。

  系統(tǒng)中所有的節(jié)點都工作在同一信道,同一時刻只能有兩個節(jié)點通訊,并且只有在主節(jié)點對某一節(jié)點有數(shù)據(jù)要求時通信才會連接,其他時間雙方都處于未連接狀態(tài),通訊協(xié)議的實現(xiàn)有效避免了數(shù)據(jù)的沖突,降圖4 主節(jié)點程序流程圖低了系統(tǒng)功耗。

主節(jié)點程序流程圖

圖4 主節(jié)點程序流程圖

  5 軟件設(shè)計

  遵循通信協(xié)議,本系統(tǒng)的軟件程序主要包括主節(jié)點的程序設(shè)計,二級節(jié)點的程序設(shè)計和底層傳感器的程序設(shè)計。主節(jié)點程序負(fù)責(zé)整個系統(tǒng)的協(xié)調(diào)工作,系統(tǒng)的數(shù)據(jù)請求命令都是由主控節(jié)點發(fā)出,數(shù)據(jù)的匯總最后也都是有主控節(jié)點完成。二級節(jié)點程序在整個系統(tǒng)起中轉(zhuǎn)作用,底層傳感器程序只負(fù)責(zé)數(shù)據(jù)的采集和發(fā)射。遵循通信協(xié)議,在進(jìn)行各節(jié)點的程序設(shè)計時系統(tǒng)要有一個統(tǒng)一的規(guī)劃,系統(tǒng)為除了主節(jié)點外的每個NRF905 模塊都分配一個不同的地址,整個系統(tǒng)共有220個NRF905模塊,對應(yīng)了220個地址,地址的配置是實現(xiàn)整個通訊協(xié)議的關(guān)鍵。NRF905通訊的特點是兩個NRF905模塊必需具有相同的頻段和地址才能通訊成功,這200多個具有不同地址的模塊要通訊成功必須嚴(yán)格遵守軟件流程,并且除了主節(jié)點以外其他各個節(jié)點在開機(jī)的時候NRF905都被配置一個唯一的地址,且置為接收模式。

  主節(jié)點程序設(shè)計是整個通訊的關(guān)鍵,二級節(jié)點的軟件設(shè)計思想和主節(jié)點程序設(shè)計相同。主節(jié)點程序流程圖如圖4所示,主節(jié)點控制器初始化NRF905模塊,配置NRF905的地址為二級節(jié)點1的地址,主控制器置NRF905為發(fā)射模式,發(fā)送數(shù)據(jù)請求命令,因為主節(jié)點配置的是二級節(jié)點1的地址,主節(jié)點發(fā)送數(shù)據(jù)請求命令,只有二級節(jié)點1能夠收到,其它二級節(jié)點接收不到,實現(xiàn)了點對點的通信。主節(jié)點發(fā)送完畢數(shù)據(jù)請求命令后,進(jìn)入等待狀態(tài)1,接收來自二級節(jié)點的應(yīng)答消息,收到應(yīng)答消息后結(jié)束等待狀態(tài)1,進(jìn)入等待狀態(tài)2,接收來自二級節(jié)點的數(shù)據(jù)包,收到數(shù)據(jù)包后結(jié)束等待狀態(tài)2。節(jié)點進(jìn)入等待狀態(tài)后若是沒有收到來自二級節(jié)點的應(yīng)答信息或數(shù)據(jù)包都會延時一定時間自動結(jié)束等待。主節(jié)點控制器重置NRF905的地址為二級節(jié)點2的地址,重復(fù)上述過程,每采集完一個二級節(jié)點的數(shù)據(jù)包后,主節(jié)點控制器都要重置NRF905的地址為下個二級節(jié)點地址,如此循環(huán)直到采集完整個二級節(jié)點的數(shù)據(jù),主控制器通過串口傳送所有數(shù)據(jù)給監(jiān)控主機(jī),傳送完畢后主控制器重新配置NRF905的地址進(jìn)行下一輪數(shù)據(jù)的采集。按照上述流程,主節(jié)點控制器要存放20個二級節(jié)點的地址,這是輪詢通信的關(guān)鍵。

  6 結(jié)束語

  本文給出了一種具有兩層簇狀結(jié)構(gòu)的無線通信的溫度監(jiān)測系統(tǒng),通信協(xié)議簡單可靠,系統(tǒng)吸取了傳感器網(wǎng)絡(luò)的特點又不需要考慮類似傳感器網(wǎng)絡(luò)中的建網(wǎng)設(shè)計,大大降低了能量消耗。系統(tǒng)的結(jié)構(gòu)簡單體積小,可以廣泛應(yīng)用在大棚溫室測溫、糧庫溫度監(jiān)測、電力開關(guān)測溫等領(lǐng)域。

 

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

相關(guān)內(nèi)容