基于CC2500的無線樓字跟蹤系統(tǒng)軟硬件設(shè)計(jì)
1引 言
隨著樓宇智能化程度的提高,人們已經(jīng)不再滿足于僅僅使用攝像設(shè)備對(duì)樓宇中的人員或物品進(jìn)行跟蹤監(jiān)控。于是基于無線的定位技術(shù)在悄然間興起。這種技術(shù)不但可以進(jìn)行目標(biāo)跟蹤,實(shí)施監(jiān)視目標(biāo)的行動(dòng)路線,還可以預(yù)測(cè)目標(biāo)的前進(jìn)軌跡,這些都是傳統(tǒng)的攝像監(jiān)控系統(tǒng)不能做到的。這種定位系統(tǒng)從底層硬件到上層軟件涉及到非常多的技術(shù),本文只針對(duì)無線定位部分的軟硬件進(jìn)行重點(diǎn)介紹。
無線跟蹤系統(tǒng)的關(guān)鍵就是如何定位。目前比較成熟的無線定位技術(shù)當(dāng)屬GPS,然而這種技術(shù)無法在樓宇中使用,因此需要尋找一種新的定位方式來達(dá)到我們的目標(biāo)。這里選擇了基于接收信號(hào)強(qiáng)度(RSSI)的帶信標(biāo)定位技術(shù)。大多數(shù)射頻芯片都可以得到RSSI,但綜合整體性能,我們采用了Chipon推出的一款低功耗2.4 GHz全球免許可費(fèi)用頻段的射頻芯片CC2500。他體積小,操作簡(jiǎn)單,采用3線制SPI。與MCU通信,并能夠在每次接收到信號(hào)后自動(dòng)產(chǎn)生RSSI,方便上層完成定位。
2 CC2500芯片介紹
2.1 整體性能
他的主要特性有:
(1)體積小,外圍電路簡(jiǎn)單。CC22500只有20引腳,44 mmQLP封裝。相對(duì)于其他射頻芯片的封裝,這種封裝在手工焊接上要容易一些。
(2)靈敏度高,功耗低,速率可調(diào)。CC2500與常用的幾款2.4 GHz射頻芯片的比較如表1所示。表中未注明速率的數(shù)據(jù)是在數(shù)據(jù)傳輸速率250 kb/s下得到的。
(3)CC2500硬件支持包數(shù)據(jù)處理,數(shù)據(jù)接收時(shí),有緩沖,信息同步字自動(dòng)檢測(cè),地址檢測(cè),信息長(zhǎng)度分析和CRC校驗(yàn)等功能,支持前向糾錯(cuò),內(nèi)部集成溫度傳感器。
2.2 WOR功能
為了節(jié)約電能,射頻芯片通常采用休眠模式。芯片在休眠時(shí)勢(shì)必會(huì)丟失信息,CC22500的WOR(Wakeup-on-Radio)功能能很好地避免這點(diǎn)。WOR功能保證芯片在深度睡眠時(shí)周期性地蘇醒,探聽周圍是否有信號(hào),這個(gè)過程不需要CPU的中斷,如果有數(shù)據(jù)包成功接收,芯片可通過引腳輸出中斷通知MCU讀取。在使用WOR功能時(shí),片上的RC時(shí)鐘作為WOR時(shí)鐘。溢出的周期時(shí)間可由編程確定。
2.3 RSSI和LQI功能
RSSI反映接收信號(hào)強(qiáng)度,LQI反映信號(hào)的連接質(zhì)量,兩者都可以通過讀取芯片的寄存器得到。LQI雖然能夠判斷連接質(zhì)量,但會(huì)因調(diào)制方式的不同而不同。
RSSI是判斷兩個(gè)節(jié)點(diǎn)距離的很好的參數(shù)。在從RSSI寄存器中讀到數(shù)值后我們需要進(jìn)行一系列轉(zhuǎn)化,才能得到接收強(qiáng)度值。首先判斷RSSI寄存器中的值RSSI dec是否大于128,如果成立,則:
如果小于128,則:
其中RSSI offset按照數(shù)據(jù)傳輸速率的不同而改變,其取值可參照文獻(xiàn)[1]。
2.4 CCA功能
CCA(Clear Channel Assessment)能夠指示當(dāng)前信道是否處于空閑狀態(tài)。其作用與CSMA相似。當(dāng)芯片要轉(zhuǎn)入發(fā)送模式時(shí),會(huì)首先檢查信道,只有當(dāng)信道為空閑時(shí),才進(jìn)入發(fā)送模式,否則停留在原模式或由編程設(shè)定進(jìn)入其他模式。有3種情況可觸發(fā)CCA功能:
(1)在RSSI低于門限值時(shí);
(2)當(dāng)接收到一個(gè)數(shù)據(jù)包時(shí);
(3)以上兩者都具備。
2.5 發(fā)射功率表
CC2500的功率表是用來在每次發(fā)送時(shí)設(shè)置發(fā)送功率的,其中最多可以存放8字節(jié)的功率值,默認(rèn)情況下,每次在發(fā)送時(shí),從最低位功率值開始讀取,每次讀取一個(gè)字節(jié)。當(dāng)讀取到最后一個(gè)字節(jié)的時(shí)候,自動(dòng)回到第一個(gè)字節(jié)。如果有需要,可編程設(shè)置不從第一個(gè)字節(jié)開始讀取,以實(shí)現(xiàn)發(fā)射功率可調(diào)。
3 跟蹤算法
3.1 定位算法
所謂的跟蹤軌跡其實(shí)就是若干次定位結(jié)果按時(shí)間順序的集合。所以如何定位非常重要。目前常用的定位技術(shù)如基于準(zhǔn)確測(cè)距的定位方法、質(zhì)心算法等在空曠的環(huán)境中能夠比較準(zhǔn)確地完成定位,但在建筑物內(nèi)部則相對(duì)效果較差。試驗(yàn)表明基于上述方法進(jìn)行定位軌跡將是跳躍的,而非連續(xù)的。在建筑物內(nèi)進(jìn)行定位,有一個(gè)好處就是身處其中的待定位目標(biāo)在活動(dòng)空間上有一定約束,比如人在走廊中行走時(shí),只能向前或者向后,左右兩邊都是墻壁,無法行走,這樣實(shí)際上他的軌跡是遵循一定規(guī)律的。所以可以綜合樓宇內(nèi)部的位置信息進(jìn)行定位。
考慮以上應(yīng)用要求和環(huán)境,我們借鑒了文獻(xiàn)[2]中的RADAR系統(tǒng),采用基于RSSI技術(shù)的室內(nèi)定位系統(tǒng),但在測(cè)試方法上進(jìn)行了改進(jìn),不利用基站定位,而是采用信標(biāo)定位。
在系統(tǒng)中存在兩種節(jié)點(diǎn):一種是位置完全已知的信標(biāo)節(jié)點(diǎn);一種是位置待測(cè)的目標(biāo)節(jié)點(diǎn)。經(jīng)測(cè)試,我們本次基于CC2500硬件的節(jié)點(diǎn)在樓宇中的極限傳輸距離在60 m左右(PCB板射頻部分走線影響最大傳輸距離),所以為準(zhǔn)確起見,使用信標(biāo)之間的間隔在20 m,在兩個(gè)位置中間有墻壁或障礙物時(shí),則一定要放置兩個(gè)信標(biāo),不遵守上述規(guī)律。當(dāng)然,信標(biāo)數(shù)量越多,定位相對(duì)就更加準(zhǔn)確。目標(biāo)節(jié)點(diǎn)周期性地發(fā)出信號(hào),信標(biāo)接收到目標(biāo)節(jié)點(diǎn)的信號(hào)后得到信號(hào)強(qiáng)度值RSSI,根據(jù)強(qiáng)度值推算目標(biāo)節(jié)點(diǎn)的位置,然后把定位信息發(fā)往基站,完成定位工作。
樓宇內(nèi)定位算法通常有基于信號(hào)傳輸?shù)慕?jīng)驗(yàn)?zāi)P秃突谛盘?hào)傳播的理論模型兩種。后一種的準(zhǔn)確性受建筑物材料的影響較大,最后還要進(jìn)行大量的試驗(yàn)修正,所以我們采用信號(hào)傳播的經(jīng)驗(yàn)?zāi)P?。首先放置好信?biāo)。并給定其坐標(biāo)。設(shè)兩個(gè)信標(biāo)之間的距離的一半為D(m),如果兩個(gè)信標(biāo)之間有障礙物,則將信標(biāo)到障礙物之間的距離定義為D。利用目標(biāo)節(jié)點(diǎn)在距離D內(nèi)移動(dòng),得到各點(diǎn)位置的RSSI,建立各個(gè)點(diǎn)上的位置和信號(hào)強(qiáng)度關(guān)系的離散數(shù)據(jù)表(x,y,RSSI)。同時(shí)要注意保證目標(biāo)節(jié)點(diǎn)在每一點(diǎn)的時(shí)候都會(huì)有信標(biāo)節(jié)點(diǎn)進(jìn)行定位??梢娤到y(tǒng)的定位精度:
其中(x1,y1,RSSI1),(x2,y2,RSSI2)為離散數(shù)據(jù)表中兩個(gè)相鄰數(shù)據(jù)。
定位時(shí),信標(biāo)查表進(jìn)行定位,當(dāng)目標(biāo)節(jié)點(diǎn)信號(hào)小于表中最小的門限RSSI時(shí),直接舍棄,會(huì)有其他信標(biāo)對(duì)其定位。
3.2 分簇路由算法
信標(biāo)在得到目標(biāo)節(jié)點(diǎn)的位置之后,需要將位置信息發(fā)往基站,由基站進(jìn)入監(jiān)控軟件系統(tǒng)。在樓宇中信標(biāo)的數(shù)量非常多,如果不選擇一種良好的路由算法,那么很容易造成信息的丟失和誤碼率升高。我們采用分簇路由算法,這種拓?fù)溆欣诜植际剿惴ǖ膽?yīng)用,適合大規(guī)模網(wǎng)絡(luò),簇頭節(jié)點(diǎn)擔(dān)負(fù)數(shù)據(jù)融合的任務(wù),可使整個(gè)網(wǎng)絡(luò)的數(shù)據(jù)傳輸量大大減輕,在使用電池供電的場(chǎng)合,其還可以顯著延長(zhǎng)整個(gè)網(wǎng)絡(luò)的生存周期。
所有信標(biāo)結(jié)點(diǎn)都固定劃分成若干個(gè)簇,每一個(gè)簇選擇一個(gè)簇頭節(jié)點(diǎn),在選擇簇頭節(jié)點(diǎn)的時(shí)候,要注意選擇處于偏僻位置的信標(biāo)節(jié)點(diǎn),這種信標(biāo)定位的工作相對(duì)較少,不容易在定位和傳輸中產(chǎn)生沖突。分簇主要以地理位置為準(zhǔn),每個(gè)簇的節(jié)點(diǎn)數(shù)不需要相同,這樣有利于避免數(shù)據(jù)發(fā)往基站時(shí)產(chǎn)生沖突。簇頭節(jié)點(diǎn)負(fù)責(zé)為簇內(nèi)的所有信標(biāo)節(jié)點(diǎn)分配時(shí)槽,每個(gè)信標(biāo)節(jié)點(diǎn)在自己規(guī)定的時(shí)間發(fā)送定位信息給簇頭節(jié)點(diǎn)。簇頭節(jié)點(diǎn)接到所有簇內(nèi)節(jié)點(diǎn)的信息后進(jìn)行綜合,總結(jié)成一幀數(shù)據(jù)發(fā)送給基站。在這幀中,所有信標(biāo)的定位時(shí)間差被忽略,當(dāng)作是同一個(gè)時(shí)間的定位信息。
如采用2s定位一次,有一個(gè)包含5個(gè)節(jié)點(diǎn)的簇,簇頭節(jié)點(diǎn)為每個(gè)節(jié)點(diǎn)分配的時(shí)槽可以為300 ms。以250 kb/s為傳輸速率的CC2500在這個(gè)時(shí)槽內(nèi)完全可以完成定位和數(shù)據(jù)傳輸工作。這樣可以留給簇頭節(jié)點(diǎn)約800 ms的時(shí)間進(jìn)行數(shù)據(jù)融合和數(shù)據(jù)傳輸。信標(biāo)節(jié)點(diǎn)數(shù)據(jù)融合的過程見圖1。
數(shù)據(jù)上傳到基站后,基站通過網(wǎng)口上傳到電腦的監(jiān)控軟件。監(jiān)控軟件采用圖形化方式將節(jié)點(diǎn)的位置示意出來,如圖2所示。
4 結(jié) 語
試驗(yàn)表明CC2500在系統(tǒng)中能夠很好地完成定位工作,但這種定位方式比較簡(jiǎn)單,不夠精確,其準(zhǔn)確程度主要依賴于系統(tǒng)組成之前的RSSI數(shù)據(jù)表準(zhǔn)確程度,由于整個(gè)測(cè)量過程帶有相當(dāng)大的隨機(jī)性和主觀因素,所以通常不能達(dá)到理想的程度。如何降低這種主觀因素以及如何減少前期工作量,還需要進(jìn)一步的探索。
評(píng)論