【Zigbee技術入門教程-號外】基於Z-Stack協議棧的搶答系統


【Zigbee技術入門教程-號外】基於Z-Stack協議棧的搶答系統

廣東職業技術學院  歐浩源

一、引言
    2017年全國職業院校技能大賽“物聯網技術應用”賽項中任務三題2的“搶答器開發是一個非常優秀的題目。本人對題目進行了適當的改造和完善,剔除了和技能大賽中特別設備高度相關的內容,使其成為一個通用的Zigbee無線組網技術應用入門學習的綜合實訓案例。不管是自我學習,還是專業教學,甚至是在技能大賽訓練中,這個題目都適合使用。

 

二、硬件資源需求
    要進行本“搶答系統”的實訓案例,你需要5塊具有無線數據通信能力的CC2530開發模塊,其中一個板子有串口通信能力,另外的板子上至少有2個LED燈1個按鍵,只要滿足這些硬件資源即可開展該綜合實訓。

    本“搶答系統”實訓案例中采用TI公司的2.5.1版Z-Stack協議棧,其在網絡上隨時隨地都能下載到。在該版本Z-Stack協議棧的硬件驅動中支持了3個LED燈和1個按鍵,它們分別是:
    HAL_LED_1:      P1_0(即D3
    HAL_LED_2:      P1_1(即D4
    HAL_LED_3:      P1_3(即D6
    HAL_KEY_SW_6:   P0_1(即SW2
   <注:括號中為全國職業院校技能大賽中新大陸國賽設備對應的資源>
    根據“搶答系統”案例的需求,對上面的指示燈和按鍵做了相應的定義:
    HAL_LED_1:      數據接收燈
    HAL_LED_2:      搶答指示燈
    HAL_LED_3:      網絡狀態燈
    HAL_KEY_SW_6:   操作鍵
    在本“搶答系統”案例中只需要使用“數據接收燈”和“搶答指示燈”,“網絡狀態燈”被Z-Stack協議棧占用了,當無線組網成功后,該Zigbee開發板的這個燈會點亮,如果不亮,說明該Zigbee開發板組網失敗。
    在進行本實訓案例開發的時候,您使用的CC2530開發模塊上的端口定義最好和這個版本協議棧原有的一致,不然可要進行底層的移植工作了。

 

三、項目應用需求
    在為“搶答系統”准備好的5塊基於CC2530的Zigbee無線組網開發板中,根據功能需求,分為以下三類設備:
    1塊為顯示節點
    1塊為主持人板
    3塊為搶答器板
    顯示節點通過串口連接到電腦,在電腦端有一個“搶答器信息顯示終端”的上位機軟件。該上位機軟件是一個接收並顯示“搶答系統”運行狀態和搶答結果信息的軟件。實際上,你可以根據本實訓案例的通信規約自行設計一個合適的上位機顯示軟件。在沒有該上位機軟件的情況下也是可以進行“搶答系統”實訓案例的開發的,你可以打開“串口助手”這種能過接收串口數據的小軟件,監測系統傳送過來的原始數據,然后對照系統的通信規約,從而判斷“搶答系統”的運行狀態和搶答結果。“搶答器信息顯示終端”的參考界面如下:

    在“搶答系統”的無線網絡數據傳輸中,數據流以幀的形式進行交互,並遵循一個簡單的通信規約
    <1> 該數據幀有四個字節,其格式如下:
    幀頭<0xFA>   命令域   參數域    幀尾<0xAF>
    <2> 主持人板復位指令:
    幀頭<0xFA>   0xA0      0x00     幀尾<0xAF>
    <3> 搶搭器板搶答指令:
    幀頭<0xFA>   0xB1   搶答板ID號  幀尾<0xAF>
    <4> 主持人板確認指令:
    幀頭<0xFA>   0xA1   搶答板ID號  幀尾<0xAF>
    <5> 串口波特率為:9600
    <6> Zigbee的通道為:17
    <7> Zigbee的PAN ID為:0x2017
    <8> Zigbee通信方式廣播

    在協議棧“ZStack-CC2530-2.5.1a”中的適當的位置添加相應工程代碼,實現搶答系統的如下功能:
   【步驟1】:所有的Zigbee開發板上電后,“搶答指示燈”閃爍3下,然后等待“網絡狀態燈”點亮,即全部Zigbee開發板組網成功,每個Zigbee開發版在成功接收到無數據幀的時候,“數據指示燈”快速閃爍2下。
   【步驟2】:單擊主持人板的“操作鍵”時,主持人板搶答器板的“搶答指示燈”均點亮,此時,顯示節點的“搶答指示燈”熄滅,“搶答器信息顯示終端”里顯示“Ready!!!”,這時三個搶答器板可以開始搶答,在主持人板的“搶答指示燈”未亮之前,搶搭無效。

   【步驟3】:當主持人板搶答器板的“搶答指示燈”點亮后,單擊搶答器板中的“操作鍵”可進行問題搶答。當有人搶答成功后,主持人板及所有的搶答器板的“搶答指示燈”熄滅,顯示節點上的“搶答指示燈”點亮,“搶答器信息顯示終端”里顯示“X號搶答成功!”。此時,3塊搶答器板再次搶答無效。

   【步驟4】:重復步驟2、步驟3,完成下一題搶答。


四、項目設計概述
    在我們下載的Z-Stack協議棧中有一個用戶自定義任務SampleApp,本“搶答系統”案例將利用該協議棧的現有用戶任務,將對其工程代碼進行適當的添加和修改,以“搶答系統”的業務功能。
    搶答系統中的5塊Zigbee開發板分為三種設備類型:顯示節點、主持人板和搶答器板。因此,需要設計三個不同的工程代碼。實際上,這個三個不同工程中的代碼,絕大部分是相同的。你可以用三個協議棧工程來實現,你也可以用一個協議棧工程,通過三個不同的任務代碼文件來實現,你還可以用條件編譯來對三個設備類型,編譯三種不同的工程代碼。對應入門的初學者來說,建議使用第一種辦法。在本案例分析過程中,介紹的是第二種方法。
    本搶答系統的設計關鍵在於,有一個系統的模型,有一個清晰的思路,有一個明確的方向,有一顆強大的內心。本項目案例的實現難點,不是設計程序,而是調試程序,而且還是多終端無線聯調
    要完成實現“搶答系統”要求的功能,除了要求掌握CC2530底層硬件基礎和Z-Stack協議棧基礎操作之外,還需要你不但有程序設計的能力,還要有代碼調試的經驗,不但能把代碼跑起來,還能有鎖定BUG的辦法

[注]:[題目詳解及實現思路,可見百度付費文檔]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM