于虹
(云南電網(wǎng)有限責(zé)任公司電力科學(xué)研究院,云南昆明,650217)
所謂的無(wú)線傳感器網(wǎng)絡(luò),實(shí)際就是在特定的檢測(cè)區(qū)域當(dāng)中進(jìn)行海量微型傳感器節(jié)點(diǎn)的設(shè)置,并利用無(wú)線通信的方式構(gòu)建一個(gè)自組織網(wǎng)絡(luò),對(duì)這種網(wǎng)絡(luò)進(jìn)行應(yīng)用,能夠?qū)ο嚓P(guān)領(lǐng)域的發(fā)展產(chǎn)生巨大的促進(jìn)作用,特別是以CC2530為基礎(chǔ),對(duì)無(wú)線溫度傳感器網(wǎng)絡(luò)進(jìn)行設(shè)計(jì),不僅能夠提升該網(wǎng)絡(luò)的穩(wěn)定性,還能使測(cè)溫精度得到顯著的提升,這對(duì)于無(wú)線溫度傳感器網(wǎng)絡(luò)綜合效用的發(fā)揮具有非常重要的意義,因此,有必要針對(duì)相關(guān)內(nèi)容進(jìn)行深入的研究。
本設(shè)計(jì)主要是由一個(gè)ZigBee中心節(jié)點(diǎn)以及多個(gè)終端節(jié)點(diǎn)構(gòu)成的,其中,環(huán)境溫度信息的采集主要由終端節(jié)點(diǎn)上設(shè)置的溫度傳感器負(fù)責(zé),而中心節(jié)點(diǎn)在接收到相關(guān)信息以后則會(huì)向計(jì)算機(jī)進(jìn)行反饋。具體網(wǎng)絡(luò)結(jié)構(gòu)如圖1。
圖1 網(wǎng)絡(luò)結(jié)構(gòu)圖
從某種程度上來(lái)講,無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)屬于微型嵌入式系統(tǒng),通過(guò)各節(jié)點(diǎn)的組合能夠?yàn)闊o(wú)線傳感網(wǎng)絡(luò)構(gòu)建一個(gè)基礎(chǔ)支持平臺(tái)。而本設(shè)計(jì)中的無(wú)線傳感器網(wǎng)絡(luò)終端節(jié)點(diǎn)硬件則主要是由獨(dú)立按鍵模塊、傳感器模塊、電源模塊、發(fā)光二極管顯示模塊、下載接口模塊以及信息收發(fā)模塊構(gòu)成。
第一,電源模塊。涉及到多個(gè)阻容元件、電池接口插針、AMS1117穩(wěn)壓芯片(輸出電壓3.3V)以及自鎖開關(guān)等內(nèi)容。
圖2 電源模塊原理圖
第二,傳感器模塊。主要應(yīng)用三位插座接口,其與溫度傳感器的接地管角、數(shù)據(jù)接口以及電源接口相連接,且電源及數(shù)據(jù)接口會(huì)與一個(gè)上拉電阻相連(5kΩ)。由于在本設(shè)計(jì)當(dāng)中,使用的是直接插入傳感器的方式,所以應(yīng)用的線路較短,并不是必須要進(jìn)行上拉電阻的連接,若測(cè)量環(huán)境較為惡劣,可以使用較長(zhǎng)的導(dǎo)線對(duì)終端模塊以及傳感器進(jìn)行連接,以此來(lái)保證收發(fā)模塊的工作環(huán)境,為處理器的正常運(yùn)行提供支持,使芯片的使用壽命能夠得到適當(dāng)?shù)难娱L(zhǎng)。但需要注意的是,在這種情況下,必須要連接上拉電阻。
第三,發(fā)光二極管顯示模塊涉及到分壓電阻以及發(fā)光二極管兩部分,能夠?qū)Τ绦蜻\(yùn)行工況進(jìn)行顯示。
第四,獨(dú)立按鍵模塊。該模塊以四角按鍵為主,模塊當(dāng)中設(shè)有上拉電阻,且按鍵能夠與發(fā)射模塊進(jìn)行靈活的連接,在本終端模塊當(dāng)中涉及到兩路相對(duì)獨(dú)立的按鍵電路,其中一路主要用于程序調(diào)試,另一路則用于復(fù)位。
這里的無(wú)線傳感器網(wǎng)絡(luò)協(xié)調(diào)器節(jié)點(diǎn)在硬件方面主要涉及以下內(nèi)容,即:RS232串口模塊、獨(dú)立按鍵模塊、發(fā)光二極管顯示模塊、LCD液晶屏顯示模塊、下載接口模塊、CC2530發(fā)射系統(tǒng)以及電源模塊等。具體如圖3所示。
圖3 協(xié)調(diào)器節(jié)點(diǎn)硬件構(gòu)成圖
在電源模塊方面,協(xié)調(diào)器與終端節(jié)點(diǎn)的構(gòu)成大致相同,但由于協(xié)調(diào)器要根據(jù)具體要求對(duì)網(wǎng)絡(luò)當(dāng)中的信息進(jìn)行不斷的查詢,所以,需要從外部接入穩(wěn)定的電源,并且要以終端電源模塊為基礎(chǔ),加設(shè)穩(wěn)壓源接口。而協(xié)調(diào)器的獨(dú)立按鍵模塊、發(fā)光二極管顯示模塊以及下載接口模塊的原理則與終端節(jié)點(diǎn)相同,不同的是需要連接4只LED燈,同時(shí)也增加了3個(gè)獨(dú)立按鍵[1]。
LCD液晶模塊是以點(diǎn)陣液晶為主的,按照128X64的標(biāo)準(zhǔn)進(jìn)行排列,而數(shù)據(jù)傳輸則需要通過(guò)SPI總線傳輸來(lái)實(shí)現(xiàn)。
RS232串口模塊能夠?qū)τ?jì)算機(jī)以及單片機(jī)通信接口進(jìn)行連接,可以將終端節(jié)點(diǎn)反饋回來(lái)的溫度閾值、實(shí)時(shí)溫度以及傳感器ID等信息通過(guò)協(xié)調(diào)器上傳到計(jì)算機(jī)當(dāng)中,并由上位機(jī)監(jiān)控軟件進(jìn)行信息的顯示、分析和儲(chǔ)存。
導(dǎo)航按鍵以A/D讀取模式為主,其鍵值涉及到五個(gè)方向,即上、下、左、右以及中間。
軟件流程圖如圖4所示。
圖4 軟件流程圖
該項(xiàng)設(shè)計(jì)涉及到主程序以及數(shù)據(jù)采集子程序等方面的設(shè)計(jì),在對(duì)傳感器節(jié)點(diǎn)進(jìn)行通電以后,傳感器會(huì)對(duì)底層模塊展開初始化處理,在搜索網(wǎng)絡(luò)的同時(shí)加入其中,并向協(xié)調(diào)器進(jìn)行地址信息的發(fā)送,隨后開始休眠。而休眠以后,微處理器會(huì)將射頻模塊以及傳感器模塊關(guān)閉,直到定時(shí)器中斷進(jìn)行喚醒。在定時(shí)器發(fā)出喚醒信號(hào)以后,微處理器開始進(jìn)入工作狀態(tài),在對(duì)溫度信號(hào)數(shù)據(jù)進(jìn)行采集的同時(shí),會(huì)在簡(jiǎn)單進(jìn)行濾波處理以后,向協(xié)調(diào)器進(jìn)行數(shù)據(jù)信息的發(fā)送。
對(duì)于數(shù)據(jù)采集方面的子程序而言,讀取MAX6675溫度數(shù)據(jù)是一項(xiàng)非常關(guān)鍵的工作,由于MAX6675和CC2530間是以SPI通信為主的,對(duì)數(shù)據(jù)進(jìn)行一次全面的讀取,需要消耗16個(gè)時(shí)鐘周期,而數(shù)據(jù)讀取操作主要是在SCK下降沿實(shí)現(xiàn)的。當(dāng)MAX6675的CS引腳從高電平變?yōu)榈碗娖綍r(shí),芯片會(huì)在數(shù)據(jù)采樣的同時(shí),進(jìn)行A/D轉(zhuǎn)換。而在CS引腳電平從低電平變?yōu)楦唠娖綍r(shí),則A/D轉(zhuǎn)換會(huì)隨之停止,并且會(huì)將已經(jīng)完成轉(zhuǎn)換的數(shù)據(jù)向外傳輸。MAX6675的SO端口能夠進(jìn)行16位數(shù)據(jù)的輸出。其中D0位是三態(tài),D1位是MAX6675標(biāo)識(shí)符,D2位用于進(jìn)行熱電偶斷線情況的測(cè)試,D3-D14主要是溫度數(shù)據(jù),D15則沒有實(shí)際作用。而12位數(shù)據(jù)位所對(duì)應(yīng)的溫度值則包括1023.75℃的最大值和0℃的最小值。在熱電偶進(jìn)行溫度讀取時(shí),芯片會(huì)在初始化延遲一段時(shí)間以后將AD轉(zhuǎn)換完成,隨后CS會(huì)置于0,并進(jìn)行16位數(shù)據(jù)的輸出,而通過(guò)16位數(shù)據(jù)的讀取即可獲得12位溫度數(shù)據(jù)。
在網(wǎng)絡(luò)的各節(jié)點(diǎn)當(dāng)中,都會(huì)涉及到一個(gè)16位的短地址和64位的長(zhǎng)地址,其中,前者負(fù)責(zé)網(wǎng)絡(luò)設(shè)備通信,后者則負(fù)責(zé)與外部網(wǎng)絡(luò)進(jìn)行通信。而數(shù)據(jù)傳送是以主從節(jié)點(diǎn)方式為主的,連接計(jì)算機(jī)的即為主節(jié)點(diǎn),其他節(jié)點(diǎn)則為從節(jié)點(diǎn),通過(guò)從節(jié)點(diǎn)能夠?qū)⒅袛嗾?qǐng)求發(fā)送至主節(jié)點(diǎn)。
該節(jié)點(diǎn)程序涉及到節(jié)點(diǎn)的初始化、網(wǎng)絡(luò)的構(gòu)建、傳感器節(jié)點(diǎn)溫度數(shù)據(jù)的接收。在完成相關(guān)數(shù)據(jù)接收以后,會(huì)通過(guò)串口向主機(jī)進(jìn)行數(shù)據(jù)的發(fā)送。而協(xié)調(diào)器節(jié)點(diǎn)在初始化以后,會(huì)對(duì)信道進(jìn)行選擇,并對(duì)協(xié)調(diào)器地址進(jìn)行設(shè)置,同時(shí),開始進(jìn)行無(wú)線網(wǎng)絡(luò)的監(jiān)聽,如果收到新節(jié)點(diǎn)加入申請(qǐng),則會(huì)為節(jié)電設(shè)備安排端口,如果接收到相關(guān)數(shù)據(jù),則會(huì)在簡(jiǎn)單處理以后經(jīng)由串口向主機(jī)發(fā)送,從而進(jìn)行深入的處理[2]。
第一,需要對(duì)協(xié)調(diào)器進(jìn)行通電,將網(wǎng)絡(luò)初始化完成,并對(duì)信道進(jìn)行優(yōu)選,為自身網(wǎng)絡(luò)選擇一個(gè)網(wǎng)絡(luò)標(biāo)識(shí),同時(shí)按照相應(yīng)的傳輸周期,向周圍進(jìn)行數(shù)據(jù)包的發(fā)送。
第二,將終端節(jié)點(diǎn)通電,各節(jié)點(diǎn)首先會(huì)通過(guò)信道能量掃描,從周圍環(huán)境中選擇一個(gè)具有較強(qiáng)適用性的信道,并進(jìn)行網(wǎng)絡(luò)搜尋。
第三,在協(xié)調(diào)器對(duì)終端節(jié)點(diǎn)數(shù)據(jù)包進(jìn)行接收以后,會(huì)將一個(gè)涉及自身IEEEMAC地址的超幀發(fā)送出去。
第四,終端節(jié)點(diǎn)在對(duì)超幀進(jìn)行接收以后,需要保存協(xié)調(diào)器的MAC地址,同時(shí)要根據(jù)這個(gè)地址將一個(gè)數(shù)據(jù)包發(fā)送至協(xié)調(diào)器當(dāng)中,發(fā)送該數(shù)據(jù)包的主要目的就是為了對(duì)加入網(wǎng)絡(luò)進(jìn)行尋找。
第五,在協(xié)調(diào)器對(duì)Data Request進(jìn)行接收以后,會(huì)優(yōu)先通過(guò)NWK層算法進(jìn)行網(wǎng)絡(luò)短地址的分配,并將一個(gè)涵蓋其網(wǎng)絡(luò)短地址的數(shù)據(jù)包發(fā)送至終端節(jié)點(diǎn),而這個(gè)數(shù)據(jù)包是借助MAC地址來(lái)進(jìn)行發(fā)送的。
第六,終端節(jié)點(diǎn)在收到含有網(wǎng)絡(luò)短地址的數(shù)據(jù)包以后,會(huì)對(duì)自身的短地址進(jìn)行配置,這時(shí)可以利用這個(gè)短地址與協(xié)調(diào)器展開通信,在這種情況下,終端節(jié)點(diǎn)就已經(jīng)完成了網(wǎng)絡(luò)的加入[3]。
將協(xié)調(diào)器程序?qū)胍粋€(gè)節(jié)點(diǎn)當(dāng)中作為協(xié)調(diào)器,同時(shí),要將傳感節(jié)點(diǎn)程序?qū)氲綆讉€(gè)節(jié)點(diǎn)當(dāng)中當(dāng)做傳感器終端,通過(guò)系統(tǒng)測(cè)試,可以確定各終端均可正常加入網(wǎng)絡(luò),并且可以對(duì)數(shù)據(jù)進(jìn)行正常的收發(fā),基本可以判定系統(tǒng)是完好的[4]。
第一,無(wú)障礙傳輸距離測(cè)試。該項(xiàng)測(cè)試工作需要在空曠的室外環(huán)境進(jìn)行,需要先將協(xié)調(diào)器打開,并進(jìn)行無(wú)線網(wǎng)絡(luò)的構(gòu)建,然后將終端節(jié)點(diǎn)設(shè)備打開,將其作為電壓信息以及溫度信息的參考節(jié)點(diǎn)。最后將另一終端節(jié)點(diǎn)打開,并對(duì)其進(jìn)行移動(dòng),確定5個(gè)測(cè)試距離,在移動(dòng)測(cè)試的過(guò)程中,需要借助計(jì)算機(jī)對(duì)該節(jié)點(diǎn)接收的數(shù)據(jù)進(jìn)行記錄和保存,并在完成測(cè)試以后,對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析。
第二,有障礙傳輸距離測(cè)試。該項(xiàng)工作需要在室內(nèi)隔墻環(huán)境中進(jìn)行,測(cè)試步驟和無(wú)障礙的測(cè)試基本相同。將協(xié)調(diào)器打開以后,進(jìn)行無(wú)線網(wǎng)絡(luò)的構(gòu)建,同時(shí)要在協(xié)調(diào)器旁將一個(gè)終端節(jié)點(diǎn)設(shè)備打開,將其作為電壓及溫度信息的參考節(jié)點(diǎn)。然后將另一終端節(jié)點(diǎn)打開,并對(duì)其進(jìn)行移動(dòng),確定5個(gè)測(cè)試距離,并對(duì)移動(dòng)過(guò)程中的節(jié)點(diǎn)數(shù)據(jù)接收效果展開測(cè)試,數(shù)據(jù)的記錄和保存工作由上位機(jī)來(lái)完成,且在完成測(cè)試以后要進(jìn)行數(shù)據(jù)的統(tǒng)計(jì)和分析[5]。
在進(jìn)行上述測(cè)試工作時(shí),有隔墻的時(shí)候存在信號(hào)不強(qiáng)的情況,之所以會(huì)出現(xiàn)這種情況,可能是受到天線設(shè)計(jì)影響造成的,而本文針對(duì)終端設(shè)備應(yīng)用的天線主要是PCB天線,若對(duì)帶桿狀天氣的射頻模塊進(jìn)行應(yīng)用,則可以獲得更好的接收效果。
以CC2530為基礎(chǔ)對(duì)無(wú)線溫度傳感器網(wǎng)絡(luò)進(jìn)行設(shè)計(jì),能夠使無(wú)線溫度傳感器網(wǎng)絡(luò)的性能得到進(jìn)一步的優(yōu)化,這對(duì)于工藝領(lǐng)域的發(fā)展具有至關(guān)重要的作用,因此,相關(guān)領(lǐng)域必須要對(duì)該項(xiàng)內(nèi)容進(jìn)行深入的研究,使其能夠在現(xiàn)代社會(huì)發(fā)展中發(fā)揮更大的作用。