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

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

LinkIt ONE開發板的簡介.
物聯網簡介 蔡崇洲 崑山科技大學電腦與通訊系.
數位生活科技實務應用探討 瑞帝電通國際有限公司 台北: 電話 : (02) 傳真 : (02)
陳維魁 博士 儒林圖書公司 第九章 資料抽象化 陳維魁 博士 儒林圖書公司.
Project 2 JMVC code tracing
Hadoop 單機設定與啟動 step 1. 設定登入免密碼 step 2. 安裝java step 3. 下載安裝Hadoop
Lab 6 SP601 Design Platform Introduction
題目:十六對一多工器 姓名:李國豪 學號:B
IEEE Supframe 演講者:李嘉凱 指導教授:柯開維.
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
臺北市立大學 資訊科學系(含碩士班) 賴阿福
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
無線感測網路技術之 ZigBee發展現況分析
ZigBee无线通讯技术 交通物联网应用技术.
TCP協定 (傳輸層).
Q101 在701 SDX Linux上的標準安裝與使用程序v2
JDK 安裝教學 (for Win7) Soochow University
第1章 認識Arduino.
MPLAB IDE 8 建立專案.
手機作業系統介紹.
ZigBee的技术支持及其应用前景 华东理工大学 凌志浩
淄博职业学院 授课老师:罗汉江 上课班级:P12物联网应用技术1班 上课地点:物联网基础实验室508
R教學 安裝RStudio 羅琪老師.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
安裝JDK 安裝Eclipse Eclipse 中文化
Word與PowerPoint的結合 建功國小 陳旻杰 健行國小 張慧如.
Echo Server/Client Speaker:Fang.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A.
檔案與磁碟的基本介紹.
1/13/2019 Zigbee程式開發與韌體設計.
FTP檔案上傳下載 實務與運用.
3G核心網路期末報告 Mobile IPv6 for Linux實作
Chap3 Linked List 鏈結串列.
任务十三 基于Z-Stack的串口透传.
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
第一單元 建立java 程式.
VS.NET 2003 IDE.
PLC-GPPW軟體使用教學 授課教師:張祖烈
Ch20. 計算器 (Mac 版本).
Linux作業系統 電腦教室Linux使用說明.
支援 ZigBee/ 封包分析之 USB封包擷取轉換模組之實作
人文與科技的結合 人文與科技的結合 Right Fax使用說明.
TA教育訓練 微處理機系統實習.
班級:博碩子一甲 授課老師:鐘國家 助教:陳國政
第13單元 實習8 Focus-Router-Lamp
VS.NET 2003 IDE.
SOCKET( ).
FTP使用教學 簡介: 軟體名稱:FileZilla 軟體性質:Freeware 版本: 繁體中文版
無線感測網路截取ZigBee/ 封包 分析工具實作
取得與安裝TIDE 從TIBBO網站取得TIDE
MiRanda Java Interface v1.0的使用方法
函數應用(二)與自定函數.
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
ZigBee PRO教學系統 CC2530 實驗.
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A.
晶片讀卡機驅動程式安裝說明.
班級:博碩子一甲 授課老師:鐘國家 助教:陳國政
Parasitics Extraction (PEX) 與 postsimulation(posim)
樹莓派安裝流程.
資料擷取與監控應用實務.
安裝JDK 配置windows win7 環境變數
作業系統實習課(二) -Scheduler-Related System Calls-
LED Pili LED 中州技術學院 電子系 副教授 余文俊.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
NFC (近場通訊, Near Field Communication) 靜宜大學資管系 楊子青
Develop and Build Drives by Visual C++ IDE
雲端電腦教室 Matlab 使用介紹 1. 工作目錄切換 2. 把 matlab 的檔案存出來 3. Matlab 軟體介面.
Department of Computer Information Science, NCTU
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Presentation transcript:

Octopus N 開發教學 Joshua Hsu 許朝翔

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

Zigbee 簡介

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

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

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

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

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

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

環境介紹及軟體安裝

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

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

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

環境介紹及軟體安裝 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

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

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

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

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

燒錄流程

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

基本開發程式架構

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

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

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

基本開發程式架構 系統事件 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

基本開發程式架構 系統事件介紹 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

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

重要硬體函式介紹

重要硬體函式介紹 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

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

重要硬體函式介紹 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

重要硬體函式介紹 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

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

重要硬體函式介紹 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

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

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

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

基礎程式範例介紹 專案結構 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

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

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

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

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

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

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

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

基礎程式範例介紹 區域函數 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

基礎程式範例介紹 函數實作本體 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

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

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

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

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

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

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

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

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

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

Q &A High Speed Communication and Computing Laboratory