摘? 要: 針對ZigBee無線傳感器網(wǎng)絡(luò)大都不考慮多信號采集實時傳輸應(yīng)用的情況,提出一種針對多傳感器信號無線實時傳輸?shù)臅r分快傳算法。該算法先對傳感器信號進(jìn)行統(tǒng)計分析以提取特征值,然后結(jié)合時分多址進(jìn)行快傳,完成多個傳感器信號的實時傳輸功能;在ZigBee無線傳感器網(wǎng)絡(luò)中利用該算法可以實現(xiàn)多個傳感器信號實時采集,并能在接收端恢復(fù)及監(jiān)測信號。
關(guān)鍵詞: ZigBee;無線傳感器網(wǎng)絡(luò);信號采集;信號重現(xiàn)
?
在油田開發(fā)中,鉆井是一項高投入、高風(fēng)險的工程,為了能很好地掌握鉆井的工作狀態(tài),需要幾十個傳感器在不同點上對油田鉆井工作進(jìn)行實時監(jiān)測。目前主要利用有線方式進(jìn)行傳感器監(jiān)測。然而,鉆井隊鉆完一口油井后需要轉(zhuǎn)入下一口井繼續(xù)工作,這就需要拆卸、安裝鉆井裝置以及監(jiān)控儀器;另外監(jiān)測中心與鉆井塔臺存在一定的距離,現(xiàn)場布線很不方便,系統(tǒng)有線傳輸?shù)谋锥吮┞稛o遺。因此,無線傳輸替代有線傳輸成為迫切的需求。
基于ZigBee[1-2]協(xié)議的低功率無線傳感器網(wǎng)絡(luò)是工業(yè)過程控制領(lǐng)域涌現(xiàn)的最具吸引力的技術(shù)之一。它除了具有功耗低、成本低、復(fù)雜度低、組網(wǎng)能力強(qiáng)等優(yōu)點外,還因為采用碼相位移位鍵控CPSK(Code Phase Shifting Keying)擴(kuò)頻技術(shù),而具有一定抗干擾能力。目前它主要用于工業(yè)控制、消費電子、汽車自動化、物業(yè)自動化管理、醫(yī)用設(shè)備監(jiān)控和定位等對實時性要求不高,或雖然實時性要求較高,但只傳少量信息的傳感器系統(tǒng)[3-5]。如果要對多個傳感器信號全速采集并實時傳輸,需要改進(jìn)現(xiàn)有的ZigBee傳輸方式。
本文提出一種時分快傳算法。該算法首先對信號進(jìn)行統(tǒng)計分析提取信號特征值,然后進(jìn)行定時快傳。針對區(qū)域網(wǎng)絡(luò),提出一種低復(fù)雜度系統(tǒng)同步方法,即先基于TDMA時分多址(Time Division Multiple Access)原理,將一個周期劃分為n個時隙以便于定時傳輸多個傳感器信號,然后利用信標(biāo)完成區(qū)域內(nèi)設(shè)備時鐘同步;在此基礎(chǔ)上各發(fā)送器按照次序在各自時隙將已經(jīng)采集好一個周期的低速傳感器信號進(jìn)行高速傳輸,而接收端對接收信號采用定時復(fù)現(xiàn)技術(shù)從而實現(xiàn)多傳感器信號重現(xiàn),實現(xiàn)實時、準(zhǔn)確監(jiān)測目的;同時系統(tǒng)利用頻分多址FDMA(Frequency Division Multiple Access)技術(shù)進(jìn)一步擴(kuò)展,實現(xiàn)對更多的傳感器信號實時傳輸。
1 多傳感器信號實時傳輸系統(tǒng)
????利用ZigBee網(wǎng)絡(luò)實現(xiàn)傳感器信號的無線實時傳輸一般采取三種處理方法。第一種是先對所有傳感器信息全部處理,只傳監(jiān)控需要的信息。其優(yōu)點是所傳信息量較少,對網(wǎng)絡(luò)傳輸實時性要求較低;其缺點是還需要其他處理器進(jìn)行信息處理,這不但增加費用和功耗,而且體積增大,不利于在鉆井平臺布局。第二種方法是對所有傳感器信號采樣后實時傳輸。由于ZigBee屬于低速傳輸類型,雖然最高速率可達(dá)250kb/s,但由于幀頭等開銷,其實際最高傳輸速率約110kb/s,而絞車傳感器響應(yīng)頻率為1.5kHz。為較好地恢復(fù)該信號,采用10倍以上采樣速率,如果用8位的A/D采樣位數(shù),則傳輸速率最低要求達(dá)到:
Vlow=1.5×10×8=120kb/s
這一要求超出了ZigBee的傳輸能力。第三種方法對傳感器信號加以分析,進(jìn)行針對性傳輸。傳感器信號分為脈沖傳感器和模擬傳感器,其中模擬傳感器一般工作頻率較低,工作頻率為100Hz;脈沖傳感器工作頻率有的較高,但由于是脈沖數(shù)字信號,幅值一定,可以先統(tǒng)計脈沖信息,再定時快傳統(tǒng)計信息,這將大大降低對傳輸速率的要求。
當(dāng)有多個傳感器信號需傳輸時,如果采用一對一的方式收發(fā),則接收設(shè)備較多。這一方面增加了系統(tǒng)成本,另一方面增加了接收端數(shù)據(jù)集線器的連線數(shù),不利于數(shù)據(jù)采集。根據(jù)上面分析,假設(shè)模擬傳感器信號采樣頻率為10倍工作頻率,采用8bit采樣,則一路傳遞速率為:
V=100×10×8=8kb/s
因此只要規(guī)劃好時隙,就可以用一個接收機(jī)接收多路信號,從而實現(xiàn)多路實時傳輸。對于工作頻率較高的脈沖傳感器,可以占用多個時隙進(jìn)行傳輸,也可以采用先對脈沖信號進(jìn)行統(tǒng)計,以速率較高的絞車傳感器為例,它通過兩路含90°相位差的脈沖信息來表示鉆機(jī)的運行方向和距離等,而通過含ZigBee的單片機(jī)較易統(tǒng)計出它的脈沖信息量,因而傳輸數(shù)據(jù)大為減少,這里選擇后一種方式。
通過以上方法可以大大減少接收機(jī)的數(shù)量。但是在傳感器數(shù)量較多時,總的傳輸速率將超過信道容量,這時用一個接收機(jī)顯然不可能實時接收。例如傳20路模擬信號,需要8×20=160kb/s,同時還需要考慮同步開銷,以及傳輸過程中可能受到的干擾等因素,因而無法做到多傳感器實時傳輸。在這種情況下可以利用FDMA進(jìn)行傳輸, ZigBee具有16個同帶寬的信道,在不同信道傳輸?shù)男盘柕南嗷ジ蓴_可以忽略。根據(jù)以上分析,本系統(tǒng)提出了如圖1所示的多傳感器信號無線實時傳輸?shù)南到y(tǒng)結(jié)構(gòu)。
?
系統(tǒng)由多個子系統(tǒng)構(gòu)成,子系統(tǒng)由一個接收機(jī)和若干個發(fā)送端組成,采用“星形”網(wǎng)絡(luò)拓?fù)浞绞竭M(jìn)行構(gòu)建。其中接收端為主,發(fā)送端為從,同一個子系統(tǒng)的接收端與發(fā)送端在同一信道上,不同子系統(tǒng)的信道不同,通過FDMA以保證處理更多的傳感器信號。在同一個子系統(tǒng)內(nèi),基于時分快傳的算法進(jìn)行通信,它先實現(xiàn)各子系統(tǒng)內(nèi)同步,然后按次序利用不同的時間片快速傳輸?shù)退俾蕚鞲衅餍盘?。主控端通過數(shù)據(jù)集線器與各接收機(jī)相連,它利用定時處理方法恢復(fù)出原始的傳感器信號,這樣可以在主機(jī)端實時監(jiān)測到不同傳感器信息。下面將介紹用到的關(guān)鍵技術(shù)。
2 關(guān)鍵技術(shù)
2.1 傳感器時分速傳信號采集算法
鉆井平臺采用的模擬傳感器信號工作頻率一般不高于100Hz,如果采用通常的即采即傳方案,它在A/D采樣到一個樣點就進(jìn)行傳輸,接收端收到后就直接輸出,保證了單個點對點實時傳輸,從而可保證低速傳感器信號在接收端重現(xiàn)。但其缺點也顯而易見,即對于較高速率的采樣信號的無法實時傳輸,而且,如果有多個傳感器需同時傳輸,就可能因相互沖突造成延遲。由于它是定時傳輸,對時延有一定要求,所以甚至有可能丟失數(shù)據(jù),這也是目前ZigBee網(wǎng)絡(luò)主要只用于網(wǎng)絡(luò)非實時控制的原因。它只傳輸控制信號,數(shù)據(jù)量相對少得多,即使沖突,通過載波偵聽,也可以保證短時間到達(dá)接收方。
針對以上問題,本文提出利用ZigBee快速傳輸實現(xiàn)實時傳輸傳感器信號。以模擬傳感器信號為例,一路信號只要保證最低傳輸速率8kb/s就可以實現(xiàn)信號實時采樣和收端重現(xiàn)功能。由于ZigBee實際最高速率可以達(dá)到110kb/s,并且一幀最多可攜帶107B信息,如果短時先預(yù)存采樣好的數(shù)據(jù),再利用ZigBee高速傳輸,可以保證系統(tǒng)采集的數(shù)據(jù)快速到達(dá)接收端;在接收端設(shè)置與發(fā)送端采樣數(shù)據(jù)一致的定時器,定時向外發(fā)送數(shù)據(jù),就可以實時重現(xiàn)信號。對于速率較高的脈沖信號,由于脈沖的幅值一般不變,以絞車傳感器為例,在測量到兩路方波脈沖信號的相位差和個數(shù),這樣只要統(tǒng)計它們的信息,再定時傳輸,接收端既可統(tǒng)計,也可恢復(fù)出該路信號,解決了較高速傳感器信號實時傳輸問題。
由于這里ZigBee傳輸速率遠(yuǎn)高于采樣速率,可以利用分時快傳算法實現(xiàn)一個ZigBee接收機(jī)接收多路ZigBee發(fā)送端傳來的信息。它預(yù)先在子系統(tǒng)內(nèi)按照主從方式構(gòu)建網(wǎng)絡(luò)拓?fù)?,接收端為主,各發(fā)送端為從;子系統(tǒng)內(nèi)在建立同步后,各傳感器發(fā)射端預(yù)先編好次序,在規(guī)定的時間發(fā)送數(shù)據(jù)。為了保證可靠傳輸,設(shè)計時需要保證為各傳感器的傳輸時間預(yù)留一定的保護(hù)時隙。
2.2 基于信標(biāo)的同步方案算法
采用時分速傳可以實現(xiàn)多路傳感器信號的實時傳輸,前提是同步。如果系統(tǒng)沒有同步,則可能造成同一頻段上多個傳感器信號相互之間出現(xiàn)嚴(yán)重的碰撞,從而丟失信息,因此子系統(tǒng)同步顯得格外重要。目前用于無線傳感器的時鐘同步算法[6-7]較多,有RBS同步算法、TPSN算法、DMTS算法和FTSP算法等,其中基于FTSP算法同步開銷小、精度高、協(xié)議最簡單。但它們主要針對大規(guī)模的傳感器網(wǎng)絡(luò),實現(xiàn)相對復(fù)雜,這將消耗部分系統(tǒng)資源;針對星形網(wǎng)絡(luò),可以采用易于實現(xiàn)的時分-信標(biāo)同步方法,如圖2所示。其中接收機(jī)負(fù)責(zé)系統(tǒng)同步處理,各發(fā)送機(jī)積極應(yīng)答同步信號。實現(xiàn)過程為:先將一個周期分成n個時隙,接收機(jī)占用第一個時隙用于發(fā)送信息,其余各發(fā)送機(jī)分配相應(yīng)時隙,以便于發(fā)送采樣數(shù)據(jù);同步幀由信標(biāo)和同步標(biāo)志等信息構(gòu)成,系統(tǒng)未同步上時,相應(yīng)同步標(biāo)志為未同步標(biāo)志‘0’,接收機(jī)在第一時隙發(fā)出同步幀;各傳感器信號發(fā)送機(jī)若接收到信標(biāo),啟動定時器,按照事先規(guī)定好次序,考慮到信道延時、發(fā)送時間和接入時間,在相應(yīng)的時隙回傳應(yīng)答信號。接收機(jī)對收到信息進(jìn)行處理,在確認(rèn)所有發(fā)射端全部同步后,在下一周期第一個時間片所發(fā)的同步幀中設(shè)置系統(tǒng)同步信標(biāo)。如果有設(shè)備沒有被同步,則繼續(xù)同步過程,此時系統(tǒng)同步標(biāo)志位為未同步標(biāo)志,直到系統(tǒng)被全部同步為止。
?
?
2.3 FDMA擴(kuò)容
以上技術(shù)解決了多個傳感器信號實時傳輸?shù)膯栴},但是由于監(jiān)測點往往超過20個,如果在同一信道上傳輸,根據(jù)以上分析,總的傳輸速率將超過信道容量,這就導(dǎo)致無線傳輸信號相互碰撞,使數(shù)據(jù)傳輸延遲,甚至丟失數(shù)據(jù)。解決方法是使用FDMA技術(shù)。根據(jù)ZigBee協(xié)議,F(xiàn)DMA共有16個信道,雖然接收機(jī)和發(fā)送機(jī)需要工作在同一個信道,但是可以預(yù)先組合好各子系統(tǒng)。如圖1所示,不同子系統(tǒng)采用不同信道,這樣一方面降低同一信道上最大傳輸速率,另一方面可以增加傳輸容量。
3 系統(tǒng)實現(xiàn)方案
在實際設(shè)計中,選用TI公司的CC2430[8]作為無線傳輸模塊,該芯片工作頻率為32MHz。它除了射頻收發(fā)器外,還包括增強(qiáng)型8051MCU、A/D采樣電路、DMA、看門狗等。由于外圍器件少,大大簡化了硬件設(shè)計。如圖3所示,CC2430芯片完成虛框內(nèi)A/D采樣,數(shù)據(jù)緩存和定時速傳功能,對于傳感器信號,先經(jīng)過光電耦合以防止強(qiáng)干擾信號,如果傳感器信號是模擬的,將它與含A/D采樣的P0_0管腳相連,A/D硬件電路自動高速采樣,并將采樣值存放到特定寄存器中,這時可利用定時器0定時讀取。這里設(shè)讀取頻率為1kHz,8bit采樣,利用乒乓方式傳遞,兩個緩存數(shù)組各為100B,當(dāng)存滿一組數(shù)組后,設(shè)置該組滿標(biāo)志位,并清除下一數(shù)組的滿標(biāo)志位,同時將地址指針指向下一組數(shù)組起始位置;Timer2用于定時發(fā)送,當(dāng)?shù)竭_(dá)規(guī)定時間,Timer2中斷觸發(fā)DMA傳輸,發(fā)送端將滿標(biāo)志位數(shù)組數(shù)據(jù)發(fā)送出。對于較高速的數(shù)字脈沖信號,將信號接PIO口,通過邊沿中斷方式進(jìn)行計數(shù),當(dāng)計時到一個周期時,將該數(shù)據(jù)發(fā)送出去,同時將計數(shù)器清零,以便重新計數(shù)。接收端收到數(shù)據(jù)后,通過高速串口卡上傳給工控機(jī),工控機(jī)接收到數(shù)據(jù)后利用定時處理機(jī)制,在顯示終端顯示結(jié)果,同時通過這些數(shù)據(jù)可以實時監(jiān)測鉆井系統(tǒng)工作狀態(tài)。
?
?
????在設(shè)計中需要處理好各定時器的設(shè)置,以采樣模擬傳感器信號為例,通過以上分析知,定時器0的時間周期為1/1K=0.001s,則一個周期時間T=100/1K=0.1s,它也是定時器2的時間周期,在定時器中斷后DMA傳輸期間應(yīng)該保證定時器1寫入的數(shù)組還處于另一個數(shù)組。這里就有一個時間差的計算設(shè)計問題,如果設(shè)計不好,就有可能出現(xiàn)同一個數(shù)組被A/D采樣后數(shù)據(jù)輸入的同時被DMA方式讀取。這是因為DMA速度快造成發(fā)出的數(shù)據(jù)一部分是剛存的,一部分是以前的,從而造成數(shù)據(jù)混亂。可以采用圖4所示的發(fā)送端定時器,收到同步幀信號后,先根據(jù)發(fā)送時間設(shè)置用于發(fā)送數(shù)據(jù)的Timer2定時器初值,設(shè)置允許中斷標(biāo)志位;然后設(shè)置延遲定時器T1,它決定了用于A/D采樣的定時器0的開啟時間,目的是保證利用Timer0定時器中斷讀取A/D采樣的數(shù)據(jù)在向當(dāng)前數(shù)組剛存放一小部分?jǐn)?shù)據(jù)時,Timer2中斷來時DMA讀取的是另一個數(shù)組。由于DMA傳輸快,故它傳完另一個數(shù)組的數(shù)據(jù)時,當(dāng)前數(shù)組還沒被Timer0中斷讀取A/D采樣值的數(shù)據(jù)存滿。
?
?
本文提出并完成一種用于多點傳感器信號無線實時傳輸?shù)南到y(tǒng)設(shè)計。該系統(tǒng)采用時分快傳的算法,在系統(tǒng)同步的基礎(chǔ)上實現(xiàn)監(jiān)測鉆井的多個傳感器信號實時傳輸,從而實現(xiàn)接收端實時監(jiān)控的目的。由于采用ZigBee技術(shù),系統(tǒng)成本較低,無協(xié)議專利費支出,同時功耗較低。該算法可適合于其他低速實時網(wǎng)絡(luò)傳輸系統(tǒng)。
?
參考文獻(xiàn)
[1] EGAN D.The emergence of ZigBee in building automation?and industrial control[J].Computing & Control Engineering?Journal,2005,16(2):14-19.
[2] Wan-Ki Park,Intark Han,Kwang-Roh Park.ZigBee based?Dynamic Control Scheme for Multiple Legacy IR Controllable Digital Consumer Devices[J].IEEE Transactions on Consumer Electronics,2007,53(1):172-177.?
[3] MATA W,GONZALEZ A,AQUINO R,et al.A Wireless?Networked Embedded System with a New Real-Time Kernel-PaRTiKle[C].Electronics,Robotics and Automotive?Mechanics Conference,2007.CERMA 2007,25-28 Sept.,
2007:21-26.
[4] WHEELER,A.Commercial Applications of Wireless Sensor?Networks Using ZigBee[J].Communications Magazine,IEEE,2007,45(4):70-77.
[5] 姚引娣.基于ZigBee的無線管理系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2007,33(1):27-29.
[6] COX D,JOVANCV E,MILENKOVIE A.Time synchronization for ZigBee Networks[J].System Theory,2005,37(3):
135-138.
[7] 楊宗凱,趙大勝,王玉明,等.無線傳感器網(wǎng)絡(luò)時鐘同步算法綜述[J].計算機(jī)應(yīng)用,2005,25(5):1170-1172.
[8] 馬永強(qiáng),李靜強(qiáng),馮立營.基于ZigBee技術(shù)的射頻芯片CC2430[A].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2006,(3).