《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 業(yè)界動(dòng)態(tài) > 基于CC2431的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)

基于CC2431的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)

2008-12-11
作者:莊 雄, 楊永明, 丁 唯

  摘 要: 提出了采用傳感器網(wǎng)絡(luò)" title="無(wú)線傳感器網(wǎng)絡(luò)">無(wú)線傳感器網(wǎng)絡(luò)進(jìn)行電氣設(shè)備在線監(jiān)測(cè)" title="在線監(jiān)測(cè)">在線監(jiān)測(cè)的全新解決方案和實(shí)現(xiàn)方法。詳細(xì)論述了基于CC2431的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)和基站硬件設(shè)計(jì)方案,以及基于8051核的TinyOS在傳感器節(jié)點(diǎn)和基站上的移植方案。
  關(guān)鍵詞: 無(wú)線傳感器網(wǎng)絡(luò); 在線監(jiān)測(cè); 節(jié)點(diǎn); CC2431; TinyOS

?

  電氣設(shè)備運(yùn)行狀態(tài)的在線監(jiān)測(cè)是預(yù)防電力系統(tǒng)故障的一個(gè)重要手段。目前,電氣設(shè)備在線監(jiān)測(cè)以有線通信為主,該方式接線多、方式復(fù)雜、增加了系統(tǒng)隱患,也給故障的排查與維修帶來(lái)不便。本文針對(duì)此問(wèn)題,設(shè)計(jì)了一種基于無(wú)線傳感器網(wǎng)絡(luò)的站內(nèi)通信方案。
  無(wú)線傳感器網(wǎng)絡(luò)作為新興的測(cè)控網(wǎng)絡(luò)技術(shù),綜合了傳感技術(shù)、嵌入式計(jì)算機(jī)技術(shù)、現(xiàn)代網(wǎng)絡(luò)技術(shù)、無(wú)線通信技術(shù)和分布式智能信息處理技術(shù)。其多跳功能和拓?fù)潇`活性可有效避免各種建筑和設(shè)備對(duì)無(wú)線信號(hào)的衰減作用。其網(wǎng)絡(luò)的自組織、自適應(yīng)性可大大提高在線監(jiān)測(cè)系統(tǒng)的可靠性。
  無(wú)線傳感器網(wǎng)絡(luò)主要是面向低速、低功耗的無(wú)線應(yīng)用,其單個(gè)節(jié)點(diǎn)是典型的資源受限的嵌入式系統(tǒng),且需要有對(duì)環(huán)境的感知、數(shù)據(jù)發(fā)送、命令接收?qǐng)?zhí)行以及其他一些網(wǎng)絡(luò)功能和數(shù)據(jù)處理能力,因此需要有一個(gè)小型的操作系統(tǒng)來(lái)組織和管理這些硬件,并完成其軟件功能。TinyOS就是美國(guó)加州大學(xué)Berkeley分校針對(duì)無(wú)線傳感器網(wǎng)絡(luò)而開(kāi)發(fā)的一個(gè)小型操作系統(tǒng)。但TinyOS所支持的平臺(tái)控制核心都與射頻模塊分離,這樣對(duì)節(jié)點(diǎn)節(jié)能方面有一定的影響。本設(shè)計(jì)采用CC2431為核心,克服了上述缺點(diǎn),也使節(jié)點(diǎn)體積減小。
1 系統(tǒng)設(shè)計(jì)
  系統(tǒng)整體框架如圖1所示。在電氣設(shè)備如變壓器上的繞組和絕緣子外圍安裝上帶有紫外脈沖、超聲波、溫度、濕度等傳感器的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)。當(dāng)繞組或絕緣子表面有放電時(shí),節(jié)點(diǎn)可以檢測(cè)到放電信號(hào),并將信號(hào)量化和簡(jiǎn)單處理后按IEEE802.15.4規(guī)范封裝成幀,向附近節(jié)點(diǎn)傳輸?;蛘咴摴?jié)點(diǎn)接收其他節(jié)點(diǎn)所傳數(shù)據(jù),并加入多跳信息,重新封裝成幀繼續(xù)傳送。直到消息傳輸?shù)交荆緦⒔邮盏臄?shù)據(jù)直接上傳到PC上位機(jī)" title="上位機(jī)">上位機(jī)。所有消息由上位機(jī)進(jìn)行復(fù)雜的數(shù)字信號(hào)處理,并通過(guò)數(shù)據(jù)庫(kù)對(duì)網(wǎng)絡(luò)各節(jié)點(diǎn)信息進(jìn)行綜合管理。這些數(shù)據(jù)信息又可以通過(guò)連接因特網(wǎng)的上位機(jī)與遠(yuǎn)程主機(jī)交互,從而實(shí)現(xiàn)故障的遠(yuǎn)程診斷。

?

?

2 節(jié)點(diǎn)和基站硬件設(shè)計(jì)
  節(jié)點(diǎn)和基站硬件都采用CC2431片上系統(tǒng)(SoC)作為處理核心。CC2431收發(fā)機(jī)采用直接序列擴(kuò)頻技術(shù),增強(qiáng)了系統(tǒng)抵抗多徑效應(yīng)的穩(wěn)健性,并且具有較強(qiáng)抗復(fù)雜電磁環(huán)境干擾的能力。特別是其對(duì)同頻率噪聲具有極強(qiáng)的抑制能力,與收發(fā)機(jī)約定的碼片外的其他同頻率數(shù)據(jù)都將被認(rèn)為是噪聲而濾除。CC2431功能強(qiáng)大,使外圍電路得到大大的簡(jiǎn)化。加上采用PCB天線,使系統(tǒng)的節(jié)能性進(jìn)一步提高。
2.1 CC2431簡(jiǎn)介
  CC2431片內(nèi)集成工業(yè)級(jí)低功耗8051 MCU,其內(nèi)部組件包括:128KB Flash和8KB RAM,2.4GHz頻段的頻率合成器,128bit AES安全協(xié)處理器,8路8~14bits ADC輸入,溫度傳感器,精確的定位引擎,具有DMA功能和電池監(jiān)測(cè)功能。其中頻率合成器內(nèi)含射頻協(xié)處理器,全面支持IEEE 802.15.4標(biāo)準(zhǔn)[1-2]
  CC2431外接電壓為2.0~3.6V,發(fā)射和接收時(shí)電流都為27mA,掉電和準(zhǔn)備模式電流分別為0.9?滋A和0.6?滋A;所需的外圍元件較少,所以具有較好的節(jié)能效果。
2.2 硬件電路
  節(jié)點(diǎn)和基站硬件電路框圖如圖2所示,主要由電源、CC2431外圍電路、傳感器電路、Flash ROM、串行接口電路和三個(gè)LED指示燈構(gòu)成。

?


  電源部分由3節(jié)1.2V干電池為系統(tǒng)提供電能。在電源輸入端須接抑制各主要干擾諧波的濾波電容,然后分割出模擬電源和數(shù)字電源。數(shù)字電源直接接入主電源;模擬電源通過(guò)磁珠接入主電源。
  CC2431的外圍電路較為簡(jiǎn)單,可根據(jù)CC2430數(shù)據(jù)手冊(cè)[1]搭建(CC2431在CC2430基礎(chǔ)上加入定位引擎,主要數(shù)據(jù)都在CC2430數(shù)據(jù)手冊(cè)內(nèi))。需要注意的是,各模擬和數(shù)字電源引腳處必須加濾波或去耦電容;PCB天線部分須嚴(yán)格按照參考文獻(xiàn)[3]制作。
  傳感器電路主要由紫外脈沖傳感器、超聲波傳感器、溫度傳感器、濕度傳感器組成。
  Flash ROM電路由一片Atmel公司出品的AT45DB041組成,直接接入CC2431 SPI輸入端。該芯片集成2 046頁(yè)×264B Flash存儲(chǔ)單元,用于存儲(chǔ)傳感器重要?dú)v史數(shù)據(jù)。
  串行接口電路由一片低功耗MAX2323和COM母口組成。CC2431串口端接入MAX2323進(jìn)行電平轉(zhuǎn)換通過(guò)COM口與PC上位機(jī)通信。
  三個(gè)LED指示燈用于顯示節(jié)點(diǎn)和基站的運(yùn)行狀態(tài)。
3 軟件設(shè)計(jì)
  軟件設(shè)計(jì)主要論述TinyOS在本文硬件上的移植。由于整個(gè)移植工作包括眾多組件,本文以較為典型的RF組件的移植為例展開(kāi)論述。
3.1 TinyOS簡(jiǎn)介
  TinyOS是加州大學(xué)Berkeley分校專(zhuān)門(mén)針對(duì)無(wú)線傳感器網(wǎng)絡(luò)的特點(diǎn)開(kāi)發(fā)的微型操作系統(tǒng)[4]。TinyOS不是傳統(tǒng)意義上的操作系統(tǒng),確切地說(shuō)它是一個(gè)適用于網(wǎng)絡(luò)化嵌入式系統(tǒng)的編程框架,通過(guò)在這個(gè)框架內(nèi)鏈接一組必要的組件,就能方便地編譯出面向特定應(yīng)用的操作系統(tǒng),這對(duì)于存儲(chǔ)資源極為有限的系統(tǒng)來(lái)說(shuō)非常重要。針對(duì)無(wú)線傳感器網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)眾多的特點(diǎn)以及多并發(fā)操作的工作方式,該操作系統(tǒng)采用了事件驅(qū)動(dòng)的體系結(jié)構(gòu)。
  與通用操作系統(tǒng)相比,TinyOS更加簡(jiǎn)單可靠。TinyOS具有以下特點(diǎn):
  (1) 事件驅(qū)動(dòng)的體系結(jié)構(gòu);
  (2) 單一的共享?xiàng)?share stack);
  (3) 無(wú)內(nèi)核、無(wú)進(jìn)程管理、無(wú)內(nèi)存管理和虛擬內(nèi)存。
  TinyOS的應(yīng)用結(jié)構(gòu)如圖3所示,主要由應(yīng)用層、硬件抽象層(HAL)和硬件表達(dá)層(HPL)構(gòu)成。應(yīng)用層由主組件和具體的應(yīng)用組件組成。主組件是一個(gè)簡(jiǎn)單的FIFO任務(wù)調(diào)度器。應(yīng)用組件結(jié)合具體的應(yīng)用實(shí)例進(jìn)行編寫(xiě)。硬件抽象層組件主要由感知組件、執(zhí)行組件和通信組件組成,為應(yīng)用層提供與硬件無(wú)關(guān)的各種功能。硬件表達(dá)層組件將硬件提供的各種功能以函數(shù)形式表達(dá),供上層調(diào)用。層與層之間的互訪由接口文件完成。

?


  TinyOS的編程語(yǔ)言為nesC(C language for network embedded systems)。nesC對(duì)C作了擴(kuò)展,目的就是為了支持TinyOS的組件化編程模式。nesC有三種文件,分別為接口、模塊組件和配置組件。接口采用基于組件編程模式的nesC編程結(jié)構(gòu),詳細(xì)描述了服務(wù)提供者和使用者之間的多功能交互;模塊組件實(shí)現(xiàn)具有一定功能的子系統(tǒng);配置組件負(fù)責(zé)將各個(gè)子系統(tǒng)鏈接成完整的應(yīng)用。多個(gè)模塊組件和配置組件共同構(gòu)成TinyOS的應(yīng)用程序" title="應(yīng)用程序">應(yīng)用程序[5]
3.2 TinyOS移植實(shí)現(xiàn)
  TinyOS在8051核上的移植不同于TinyOS在AVR/MSP430/PIC/ARM核的移植,因?yàn)閚esC編譯器ncc是基于GCC編寫(xiě)的,而GCC不支持對(duì)MCS-51系列核心的交叉編譯。
  本次移植的總體流程如圖4所示:根據(jù)TinyOS上層組件接口的需要,用nesC編寫(xiě)硬件表達(dá)層和硬件抽象層文件。代碼只能按照nesC語(yǔ)法編寫(xiě)才能通過(guò)ncc編譯。編寫(xiě)完成后,結(jié)合上層應(yīng)用程序編譯出app.c文件。再將app.c文件通過(guò)perl語(yǔ)言編寫(xiě)的腳本將其原語(yǔ)法轉(zhuǎn)換為CC2431開(kāi)發(fā)環(huán)境" title="開(kāi)發(fā)環(huán)境">開(kāi)發(fā)環(huán)境IAR Embedded Workbench for 8051支持的語(yǔ)法。再通過(guò)IAR編譯器編譯、調(diào)試和下載。

?


  下面主要以RF組件的移植為例來(lái)說(shuō)明移植具體過(guò)程。
3.2.1 編寫(xiě)HPL和HAL文件
  圖5為CC2430RadioC配置文件的連接框圖。該文件為HAL文件,將下層的CC2430RadioM、CC2430ControlM、CC2430TimerM、HPLCC2430RFInterruptM、LedsC模塊連接成一個(gè)RF功能組件,向上層提供StdControl、BareSendMsg、ReceiveMsg、CC2430Control、SplitControl、MacControl、RadioCoordinator接口。根據(jù)上層應(yīng)用程序的不同,可以添加其他接口,但需要對(duì)配置文件和相關(guān)模塊作相應(yīng)的修改。

?


  CC2430RadioM是HAL文件,為RF組件功能的主要實(shí)現(xiàn)模塊,完成消息的接收和發(fā)送任務(wù),包括數(shù)據(jù)幀封裝和各種MAC協(xié)議如CSMA/CA、MAC層會(huì)話協(xié)議等的實(shí)現(xiàn)。
  CC2430ControlM是HPL文件,將RF各種控制動(dòng)作抽象為函數(shù),供CC2430RadioM調(diào)用。
  HPLCC2430RFInterruptM是HPL文件,主要處理與RF有關(guān)的中斷服務(wù),為CC2430RadioM和CC2430ControlM提供事件信號(hào)。
  CC2430TimerM是HPL文件,主要提供RF組件中MAC控制時(shí)鐘,如通過(guò)對(duì)SFD的捕獲而計(jì)算幀傳送時(shí)間。
  LedsC模塊是HAL文件,以LED燈的形式為用戶(hù)提供RF組件運(yùn)行狀態(tài)的指示。
3.2.2 ncc編譯
  編寫(xiě)完上層需要的HPL與HAL文件后,接下來(lái)結(jié)合某個(gè)應(yīng)用程序利用ncc進(jìn)行編譯。編譯前,須在appsmakerules文件里加入CC2431平臺(tái)參數(shù)和創(chuàng)建平臺(tái)配置文件.platform。
  appsmakerules文件內(nèi)“PLATFORMS =”代碼后為各平臺(tái)名稱(chēng),在此加入CC2431平臺(tái)。
  .paltform文件創(chuàng)建在平臺(tái)目錄下。由于目標(biāo)平臺(tái)沒(méi)有IAR選項(xiàng),所以平臺(tái)配置只能配置成keil。文件內(nèi)容如下:
  @opts = ('-fnesc-target=keil', '-fnesc-no-debug');
  經(jīng)過(guò)上兩步后,即可用ncc對(duì)應(yīng)用程序編譯生成app.c文件。
3.2.3 語(yǔ)法編輯腳本
  語(yǔ)法編輯腳本用于app.c文件與IAR Embedded Workbench開(kāi)發(fā)環(huán)境的耦合。ncc編譯出來(lái)的app.c文件有部分語(yǔ)法與IAR開(kāi)發(fā)環(huán)境的語(yǔ)法不兼容,因此須將不兼容的語(yǔ)法作相應(yīng)的修改。由于app.c文件代碼較長(zhǎng),一般有幾千行,人工修改費(fèi)時(shí)費(fèi)力,且容易出錯(cuò),所以需用一個(gè)語(yǔ)法編輯腳本對(duì)不兼容代碼進(jìn)行修改。本文語(yǔ)法編輯腳本采用perl語(yǔ)言(Practical Extraction Report Language)編寫(xiě)。perl語(yǔ)言在Internet編程中應(yīng)用廣泛,具有語(yǔ)法簡(jiǎn)單、用途廣泛、跨平臺(tái)、面向?qū)ο?、嵌入文檔、可與C/C++鏈接及易調(diào)試等特點(diǎn)[6]。本文利用了其在文本編輯方面的強(qiáng)大功能。
  所作修改的語(yǔ)法:
  (1) 在 “typedef int sfr;” 、“typedef int sbit;”和DBG調(diào)試信息代碼、行命令代碼以及其他對(duì)IAR無(wú)用代碼前加 “//”屏蔽。
  (2) 寄存器定義語(yǔ)句如 “sfr P0 __attribute((x80));”改為“SFR(P0,0x80)”。
  (3) 外部數(shù)據(jù)訪問(wèn)語(yǔ)句“ ((unsigned char *)0)[addr]”改為“((unsigned char volatile __xdata *) 0)[addr]”。
  (4)計(jì)算數(shù)據(jù)偏移量語(yǔ)句,如“(size_t )&((struct TOS_Msg *)0)->data”改為“(size_t)(unsigned long)&((struct TOS_Msg *)0)->data”。
  (5) 去除64bit “l(fā)ong long”類(lèi)型,將所有“l(fā)ong long”類(lèi)型改為32bit “l(fā)ong”類(lèi)型。
  (6) 中斷服務(wù)程序名如“void __attribute((interrupt)) __vector_16(void)”或“void __attribute((signal)) __vector_16(void)”改為“#pragma vector=RF_VECTOR_interrupt void RF_IRQ(void) ”
  經(jīng)過(guò)以上修改后生成IARapp.c就可以用于IAR開(kāi)發(fā)環(huán)境的調(diào)試了。
3.2.4? 調(diào)試和下載
  調(diào)試和下載直接在IAR Embedded Workbench for 8051環(huán)境下進(jìn)行。這一步與其他開(kāi)發(fā)環(huán)境下的調(diào)試和下載相似[7],不再贅述。
4 測(cè)試實(shí)驗(yàn)
  本次測(cè)試實(shí)驗(yàn)結(jié)合紫外脈沖傳感器、溫度傳感器和濕度傳感器,在實(shí)驗(yàn)室環(huán)境下,用火花放電模擬高壓絕緣子放電,測(cè)試時(shí)間為30分鐘。數(shù)據(jù)傳輸方式是使用TinyOS自帶的多跳路由(Multi-Hop Routing)算法,以?xún)商男问絺鬏敗9?jié)點(diǎn)每10秒發(fā)送前10秒鐘的放電脈沖數(shù)和平均溫度、濕度。測(cè)試結(jié)果表明在這種情況下,數(shù)據(jù)的接收率和正確率都為100%。這些數(shù)據(jù)可以為電氣設(shè)備的運(yùn)行狀態(tài)監(jiān)測(cè)和故障診斷提供依據(jù)。
  但是,由于實(shí)際情況下,高壓絕緣子的放電時(shí)間分布具有一定的隨機(jī)性,并且與環(huán)境溫度和濕度有關(guān)。這樣對(duì)在線監(jiān)測(cè)的實(shí)時(shí)性就有較高要求。而無(wú)線傳感器網(wǎng)絡(luò)所強(qiáng)調(diào)的節(jié)能性必須使節(jié)點(diǎn)大部分時(shí)間處于休眠狀態(tài)。這個(gè)矛盾將設(shè)法通過(guò)跨層路由協(xié)議的算法予以解決。
  本文詳細(xì)論述了無(wú)線傳感器網(wǎng)絡(luò)的硬件設(shè)計(jì)和軟件系統(tǒng)移植,及其應(yīng)用于電氣設(shè)備在線監(jiān)測(cè)的優(yōu)勢(shì)。無(wú)線傳感器網(wǎng)絡(luò)的無(wú)線性減少了電氣設(shè)備在線監(jiān)測(cè)系統(tǒng)的復(fù)雜度和有線連接隱患。其自組織、自適應(yīng)性方便了監(jiān)測(cè)系統(tǒng)的搭建和擴(kuò)充。其網(wǎng)絡(luò)靈活性減小了單個(gè)節(jié)點(diǎn)的故障對(duì)監(jiān)測(cè)工作的影響。
  由于紫外脈沖監(jiān)測(cè)法是非接觸式的監(jiān)測(cè)方法,且監(jiān)測(cè)距離可以達(dá)到11米,減小了節(jié)點(diǎn)在被監(jiān)測(cè)設(shè)備具有強(qiáng)電磁場(chǎng)情況下所受的電磁干擾。
  下一步將充分利用CC2431的節(jié)點(diǎn)定位引擎,加入節(jié)點(diǎn)定位程序,實(shí)現(xiàn)監(jiān)測(cè)網(wǎng)絡(luò)的節(jié)點(diǎn)定位。然后根據(jù)節(jié)點(diǎn)在不同電氣設(shè)備的工作環(huán)境,加入太陽(yáng)能發(fā)電、溫差發(fā)電等模塊,使無(wú)線傳感器電能管理更加靈活,并延長(zhǎng)無(wú)線傳感器網(wǎng)絡(luò)的生存周期。

參考文獻(xiàn)
[1] ?Chipcon AS. CC2430 preliminary data sheet (Rev. 2.01).[2006]. http://focus.ti.com/lit/ds/swrs036e/swrs036e.pdf.
[2] ?Chipcon AS. CC2431 preliminary data sheet (Rev. 1.01).[2006]. http://focus.ti.com/lit/ds/symlink/cc2431.pdf.
[3] ?JONSRUD G E.Folded dipole antenna for CC2400,CC2420?and CC2430.[2006]. http://focus.ti.com/lit/an/swra093/swra093.pdf.
[4] ?HILL J. System architecture for wireless sensor networks[D]. Berkeley, USA: University of California, 2003.
[5] 于海斌,曾鵬,梁韋.智能無(wú)線傳感器網(wǎng)絡(luò)系統(tǒng).北京:
?科學(xué)出版社,2006.
[6] ?龍洋,史波. Perl5實(shí)用編程技術(shù).北京:中國(guó)水利水電
?出版社,2001.
[7] ?IAR Systems.IAR embedded workbench IDE user guide.
?[2004-12].ftp://ftp.iar.se/WWWfiles/guides/ide/ouew-3.pdf.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。