希望微控工作室_第1頁
希望微控工作室_第2頁
希望微控工作室_第3頁
希望微控工作室_第4頁
希望微控工作室_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

XWWK-CC2530AZigbee組網實驗說明書 /2012511、ZigBee2007/PRO協(xié) Zigbee的節(jié)點類 ZigBee2007/PRO協(xié) 2、Zigbee協(xié)議組網試驗準 協(xié)議及軟件的安 協(xié)議棧概 編譯與連 3、組網試 試驗1:協(xié)調器與終端節(jié)點組網試 試驗2:協(xié)調器、路由器和終端節(jié)點組網試 試驗3:路由功能測試實驗 4、程序解 傳感器終端節(jié)點 協(xié)調器、路由器節(jié)點 5、程序修改流 修改 修改 修改 修改SensorEB(傳感器終端節(jié)點 Zigbee的節(jié)點類ZigBee中介使協(xié)調器節(jié)點和終端節(jié)點通信,實現(xiàn)路由通信功能,同時路由器具有傳感ZigBee2007/PRO無線傳感器網絡是基于最新IEEE802.15.4技術標準和有關于ZigBee2007/PRO的信息,請參考相關書籍和網上資料本店提供的Zigbee協(xié)議版本為ZStack-CC2530-2.3.0-1.4.0。該版本協(xié)議棧為用戶平臺的硬件設計修改程序,從而完成Zigbee協(xié)議測試和學習的目的。下面以傳感器組網試驗為例,詳細說明Zigbee2007協(xié)議棧的初始化、組網、綁Zigbee協(xié)調器、路由器以及終端節(jié)點的概念。同時,通過對協(xié)議及軟件1:可以將本店提供的協(xié)議棧(XWWK-CC2530A平臺直接使用)在C:\TexasInstruments即可。2ZStack-CC2530-2.3.0-1.4.0.exe,安裝協(xié)議文件,所有步驟采用默體修改方法參考第5部分。2雙擊Setup_ZigBee_Sensor_Monitor_1.2.0.exe,安裝傳感器監(jiān)視軟件,所有步驟采用默認設置。安裝完成后,桌面上有“Z-SensorMonitor”的快捷方式。協(xié)議棧概.doc, APP。DemoCollector.c和DemoSensor.c是傳感器組配置,主要包括按鍵、指示燈、通信、顯示、定時器以及驅動等文件。其中MAC-Zmac:ZigbeeMAC:MediumAccessControl(控制層)MT:MonitorTestEventLoop(監(jiān)視事件循環(huán))NWK:NetWork(網絡層)OSAL:OperatingSystem ionLayer.(OS抽象層)Profile:ApplicationFramework(應用框架,用于描述設備)Security:SecurityServiceProvider(SSP)interface(安全服務接口)Service:Zigbeeand802.15.4deviceaddressutilityfunctions(設備地址通用函數)Tools:配置文件,用于配置Zigbee設備ZDO:ZigbeeDeviceObject(Zigbee設備對象Zmac:ZStackMACPortingLayer(MAC層端口層ZmainMain文件和評估板接口文件,如按鍵處理、Output:輸出文件夾,主要是編譯后生成的.r51編譯與連選擇Project->RebuildAll重新編譯所有文件,等待編譯完成,需要十幾秒的時1次后,滅掉,隨后,兩個指示燈開始閃爍,等待加拔掉仿真器USB線,斷開仿真器與模塊的連接,將模塊插入電池板,并關掉電點擊APP-〉DemoCollector.c-〉設置設備類型,這里選擇 Project->RebuildAll重新編譯所有文件,等待編譯完成,需要十幾秒的時間。按下Debug,程序寫入CC2530,按下“Go”程序運行。1

1按按按協(xié)調僅在協(xié)調器模式時可用,按K1后,協(xié)調器打GatewayK3路由若設置為路由器,不能按K1,當然,如果路由器由電池板供電,則K1K3后,打開報先不要按下按鍵,拔掉仿真器USB線,斷開仿真器與模塊的連接,將模塊插入CC2530主板,使用USB線連接主板和計算機(主板串口為虛擬USB串口,若沒有安裝驅動,請參考XWWK-CC2530A模塊使用說明書)試驗1:協(xié)調器與終端節(jié)點組網試Z-SensorMonitorCollectorEB的協(xié)調器節(jié)點插入主板,連接主板和計算機,等待電腦識別設備后,選擇虛擬USB串口。打開主板電源開關(USB一側,待模塊兩個指示K3K1GateWay模式,并允指示燈閃爍1次后,兩個指示燈快速閃爍,說明節(jié)點已經加入網絡。Key按鍵,打開終端節(jié)點的發(fā)送報告功能,等待幾秒鐘,溫度試驗2:協(xié)調器、路由器和終端節(jié)1CollectorEB。并更改節(jié)點擊APP-〉DemoCollector.c-〉設置設備類型,這里選擇 選擇Project->RebuildAll重新編譯所有文件,等待編譯完成,需要十幾秒的時間。按下Debug,程序寫入CC2530,按下“Go”程序運行。路由器程序執(zhí)行結果:程序首次執(zhí)行后,模塊被設置為路由器,紅燈閃爍1次具體按鍵設置參考表1試驗3:路由功能測2的基礎上,斷開其中一個終端節(jié)點的電源,并卸掉其天線(為了測試5m左右的距離,終端節(jié)點放在2(3個節(jié)點2.2ZMain.cDemoCollector.cDemoSensor.chal_key.c、hal_led.cOnBoard.c等。//Turnoffinterruptsosal_int_disable(INTS_ALL);//InitializationforboardrelatedstuffsuchasLEDsHAL_BOARD_INIT();//HAL_BOARD_CC2530EB_REV17版本初始化硬件Makesuresupplyvoltageishighenoughtorunzmain_vdd_check();//電壓檢測//InitializeboardI/OInitBoard(OB_COLD);//InitialzeHALdrivers//InitializeNVSystemosal_nv_init(NULL//InitializetheMAC//Determinetheextendedaddress//InitializebasicNVitems#ifndef//SincetheAFisn'tatask,callit'sinitializationroutine//Initializetheoperatingsystem//Allowinterruptsosal_int_enable(INTS_ALL);//FinalboardinitializationInitBoard(OB_READY//Displayinformationaboutthisdevice/*DisplaythedeviceinfoontheLCD*/#ifdefLCD_SUPPORTED#ifdef/*IfWDTisused,thisisagoodplacetoenableit.*/WatchDogEnable(WDTIMX);P1SEL&=0xFB;//P1.2,1.3P1DIR&=0xFB;CorrFlag=osal_start_system();//NoReturnfrom傳感器終端節(jié)點DemoSensor.c,按鍵處理函數,承擔了發(fā)送數據報告的功voidzb_HandleKeys(uint8shift,uint8keys{//Shiftisusedtomakeeachbutton/switchdualpurpose.if(shift){if(keys&HAL_KEY_SW_1{}if(keys&HAL_KEY_SW_2{}if(keys&HAL_KEY_SW_3{}if(keys&HAL_KEY_SW_4{}}{if(keys&HAL_KEY_SW_1{}if(keys&HAL_KEY_SW_2{}//if(keys&HAL_KEY_SW_3ifkeys&HAL_KEY_SW_7{//Startreporting,按下按鍵后,開始發(fā)送報告osal_set_eventsapi_TaskIDMY_REPORT_EVTreportState=TRUE;}if(keys&HAL_KEY_SW_4{}}}hal_key.c中的voidHalKeyPollvoid)voidHalKeyPoll{uint8keys=if((HAL_KEY_JOY_MOVE_PORT&HAL_KEY_JOY_MOVE_BIT)) /*KeyisactiveHIGH*/{keys=}if //對應主板的{keys|=}if(HAL_PUSH_BUTTON3對應主板的K3Key{keys|=}/*Ifinterruptsarenotenabled,previouskeystatusandcurrentkey*arecomparedtofindoutifakeyhaschangedif{if(keys=={/*Exit-sincenokeyshavechanged*/}/*Storethecurrentkeysforcomparationnexttime*/halKeySavedKeys=keys;}{/*Keyinterrupthandledhere}/*InvokeCallbackifnewkeysweredepressedif(keys&&(pHalKeyProcessFunction)){(pHalKeyProcessFunction)(keys,}}消息由Onboard.cvoidOnBoard_KeyCallbackuint8keysuint8state發(fā)送,若協(xié)調器、路由器節(jié)點對于協(xié)調器或者路由器節(jié)點主要在文件DemoCollector.c,按鍵處理函數,承擔voidzb_HandleKeys(uint8shift,uint8keys{staticuint8allowBind=FALSE;staticuint8allowJoin=TRUE;uint8logicalType;//staticuint8RouterFlag=TRUE;//默認為路由器,主板設置了跳線,可以在調整軟件的基礎上進行路由器和協(xié)調器的選擇,這里了代碼,主要考慮路由器使用時//RouterFlag=HAL_TX_SET讀跳線設置,C為協(xié)調器,R//Shiftisusedtomakeeachbutton/switchdualif(shift){if(keys&HAL_KEY_SW_1{}if(keys&HAL_KEY_SW_2{}if(keys&HAL_KEY_SW_3{}if(keys&HAL_KEY_SW_4{}}{#ifdefifkeys&HAL_KEY_SW_7K3后,設置為協(xié)調器,#ifdefROUTER if(keys&HAL_KEY_SW_1){if(appState== {//Key1startsdeviceasalogicalType=ZG_DEVICETYPE_COORDINATOR; //Resetthedevicewithnewconfiguration}}//if(keys&HAL_KEY_SW_2ifkeys&HAL_KEY_SW_6)//K1Gateway{allowBind^=1;if(allowBind){//TurnONAllowBindmodeinfinitlyzb_AllowBind(0xFF);HalLedSet(HAL_LED_2,HAL_LED_MODE_ON//ThisnodeisthegatewaynodeisGateWay=TRUE;//Updatethe#ifdefined(LCD_SUPPORTEDHalLcdWriteString("GatewayMode",HAL_LCD_LINE_2);}{//TurnOFFAllowBindmodeinfinitlyzb_AllowBind(0x00);HalLedSet(HAL_LED_2,HAL_LED_MODE_OFFisGateWay=//Updatethe#ifdefined(LCD_SUPPORTEDHalLcdWriteString("Collector",HAL_LCD_LINE_2}}#ifdefCOORDINATOR若設置為協(xié)調器,則相當于什么也沒做。if(keys&HAL_KEY_SW_3)#ifdefifkeys&HAL_KEY_SW_7K3{//Startosal_set_event(sapi_TaskID,MY_REPORT_EVT}if(keys&HAL_KEY_SW_4{//Key4isusedtocontrolwhich//thatcanacceptjoinrequestsallowJoin^=1;{}else}}}}/*1-Green/*1-#define #define #define #define #ifdefined/*2-Red/*2-紅色指示燈#define #define #define #define /*3-黃色指示燈#define #define #define //#defineLED3_POLARITY #defineLED3_POLARITY ACTIVE_LOW修改/*S1/*對應主板按鍵K1#ifdefined//#definePUSH1_POLARITY #definePUSH1_POLARITY /*JoystickCenterPress/*對應主板按鍵K2#define #define //#definePUSH2_POLARITY #definePUSH2_POLARITY /*自定義按鍵/*主板按鍵K3#define #define #define /*自定義跳線/*主板跳線#define #define #define #define (PUSH3_POLARITY(PUSH3_SBIT))//鍵#define (PUSH3_POLARITY(if{keys|=}//returnreturn0;//因為主板沒有采用Joy鍵,所以該按增加P1SEL&=0xFB;P1DIR&=0xFB;P1.2//P1.3osal_start_system();//NoReturnfrom修改SensorEB(傳感器終端節(jié)點1Onboard.c的函數voidOnBoard_KeyCallback(uint8keys,uint8state//shift((keys&HAL_KEY_SW_6)truefalseshift=0;//替換2、修改DemoSensor.c的函數voidzb_HandleKeysuint8shift,uint8keys//if(keys&HAL_KEY_SW_3)if(keys&HAL_KEY_SW_7)//替換,實際就是電池板的Key修改CollectorEB(協(xié)調器節(jié)點1DemoCollector.cvoidzb_HandleKeys(uint8shift,uint8keys voidzb_HandleKeys(uint8shift,uint8keys{staticuint8allowBind=FALSE;staticuint8allowJoin=TRUE;uint8logicalType;//staticuint8RouterFlag=TRUE//RouterFlagHAL_TX_SET讀跳線設置,C為協(xié)調器,R//Shiftisusedtomakeeachbutton/switchdualpurpose.if(shift){if(keys&HAL_KEY_SW_1{}if(keys&HAL_KEY_SW_2{}if(keys&HAL_KEY_SW_3{}if(keys&HAL_KEY_SW_4{}}{#ifdefifkeys&HAL_KEY_SW_7當按下K3后,設置為協(xié)調器,#ifdefif(keys&HAL_KEY_SW_1){if(appState== {//Key1startsdeviceasalogicalType=ZG_DEVICETYPE_COORDINATOR;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論