新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于TinyOS的CC2430 RSSI定位的設(shè)計(jì)與實(shí)現(xiàn)

基于TinyOS的CC2430 RSSI定位的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時間:2012-06-08 來源:網(wǎng)絡(luò) 收藏

摘要:為解決現(xiàn)Z-Stack程序代碼量大,結(jié)構(gòu)復(fù)雜等問題,提出一種TInyOS的方案。在分析組件架構(gòu)基礎(chǔ)上,盲節(jié)點(diǎn)、錨節(jié)點(diǎn)與匯聚節(jié)點(diǎn)間的無線通信以及匯聚節(jié)點(diǎn)與PC機(jī)的串口通信。在此基礎(chǔ)上PC對各錨節(jié)點(diǎn)(Received Signal Strength Indicator)寄存器值的正確讀取,確定實(shí)驗(yàn)室環(huán)境下對教-常態(tài)無線傳播模型的具體參數(shù),并采用質(zhì)心算法來提高精度。實(shí)驗(yàn)顯示,在由四個錨節(jié)點(diǎn)組成的4.8x3.6m2矩形定位區(qū)域中,通過質(zhì)心定位算法求得的盲節(jié)點(diǎn)坐標(biāo)為(2.483 1,1.018 5),實(shí)際坐標(biāo)為(2.40,1.20),誤差為0.199 6 m,表明較好地對盲節(jié)點(diǎn)的定位。

本文引用地址:http://m.butianyuan.cn/article/148937.htm

無線傳感器網(wǎng)絡(luò)是由分布在給定區(qū)域內(nèi)大量傳感器節(jié)點(diǎn)以無線自組織多跳的通信方式構(gòu)成的網(wǎng)絡(luò)系統(tǒng),目前在環(huán)境監(jiān)測保護(hù)、樓宇監(jiān)控、家庭安防、醫(yī)療護(hù)理、目標(biāo)跟蹤、軍事等領(lǐng)域已獲得了廣泛的應(yīng)用。

1 芯片介紹

芯片是TI/Chipcon公司生產(chǎn)的真正意義上的片上系統(tǒng)(SOC)級解決方案,它集增強(qiáng)型工業(yè)標(biāo)準(zhǔn)8051核心、優(yōu)秀的射頻芯片CC24 20、強(qiáng)大的外圍資源于一體。集成的外設(shè)資源主要有DMA、定時/計(jì)數(shù)器、看門狗定時器、AES-128協(xié)處理器、8通道8~14位ADC、USART、休眠模式定時器、復(fù)位電路及21個可編程I/O,支持IEEE802.15.4和ZigBee協(xié)議。

CC2430芯片具有性能高、功耗低、接收靈敏度高、抗干擾性強(qiáng)、硬件CSMA/CA支持、數(shù)字化/LQI支持、DMA支持等特點(diǎn),支持無線數(shù)據(jù)傳輸率高達(dá)250 kbps.

2 系統(tǒng)與nesC語言

由于無線傳感器網(wǎng)絡(luò)的特殊性,需要操作系統(tǒng)能夠高效地使用傳感器節(jié)點(diǎn)的有限內(nèi)存、低功耗處理器、多樣傳感器、有限的電源,并且能對各種特定應(yīng)用提供最大的支持。

此,UC Berkeley研究人員專為嵌入式無線傳感器網(wǎng)絡(luò)開發(fā)出系統(tǒng),目前已經(jīng)成為無線傳感器網(wǎng)絡(luò)領(lǐng)域事實(shí)上的標(biāo)準(zhǔn)平臺。 TinyOS系統(tǒng)具有組件化編程、事件驅(qū)動模式、輕量級線程技術(shù)、主動消息通信技術(shù)等特點(diǎn)。TinyOS采用組件架構(gòu)方式,快速實(shí)現(xiàn)各種應(yīng)用,組件包括網(wǎng)絡(luò)協(xié)議、分布式服務(wù)、傳感器驅(qū)動以及數(shù)據(jù)獲取工具等,一個完整的應(yīng)用系統(tǒng)通過組合不同的組件來實(shí)現(xiàn)。采用事件驅(qū)動的運(yùn)行模型,可以處理高并發(fā)性的事件,并實(shí)現(xiàn)節(jié)能。

TinyOS應(yīng)用程序通常由頂層配件、核心處理模塊和其它組件構(gòu)成。每個應(yīng)用程序有且僅有一個頂層配件,組件間通過接口進(jìn)行連接通信,下層組件提供接口,通過provideinterface interfaceName來聲明,上層組件使用接口,通過useinterface interfaceName來聲明。接口提供兩類函數(shù),分別是命令(command)函數(shù)與事件(event)函數(shù),上層組件向下層組件發(fā)出命令,啟動下層組件的功能:下層組件完成相應(yīng)的功能后向上層組件報告事件。應(yīng)用程序總體框架如圖1所示。

圖1 Tiny OS應(yīng)用程序框架圖

TinyOS系統(tǒng)本身以及應(yīng)用程序都是采用nesC語言編寫,nesC語言是對C語言的擴(kuò)展,具有類似于C語言的語法,但支持TinyOS的并發(fā)模型,同時具有組件化機(jī)制,能夠與其他組件連接在一起從而形成一個魯棒性很好的嵌入式系統(tǒng)。nesC語言把組件化/模塊化的編程思想和事件驅(qū)動的執(zhí)行模型緊密結(jié)合起來。應(yīng)用nesC語言能夠更快速方便地編寫基于TinyOS的應(yīng)用程序。

3 RSSI定位原理

RSSI全稱Received Signal Strength Indicator(接收信號強(qiáng)度指示),是一種基于距離的定位算法。RSSI原理是已知發(fā)射節(jié)點(diǎn)的發(fā)射信號強(qiáng)度,接收節(jié)點(diǎn)根據(jù)接收信號的強(qiáng)度,計(jì)算出信號在傳播過程中的損耗,利用理論和經(jīng)驗(yàn)?zāi)P蛯鬏敁p耗轉(zhuǎn)化為距離,再根據(jù)接收節(jié)點(diǎn)的已知位置利用三邊測量法計(jì)算出發(fā)射節(jié)點(diǎn)的位置。由于該方法不需要額外的硬件設(shè)備,是一種低功耗廉價的測距技術(shù),因此在很多項(xiàng)目中得到了廣泛的應(yīng)用。

本文在RSSI定位基礎(chǔ)上使用質(zhì)心算法提高定位精度,如圖2所示,最后求得的盲節(jié)點(diǎn)坐標(biāo)為點(diǎn)D、E和F組成的三角形的質(zhì)心。

圖2 質(zhì)心法定位示意圖

4 定位算法在TinyOS中的實(shí)現(xiàn)

根據(jù)RSSI測距原理,要確定盲節(jié)點(diǎn)的位置,至少需要三個錨節(jié)點(diǎn)(已知位置的接收節(jié)點(diǎn)),并需要一個匯聚節(jié)點(diǎn)來傳輸各錨節(jié)點(diǎn)的RSSI寄存器值到PC機(jī),最終通過串口調(diào)試助手來顯示結(jié)果并進(jìn)一步定位盲節(jié)點(diǎn)坐標(biāo)。下面分別介紹移動盲節(jié)點(diǎn)、靜態(tài)錨節(jié)點(diǎn)以及匯聚節(jié)點(diǎn)的實(shí)現(xiàn)流程。

4.1 盲節(jié)點(diǎn)

盲節(jié)點(diǎn)的主要任務(wù)是向所有錨節(jié)點(diǎn)廣播信息,具體的流程如圖3所示。

圖3 盲節(jié)點(diǎn)工作流程圖

Tiny OS程序頂層配件主體如下:

4.2 靜態(tài)錨節(jié)點(diǎn)

錨節(jié)點(diǎn)主要功能是接收盲節(jié)點(diǎn)的廣播信息,然后提取RSSI寄存器中的值,通過路由層發(fā)送接口轉(zhuǎn)發(fā)給匯聚節(jié)點(diǎn),或轉(zhuǎn)發(fā)其它錨節(jié)點(diǎn)的數(shù)據(jù)給匯聚節(jié)點(diǎn)。主要實(shí)現(xiàn)流程如圖4所示。

錨節(jié)點(diǎn)的組件連接如下:

靜態(tài)錨節(jié)點(diǎn)通過CC2420Packet接口來獲取RSSI值,具體函數(shù)如下:

rssi=((int)call CC2420Paeket.getRssi(msg));

4.3 匯聚節(jié)點(diǎn)

匯聚節(jié)點(diǎn),也稱為基站,主要負(fù)責(zé)接收各錨節(jié)點(diǎn)發(fā)送的接收表信息,包括錨節(jié)點(diǎn)ID、DSN和RSSI,并將這些數(shù)據(jù)包通過串口轉(zhuǎn)發(fā)到PC機(jī)。具體流程如圖5所示。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉