前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的zigbee協議主題范文,僅供參考,歡迎閱讀并收藏。
關鍵詞:zigbee;PHY服務;原語;MAC層
中圖分類號:TN91 文獻標識碼:A 文章編號:2095-1302(2015)06-00-02
0 引 言
ZigBee無線網絡協議層基于國際標準化組織(ISO)和開放式系統互聯(OSI)基本參考模型。ISO/OSI模型有7層,但ZigBee僅保留了對于組建低功耗、低數據率的無線網絡所需的功能層。物理層和媒體接入控制協議是在IEEE 802.15.4中描述的低速率無線個人局域網,在其定義的物理(PHY)層和媒體訪問控制(MAC)層基礎上制定的一種低速無線個域網(LR-WPAN)技術規范,所以ZigBee協議棧的物理(PHY)層和媒體訪問控制(MAC)層是按照IEEE 802.15.4標準規定來工作的,網絡(NWK)層和應用(APL)層由ZigBee標準定義[1]。
1 PHY概述
IEEE802.15.4協議描述中分別有2.4 GHz物理層和868/9l5 MHz物理層兩個物理層標準,數據傳輸速率高達250 kb/s。兩個物理層使用的傳輸方式都基于DSSS(Direct Sequence Spread Spectrum,直接序列擴頻),簡稱直擴方式(DS方式),在物理層使用相同的數據包格式,其低功耗、低成本的優點使它在很多領域獲得了廣泛的應用[2]。在于調制方式、工作頻率、擴頻碼片長度和傳輸速率方面有所區別。2.4GHz頻段申請的ISM頻段在全球范圍內無需統一申請,有利于ZigBee設備降低生產成本和市場推廣;另外通過采用高階調制可以達到250 kb/s的傳輸速率,從而獲得極小的通信延時、極短的周期以及更大的吐吞量,從而ZigBee網絡中的終端節點更加節電。歐洲的ISM頻段是868 MHz,美國的ISM頻段是915 MHz,引入868 MHz及915 MHz這兩個頻段可以使2.4 GHz附近的無線通信設備在不互相影響的條件下發出各自的頻率。這兩個頻段在無線信號傳輸過程由于表現出小損耗特點,因而擁有極廣的通信范圍,可以適當降低接收機的靈敏度而不改變傳輸質量,從而在給定區域用較少設備進行有效覆蓋。
2 PHY服務機制
PHY層提供兩種類型的服務:PHY數據服務和PHY管理服務。PHY數據服務負責在射頻信道中收發PHY協議數據單元(PPDU)。PHY還有一個稱為物理層管理實體(PLME)的管理實體,通過PLME可以喚醒PHY管理功能。
(1)PHY數據服務
數據總是以MAC協議數據單元(MPDU)的形式進行傳輸。本地MAC需要傳輸數據時,就向PHY提供一個MPDU. PHY嘗試進行傳輸,然后向MAC報告傳輸結果(成功或失敗)。當射頻收發器收到數據后,PHY層通知MAC層收到了一個MPDU。PHY層不僅向MAC層提供MPDU,還向MAC層提供鏈路質量指標(LQI)信息。如圖1所示。
圖1 兩臺設備間的數據傳輸服務
數據可以由MAC層產生,更高層完全不知道這個數據的存在。數據由ZigBee設備對象(ZDO)或應用支持子層應用對象產生。在傳輸過程中,每一層都對數據單元(DU)加入自己的頭部和尾部(如果允許),然后將該結果傳遞給下一個更低層。每一層的數據單元都以該層的名稱命名。在APS層和NWK層,數據單元分別被稱為APS協議數據單元(APDU)和NWK協議數據單元(NPDU)。PHY數據服務接收一個MAC協議數據單元(MPDU)并創建將通過射頻傳輸的PHY協議數據單元(PPDU)。在接收端,數據從某一層向上傳輸到下一個更高層,直到數據單元到達目的層頭部和尾部被刪除。
(2)PHY管理服務
管理實體提供的管理服務有:信道能量檢測(ED)、鏈路質量指示(LQI)、空閑信道評估(CCA)等。信道中接收信號的功率強度是由信道能量檢測來完成的,是為上層提供信道選擇的依據[3]。噪聲信號功率和有效信號功率之和作為信道檢測結果的依據,其檢測過程沒有進行解碼操作。而鏈路質量指示對檢測信號需要進行解碼操作,生成一個信噪比的指標值,為上層提供接收的無線信號的質量和強度服務信息。空閑信道評估主要評估信道指標值是否空閑。
3 PHY服務實現
IEEE 802.15.4和ZigBee標準使用原語的概念來描述服務,這些服務由上一層使用。相鄰協議層之間的通信是通過在層與層之間調用函數或傳遞原語來管理的。服務原語的概念是比較抽象的,要實現特定層提供的服務需要由它來指定需要傳遞的信息來完成。服務原語與具體的服務實現無關,服務原語有請求、通知、響應、確認4種情況[4],具體如下:
(1)請求(request)原語。請求原語由網絡服務請求方的用戶發送特定信息到它的服務提供層進行響應,請求啟動某一項服務。
(2)通知(indication)原語。指示原語由網絡用戶的服務提供層發送到對應服務響應方用戶的相應層,跟遠端服務請求邏輯相關。
(3)響應(response)原語。響應原語由服務響應端的用戶發出信息到服務提供層,從而完成提示原語啟動的程序。
(4)確認(confirm)原語。驗證服務原語是由服務提供層發出并傳輸到服務請求端的用戶方,該原語是確認服務請求原語的傳遞結果。
在多用戶存在的網絡中,服務原語交換過程是兩個對等的用戶通過服務提供層交換信息,它們通過原語的傳遞,建立相關服務[5]。在其下一層提供服務的基礎上建立服務用戶的功能。層間信息傳輸流事件是離散的,是通過發送服務原語來實現事件的。協議使用服務原語來描述每一層的功能。每個原語指定要執行的操作或者提供之前請求的操作結果。一個原語也可能攜帶執行其任務所需的參數。如圖2所示。
圖2 服務原語交換過程
如上圖,N+1層為服務用戶、N層為服務提供者,在PHY層數據服務中,PHY數據請求(PD-Data. Request)原語由MAC層產生,并傳遞給PHY層,以請求傳輸一個MPDU。通知原語由第N層產生給其上一層,表明產生了一個對第N+1層很重要的事件。當PHY接收來自網絡上另一個設備的數據,這些數據需要傳送到MAC層,PHY用戶使用PD-Data的通知原語來傳送數據信息給MAC層。
如果通知原語需要一個響應,則響應原語從N+l層傳送到第N層。PHY層和NWK層沒有任何響應原語。MAC層和APL層包含響應原語。第N層使用確認原語向第N+1層確認其傳遞的請求原語已經完成。PD-Data的確認原語由PHY層實體產生并發給它的MAC子層實體,以響應一個PD-Data的請求原語。在確認時,PHY層通知MAC層傳輸是否成功。
4 結 語
PHY層是最接近硬件的層,直接控制射頻收發器并與其通信。研究PHY服務機制及PHY服務的實現原理對ZigBee在物聯網中的應用具有重要的基礎意義。
參考文獻
[l]郭園.基于ZigBee和GPRS的LED路燈智能照明控制系統的研究[D].青島:青島科技大學,2012.
[2]朱洲.基于ZigBee技術的無線自動抄表系統[D].重慶:重慶大學,2005.
[3]薛秦剛. IEEE 802.15.4的ZigBee協議棧研究與仿真[D].西安:西安理工大學,2010.
關鍵詞:ZigBee;無線網絡;實時操作系統;軟件設計
中圖分類號: TN929 文獻標志碼:A文章編號:1009-3044(2009)36-10608-03
Design of Physical Layer and MAC Layer of ZigBee Protocol Based on Embedded Real-Time Operating System
SUN Yi
(Shandong Jiaotong University, Jinan 250357, China)
Abstract: This paper researches on wireless sensor network based on Embedded Real-Time Operating System. In analyzing RTOS and wireless sensor networks, a software design methods on physical and MAC layer of ZigBee is presented based on a micro-kernel embedded real-time operating system. This method reduced the difficulty of the wireless network development by programs expansion and codes migration. It provides a simple and easy to realize platform for the subsequent network layer and application layer development.
Key words: ZigBee; wireless sensor network; real time operating system; software design
隨著嵌入式系統、無線通信、微電子等技術的快速發展,具有感知、計算和無線網絡通信能力的傳感器,以及由其構成的無線傳感器網絡(Wireless Sensor Network, WSN)引起了人們的極大關注。實時操作系統(Real-Time Operating System,RTOS)是建立在單片機硬件系統之上的一個平臺,用戶的一切開發工作都在該平臺上進行,它定義了每個應用任務和內核的接口,也促進了應用程序的標準化。應用程序標準化后便于軟件的存檔、交流、修改和擴展,減少開發管理工作量。ZigBee是一種新興的短距離、低速率、低功耗無線網絡技術,國際上IEEE802.15.4工作組及ZigBee聯盟共同致力于該無線連接技術的推廣工作,其中,IEEE802.15.4只規定了ZigBee的物理層和MAC層的功能,僅處理這兩層的通信協議。ZigBee網絡通信過程,大致包括協調器組織網絡,節點器件加入、離開,發送、接收數據,信標幀的產生、重發,安全機制以及PIB屬性管理等等過程,利用傳統的前后臺模式思路,開發過程和調試過程會非常復雜,甚至實時性、穩定性較差。
本文正是鑒于ZigBee網絡協議的復雜性和嵌入式RTOS平臺開發的方便性,在分析二者特點的基礎上,將ZigBee協議的物理層和MAC層移植到RTOS上。利用RTOS來開發,通過把復雜的過程劃分為幾個獨立的任務,任務之間的相互聯系通過事件來驅動,這樣會使設計過程簡單,降低開發難度,大大增加程序的移植性和代碼的可重復利用性。經多次測試、使用,開發的嵌入式系統運行效果良好,系統比較可靠、穩定。
1 設計目標
軟件設計分為兩部分:系統級任務和應用級任務。系統級任務能夠獨立完成基礎性工作,不需要高層協議來管理,并且給應用級任務提供接口,能夠實現任務的擴展;應用級任務通過系統級任務提供的交互與操作系統進行交互,應用級任務根據實際的需要來開發,利用操作系統提供的接口,利用系統級任務來實現具體的應用。
2 系統設計
在原有RTOS基礎上增加幾個系統任務,完成ZigBee網絡通信的基本功能,使RTOS成為符合ZigBee開發的嵌入式操作系統。其中增加的系統功能為:協調器的網絡組建功能,節點器件的加入網絡和斷開網絡功能,信標幀的產生功能,信標幀的跟蹤功能,數據接收功能,數據發送功能,數據確認重發功能以及網絡鄰居表的維護和PIB屬性的管理。整個通信主程序的流程圖如圖1所示。
2.1 系統級任務分析
系統初始化設計:主要是對寄存器等基本硬件進行設置,對變量賦初始值等。
1)消息泵任務emMsg_Pump()。該任務是整個系統消息機制核心部分,負責接收并處理每個任務發給系統的消息,并根據消息值觸發相應的任務。是系統優先級最低的任務,永遠處于就緒狀態。系統運行之初,如果沒有其他優先級高的任務,系統便會運行此任務,處于就緒狀態。在整個嵌入式系統運行期間,所有任務之間通信機制是消息驅動機制,具體做法是某個進程運行結束時,產生系統消息,并把它放入系統的消息隊列,等到消息分發任務運行時候,它從消息隊列中提取消息,然后分發消息到需要觸發的任務當中,修改觸發任務的運行狀態為就緒狀態,當系統再次調度時,運行要觸發的任務。流程圖如圖2所示。
2)組建網絡或加入網絡任務emAssociation_Join()。要實現節點和協調器之間通信,必須構成一個基本的ZigBee無線網絡。IEEE802.15.4標準中規定無線個人局域網的構成至少有一個協調器,最大網絡容量為255個節點。該任務就是實現構建網絡的過程。若器件是協調器,它首先完成創建一個網絡的過程,若是節點器件,則完成加入網絡的過程。具體組網的過程實現:協調器首先進行頻道掃描確定未使用的信道,并在自己電磁波輻射范圍內通過接收的信標幀來捕捉其它協調器的信息,從而確定此范圍內正在使用的信道和網絡標識符,然后根據某種算法選擇一個未使用網絡標號更新系統的macPANId,通過自己的信道發送信標幀,通知周圍的節點。網絡節點器件被動的掃描,捕捉附近的網絡協調器,選擇合適的網絡協調器,發送加入網絡請求,收到ack應答后開始在最大響應時間內等待協調器的響應幀。如果協調器允許此節點加入網絡,則會分配一個16位的短地址給節點,并把此節點的信息存入網絡鄰居表,網絡節點收到允許加入的響應幀后更新自己的地址信息。否則,繼續掃描其他的協調器,請求加入其他網絡。當協調器和節點器件完成上述過程后,也就完成了組網的過程。當組網過程結束后,會改變系統的狀態機,產生消息MSG_JOIN_NET并觸發另一個任務的運行。
3)斷開網絡連接的任務emAssociation_Leave()。該任務是節點器件任務。當網絡節點想離開當前加入的網絡,就發送離開網絡的請求命令,協調器允許其離開,會在信標幀中通知此節點同時將其信息從網絡鄰居表中刪除。網絡節點完成該任務后,產生系統消息MSG_LEAVE_NET,并修改系統的狀態機。
4)數據幀報文發送任務emPacket_Send()。當協議上層要發送數據,把數據寫入發送緩沖區,并產生系統消息給RTOS,由RTOS來完成數據報文發送。RTOS便會調用該數據幀報文發送任務,首先填寫幀控制、地址等報文頭信息,復制數據緩沖區內的數據,加上CRC校驗碼,完成數據報文封包工作。其次打開射頻收發器的發送開關,通過對CCA檢測,判斷通信信道的狀態,從而實現沖突碰撞檢測機制。若信道空閑,則發送報文,若信道處于忙狀態,則隨機等待一段時間,再次檢測信道狀態,直到其空閑,完成數據報的發送過程,同時發送系統消息MSG_SEND_END觸發確認重發任務,在macAckWaitDuration時間內等待收到報文的設備發送ack確認報文。在上述時間段內收到ack確認,便返回一個數據發送成功的狀態,否則便啟動重發機制,若重發次數超過aMaxFrameResponse,仍未收到確認,則丟棄報文,返回發送失敗的狀態。流程圖如圖3所示。
5)數據幀報接收任務emPacket_Receive()。該任務對報文進行三級過濾,首先對報文進行地址辨識,檢測報文的發送目的地址是否是發給本網絡的協調器,不是則丟棄報文,完成數據報文第一級過濾;其次對報文進行長度判斷,檢測報文長度是否符合協議規定,不符合則丟掉報文,完成第二級數據報文的過濾;接著對報文進行CRC校驗的判斷,不正確則丟掉報文,實現第三級報文過濾。最后根據報文種類的不同將其存入對應的接收緩沖區,修改信號量的值,表明數據接收緩沖區內有數據。流程圖如圖4所示。
該任務有中斷實現,執行完畢并不觸發消息,只是修改接收緩沖區的信號量的值。原因在于網絡內的節點發送數據頻率較高,為了能夠及時響應,保證此任務不會使其它正在進行的任務重復重啟。從而提高了系統實時性,減少了數據報文的丟失率。
6)各種命令處理任務emCmd_Process()。在ZigBee無線網絡中,規定在接收到的報文中對確認幀是優先處理的,其次是命令幀,最后才是數據幀。協調器處理的命令包括節點器件的請求加入網絡命令、離開網絡命令、網絡沖突命令、器件孤立命令。協調器收到這些命令,可能要發送響應命令,又涉及到沖突檢測、確認和重發的判定,為了減少對系統任務在實現一個簡單的功能反復切換,直接在命令處理任務中實現確認重發機制。協調器對請求加入網絡的命令要給予響應,分配短地址,加入網絡鄰居表;對來開網絡請求,要在信標幀中給予通知,并從網絡鄰居表中刪除節點信息。對網絡標識符沖突命令,要重新掃描、組網等。處理完畢產生系統消息MSG_CMD_END,觸發數據處理任務。
7)數據幀報文的處理任務emData_Process()。把數據幀的報文處理,單獨作為一個任務,主要原因在于數據幀是在協議上層來組織和處理,操作系統如果收到數據和數據請求命令,只給上層任務發送消息,觸發上層處理任務。具體的處理工作由上層處理任務完成,從而實現了操作系統完成基本的操作,給上層任務提供接口,供上層任務使用,為后續開發奠定了基礎。
8)定時發送信標幀的任務emBeacon_Send(),在信標使能的網絡中,所有的通信過程都是由協調器來主導,協調器通過信標幀來實現網絡內所有節點的通信的同步,并且控制通信的節點,控制通信的時間等。節點器件加入網絡,也要首先對信標幀進行跟蹤捕捉,進行綜合判斷。所以在ZigBee網絡內,協調器每隔一定的時間來發送信標幀,網絡內的各個節點器件通過信標幀安排自己的工作,從而實現了信標使能網絡的通信過程。發送信標幀后發送系統消息MSG_BEACON_OVER。這個任務是由定時器的定時消息驅動。當定時時間到達以后,發送定時到達的系統消息MSG_TIME_OUT,通過系統調度實現此任務的運行。
2.2 應用級任務分析
1)對數據請求命令的處理任務emDataRequest_Task()。這個任務收到操作系統的消息后,就會組織數據,發送給節點。它要做的只是發送一個消息給系統,消息的內容包括發送數據的指針和數據的長度。
2)網絡PIB數據庫管理emPIB_Manage(),此任務可以用來更新、維護物理層和MAC層的屬性,包括能量設定管理,以適應不同情況下通信需要。
3 結束語
該文通過對嵌入式RTOS運行機制和無線傳感器網絡ZigBee協議的深入研究,成功將ZigBee協議的物理層和MAC層移植到RTOS上,對無線通信過程各個環節進行了較為詳細任務實現分析,該方法的實現降低了系統開發難度,提高了開發效率,對于開發相關的應用軟件或進行硬件平臺的移植有一定參考價值。
參考文獻:
[1] 威爾姆舍斯特.PIC嵌入式系統開發[M].北京:人民郵電出版社,2008.
[2] Estrin D,Culler D,Pister K,et al.The Physical World with Pervasive Networks[J].IEEE Pervasive Computing,2002,1(1):59-69.
[3] 孫利民,李建中,陳渝,等.無線傳感器網絡[M].北京:清華大學出版社,2005.
關鍵詞:Z-stack;HA規范;ZCL;ZigBee
中圖分類號:TP311 文獻標識碼:A 文章編號:2095-1302(2013)04-0054-03
0 引 言
目前,國內市場上ZigBee產品雖然很多,但大多采用的都是私有協議棧,阻礙了不同廠家產品之間的互用和替代,這也是ZigBee市場規模無法迅速擴大的一個重要原因,因此,開發具有符合標準規范的ZigBee產品成為當務之急。目前國內的ZigBee行業規范還正在處于形成階段,但國際上的ZigBee規范已經建立并受到國際上眾多廠商的追隨,因此,本文就如何開發符合ZigBee聯盟規定的HA規范的ZigBee應用進行了探討。
Z-stack是TI公司推出的ZigBee協議棧系統,這是一個通過ZigBee聯盟認證的符合ZigBee2007規范的平臺。借由TI公司ZigBee芯片及SOC產品在國內的廣泛接受,Z-stack也稱為眾多芯片廠商提供的協議棧中開發者接受度比較廣的一款ZigBee協議棧。本文探討的ZigBee產品應用開發是基于Z-stack協議棧的。
1 ZCL庫(ZigBee cluster library)[1]
在ZigBee協議棧中,簇是一組命令和屬性的集合,這些命令和屬性組合起來,構成了實現某一功能的實體。
ZCL是由ZigBee聯盟制定的包含了大量功能簇(cluster)的大集合。在應用開發中,以ZCL中已有的簇作為功能單元來使用,可以增強通用性,避免重復開發。
ZCL對功能簇進行了分類和描述。每個功能簇都包含有一個或多個屬性及命令,ZCL對每個屬性都進行了定義和描述,包括屬性ID、名稱、數據類型、數值范圍、初始值、可讀寫性以及強制性;同時,也對此簇所包含的命令進行了定義,包括命令ID、命令名稱、命令數據幀內容和觸發效果等。
ZCL中的通信是基于Client/Server模型的以簇為單位進行的。兩個不同功能設備之間的相互通信,是基于某一個或多個功能簇的。用來儲存這些簇屬性的設備,稱為Server端;而用來操作這些簇屬性的設備,稱為Client端。針對Client/Server端口類型的不同,同一個簇也具有不同的屬性和命令。例如,操作屬性的命令,通常由Client端發送給Server端;而用針對這些操作命令的回復,通常由Server端發送給Client端。另外,報告類型的命令(report attribute command)通常由Server端發送給Client端。以On/Off簇為例,該簇的作用是實現開關設備的開/關狀態的控制,體現在設備上,分為Client端和Server端兩種角色的設備,比如開關是Client端,而某個具有ZigBee模塊的燈節點則代表了相應的Server端。Server端作為命令的接收者,必須能夠識別開/關/切換這幾個來自Client端的命令(在ZCL中,已經規定好這些命令對應的ID,如0x00代表關,0x01代表開,0x02代表切換),同時,由于命令操作的是屬性,因此,該Server端必須保存有開關狀態這一屬性。
另外,ZCL制定了基于cluster的各類命令幀的格式(包括讀、寫、報告等);定義了用于尋址的各指示參數(包括規范ID、設備ID、簇ID、屬性ID和命令ID);規定了用于各屬性和命令中各類數據的數據類型;還規定了在通信中可能會出現的所有狀態的枚舉數組。
2 HA(home automation)規范[2]
HA規范是由ZigBee聯盟(ZigBee alliance)制定的對用于住宅環境的各類常見應用的設備描述和操作規范。通過這一規范,為不同廠商的ZigBee HA設備提供了標準的接口和定義,確保其相互之間能夠相互通信并協同工作。
HA規范的范圍主要集中在對家用設備進行的實時操作,該規范可以構筑在ZigBee2007的兩個子規范(ZigBee、ZigBee pro)之上。
HA規范可以簡單分成圍繞網絡特性的參數設置和圍繞功能實現的設備描述分類(包括相應設備的簇以及特性和功能)這兩大部分的內容。
2.1 參數設置
HA規范對涉及到協議棧各功能方面的一些參數進行了明確的規定,例如用于設備啟動時的啟動參數集(startup attribute sets),要求每個設備都必須內置這些參數,例如將PAN ID設置成0xffff等。還有比如用于網絡重連接的時間間隔、安全中心連接秘鑰等等參數。
在安全參數的設置方面,HA規范中規定,設備的初始網絡安全秘鑰(network key)是空的,即每個設備的網絡安全秘鑰必須由安全中心來統一分配;而安全中心連接秘鑰(trust center link key)是每個設備都預置好的。
2.2 設備描述
HA規范對可能會用到的設備進行了劃分并設置了相應的ID,在HA網絡中的每個終端都必須符合至少一項該分類圖中給出的設備描述分類(如果同時符合多個設備描述的話,需要在自己的設備描述中枚舉這些設備類型)。
ZigBee技術首先被運用到軍事領域,之后這項技術逐步被應用到民用領域。在民用中,符合802.15.4的主要有ZigBee和一些專用的協議棧(如圖2)。其中發展速度最快的當屬ZigBee了,例如無線傳感網絡、自動抄表、樓宇控制、醫療電子等應用;接下來,Zigbee會向消費類電子領域滲透。
ZigBee的應用優勢
全球不同的國家頻帶分布不同,其中2,4GHz在全球基本上都可以應用。不同的國家也有一些不同的1GHz以下的一些頻帶,在美國是900多MHz,中國大陸用433MHz。ZigBee的優勢是采用IEEE802.15.4的頻帶調制方法,可以用在全球不同的地方。但是802.15.4不一定采用ZigBee協議棧,反過來ZigBee協議棧一定是使用802.15.4。
與專用標準相比,ZigBee的優勢是通用。例如今天家庭都有不同的表,包括電表、水表、氣表,ZigBee協議棧可以實現不同的表進行統一的管理。
智能家居方面ZigBee也可以大展身手,因為在這個領域有很多不同的生產廠家,有生產燈控的,還有生產探頭的……。如果燈控和探頭中間沒有一個標準的協議棧,溝通就很困難。標準的協議棧――ZigBee可以幫助燈控和探頭溝通。
ZigBee的應用很多,例如醫院里面把一些貴重儀器定位。美國還有一個客戶把ZigBee定位應用到停車場,因為美國的汽車出租公司有很多汽車,所以把ZigBee的芯片放在每一輛汽車中,在停車場里建立一個ZigBee的網絡,這就方便給他們的客戶或其工作人員去找到車的位置。
三種芯片方案
目前市場上的ZigBee有三種芯片方案(如表1)。
在選用哪種方案時,需要考慮幾個方面:第一,有沒有空間?方案1的單芯片方案是空間占用最少的。第二,客戶需要的開發時間大概多少?如果時間很短,方案2理想,因為ZigBee的協議棧已經做好,只要MCU或DSP具有SPI或UART接口,即可與ZigBee處理器連接。第三,方案3方案較有彈性。另外,方案1和3相對來說功耗都較低。
當然采用哪種方案不能一概而論,還有一些特殊應用情況。例如安防探頭,如果做好再拆開在國內就要再次認證,所以在這種情況以下,再外加一個ZigBee處理器會比較簡便。
ZigBee的技術挑戰
ZigBee要在市場上大量的使用,一個重要的挑戰就是在軟件上的定義,例如協議棧上怎么樣使ZigBee的網絡穩定,還有可靠性。目前這些技術基本上已成熟,都是ZigBee Alliance來跟所有的廠家一起定義的。據TI低功耗射頻業務全球市場營銷總監Emmanuel Sambuis介紹,今年4月TI在芯片廠商中率先為方案2推出了ZigBee處理器一CC2480,特點是把協議棧已經做好,免去了客戶處理ZigBee協議棧的操作,以加速客戶zigBee在市場上的開發。
關鍵詞:ZigBee技術 3G技術 網關
1. 引言
各種網絡終端的出現和家庭智能化都迫切需要一種具備低成本、近距離、低功耗等優點的無線互聯標準,ZigBee就是在這樣的背景下應運而生的。ZigBee主要應用于短距離、數據傳輸速率不高的各種電子設備之間的無線通信。而3G移動通信系統的產生則是由于人們對信息處理和共享的需求不斷提高。本文就是為實現私有網絡的跨距離監控,設計了一種基于ZigBee無線通信技術的3G網關通信節點,其中3G技術采用的WCDMA技術。
2 . 3G網關的設計和總體架構
ZigBee模塊選用的是JN5121芯片,它是高性能、低功耗的無線SoC芯片,JN5121內置的ROM存儲器中集成了點對點通信與網狀通信的完整協議棧;其內置的RAM存儲器,可以支持網絡路由和控制器功能而不需要外部擴展任何的存儲空間。內置的硬件MAC地址和高度安全的AES加密算法加速器,減少了系統的功耗和處理器的負載。
3G部分選用的是一款可以安裝3G模塊的3G開發板,此3G模塊選用的是基于WCDMA技術的華為公司生產的MU103模塊。
該網關以JN5121自帶的8位處理器作為網關的主系統,JN5121以ZigBee協議棧為基礎,在網關與ZigBee路由節點和終端節點之間接收數據通信,WCDMA模塊用于將ZigBee節點的數據發送到控制中心以及從控中心接收命令,系統硬件的總體結構如下:
3. 硬件電路設計
硬件主要包括嵌入式處理器、ZigBee模塊、3G模塊三部分組成。但是考慮到選用的ZigBee模塊是JN5121模塊,本身自帶8位微處理器,所以此硬件主要包括ZigBee模塊和3G模塊兩部分組成。
3G網關的硬件框圖
4. 軟件設計
本設計使用的是CodeBlocks軟件,它是一款免費、開源、跨平臺的C/C++ IDE,支持Windows、Linux、MacOSX。同時它還支持各種不同的編譯器。
4.1 WCDMA網絡和本設計中自組織網絡的通信協議
本設計中WCDMA網絡協議采用的是基于基站的協議模型,從下到上依是MTP1、MTP2、MTP3和SCCP。
MTP1定義了數字鏈路在物理上、電氣上及功能上的特性;對應于OSI模型中的物理層;
MTP2確保消息在鏈路上實現精確的端到端傳送。對應OSI模型中的數據鏈路層;
MTP3提供兩個信令點間消息的路由選擇功能,對應OSI模型中的網絡層;
SCCP位于MTP之上,為MTP提供附加功能,對應于OSI模型中的應用層。
4.2 協議轉換軟件原理
JN5121自帶的8位處理器是實現ZigBee網絡與WCDMA網絡的透明傳輸的關鍵系統,將ZigBee協議轉換成WCDMA協議,實現數據的遠程傳輸,同時能夠將WCDMA協議轉換成ZigBee協議,向ZigBee節點發送控制命令。
從ZigBee往WCDMA的傳輸:3G網關從ZigBee節點中接收到數據時,ZigBee模塊將接收到的數據傳輸到自帶的8位處理器,此處理器對接收到的數據進行處理,去掉ZigBee協議棧頭,提取有用的數據載荷,然后加上WCDMA的協議棧頭。從WCDMA向ZigBee傳輸數據的處理過程相反。
5. 總結
各種無線網絡之間的互通已成為必然。為了實現信息資源的共享,并對各種不同網絡的優點進行互補,網絡融合是未來網絡發展以及通信技術和通信標準發展的方向。本設計研究ZigBee網絡和3G網絡網關設計方案及實現,提出了一種在嵌入式技術、3G技術和ZigBee技術的基礎上,設計了一款3G網關的設計方案,實現了ZigBee網絡與3G網絡的數據互通和個人局域網的遠程實時監控。
參考文獻:
[1] 王權平,王莉.ZigBee技術簡析,通訊世界,2003,4
關鍵詞:ZigBee;一致性與互通性;ZigBee協議;測試節點
中圖分類號:TP311.52
2007年,ZigBee聯盟宣布了認證計劃。為了確保ZigBee[1]產品的可靠性以及在無線組網中工作的穩定性,ZigBee聯盟負責實施、管理了認證測試。每一個產品都基于公共應用規范,以保證各個設備制造商的產品之間的互操作性。目前,全球只有三家實驗室為ZigBee聯盟指定的完整測試服務授權廠商[2]。國內還沒有一個廣受認可的官方ZigBee測試規范。因此,就需要一個測試規范來檢測ZigBee設備是否達到ZigBee協議標準。
1 系統設計
該平臺是一個專門用于測試一個采用ZigBee協議標準開發的ZigBee設備是否符合ZigBee協議標準,是為了保證ZigBee設備的一致性、互通性。平臺由ZigBee測試節點、以太網、ZigBee網絡和PC機控制端組成。
硬件方面,ZigBee節點的主要功能是采集和上傳數據,完成數據從ZigBee協議環境下到TCP/IP協議環境下的轉換,并且能在無人看管的條件下長期運行。軟件方面,應具備如下功能:準確地接收節點上傳的數據,進行實時的顯示、存儲并可隨時查看歷史數據,通過對數據的修改和反饋,達到驗證ZigBee節點是否符合ZigBee協議標準的目的。當對ZigBee測試節點進行測試時,測試節點能自動加入協調器節點發起的網絡,將節點各層屬性數據上傳至協調器節點,當傳輸距離超過一跳傳輸距離時,數據以多跳方式傳輸,觸發協調器節點執行數據接收程序,該程序模塊通過調用函數將接收到的數據解析成TCP/IP協議下的數據,對數據處理后,使用Socket網絡編程,將數據上傳至計算機軟件,軟件調用合適的函數對接收到的數據包進行解析,將數據實時的顯示在軟件界面中,采用合適的方法,完成對該節點的測試與驗證。該測試平臺的系統架構圖如圖1所示。
1.1 ZigBee網絡硬件組成
一個ZigBee網絡的硬件組成包含ZigBee協調器節點、路由器節點以及終端節點三種,ZigBee網絡中的設備分為全功能設備(FFD)和半功能設備(RFD)。其中,FFD設備可提供全部的IEEE 802.15.4的MAC層服務,可充當ZigBee網絡中的任何設備,因為FFD設備不僅可以發送和接收數據,還具備路由轉發數據的功能;而RFD設備只提供部分的IEEE 802.15.4 MAC層服務,因此只能充當終端節點,而不能充當協調器節點和路由節點,因此它只負責將自身的屬性數據發送給協調器節點和路由節點,并不具備數據轉發、路由發現和路由維護等功能。
整個節點硬件電路主要包括射頻模塊、電源模塊、傳感器、嵌入式控制器和時鐘五個部分組成。ZigBee網絡測試節點采用了以ATmega128為核心控制模塊,以CC2530芯片為無線收發模塊的設計方法[3],ATmega128與CC2530芯片是通過SPI方式進行相互之間的通訊的,ATmega128采用主模式,CC2530采用從模式。電源采用連接式電源。時鐘電路主要是采用ATmega128晶振來產生同步信號,從而實現射頻模塊與處理器之間的同步。
在節點上由ATmega128為主控芯片及其芯片及電路組成的數據轉換設備,完成ZigBee協議數據到以太網TCP/IP協議數據的轉換。圖2為實際開發節點實物圖。
1.2 系統軟件設計
軟件設計方面包括硬件節點的軟件設計和PC機端的軟件設計。
1.2.1 協調器軟件設計
協調器軟件設計功能主要為:(1)創建并維護ZigBee網絡,實現對ZigBee網絡的創建,維護節點加入和退出時的網絡拓撲結構。(2)接收PC機服務器端發送來的控制指令,并將其通過ZigBee網絡發送給各路由器節點和終端節點。(3)將ZigBee網絡區域的節點的各層屬性數據經過處理和融合,最后通過ZigBee模塊發送給PC機服務器端。
1.2.2 路由器節點和終端節點軟件設計
終端節點的作用是采集數據,路由器除了采集數據以外還負責建立數據路由,其主要功能如下:(1)通過掃描可用信道尋找可用網絡,如果存在可用網絡,則終端節點/路由器節點就開始請求加入到網絡中,當成功加入網絡后,終端節點/路由器節點便開始向目標服務器發送自身的各層屬性數據。(2)采用中斷方式,接收由ZigBee網絡協調器發送過來的命令,并對命令進行判斷,如果命令被判斷為控制命令,終端節點/路由器節點則根據命令幀收發數據,如果命令是修改命令,則根據命令,終端節點/路由器節點完成對對應屬性值的修改。
1.2.3 服務器軟件設計
該平臺軟件是以Windows XP為操作系統,采用C++語言,選用Visual Studio 2010程序開發工具以及MFC對界面程序及其它應用程序的設計[4]。軟件界面如圖3所示。
PC機軟件主要包含四個模塊:(1)網絡通信模塊,對整個ZigBee網絡進行監聽;(2)數據處理模塊,解析ZigBee網絡協議,接收網絡中的節點數據包,分析數據包中的數據,對解析好的數據進行分類;(3)數據顯示模塊,在軟件中顯示接收的各節點IP地址及TCP/IP模型各層數據;(4)驗證模塊,ZigBee節點接收服務器的修改命令,對節點屬性進行修改和反饋。
(1)網絡通信模塊。為完成PC機軟件端對整個ZigBee網絡進行監聽,ZigBee測試節點采用TCP/IP協議的Socket編程與服務器端建立連接,使用了IO完成端口(Completion Port)網絡通信模型。實現TCP/IP協議通信所采用的臨時端口號為10012。
摘 要:隨著計算機行業的迅猛發展,軟件系統也相應增加了其復雜難度,系統架構的設計在整個軟件中占據的比例越來越重,框架是軟件系統設計開發過程中滋生中的一個概念,在于重復使用已完成的設計和代碼且適用于實現某一特定類型的軟件系統,保證其質量。本文則主要詳細分析SSH組合框架中J2EE體系結構的設計,以及它在人力資源管理系統中的應用實現,以供參考。
關鍵詞:J2EE;SSH組合;框架;設計;實現
中圖分類號:TP311.52
近年來,Java技術的日趨完善和逐漸成熟,它作為企業計算機應用中的標準平臺,J2EE體系架構也得到了全面的發展。它結合了面向對象的MVC設計模式,構成了一種快速高效的開發模式。這種開發模式有三種較為主流的框架:Hibernate、Struts、Sping。當前特整合了一些優秀的框架來適應不同的應用需求以此來快速提高開發效率,已經成為系統軟件開發所流行的趨勢。
1 J2EE體系結構相關概述
1.1 J2EE概念
1.2 J2EE體系上的結構框架分析
框架存在的意義在于它們之間存在著不同的模板,且緊密關聯,重要在于根據這些關聯性來有效的完成一些設計。它的關鍵是框架內對象間的交互模式和控制流模式。在很多情況下框架都以組件庫的形式出現,是一個可復用的設計組建,整個設計、協作組之間的責任分配、控制流程和依賴關系都可通過框架來作詳細闡明。當前基J2EE架構已經開發出許多框架,使開發人員的負擔減輕了許多。當前構建Web應用時要注重考慮業務邏輯處理、用戶請求處理及數據持久化等問題,從而出現了Hibernate、Struts、Sping三種基于Web層、數據層和業務層上比較常用的框架。
1.2.1 Hibernate框架
Hibernate框架支持使用各種Java思想,如實現對象利用Inheritance、Composition等,是一種比較徹底的Java對象映射工具。Hibernate框架具有很大靈活性,它可以在一張表的同一行當中映射一個用戶定義的多個類的實例。因而傳統的從數據庫提取數據的代碼編寫量可以利用Hibernate QL來完成,縮短了提取時間,節省了開發成本。Hibernate框架之所以可以映射到數據庫的行,前提是因為它通過Properties和類的映射文件,且某些功能構件界于它最大模式和最小模式之間,是具有可選性的,從而實現簡化操作。
1.2.2 Sping框架
Struts是基于多層J2EE系統的框架,它提供了AOP的支持,JDBC的提取框架,Bean的配置基礎等,實現了MVC,為不同數據的技術訪問提供了統一的接口。Struts是一個服務于所有層面的應用程序框架,由七個定義良好的模塊組成(具體組成構圖如圖3所示),由于Struts模塊化的很好,以致并不強求在每一層中都要使用,根據自身所需選擇即可。
1.2.3 Struts框架
Struts框架基于MVC設計模式,一個應用程序的商業邏輯、控制邏輯及表現邏輯的代碼可以利用Struts框架中MVC設計模式來分解,復雜的Web應用也可以利用它來構建。Struts是開源軟件,是Apache的Jakarta項目組成部分之一,受到全世界Java程序員的廣泛支持,開發者也可以免費使用并通過源代碼來深入了解MVC的內部實現機制。Struts因受到ActionServlet配合從而實現提供了靈活易用的系統導航機制,可以有機的聯系系統中的各部分,使其脈絡更加清晰,提高了系統的可擴充性和可維護性。
2 SSH組合構架設計和實現
Struts簡化了基于MVC的Web應用程序的開發,由于它的設計主要針對表示層,在后端邏輯層支持方面沒有表示層應用效果佳,因而為了彌補它在邏輯層方面功能的不足,有必要研究改進Struts框架。Spring因自身良好的模塊化可以有效的組織系統的中間層,在事物管理方面發揮著獨特的優勢。Hibernate因自身優勢在于持久化則可以大大減少操作數據庫的工作量。所以,可綜合上述內容在J2EE架構的基礎上整合Hibernate、Struts、Sping,使三者形式一個組合框架,充分發揮在表示層、業務層及持久層等方面的作用。
2.1 SSH組合構架設計
SSH組合構架在設計方面追求簡潔Web框架,功能方面也較為齊全,以此來降低層與層之間的耦合度和提高組件的可復用性。SSH組合構架分表示層、持久層和業務層,功能和處理程序方面都有明確的規定,不能混合至其他層當中,它們之間會有一個通信接口。
首先是表示層的設計,它通用的控制組件ActionServle主要承擔MVC中的Controller角色,以Strutsconfig.xml為核心,通過運用Action類來實現鏈接轉向、業務邏輯等方面處理,其主要功能有:為顯示提供一個模型、管理用戶的請求、做出相應的相應及進行框架驗證等。其次是業務層設計;實現業務組件的關聯組裝基于Struts,主要功能處理應用程度的業務邏輯和執行管理事業和程序,提升系統的可擴展性和兼容性。第三持久層設計;實現數據庫交互的常用操作借助Hibernate,還可對數據庫訪問性能進行優化,提升編碼效率。之后將數據庫連接對象,提高編碼效率。其主要功能有:提供數據接口支持業務邏輯層,刪除,更新及存儲數據庫記錄。
SSH組合構架設計的實現需要考慮Spring應用環境的裝載,通過使用Spring的ContextLoaderPlugin來進行Struts的ActionServlet裝載Spring應用程序環境,它可以在struts應用啟動時被初始化且關閉時被銷毀,總之,三方合成的SSH組合構架設計可以快速構建高效穩定的應用系統,實現層間的松散耦合。
3 結束語
總之,本文研究中通過在人力資源管理系統開發中結合Hibernate、Struts、Sping及J2EE的特點,實現了系統結構的較強的指導作用,以致在后續項目實施過程中表現出了良好的性能,因此,有效結合三種開源框架可充分提高系統的維護性和可擴展性,便于企業級系統更好的應用。
參考文獻:
[1]龔濤.基于J2EE框架的會計信息系統的設計與實現[D].華中科技大學,2010.
[2]王春超.基于J2EE架構的SSH組合框架的研究[D].長春理工大學,2010.
[3]伍飛.基于J2EE架構的SSH框架研究及其在HRMS中的應用[D].江南大學,2010.
[4]孟凡迪.基于J2EE架構的江蘇電信10000號外呼營銷系統的設計與實現[D].東南大學,2009.
關鍵詞:Zigbee;組網結構;物聯網
中圖分類號:TN915.65 文獻標志碼:A 文章編號:1674-9324(2012)04-0213-02
通信技術、嵌入式技術、信息家電的飛速發展,使智能家居網絡的構建成為可能。ZigBee是一種短距離、低速率的無線網絡技術,而與物聯網的結合更加突出了ZigBee的技術。ZigBee一般采用IEEE802.15.4收發器與ZigBee協議棧的組合,在數千個微小的節點之間相互協調實現通信。這些節點只需要很少的能量,以接力的方式通過無線電波將數據從一個傳感器傳到另一個節點,所以它們的通信效率非常高。因此,ZigBee在傳感器網絡、智能家居、工業自動化等領域有廣泛的應用。在這樣的背景之下,很多公司都開始了ZigBee產業化的道路。智能家居是未來家居的發展方向,它利用先進的物聯網技術將家居生活有關的各種子系統有機地結合在一起,通過統籌管理,為人們提供智能、舒適的居住環境。ZigBee技術是一種家電智能控制無線系統,是近幾年發展起來的一種短距離的無線通信技術,具有短距離、低功耗、低數據率、低成本、安全可靠等優點,而物聯網使用的無線技術,實現物物相連,給人們的生活帶來重大改變。家庭內部地理范圍小,非常適合ZigBee技術對其進行聯網,而ZigBee的最初切入點也正是家庭自動化。采用ZigBee技術組建智能家居內部通信網,其網絡采用網絡拓撲結構,實現簡單,并且具備自組網功能,新傳感器節點入網無需人工配置,考慮了系統異常的情況。每一個Zigbee網絡節點(FFD)還可在自己信號覆蓋的范圍內,和多個不承擔網絡信息中轉任務的孤立的子節點(RFD)無線連接。ZigBee技術會因室內環境影響做出相應的改善,采用了多工作模式(如休眠模式)降低了傳感器節點的功耗,延長了節點的使用壽命。智能家電控制系統實現了傳感器的通用接入,組建了基于ZigBee技術的自組織網絡,系統安裝方便,擴展性好,具有很好的實用價值。總之,智能家電控制系統已把人們從日常瑣事中解放了出來,實現了智能化家居。
一、Zigbee無線組網技術及其協議
家電智能控制無線自組網絡系統采用ZigBee技術,對于一種近距離、低復雜度、低功耗、低數據速率、低成本的雙向無線通信技術,它符合IEEE802.15.4協議。在網絡組建上,它選用的是“星狀組網”方案,因為星形結構適合于實時性要求高,數據量比較大的場合。以下是家庭網絡的總體結構。
IEEE 802.15.4標準是針對于低速無線個人區域網,把低能量消耗、低速率傳輸、低成本作為重點目標,旨在為個人或者家庭范圍內不同設備之間低速互連提供統一的標準。基于ZigBee的無線傳感器網絡具有備成本低、傳輸速率低、設備體積小、省電、網絡自愈等特點,ZigBee可以廣泛應用在家庭自動化。
二、Zigbee技術家電智能硬件設計
在硬件設計上,家電智能控制系統的硬件設計,主要有射頻數據模塊、微控制器和設備組成。微處理器選用Freescale公司推出的超低功耗MC9S08GT60,無線收發器選用Freescale公司推出的一種短距離、低功耗,工作在2.4Ghz的MC13192。
三、Zigbee技術家電智能軟件設計
在軟件設計上,家電智能系統的軟件設計分為三層:系統平臺層、協議層和應用層。系統平臺層通過API應用程序接口來給協議層提供服務;協議層則實現了基于802.15.4的物理層和鏈路層以及基于ZigBee的網絡層協議;應用層通過API來調用協議層提供的服務,實現網絡的管理和數據傳輸等任務。
Zigbee技術的協議層結構簡單,不同于藍牙和其他網絡結構,這些網絡結構通常為7層,而Zigbee技術僅為3層。在Zigbee技術中,PHY層和MAC層采用lEEE802.15.4協議標準,其中,PHY提供了兩種類型的服務:通過物理層管理實體接口(PLME)對PHY層數據和PHY層管理提供服務。
四、結束語
通過項目組全體成員和指導老師的努力,經過了一年左右的時間,我們終于完成了本次項目的論文。從開始申請這個項目時的茫然到這個項目論文文章的完成,每一個階段對于我們來說都是一次新的嘗試和挑戰。在這段時間里,我們學到了很多知識也感受了很多,因為這不是一個人獨立完成的而是以小組形式,分工合作來完成的。明確目標很重要,小組成員之間的相互協調更是不可或缺,這些都體現出了團隊合作的重要性。雖然本次項目不是很完善,還有很多不足之處,但是小組全體成員和指導老師的努力大家是有目共睹的,這些對于我們來說就是莫大的欣慰和成就感,我們相信其中的酸甜苦辣終究會化成美味的甘泉。這次論文的經歷讓我們受益匪淺,從中我們知道論文是要用心去寫,是真正學習和研究的過程,沒有學習就不可能有研究能力,沒有研究就不會有所突破。希望這次的經歷能讓我們大家在以后的學習和工作中更加努力,激勵著我們繼續進步。
參考文獻:
[1]李文仲.CC1110/CC2510無線單片機和無線自組織網絡入門與世界[M].北京:北京航空航天大學出版社,2008.
[2]
關鍵詞ZigBee協議;網絡;IEEE802.15.4;路由算法;Tree路由;Z-AODV路由
1概述
ZigBee技術是由英國Invensys公司、日本三菱電氣公司、美國摩托羅拉公司以及荷蘭飛利浦等公司在2002年10月共同提出設計研究開發的具有低成本、體積小、能量消耗小和傳輸速率低的無線通信技術。
2000年12月,IEEE802無線個域網(WPAN,WirelessPersonalAreaNetwork)小組成立,致力于WPAN無線傳輸協議的建立。2003年12月,IEEE正式了該技術物理層和MAC層所采用的標準協議,即IEEE802.15.4協議標準,作為ZigBee技術的網絡層和媒體接入層的標準協議。2004年12月,ZigBee聯盟在IEEE802.15.4定義的物理層(PHY)和媒體接入層(MAC)的基礎上定義了網絡層和應用層,正式了基于IEEE802.15.4的ZigBee標準協議。
2網絡層的研究
ZigBee技術的體系結構主要由物理層(PHY)、媒體接入層(MAC)、網絡/安全層以及應用框架層組成,各層之間的分布如圖1所示。圖1ZigBee技術協議組成PHY層的特征是啟動和關閉無線收發器、能量檢測、鏈路質量、信道選擇、清除信道評估(CCA)以及通過物理媒體對數據包進行發送和接收。MAC層可以實現信標管理、信道接入、時隙管理、發送確認幀、發送連接及斷開連接請求,還為應用合適的安全機制提供一些方法。它包含具有時間同步信標的可選超幀結構,采用免碰撞的載波偵聽多址訪問(CSMA-CA)。安全層主要實現密鑰管理、存取等功能。網絡層主要用于ZigBee的LR-WPAN網的組網連接、數據管理等。應用框架層主要負責向用戶提供簡單的應用軟件接口(API),包括應用子層支持APS(ApplicationSub-layerSupport)、ZigBee設備對象ZDO(ZigBeeDeviceObject)等,實現應用層對設備的管理,為ZigBee技術的實際應用提供一些應用框架模型等,以便對ZigBee技術的開發應用。
網絡層的定義包括網絡拓撲、網絡建立、網絡維護、路由及路由的維護。
2.1ZigBee的網絡拓撲結構
ZigBee定義了三種拓撲結構:星型拓撲結構(Star),主要為一個節點與多個節點的簡單通信設計;樹型拓撲結構(Tree),使用分等級的樹型路由機制;網格型拓撲結構(Mesh),將Z-AODV和分等級的樹型(Tree)路由相結合的混合路由方法。三種拓撲結構如圖2所示。圖2網絡的三種拓撲結構ZigBee定義了三種設備類型:ZigBee協調器(ZigBeeCoordinator,ZC),用于初始化網絡信息,每個網絡只有一個ZC;ZigBee路由器(ZigBeeRouter,ZR),它起監視或控制作用,但它也是用跳頻方式傳遞信息的路由器或中繼器;ZigBee終端設備(ZigBeeEndDevice,ZED),它只有監視或控制功能,不能做路由或中繼之用。
在IEEE標準中,ZED被稱為精簡功能設備(Reduced-FunctionDevice,RFD),ZC和ZR被稱作全功能設備(Full-FunctionDevice,FFD)。
2.2網絡層路由算法的分析
網絡層支持Tree、Z-AODV、Tree+Z-AODV等多種路由算法。
2.2.1AODV路由協議
DSDV(destination-sequenceddistance-vector)協議是一個基于傳統的BellmanFord路由機制的表驅動算法,被認為是最早的無線自組網絡路由協議。DSDV在傳統的distance-vector算法的基礎上采用了序列號機制,用于區分路由的新舊程度,防止distance-vector算法可能產生的路由環路。DSDV采用時間驅動和事件驅動技術控制路由表的傳送,即每個移動節點在本地都保留一張路由表,其中包括所有有效目的節點、路由跳數、目的節點路由序列號等信息,目的節點路由序列號用于區別有效和過期的路由信息以避免環路的產生。
DSR(dynamicsourcerouting)協議是最早采用按需路由思想的路由協議,包括路由發現和維護兩個過程。它的主要特點是使用
了源路由機制進行數據包轉發。
AODV(ad-hocon-demanddistancevector)協議在DSDV協議的逐跳路由、序列號、定期廣播機制基礎上,加入了DSR的按需路由發現和維護機制。
AODV在每個中間節點隱式保存了路由請求和應答的結果,并利用擴展環搜索(expandingringresearch)的辦法限制搜索發現目的節點的范圍。AODV支持組播功能,支持QoS,而且AODV使用IP地址,便于同Internet連接。但AODV基于雙向信道的假設,路由應答數據包直接沿著路由請求的反方向回溯到源節點,因而不支持單向信道。與DSDV保存完整的路由表不同的是,AODV通過建立按需路由來減少路由廣播的次數,這是AODV對DSDV的重要改進。與DSR相比,AODV的好處在于源路由并不需要包括在每一個數據包中,這樣會降低路由協議的開銷。AODV是一個純粹的按需路由協議,那些不在路徑內的節點不保存路由信息,也不參與路由表的交換。
2.2.2Z-AODV能量平衡路由
在ZigBee路由規范中沒有過多的考慮能量控制,但是對于adhoc無線網絡來說,能量控制非常重要。因此提出了能量控制策略來改進ZigBee路由。它將使節點避免用盡所有能量以至于過早的失去作用。當節點想要選擇路徑時,它將考慮路徑上的節點的剩余能量。
Z-AODV算法是針對AODV(Adhoc按需距離矢量路由協議)算法的改進,AODV是基于序列號的路由,它總是選擇最新的路由。Z-AODV是基于路徑的能量消耗的路由,考慮到節能、應用方便性等因素,簡化了AODV的一些特點,但仍保持AODV的原始功能。
在路由選擇和路由維護時,ZigBee的路由算法使用了路由成本的度量方法來比較路由的好壞。假定一個長度為L的路由P,則它的路由成本為:為:其中,表示從節點Di到節點Di+1的鏈路成本。對于鏈路l,鏈路成本可按照下面的表達式計算:其中,pl為鏈路l中發送數據包的概率。
在ZigBee規范中沒有涉及到pl的具體計算方法。pl可通過實際計算收到的信標和數據幀來進行估計,即通過觀察幀的響應序列號來檢測丟失的幀,這就通常被認為最準確地測量接收概率的方法。但是,對于所有的方法來說,最直接和有效的方法就是基于IEEE802.15.4的MAC層和PHY層所提供的每一幀的LQI通過平均所計算的值。即使使用其他方法,最初的成本估計值也是基于平均的LQI值。可以根據驅動函數表來映射平均LQI值與C﹛l﹜值的關系(見表1)。表1LQI值與鏈路成本的關系能量平衡運算要考慮許多因素來選擇路由。這些因素包括臨近節點的能量、節點自身的能量和鏈路質量。剩余能量Elocal可以在每一個ZigBee幀中的保留域發送,這樣每個節點都能得到它的鄰居節點最新的能量分配﹛E1,E2…En﹜。
2.2.3樹型(Tree)路由
樹型路由機制包括配置樹型地址和樹型地址的路由。當協調器建立一個新的網絡,它將給自己分配網絡地址0,網絡深度Depth0=0。如果節點(i)想要加入網絡,并且與節點(k)連接,那么節點(k)將稱為節點(i)的父節點。根據自身的地址Ak和網絡深度Depthk,節點(k)將為節點(i)分配網
絡地址Ai和網絡深度Depthi=Depthk+1。網絡深度表示僅僅采用父子關系的網絡中,一個傳送幀傳送到ZigBee協調器所傳遞的最小跳數。ZigBee協調器自身深度為0,而它的子設備深度為1。
圖3為ZigBee樹型結構。參數nwkMaxChildren(Cm)表示路由器或協調器在網絡中允許擁有子設備數量的最大值。參數nwkMaxRouters(Rm)表示子節點中路由器的最大個數,而剩下的設備數為終端設備數。圖3ZigBee樹型結構一個新的RFD節點(i),它沒有路由能力,它與協調器連接作為協調器的第n個子節點。根據它的深度d,父節點(k)將為子節點(i)分配網絡地址:
Ai=Ak+Cskip(d)·Rm+n其中1≤n≤(Cm-Rm)
如果是新的子節點FFD,它有路由能力,父節點(k)將給它分配網絡地址:
Ai=Ak+1+Cskip(d)·(n-1)
其中,
否則,參數nwkMaxDepth(Lm)表示網絡的最大深度。
假設一個路由器向網絡地址為D的目的地址發送數據包,路由器的網絡地址為A,網絡深度為d。路由器將首先通過表達式:
A<D<A+Cskip(d-1)
判斷該目的節點是否為自己的子節點。如果目的節點是自己的子節點,則下一跳節點的地址為:
否則,下一跳節點是該路由器的父節點。
2.2.4Tree+Z-AODV路由算法的分析
根據上文對Tree和Z-AODV兩種路由算法的分析,在我們的ZigBee網絡中將二者結合,使用Z-AODV和分等級的樹型(Tree)路由相結合的混合路由方法,構成網格型拓撲結構(Mesh)的網絡。
具體實現方法是在數據幀幀頭的DiscoverRouter域指定路由。該域可以是如下三種值:
⑴抑制路由發現:它使用已經存在的路由表。當路由表中沒有相應的目的節點的地址時,參數nwkUseTreeRouting的值為TRUE,網絡將使用樹型路由。
⑵使能路由發現:如果在路由表中有路由地址,將按照該路由表進行路由。否則,路由器將使用Z-AODV路由算法初始路由發現。如果該節點沒有初始路由發現的能力,它將使用樹型路由。
⑶強制路由發現:不管是否有相應的路由表,節點都強制使用Z-AODV路由算法初始化路由發現。
在ZigBee規范中提出了將AODV和Tree路由混合的路由機制。但在ZigBee規范中并沒有說明如何配置參數來選擇路由策略,沒有使兩者平衡的設計方法。根據上面Tree路由和Z-AODV的分析,我們提出了基于數據特性的路由方法,即在兩種路由算法構成的網格型網絡中,根據節點間傳輸數據特性的不同,通過設置數據幀幀頭的DiscoverRouter域,選擇不同的路由方法。對于捆綁型的連續數據,ZigBee應用層應選擇使用使能路由的方法。即采用Z-AODV路由首先建立路由發現,然后選擇跳數少的路由,成為最佳路徑;對于爆發型的不連續數據則使用抑制路由發現的方法,即在路由表中沒有響應的目的節點的地址時,采用Tree路由方法。因為這種路由不需要建立路由表,因此對傳輸的數據響應較快。
圖4為節點接收到上層或其他節點發送的數據包時,網絡層處理程序的流程圖。圖4路由算法流程圖2.3總結
Tree路由是一種由網絡協調器展開生成樹狀網絡的拓撲結構,適合于節點靜止或者移動較少的場合,屬于靜態路由,不需要存儲路由表。樹型路由對傳輸數據包的響應較快,因為樹型路由不需要建立路由表。其缺點是所選擇的路由并非是最佳的路由,不能獲得最小路由。樹型路由適用于爆發型的數據傳輸。
Z-AODV需要首先建立路由發現,然后選擇跳數少的路由,成為最佳路徑。Z-AODV適用于連續的數據傳輸。
在ZigBee規范中,設計了Z-AODV和Tree路由混合的路由策略,這里我們提出了基于數據服務的ZigBee路由選擇策略。根據上述分析可以看出,這種路由選擇機制在網絡性能和低功耗方面有明顯的優勢;并且根據能量控制機制,可以有效地平衡節點能量,避免節點耗盡能量而過早地失去作用。
3ZigBee模塊硬件設計
模塊集無線收發器、微處理器、存儲器和用戶API等軟硬件于一體,可實現1.0版ZigBee協議棧的功能。圖5ZigBee模塊框圖圖5是模塊的硬件框圖,射頻芯片采用Chipcon公司生產的符合IEEE802.15.4標準的模塊CC2420;控制射頻芯片的微處理器可以根據需要選擇Atmel公司的AVR系列單片機或者SiliconLabs公司的8051內核單片機。單片機與射頻芯片之間通過SPI通信。單片機與外部設備之間通過串口通信,單片機自帶若干ADC或者溫度傳感器,可以實現簡單的模數轉換或者溫度監控。為了方便代碼移植到不同的硬件平臺,模塊固件采用標準C語言編寫代碼實現。
參考文獻
[1]蔣挺,趙成林.紫蜂技術及其應用[M].北京:北京郵電大學出版社,2006
[2]ZigBeeSpecification.ZigBeeAlliance[R],2006
[3]IEEE.IEEEstandards8021.15.4[R];2003
關鍵詞:智慧教室;燈光;ZigBee;CC2430
中圖分類號:TP399 文獻標識碼:A 文章編號:2095-1302(2014)10-00-03
0 引 言
智慧教室的燈光控制是物聯網的一項重要應用。因此,從系統硬件、軟件和協議數據格式上,對智慧教室的燈光控制系統進行全面的設計,對于物聯網的應用推廣和節能減排,都具有重要的應用示范價值與實用性意義。
1 總體架構
智慧教室燈光控制系統的基本架構如圖1所示。該系統由信息感測節點(ZigBee無線傳感器節點)、智能處理平臺以及繼電器節點組成。系統中的三種功能節點采用ZigBee協議構成無線傳感器網絡(WSN)。智能處理平臺在WSN中擔任ZigBee協調器節點,信息感測節點及繼電器節點擔任ZigBee終端節點。
圖1 智慧教室燈光控制系統架構
信息感測節點主要通過傳感器技術實現對環境信息的感知及采集,如光照強度、人體感應數據,并通過ZigBee協議將采集結果傳至信息處理平臺。
信息處理平臺中,ZigBee協調器負責接收感知數據,并將接收到的數據通過RS232串口傳送到應用開發平臺,應用開發平臺對收到的采集結果進行分析、決策后,將控制命令從RS232發往ZigBee協調器,ZigBee協調器通過ZigBee無線通信協議將控制命令發送到繼電器。
繼電器節點通過ZigBee協議接收ZigBee協調器發來的控制命令,執行開或關燈的指令。
ZigBee無線通信協議不需要獨立的硬件設備,而是以無線通信模塊的形式,在信息感測節點、信息處理平臺和繼電器節點中均需要實現。
2 硬件設計
2.1 信息感測節點
信息感測節點硬件上由傳感器、微處理器、無線通信模塊、電池組成。圖2所示是信息感測節點的組成圖。在設計上,為了降低成本,并提高硬件的可擴展性和靈活性,信息感測節點的微處理器及無線通信模塊可采用選用相同的ZB2430底板實現,其核心芯片是TI公司的CC2430,ZB2430電路原理圖如圖3所示。傳感器選用插件式的硬件設計,通過ZB2430的I/O擴展口與ZB2430相連,信息感測節點只在傳感器插件上不同。根據智慧教室燈光控制的實際需要,選用了光照、人體兩類傳感器,共兩類信息感測節點。
圖2 信息感測節點組成
2.2 信息處理平臺硬件
信息處理平臺硬件上采用DMATEK的DMA210XP整合平臺,其集成了應用開發平臺和ZigBee協調器端功能,ZigBee協調器端接收從感測節點采集到的數據,并通過串口傳輸到應用開放平臺,由其對感測數據做進一步的分析、處理和顯示,其組成圖如圖3所示。
ZigBee協調器端采用DAMTEK的ZB2430-03實現, ZB2430-03的硬件組成與信息感測節點的ZB2430完全一致,只在軟件上不同,通過在軟件上定義ZB2430為從模塊(終端)、ZB2430-03為主模塊(協調器),實現信息在兩者間通信。
圖3 信息處理平臺組成
應用開發平臺采用具有先進ARM Cortex A8核心的Samsung S5PV210處理器,該處理器采用ARM Cortex A8核心,DMA210XP應用平臺結合ZigBee 無線感測,實現智慧教室燈光控制的應用 。
2.3 繼電器節點硬件
繼電器節點硬件設計與信息感測節點硬件類似,但沒有傳感器模塊。
3 軟件設計
3.1 信息感測節點軟件
信息感測節點的軟件可采用嵌入式系統的開發方式與流程,開發工具為IAR。本系統共涉及光照、人體兩類傳感器,這兩類傳感器獲取到的數據格式略有不同。具體如下:
相同部分:
#define MAX_SEND_BUF_LEN 128 //定義發送緩沖區長度上限
static uint8 pTxData[MAX_SEND_BUF_LEN]; //定義發送緩沖區的大小
/*填充發送緩沖區,對5類傳感器均相同,開始*/
pTxData[0] = 0xFF;
pTxData[1] = 0xFD;
pTxData[3] = 4;
pTxData[8] = 0;
pTxData[9] = 0;
pTxData[10] = CheckSum(pTxData,10); //校驗和
/*填充發送緩沖區,對2類傳感器均相同,結束*/
不同部分有光電傳感器的數據獲取與處理:
unsigned intADC_GetValue(void)// 獲取傳感器采樣數據
{
unsigned intadcValue = 0;
adcValue = adcSampleSingle(ADC_REF_AVDD, ADC_12_BIT, HAL_BOARD_IO_ADC_CH);
return adcValue;
}
/*對采樣數據的轉換,開始*/
ADC_VALUE = ADC_GetValue()*3.3/16384/2;
pTxData[4] = (uint8)ADC_VALUE%10 + 48;
pTxData[5] = (uint8)(ADC_VALUE*10)%10 + 48;
/*對采樣數據的轉換,結束*/
pTxData[6] = 0x00; //填充發送緩沖區
pTxData[7] = 0x00; //填充發送緩沖區
人體傳感器的數據處理:
pTxData[4] = HAL_INT_VAL();
pTxData[5] = 0x00;
pTxData[6] = 0x00;
pTxData[7] = 0x00;
信息感測節點應用程序對傳感器測量值的獲取、轉換、緩存及無線發送功能可采用如圖4所示的程序流程來實現。
圖4 信息感測節點數據處理流程圖
3.2 信息處理平臺軟件
信息處理平臺的ZigBee協調器模塊通過ZigBee點對點無線通信協議,負責接收和匯聚各傳感器采集到的感測信息,并將接收到感測數據通過RS 232串口傳輸到應用開發平臺;同時,負責從RS 232串口接收從應用開發平臺下達的控制命令,并通過ZigBee無線通信協議將控制命令發送到ZigBee繼電器節點(電燈)。具體程序流程如圖5所示。
圖5 ZigBee協調器端程序流程圖
3.3 繼電器節點軟件設計
在本系統中,用ZigBee繼電器模擬教室電燈,ZigBee繼電器通過ZigBee點對點無線通信協議接收ZigBee協調器發來的控制命令,實現對各繼電器(電燈)的打開及關閉控制。其ZigBee繼電器程序流程如圖6所示。
圖6 繼電器節點程序流程圖
4 ZigBee點對點通信參數及數據格式設計
4.1 ZigBee點對點通信參數設計
對Zigbee點對點通信參數的設置,有RF_CHANNEL、PAN_ID、SENSOR_ADDR、COORD_ADDR四項。ZigBee無線傳感器節點模塊、ZigBee繼電器模塊、ZigBee協調器模塊的RF_CHANNEL、PAN_ID設置一致;無線傳感器節點模塊的SENSOR_ADDR為無線傳感器節點地址;無線傳感器節點模塊的COORD_ADDR為發送地址,要與協調器模塊的COORD_ADDR設置一致;繼電器模塊的RELAY_ADDR為繼電器地址,要與協調器模塊的RELAY_ADDR設置一致。本設計采用的設置如下:
#define RF_CHANNEL 22 // 頻道 11~26
#define PAN_ID 0x1122 //網絡id
#define COORD_ADDR 0x5566 //協調器地址
#define RELAY_ADDR 0x7788 //繼電器地址
4.2 ZigBee無線通信數據格式設計
4.2.1 協調器接收格式
本設計的發送端傳感器格式(byte1-byte10)如圖7所示。
Head Type Len Data Res Chk
0xFA 0xFB Type 0x04 D1 D 2 D 3 D 4 保留 校驗和
圖7 發送端傳感器格式
圖7中,byte1,byte2:傳感器端數據發送的固定頭,固定為0xFA,0xFB;byte3:數據類型的標識,例0x01人體,0x02光照;byte4:為傳感數據長度(統一為0x04);byte5-byte8:傳感器采集到的具體數據;byte9:保留;byte10:byte1-byte9校驗值(相加取低8位)。
4.2.2 協調器發送數據格式
本設計的接收端為電燈(繼電器),格式(byte1-byte10)如圖8所示。
Head Number Len Res Chk
0xFB 0xFA Des 0x04 保留 保留 保留 保留 校驗和
圖8 接收端格式(byte1-byte10)圖
圖8中,byte1,byte2:Coordinator端數據發送控制繼電器命令的固定頭0xFA,0xFB;byte3:Coordibator端數據發送對象,是繼電器序號;0x01:發送命令給繼電器1端,表示電燈1;0x02:發送命令給繼電器2端,表示電燈2;0x03:發送命令給繼電器3端,表示電燈3;0x04:發送命令給繼電器4端,表示電燈4,以此類推;byte4:命令長度,固定為0x04;byte5:發送給繼電器的命令內容(0x02為關閉,0x01為開啟);byte6-byte9:保留;byte10:byte1-byte9校驗值(相加取低8位)。
4.2.3 電燈(繼電器)應答數據格式
本設計的接收端,即協調器的格式(byte1-byte9)如圖9所示。
Head Number Len 應答碼 Chk
0xFB 0xFA Des 0x04 R1 R2 R3 R4 校驗和
圖9 協調器的格式圖
圖9中,byte1-byte4:表示收到的數據原值返回;byte5-byte8:應答碼,固定為0xAA 0xBB 0xCC 0xDD;byte9:是byte1-byte8的校驗值(相加取低8位)。
5 結 語
智慧教室的燈光控制是物聯網的一項重要應用,本文從硬件、軟件和協議數據格式上對智慧教室的燈光控制系統進行了較為全面的設計,對物聯網的應用推廣、節能減排等方面都具有重要的應用價值與實用性,只需在軟件上和傳感器插件上做少量改動,本系統的應用還可進一步推廣,如應用到倉儲監控、智慧家居等方面,具有很強的可擴展性。
參考文獻
[1]楊子威. 基于ZigBee技術的LED路燈節能控制系統的設計[J].現代電子技術,2014,37(8): 40-45 .
[2]白成林,馬.基于物聯網技術的智能路燈監控系統[J]. 電子技術應用,2014,40(3): 82-85.
[3]孔令榮,王昊.基于無線傳感網絡的智能路燈照明系統分析[J].電子科技,2013,26(11): 108-110,113.