<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 移動設(shè)備中ZigBee接口的實(shí)現(xiàn)

          移動設(shè)備中ZigBee接口的實(shí)現(xiàn)

          作者: 時間:2011-04-07 來源:網(wǎng)絡(luò) 收藏

          引言

          ZigBee是一種短距離、低速率無線網(wǎng)絡(luò)技術(shù),是一種介于RFID和Bluetooth之間的技術(shù)提案。ZigBee一般采用IEEE 802.15.4收發(fā)器與ZigBee協(xié)議棧的組合,在數(shù)千個微小的節(jié)點(diǎn)之間相互協(xié)調(diào)實(shí)現(xiàn)通信。

          這些節(jié)點(diǎn)只需要很少的能量,以接力的方式通過無線電波將數(shù)據(jù)從一個傳感器傳到另一個節(jié)點(diǎn),所以它們的通信效率非常高。因此,ZigBee在傳感器網(wǎng)絡(luò)、智能家居、工業(yè)自動化等領(lǐng)域有廣泛的應(yīng)用。市場研究公司NSR曾發(fā)布報告指出,首批具備ZigBee功能的產(chǎn)品將于2006年第一季在北美、歐洲和亞太地區(qū)展開,該機(jī)構(gòu)并預(yù)估,到2010年,全球?qū)⒖赏渴?.8億個ZigBee組件,成長非??焖?。同樣,市調(diào)機(jī)構(gòu)In-Stat也曾在2005年發(fā)布新聞指出,五年內(nèi),ZigBee成長將超過200%。但是,由于各家使用ZigBee技術(shù)的設(shè)備商采用的應(yīng)用協(xié)議不同,所以目前市場上很少通用的測試設(shè)備,執(zhí)行包括信道檢測,數(shù)據(jù)監(jiān)聽,發(fā)送功率等功能。本文介紹了一種在中實(shí)現(xiàn)的方法,以windows mobile 6.0 Professional為平臺,在仿真器中給出了演示,同時,在HP iPaq rx3700的真機(jī)下測試通過。

          1. 系統(tǒng)組成及功能

          如圖1所示,按照功能,系統(tǒng)可以分成ZigBee模塊和這兩個部分,它們通過串口進(jìn)行通信。ZigBee模塊負(fù)責(zé)IEEE 802.15.4信號的發(fā)送和接收,負(fù)責(zé)數(shù)據(jù)的處理,并向用戶提供有好的UI。

          圖1系統(tǒng)組成框圖

          系統(tǒng)的功能如下:

          1. 信道檢測。通過掃描,完成ZigBee技術(shù)2.4GHz頻段16個信道的狀態(tài)檢測,并返回給UI進(jìn)行顯示。

          2. 發(fā)送/接收信道設(shè)置。用戶通過UI給ZigBee模塊發(fā)送指令,使之通過設(shè)定的信道來發(fā)送和接收數(shù)據(jù)。

          3. 發(fā)送/接收數(shù)據(jù)。用戶可以用文本方式或者HEX方式發(fā)送數(shù)據(jù),并且可以用一定間隔進(jìn)行連續(xù)發(fā)送。

          4. 發(fā)送功率設(shè)置。用戶發(fā)送數(shù)據(jù)時,通過UI給ZigBee模塊發(fā)送指令,可以設(shè)定發(fā)送的功率大小。

          2. 結(jié)構(gòu)模型

          2.1硬件結(jié)構(gòu)模型

          如圖1所示,ZigBee模塊選用Freescale的HCS08GB60為MCU,MC13192為IEEE 802.15.4收發(fā)器,它們之間通過SPI接口進(jìn)行通信。移動設(shè)備通過串口和ZigBee模塊中的HCS08GB60進(jìn)行通信。

          2.2網(wǎng)絡(luò)結(jié)構(gòu)模型

          ZigBee網(wǎng)絡(luò)可以使用Star、Mesh和Mesh-Tree這三種拓?fù)浣Y(jié)構(gòu),具體可以參考圖2.

          圖2 ZigBee網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)模型

          從成本上來考慮,無線部分采用了Freescale免費(fèi)提供的SMAC(Simple MAC)。SMAC給出了物理層和MAC層的API函數(shù),包括工作狀態(tài)轉(zhuǎn)換、信道選擇、發(fā)送功率選擇、時鐘選擇、信道能量和接收信號能量指示(RSSI)等等。該工程文件以Source的方式給出,而不是lib,且可以直接從Freescale網(wǎng)站上下載得到。

          3. 軟硬件設(shè)計(jì)平臺

          硬件設(shè)計(jì)軟件采用經(jīng)典的Protel99se,主要涉及ZigBee模塊的設(shè)計(jì)。設(shè)計(jì)輸出原理圖和PCB圖如下圖3所示:

          圖3 硬件設(shè)計(jì)輸出圖

          嵌入式開發(fā)環(huán)境采用CodeWarrior for HCS08 V3.1,使用C語言和匯編語言進(jìn)行開發(fā)。

          移動設(shè)備使用windows mobile設(shè)備。具體開發(fā)環(huán)境為:Microsoft Visual Studio 2005+SP1+Windows Mobile 6 professional SDK+ .Net Compact Framework 2.0 SP2。

          4.ZigBee模塊程序流程

          目前,嵌入式系統(tǒng)有三種主流架構(gòu)解決方案:基于中斷的多任務(wù)模擬、前后臺系統(tǒng)和實(shí)時多任務(wù)操作系統(tǒng)?!爸袛嗄M多任務(wù)”會導(dǎo)致系統(tǒng)丟失中斷信息,大大破壞系統(tǒng)的穩(wěn)定性,所以這種方法是不建議使用的。

          多任務(wù)實(shí)時操作系統(tǒng)是目前最成熟而且最合理的解決方案,但是實(shí)時操作系統(tǒng)一般為第三方提供,需要付費(fèi),而且就像uCOS-II這樣的開源系統(tǒng)也不再免費(fèi),若在沒有獲得許可的情況之下使用,可能會涉及到版權(quán)糾紛。

          而自己開發(fā)實(shí)時操作系統(tǒng),研發(fā)開銷太大,另外,一些功能簡單或者對實(shí)時性要求不高的系統(tǒng),根本沒有必要上實(shí)時操作系統(tǒng)。因此,在實(shí)際開發(fā)中,很有可能會采用簡單的前后臺系統(tǒng)。

          前后臺系統(tǒng)的基本概念是“前臺中斷,后臺循環(huán)”。

          前后臺系統(tǒng)的基本思想是:硬件中斷函數(shù)中只做非常少量而且是絕對必須的操作:如設(shè)置中斷寄存器、保存數(shù)據(jù)寄存器等,然后置后臺標(biāo)志位,隨即退出中斷。這些操作稱為“前臺操作”。

          而后臺操作是一個開放中斷的無限循環(huán)。在循環(huán)中檢查各后臺標(biāo)志位,如果某一標(biāo)志位被置位,則說明有中斷發(fā)生,立即調(diào)用相應(yīng)的中斷服務(wù)任務(wù),這些任務(wù)被稱為“后臺操作”。

          在ZigBee模塊的嵌入式軟件開發(fā)中,我們使用“前臺中斷,后臺循環(huán)”的架構(gòu)。主程序流程如下圖4所示:

          圖4主程序流程圖

          TargetInit()執(zhí)行系統(tǒng)初始化操作,主要包括HCS08的IO、UART和Timer等模塊的初始化。ConfigInit()執(zhí)行配置初始化操作,主要包括SMAC協(xié)議和串口通信協(xié)議配置。

          ScheduleLoop()為主調(diào)度循環(huán),根據(jù)狀態(tài)來執(zhí)行不同的任務(wù),如下圖5所示。其中的SYS_FEED_DOG()是指喂看門狗操作。

          圖5 主調(diào)度循環(huán)流程圖

          5. 移動設(shè)備應(yīng)用程序流程

          在移動設(shè)備上運(yùn)行的用戶應(yīng)用程序,主要執(zhí)行信息交互和顯示功能。進(jìn)一步說,用戶要通過UI將命令發(fā)送給ZigBee模塊,同時,移動設(shè)備將ZigBee模塊的情況通過UI呈現(xiàn)給用戶。考慮到移動端開發(fā)的便捷性,windows mobile平臺是一個不錯的選擇。在Microsoft Visual Studio 2005的IDE下,安裝一個最新的Windows Mobile 6 professional SDK,配合自帶的Emulator就可以進(jìn)行開發(fā)和調(diào)試。由于本人比較熟悉C++,所以我選用了native code進(jìn)行開發(fā),建立一個基于對話框的MFC工程,將需要的控件加入對話框,包括Edit Control, Static Text, Button和Check box等等。具體流程如下圖6所示。

          圖6 移動設(shè)備應(yīng)用程序流程圖

          其中的對話框初始化包括了界面的初始化,要強(qiáng)調(diào)的是串口的初始化。我們這里采用的串口參數(shù)如下:速率9600bps,1個停止位,無奇偶校驗(yàn)。

          6.模擬器調(diào)試

          測試時,采用windows mobile 6 professional emulator。同時,將PC機(jī)上的COM1口映射到emulator上,來進(jìn)行串口通信。配置方法是,在emulator中,選擇”File”下的”Configure”菜單,在”Peripherals”的”Serial port 0”的下拉條中,選擇”COM1”。如圖7所示:

          圖7模擬器的串口映射



          關(guān)鍵詞: 移動設(shè)備 ZigBee接口

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();