在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文讀懂zigbee技術的協議原理

電子設計 ? 來源:互聯網 ? 作者:佚名 ? 2017-11-27 13:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一.前言

從今天開始,我們要正式開始進行zigbee相關的通信實驗了,我所使用的協議棧是ZStack 是TI ZStack-CC2530-2.3.0-1.4.0版本,大家也可以從TI的官網上直接下載TI公司為cc2530寫的協議棧代碼,畢竟,我們作為初學者,應該先不要去深究協議棧是怎么用代碼編寫的,畢竟zigbee已經相當成熟了,我們應該先學會使用zigbee協議棧進行通信,并能應用于實際項目中,比如說智能家具,不知道大家是不是有同感,所以下面我就先給大家介紹一下zigbee通信的原理以及體系架構。

二.ZStack 體系架構

ZStack 的體系結構由稱為層的各模塊組成。每一層為其上層提供特定的服務:即由數據服務實體提供數據傳輸服務;管理實體提供所有的其他管理服務。每個服務實體通過相應的服務接入點(SAP) 為其上層提供一個接口,每個服務接入點通過服務原語來完成所對應的功能。

ZStack 根據IEEE 802.15.4 和ZigBee 標準分為物理層,介質接入控制層,網絡層,應用層。物理層提供了基礎的服務,數據傳輸和接收,網絡層提供了各個節點連入的服務,是zigbee網絡通信的關鍵,應用層是我們關注的重點,提供了應用的框架和ZDO。大家如果想了解體系結構的具體內容,可以自己去看說明文檔,下面我給大家介紹一下zigbee工作原理

ZStack 采用操作系統的思想來構建,采用事件輪循機制,而且有一個專門的Timer2 來負責定時。從CC2530 工作開始,Timer2 周而復始地計時,有采集、發送、接收、
顯示…等任務要執行時就執行。當各層初始化之后,系統進入低功耗模式,當事件發生時,喚醒系統,開始進入中斷處理事件,結束后繼續進入低功耗模式。如果同時有幾個事件發生,判斷優先級,逐次處理事件。這種軟件構架可以極大地降級系統的功耗。

整個ZStack 的主要工作流程,如圖所示,大致分為以下6 步:
(1) 關閉所有中斷;
(2) 芯片外部(板載外設)初始化;
(3) 芯片內部初始化;
(4) 初始化操作系統;
(5) 打開所有中斷;
(6) 執行操作系統。

這就是zigbee處理任務的大致過程。

三.代碼分析

協議棧的代碼很多,而且很復雜,上圖就明白了。。。

這還只是一部分,所以我們先不用太過于專注于協議棧的編寫,而是要學會如何用,我們主要學習和配置的就是圖中SampleApp.c這個文件,它主要就是應用于應用的,我們面對不同的應用,只要修改它和底層的配置文件就行了。它里面有6個非常重要的函數,這6 個函數,有關于初始化用戶功能
的;有關于所有事件的 處理的;有按鍵服務功能編寫的;有接收數據的處理的;有數據發送函數的編寫的。下面我們就對這6 個函數進行分析:

void SampleApp_Init( uint8 task_id )

這是一個用戶用于初始化任務的函數,它是在系統初始化階段被調用的,而且,在調用它的時候,它里面應該有相應任務的初始化(也就是說,用戶有什么初始化,都是放在這個函數里),比如:硬件初始化、數據表初始化、電源初始化等等。

uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )

這是一個事件處理函數(所有事件都是它管理),當有已登記的事件發生時,它就被主函數調用來對事件進行處理,這些事件包括:定時器、消息、以及用戶定義的事件等
等。
這個函數的功能包括:按鍵處理,數據接收,數據發送。當然,用戶可以自己添加其它事件,我們就在這個函數添加自己的串口事件。

void SampleApp_HandleKeys( uint8 shift, uint8 keys )

這個函數是給SampleApp_ProcessEvent( uint8 task_id, uint16 events )調用的:當按鍵按下后,就會執行SampleApp_ProcessEvent 函數里的case KEY_CHANGE ,這個case 的服務函數就是SampleApp_HandleKeys( uint8 shift, uint8 keys ),我們可以在這個函數里添加按鍵判斷,判斷哪個按鍵,然后執行相關任務。

void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )

這個函數管理所有接收到的數據,至于數據來自哪個設備,它是根據簇ID 來分辨的。
函數里面就是一個switch 語句,關鍵是case 及其后面的服務函數。用戶可以根據不同的功能,定義不同的簇ID(在SampleApp.h 里進行),然后在這個switch 語句里添加一個以簇ID 來命名的case,并在case 里面編寫自己的應用程序。

void SampleApp_SendPeriodicMessage( void )

這個函數,是一個周期性數據發送函數,它是設備設置為周期性廣播的時候調用的,它是我們設置發送數據的地方。

void SampleApp_SendFlashMessage( uint16 flashTime )

這個函數是void SampleApp_HandleKeys( uint8 shift, uint8 keys )函數的一個服務函數,我們也是極少用到這個函數的,故不作詳解。

上述就是常用的6個函數,對于初學者,會使用zigbee協議進行應用就夠了,先對驅動進行移植,在進行硬件進行初始化,在修改這6個函數,就可以對zigbee進行簡單的應用了,今天就先寫到這里了,協議棧代碼太多了我就不貼出來了,需要的朋友聯系我,大家相互學習,這只是我的一點體會。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ZigBee技術
    +關注

    關注

    3

    文章

    115

    瀏覽量

    42925
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    讀懂ZigBee技術的前世今生

    下文采用問答形式向你詳細地介紹了方方面面,不夸口的說,你所需要知道的關于 ZigBee切,在這里基本可以了解到!
    發表于 06-14 15:19 ?5554次閱讀

    讀懂zigbee通信技術的特點和性能

    | 傳感器技術(WW_CGQJS)ZigBee技術被認為是最有可能像WiFi、藍牙樣改變我們現在生活的
    的頭像 發表于 11-23 07:46 ?2.9w次閱讀

    TI_06版Zigbee協議棧學習_02 - Zigbee技術 -

    TI_06版Zigbee協議棧學習_02 - Zigbee技術 -
    發表于 08-12 23:53

    TI_06版Zigbee協議棧學習_03 - Zigbee技術

    TI_06版Zigbee協議棧學習_03 - Zigbee技術
    發表于 08-12 23:54

    TI_06版Zigbee協議棧學習_04 - Zigbee技術

    TI_06版Zigbee協議棧學習_04 - Zigbee技術
    發表于 08-12 23:57

    讀懂接口模塊的組合應用有哪些?

    讀懂接口模塊的組合應用有哪些?
    發表于 05-17 07:15

    讀懂如何去優化AC耦合電容?

    讀懂如何去優化AC耦合電容?
    發表于 06-08 07:04

    讀懂ZigBee指的是什么

    ZigBee指的是什么?ZigBee網絡的般特性有哪些?ZigBee網絡的硬件和軟件有哪些?
    發表于 09-24 13:31

    讀懂什么是NEC協議

    讀懂什么是NEC協議
    發表于 10-15 09:22

    讀懂中斷方式和輪詢操作有什么區別嗎

    讀懂中斷方式和輪詢操作有什么區別嗎?
    發表于 12-10 06:00

    zigbee技術_zigbee協議

    Zigbee是IEEE 802.15.4協議的代名詞。根據這個協議規定的技術種短距離、低功耗的無線通信
    發表于 09-07 16:22 ?4642次閱讀
    <b class='flag-5'>zigbee</b><b class='flag-5'>技術</b>_<b class='flag-5'>zigbee</b><b class='flag-5'>協議</b>

    讀懂MCU的特點、功能及如何編寫

    讀懂MCU的特點、功能及如何編寫
    發表于 12-05 09:51 ?24次下載
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>讀懂</b>MCU的特點、功能及如何編寫

    讀懂,什么是BLE?

    讀懂,什么是BLE?
    的頭像 發表于 11-27 17:11 ?3377次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>讀懂</b>,什么是BLE?

    讀懂車規級AEC-Q認證

    讀懂車規級AEC-Q認證
    的頭像 發表于 12-04 16:45 ?1296次閱讀

    讀懂微力扭轉試驗機的優勢

    讀懂微力扭轉試驗機的優勢
    的頭像 發表于 11-30 09:08 ?855次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>讀懂</b>微力扭轉試驗機的優勢
    主站蜘蛛池模板: 成人欧美一区二区三区小说 | 黄色在线视频免费看 | 狠狠色噜噜狠狠狠 | 在线观看精品视频看看播放 | 中文字幕一二三区乱码老 | 久久婷婷一区二区三区 | 777色狠狠一区二区三区香蕉 | 亚洲欧美日韩综合一区 | 视频在线精品 | 日韩毛片免费线上观看 | 国产精品午夜剧场 | 欧美一级在线全免费 | 亚洲爱爱图片 | 一区二区三区视频 | 欧美精品网| 拍拍拍交性免费视频 | 亚洲成在线观看 | 午夜 福利| 最近2018中文字幕免费视频 | 久青草国产免费观看 | 国产视频精品久久 | 五月天婷五月天综合网在线 | 国产农村一一级特黄毛片 | 国产精品国产三级国产普通话对白 | 天天摸夜夜添狠狠添2018 | 午夜影院在线观看免费 | 年轻护士3的滋味 | 日本黄在线观看 | 美女视频久久 | 天堂在线观看视频观看www | 亚洲地址一地址二地址三 | 亚洲天天看 | 中国一级特黄视频 | 成年人网站免费观看 | 午夜视频免费看 | 国产小片| 一区视频免费观看 | 国模吧双双大尺度炮交gogo | 色婷婷久久免费网站 | 丁香婷婷在线视频 | 久久99久久精品免费思思6 |