Presentation is loading. Please wait.

Presentation is loading. Please wait.

Octopus N 開發教學 Joshua Hsu 許朝翔.

Similar presentations


Presentation on theme: "Octopus N 開發教學 Joshua Hsu 許朝翔."— Presentation transcript:

1 Octopus N 開發教學 Joshua Hsu 許朝翔

2 Outline Zigbee 簡介 環境介紹及軟體安裝 Octopus X/N 燒錄流程 基本開發程式架構 重要函式介紹 基礎程式範例介紹
High Speed Communication and Computing Laboratory

3 Zigbee 簡介

4 Zigbee 簡介 ZigBee 技術是以IEEE 為基礎,在各種物 品上置入一個低耗電及低成本的 ZigBee 無線模組 來達到存取資訊以及進行控制的技術。 High Speed Communication and Computing Laboratory

5 Zigbee 簡介 IEEE Wireless MAC and PHY Specification for Low-Rate Wireless Personal Area Networks (LR-WPANs) 硬體架構 Full Function Node (FFD) 提供完整IEEE 規範的功能 需要較高的運算效能以及記憶體 通常採用固定的電源 Reduced Function Node (RFD) 提供精簡的IEEE 規範的功能 使用較低的運算效能以及記憶體 通常使用電池 High Speed Communication and Computing Laboratory

6 Zigbee 簡介 網路架構 PAN Coordinator (FFD) 管理整個 Zigbee 網路的控制中心
PAN ID, Security, Channel … Network Router (FFD) 負責延展整個網路的路由器 End Device (RFD) 網路末端裝置,通常是負責感測資料 的節點 High Speed Communication and Computing Laboratory

7 Zigbee 簡介 網路拓樸 Topology 由 PHY 及 MAC 可以形成兩種拓樸 Star Topology
Mesh Topology PAN Coordinator High Speed Communication and Computing Laboratory

8 Zigbee 簡介 Zigbee 架構 以802.15.4為基點,訂定了NWK層以及APL層
High Speed Communication and Computing Laboratory

9 Zigbee 簡介 Octopus N / X 比較 項目 Octopus X Octopus N CPU(MCU) CC2430
天線 PCB only PCB / SMA 儲存裝置 8KB RAM 128KB 裝載Flash 256KB 裝載Flash 型號 A,C A,B,D 電源供應 水銀電池(A) 3號電池(C) 3號電池(全) 獨有配備 User按鍵、外部Flash、MicroSD儲存設備 SMA增益天線 CC2591增益晶片(D) 通有配備 USART(*2)、ADC、21 general I/O pins 支援感測器 溫濕度、光度、GPS、三軸、電力計、CO2 ..等 High Speed Communication and Computing Laboratory

10 環境介紹及軟體安裝

11 環境介紹及軟體安裝 基本軟硬體 軟體 硬體 IAR Embedded Workbench (EW8051 -730B) (OctopusX)
IAR Embedded Workbench (EW B) (OctopusN) SmartRF Flash Programmer Z-stack (TI) Octopus X/N 腳位設定檔 硬體 Octopus X/N Octopus X/N Debugger Board 燒錄偵錯板 High Speed Communication and Computing Laboratory

12 環境介紹及軟體安裝 偵錯燒錄板 For Octopus X For Octopus N
High Speed Communication and Computing Laboratory

13 環境介紹及軟體安裝 Octopus X/N Dongle Octopus X Octopus N
High Speed Communication and Computing Laboratory

14 環境介紹及軟體安裝 IAR Embedded WorkBench Z-stack SmartRF Flash Programmer工具軟體
IAR Embedded Workbench(EW8051)集成開發環境支援 工程管理、編譯、彙編、鏈結、下載和除錯等各種基於 8051 內核的處理器 Z-stack Z-Stack 是德州儀器公司(TI)推出的業界領先的 ZigBee 協定堆疊的免費下載版本。 SmartRF Flash Programmer工具軟體 可被用來編譯TI 公司的晶片上系統微控制器的Flash 記憶 體,它還可以支援IEEE 位址的讀/寫。該軟體需要結合的 SmartRF 04EB一起使用 High Speed Communication and Computing Laboratory

15 環境介紹及軟體安裝 Debugger board 驅動程式安裝
在使用SmartRF Flash Programmer工具軟體前,首先需 要先安裝PC端驅動程式,安裝過程請依據新增硬體精靈步 驟依序執行即可完成。 Windows 7 使用者不須手動安裝,只要接上網路即可透 過 Windows Updater 安裝。 High Speed Communication and Computing Laboratory

16 環境介紹及軟體安裝 SmartRF Flash Programmer Z-stack安裝及腳位覆蓋 按照安裝步驟即可裝完
使用隨附的安裝軟體安裝正確版本即可 Octopus N腳位設定檔。請直接覆蓋至 C:\Texas Instruments\ZStack-CC \Components Octopus X腳位設定檔。請直接覆蓋至 C:\Texas Instruments\ZStack \Components High Speed Communication and Computing Laboratory

17 環境介紹及軟體安裝 IAR 環境設定 打開範例 HW1 的 SampleApp.eww 在專案上(圖中紅框處)按右鍵並選擇「option」
按照右圖中修改 High Speed Communication and Computing Laboratory

18 環境介紹及軟體安裝 IAR 設定 重新編譯前,修改tools資料夾,將其中的f8w2530.xcl 第210-211行的地方註解取消。
High Speed Communication and Computing Laboratory

19 燒錄流程

20 燒錄流程 打開燒錄程式 接上目標板 選擇hex檔案 先Erase一次 再program
High Speed Communication and Computing Laboratory

21 基本開發程式架構

22 基本開發程式架構 1.網路管理 應用層 2.下層訊息管理 管理上層往下層訊息
High Speed Communication and Computing Laboratory

23 基本開發程式架構 High Speed Communication and Computing Laboratory

24 基本開發程式架構 ProjectName_Init() ProjectName_ProcessEvent()
程式一開始的初始化函式,在程式一開始執行時,註冊各種事件。 註冊按鍵事件通知 註冊各種下層事件通知 (相關訊息在ZDProfile.h) 註冊應用程式的端點 ProjectName_ProcessEvent() 程式處理不同事件的函式,當程式遇到不同事件的發生時,這個函 式會被呼叫來處理這些task,這些事件包含timer、messages以 及其他各自定義的事件等等。 ProjectName_HandleKeys() 當偵測到硬體上得按鈕狀態發生改變時,負責處理這類事件的函式。 High Speed Communication and Computing Laboratory

25 基本開發程式架構 系統事件 SYS_EVENT_MSG
在ZComDef.h中所定義的系統事件訊息,這些事件會依 據以下所收到的不同事件而有不同的處理。 AF_DATA_CONFIRM_CMD AF_INCOMING_MSG_CMD KEY_CHANGE ZDO_NEW_DSTADDR ZDO_STATE_CHANGE High Speed Communication and Computing Laboratory

26 基本開發程式架構 系統事件介紹 AF_DATA_CONFIRM_CMD AF_INCOMING_MSG_CMD KEY_CHANGE
這個事件訊息是用來回報程式所發出的要求(request)是否成 功完成。如果成功完成,程式會回報Zsuccess,用來確認 data request成功傳送。 AF_INCOMING_MSG_CMD 專門用於處理接收資料、訊息的事件型態。 KEY_CHANGE 專門用於處理device上按下按鈕的事件。 High Speed Communication and Computing Laboratory

27 基本開發程式架構 系統事件介紹 ZDO_NEW_DSTADDR ZDO_STATE_CHANGE
專門用於回覆Match Descriptor Request的事件型態。 ZDO_STATE_CHANGE 專門用於處理網路狀態改變的事件型態。 EX: 當Router / End device加入網路後,則網路狀態改變 High Speed Communication and Computing Laboratory

28 重要硬體函式介紹

29 重要硬體函式介紹 LED 控制 HalLedSet (uint8 leds, uint8 mode) uint8 leds: 哪一個燈
HAL_LED_X/ X: 1(G), 2(R), 3(Y), 4(B), ALL(全部) uint8 mode:控制行為 HAL_LED_MODE_BLINK HAL_LED_MODE_FLASH HAL_LED_MODE_TOGGLE HAL_LED_MODE_ON HAL_LED_MODE_OFF High Speed Communication and Computing Laboratory

30 重要硬體函式介紹 LED 控制 HalLedBlink( HAL_LED_ALL, 4, 50, 500 );
HAL_LED_ALL : 目標是全部的led 4 : 閃爍4次 50 : 亮週期 50ms 500 : 全週期 500ms High Speed Communication and Computing Laboratory

31 重要硬體函式介紹 UART 在 Octopus N/X 中,USB 使用 Port 0 UART 是與電腦 溝通的主要管道。 (UART1是電力計與GPS的溝通管道) 開啟 UART 功能 在專案中的 compile option 中定義 HAL_UART 原始碼內 #include “uart.c” 在initial function內 open(TaskID); HalUARTWrite() 由UART寫入字串,並經由UART port傳給PC。 詳細功能,請參考 uart.c 說明 High Speed Communication and Computing Laboratory

32 重要硬體函式介紹 Timer osal_start_timerEx( //timeout後觸發事件
byte taskID, //應用程式ID UINT16 event_id, UINT16 timeout_value //多久後觸發 ); event_id 使用者自行定義的事件ID,觸發後由Project_ProcessEvent 處理。 High Speed Communication and Computing Laboratory

33 重要硬體函式介紹 Timer osal_set_event( //立刻觸發該事件 byte task_id, //應用程式ID
UINT16 event_flag ) UINT16 event_flag: 使用者自行定義的事件ID,觸發後由Project_ProcessEvent 處理。 High Speed Communication and Computing Laboratory

34 重要硬體函式介紹 RF AF_DataRequest( afAddrType_t *dstAddr, //傳送位址
endPointDesc_t *srcEP, //此應用的End point uint16 cID, //事件的辦識ID uint16 len, //封包長度 uint8 *buf, //資料位址 uint8 *transID, uint8 options, //封包選項,可選擇要ACK與否Route uint8 radius ) 根據設定的參數發送request封包給指定位址。 High Speed Communication and Computing Laboratory

35 基礎程式範例介紹 HW1 – 範例程式

36 基礎程式範例介紹 程式語言 程式導向 Z-stack 是以 C 語言為主要語言
大部分在感測網路上的程式都是 event driven 的程式, Z-stack 也不例外。因此,學會如何用 event 來驅動整個 系統流程運作就可以完全控制整個 sensor node。 High Speed Communication and Computing Laboratory

37 基礎程式範例介紹 建立專案 由於 Z-stack 的開發環境中使用的 IDE 是 IAR,IAR 專案 中的每一個檔案都是編譯過程中必須的,因此建立一個專 案是非常複雜的 因此,建立一個專案的方法就用採用複製重製的方法,再 更改資料夾名稱即可。 High Speed Communication and Computing Laboratory

38 基礎程式範例介紹 專案結構 Texas Instruments ZStack-CC2530-2.3.1-1.4.0 Projects
Components zstack hal mac osal …… Samples ProjectName CC2530DB Source High Speed Communication and Computing Laboratory

39 基礎程式範例介紹 專案結構 Samples ProjectName ......... CC2530DB Source
SampleApp.eww 專案檔案 CoordinatorEB/ EndDeviceEB/ RouterEB 主要程式碼 ProjectName.c 主要程式 exe hex 檔案 High Speed Communication and Computing Laboratory

40 基礎程式範例介紹 編譯選項 編譯選項內的定義符號(Define flag)是決定 compile 時,程式碼 的使用方式,例如:
如果有定義 HAL_UART 在編譯選項中,compile時,才會 include uart.c 另外,因為 Type D 和其他 Type 的腳位不同,因此如果是要 compile 給 Type D 使用的 Code 必須加上 OCTOPUSN_TYPED 這個選項,才能正常運作 High Speed Communication and Computing Laboratory

41 基礎程式範例介紹 編譯選項 High Speed Communication and Computing Laboratory

42 基礎程式範例介紹 重要的編譯選項 OCTOPUSN_TYPED
由於 Octopus N Type D 具備 CC2591,因此 LED 腳位調 整與其他 Type 不同。 這個選項可以在編譯時,選擇正確的腳位 資料 詳細腳位設定請參考 /Components/hal/hal_board_cfg.h High Speed Communication and Computing Laboratory

43 基礎程式範例介紹 主程式架構(ProjectName.c) 定義及 include 全域與區域變數 區域函數 函數實作本體
Include 基本 library 以及定義 Macro 全域與區域變數 在這個程式中希望被使用到的變數 區域函數 在這個程式中所使用到的區域函數,如處理封包以及送出 封包事件…等 函數實作本體 實作區域函數 High Speed Communication and Computing Laboratory

44 基礎程式範例介紹 定義及 include 匯入所需 Library
High Speed Communication and Computing Laboratory

45 基礎程式範例介紹 全域與區域變數 ClusterList Description 基本上這裡的 code 都不須變動 封包在應用層的 種類
節點描述結構 基本上這裡的 code 都不須變動 High Speed Communication and Computing Laboratory

46 基礎程式範例介紹 區域函數 void SampleApp_HandleKeys ( uint8 shift, uint8 keys );
按鍵事件的處理函數 void SampleApp_MessageMSGCB ( afIncomingMSGPacket_t *pckt ); 封包接收事件處理函數 void SampleApp_SendPeriodicMessage( void ); 發送週期性封包的處理函數 void SampleApp_SendFlashMessage ( uint8* data , uint8 length); High Speed Communication and Computing Laboratory

47 基礎程式範例介紹 函數實作本體 void SampleApp_Init( uint8 task_id )
Initial function 中,封包發送設定是最重要的部分 addMode :封包傳送方式,單播(Addr16Bit),廣播(AddrBroadcast) endPoint :end point指定 (不須修改) shortAddr:指定位址(nodeID),0xFFFF表示廣播,0x0000表示 coodinator High Speed Communication and Computing Laboratory

48 基礎程式範例介紹 SampleApp_ProcessEvent 系統事件處理 系統事件 使用者事件1 使用者事件2
High Speed Communication and Computing Laboratory

49 基礎程式範例介紹 系統事件處理 按鍵事件 封包取得事件 裝置角色改變事件 釋放封包 由個別函數處理 Coordinator Router
End device 釋放封包 High Speed Communication and Computing Laboratory

50 基礎程式範例介紹 系統事件處理 裝置角色改變事件通常是區別每個角色所執行的任務的起 始點 Coordinator Router
End device High Speed Communication and Computing Laboratory

51 基礎程式範例介紹 使用者事件1 SAMPLEAPP_SEND_MSG_EVT 閃爍LED
以Flash cluster發送封包,長度5,內容為 TEST! 字串 重新執行事件Timer High Speed Communication and Computing Laboratory

52 基礎程式範例介紹 使用者事件2 SAMPLEAPP_SEND_UARTMSG_EVT
將UART的資料,傳送出去(以flash cluster) 將UART的資料,重新write回電腦端 將UART buffer清空 High Speed Communication and Computing Laboratory

53 基礎程式範例介紹 SampleApp_MessageMSGCB 封包進入時先分 Cluster而不同動作 Period cluster
不做事 Flash cluster 下一頁說明 High Speed Communication and Computing Laboratory

54 基礎程式範例介紹 處理 flash cluster 訊息 閃LED燈
若有定義UART功能,則會讀取出封包的內容,並且uart write出去 High Speed Communication and Computing Laboratory

55 基礎程式範例介紹 SampleApp_SendFlashMessage 調用系統函數 AF_DataRequest 來送資料
High Speed Communication and Computing Laboratory

56 UART UART bitRate HalUARTWirte 可以將數據顯示在接收區中 而在發送區內可以將資料寫給sensor 38400
High Speed Communication and Computing Laboratory

57 Q &A High Speed Communication and Computing Laboratory


Download ppt "Octopus N 開發教學 Joshua Hsu 許朝翔."

Similar presentations


Ads by Google