首先工禾,本人是一名在讀本科生魄衅,經(jīng)過近一周的學(xué)習(xí)現(xiàn)在對Z-Stack也只能說是剛剛?cè)腴T廷臼,把自己的學(xué)習(xí)筆記分享出來蚪黑,也算給廣大菜鳥級入門童鞋一些參考的東西吧。讓大家見笑了中剩,也只能是給如我一般的菜鳥入門的時候做一個參考吧忌穿。
好,閑話少敘结啼,下面是我的學(xué)習(xí)筆記掠剑。
一、? ? ? ? 基礎(chǔ)定義及知識郊愧。
1朴译、何為ZigBee,與普通的RF技術(shù)有何區(qū)別?
ZigBee是一種具有低成本低復(fù)雜度低功耗的小范圍低速率的無線傳輸技術(shù)属铁。
相對于普通的RF技術(shù)眠寿,其重要的特點(diǎn)是;
(1) 低功耗,速率低數(shù)據(jù)量少焦蘑。盯拱、
(2)自組織網(wǎng)絡(luò),可適應(yīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)動態(tài)變化。
(3)高可擴(kuò)充狡逢,在有協(xié)調(diào)器加入的情況下宁舰,最高可達(dá)65535個ZigBee節(jié)點(diǎn)。
2奢浑、何為IEEE 802.15.4蛮艰,其特點(diǎn)。
是ZigBee無限傳感器網(wǎng)絡(luò)通信標(biāo)準(zhǔn)雀彼,具有短距離(10m)壤蚜,低功耗,低速率徊哑,低成本的特點(diǎn)仍律,支持單跳星形(10m內(nèi))和多跳對等(>10m)兩種網(wǎng)絡(luò)拓?fù)洹?/p>
3、何為Z-Stack实柠?
Z-Stack是TI公司開發(fā)的ZigBee協(xié)議棧水泉,并且經(jīng)過了ZigBee聯(lián)盟的認(rèn)可而為全球眾多開發(fā)商所廣泛采用。Z-Stack實(shí)際上是幫助程序員方便開發(fā)ZigBee的一套系統(tǒng)窒盐,它采用輪轉(zhuǎn)查詢式操作系統(tǒng)草则,包括兩個主要流程(如圖):系統(tǒng)初始化和執(zhí)行操作系統(tǒng)。系統(tǒng)初始化完成后蟹漓,就進(jìn)入執(zhí)行操作系統(tǒng)炕横,并且在其中是一個死循環(huán)。執(zhí)行操作系統(tǒng)中主函數(shù)即為輪詢式操作系統(tǒng)的主體部分葡粒,也是我們需要重點(diǎn)開發(fā)份殿、調(diào)用、掌握的部分嗽交。欲知其詳卿嘲,且聽下文分解。
二夫壁、開發(fā)Z-Stack須知拾枣。
1、ZigBee的體系盒让,數(shù)據(jù)及管理的方式和方向梅肤。ZigBee網(wǎng)絡(luò)構(gòu)架。
上圖是ZigBee協(xié)議的體系結(jié)構(gòu)邑茄。
上圖是zigbee網(wǎng)絡(luò)構(gòu)架姨蝴。黑色是協(xié)調(diào)器,紅色是路由器肺缕,白色是終端設(shè)備左医。協(xié)調(diào)器是網(wǎng)絡(luò)核心授帕、不休眠、FFD炒辉,路由器是接力和擴(kuò)展信號傳輸范圍豪墅、不休眠泉手、FFD黔寇,終端可選擇睡眠或喚醒、可FFD或RFD斩萌。
2缝裤、Z-Stack在開發(fā)ZigBee中起到的作用,使用Z-Stack開發(fā)ZigBee我們需要做什么颊郎?
如剛才的ZigBee協(xié)議體系圖所示憋飞,ZigBee中包括很多的層和各個層之間的數(shù)據(jù)管理信息傳輸。如此龐大的體系姆吭,如果人為手動編寫程序?qū)⑹且粋€很浩大的工程榛做。而Z-Stack則在其系統(tǒng)中為我們提供了詳細(xì)的各個子模塊的工作程序。那么我們在開發(fā)ZigBee項(xiàng)目的時候内狸,其實(shí)我們只需要添加三個文件:主文件检眯,主文件的頭文件,操作系統(tǒng)接口文件昆淡。
3锰瘸、Z-Stack輪詢結(jié)構(gòu)函數(shù)工作方式及順序。
下圖是輪詢結(jié)構(gòu)工作流程圖昂灵。進(jìn)入輪詢結(jié)構(gòu)后避凝,Z-Stack開始根據(jù)處理任務(wù)的優(yōu)先級一級級向下查詢是否有任務(wù)要執(zhí)行,如果需要眨补,就調(diào)用該任務(wù)的子函數(shù)管削,如果沒有就繼續(xù)詢問,最后再循環(huán)撑螺。這就是輪轉(zhuǎn)查詢結(jié)構(gòu)佩谣。
第二章題外話:如果說第一章基本是科普的話,是為了讓行外人也知道我們在干嘛实蓬,那么第二章就是在對行內(nèi)人科普茸俭,我在這一階段的學(xué)習(xí)基本就是為了搞懂,對于Z-Stack安皱,我到底要從何處下手调鬓,到底那些是需要我修改編譯的,哪些是可以直接引用的酌伊。而真正開始開發(fā)腾窝,是在第三章缀踪。
三、Z-Stack學(xué)習(xí)虹脯,調(diào)用驴娃,修改,開發(fā)循集。
1唇敞、各層文件意義。
(1)? ? ? ? APP:應(yīng)用層目錄咒彤,即我們需要開發(fā)修改的部分疆柔。
(2)HAL:硬件層目錄。? ? (3)MAC:MAC層目錄镶柱。
(4)MT:監(jiān)控調(diào)試層目錄旷档。??(5)NWK:網(wǎng)絡(luò)層目錄。
(6)OSAL:協(xié)議棧的操作系統(tǒng)歇拆。(7)Profile:AF層目錄鞋屈。
(8)Security:安全層目錄。
(9)Services:設(shè)備地址處理函數(shù)目錄故觅。
(10)Tools:工程配置目錄厂庇。 (11)ZDO:ZigBee設(shè)備對象。
(12)ZMac:Z-Stack MAC導(dǎo)出層接口文件逻卖。
(13)ZMain:項(xiàng)目入口函數(shù)宋列,對外控制接口函數(shù)。
(14)Output:輸出文件目錄评也。
2炼杖、PANID設(shè)定。
若ZDAPP_CONFIG_PAN_ID值不為0xFFFF時盗迟,PANID由其指定坤邪,若ZDAPP_CONFIG_PAN_ID為0xFFFF,那么設(shè)備將隨機(jī)加入網(wǎng)絡(luò)罚缕。
通過選擇DEFAULT_CHANLIST不同的值可以選擇不同頻道艇纺。
Tools\CC2530DB目錄下的f8wConfig.cfg文件中有相應(yīng)設(shè)置。
第三章題外話:目前筆者還在處于學(xué)習(xí)如何修改APP目錄下函數(shù)的階段邮弹,雖然有些筆記也做了黔衡,但是還無法確定是否正確,就不拿出來誤人子弟了腌乡∶私伲可能已經(jīng)發(fā)出來也有錯誤,還請大家多多指正与纽,如果反響還不錯的話侣签,我會繼續(xù)更新的塘装。
四、細(xì)節(jié)知識影所、名詞解釋及備注蹦肴。
1、ZigBee是樹尋址猴娩,PRO是隨機(jī)尋址阴幌,PRO更適用于變動的網(wǎng)絡(luò),如由多個移動終端組成的網(wǎng)絡(luò)胀溺。只有PRO可以支持多對一路由選項(xiàng)裂七。大多數(shù)情況下皆看,ZigBee和ZigBee PRO無法在同一網(wǎng)絡(luò)上同時使用仓坞。
2、? ? ? ? 自我組態(tài)功能:讓系統(tǒng)中所有的節(jié)點(diǎn)腰吟,根據(jù)現(xiàn)場的網(wǎng)絡(luò)訊號狀態(tài)決定要加入的父節(jié)點(diǎn)无埃。
3、描述符:ZigBee網(wǎng)絡(luò)中的所有設(shè)備都有一些描述符毛雇,用來描述設(shè)備類型和應(yīng)用方式嫉称。描述符的定義和創(chuàng)建配置項(xiàng)在文件ZDOCConfig.h和ZDOConfig.c中完成。
備注:PHY:物理層? ?MAC:媒體介質(zhì)訪問層? ? NWK:網(wǎng)絡(luò)層? ???APL:應(yīng)用層
APS:應(yīng)用支持子層??AF:應(yīng)用框架??KVP:鍵值對服務(wù)類型??MSG:報文服務(wù)類型
LR-WPAN:低速率無限個人區(qū)域網(wǎng) DSSS:直接序列擴(kuò)頻 ISM:工業(yè)科學(xué)醫(yī)學(xué)頻段
CSMA-CA:碰撞避免? ?GTS:保證時隙? ? ID:個人域網(wǎng)選擇信道和識別符
SAP:服務(wù)接入點(diǎn) MCPS:數(shù)據(jù)傳輸服務(wù) MLME:管理服務(wù) NLDE:數(shù)據(jù)服務(wù)實(shí)體
NLME:管理服務(wù)實(shí)體? ?NIB:網(wǎng)絡(luò)層信息數(shù)據(jù)庫? ? MLDE:MAC子層數(shù)據(jù)服務(wù)
ZDO:ZigBee設(shè)備對象? ?FFD:全功能設(shè)備??RFD:精簡功能設(shè)備
API:應(yīng)用程序編程接口? ?HAL:硬件抽象層
ZigBee網(wǎng)絡(luò)示意圖.jpg(12.75 KB, 下載次數(shù): 2)