OctopusX 平台教學 2010/3/15 報告者 : 汪昱志
Outline Zigbee 開發 & 燒錄方式 如何建立一個 Network 程式架構 & 範例介紹 UART 使用介紹如何傳送資料經多點傳輸
Zigbee 開發 & 燒錄方式 Zigbee 簡介 環境介紹 軟體設定 燒錄流程
Zigbee 簡介 全名為 : 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 規範的功能 使用較低的運算效能以及記憶體 通常使用電池
Zigbee 簡介 由網路架構來看, 分成三種角色
Zigbee 簡介
Zigbee 開發 & 燒錄方式 Zigbee 簡介 環境介紹 軟體設定 燒錄流程
環境介紹 軟體 : IAR Embedded Workbench (EW8051-730B) SmartRF Flash Programmer Z-stack 1.4.3-1.2.1(TI) OctopusX 腳位設定檔 硬體 : OctopusX OctopusX-Programming broad
環境介紹 - 軟體介紹 IAR Embedded WorkBench - IAR Embedded Workbench(EW8051) 集成開發環境支援工程管理 編譯 彙編 鏈結 下載和除錯等各種基於 8051 內核的處理器 Z-stack - Z-Stack 是德州儀器公司 (TI) 推出的 ZigBee 協定堆疊的免費下載版本 SmartRF Flash Programmer 工具軟體 - 可被用來編譯 TI 公司的晶片上系統微控制器的 Flash 記憶體, 它還可以支援 IEEE 位址的讀 / 寫
環境介紹 硬體介紹 OctopusX Debugger board
環境介紹 硬體介紹 Dongle OctopusX
Zigbee 開發 & 燒錄方式 Zigbee 簡介 環境介紹 軟體設定 燒錄流程
軟體設定 IAR Embedded Workbench 設定 : 請在專案上右鍵點選 options 選擇 Linker Category 更改 output file, 勾選 Override default 並將副檔名改為 xxx.hex Format 請選擇 Other( 如下頁圖所示 ) 重新編譯前, 修改 tools 資料夾, 將其中的 f8w2430.xcl 第 90 行的地方註解取消
軟體設定
軟體設定 Z-Stack v1.4.3 的安裝 在 http://www.ti.com 免費下載其最新版本 Z-Stack v1.4.3 安裝完成後 ( 預設安裝到 C 槽 ), 其中會包含四個目錄 : Components: 資料夾包含 Z-Stack 的各種元件 Projects: 資料夾中包含了幾個 IAR 工程, 它們是 Z-Stack 應用實 Documents: 包含了 Z-Stack 的各種說明文檔 Tools: 包含了 ZOAD 和 Z-Tool 兩個工具 OctopusX 腳位設定檔 請直接複蓋 C:\Texas Instruments\ZStack-1.4.3-1.2.1\Components\hal
軟體設定 PC 端的驅動程式安裝 在使用 SmartRF Flash Programmer 工具軟體前, 首先需要先安裝 PC 端驅動程式, 安裝過程請依據新增硬體精靈步驟依序執行即可完成 首先確保 OctopusX-Debugger 沒有連接任何目標板, 然後用我們配套提供的 USB 電纜連接 OctopusX- Debugger 與主機, 並將開關切換至 On, 與此同時使用者 PC 端將提示發現新硬體 : 接下來按以下各圖所示, 安裝 CC243x-Debugger 的 PC 端驅動程式 :
軟體設定 點擊 SmartRF04DD
軟體設定 選擇更新驅動程式
軟體設定 選擇瀏覽電腦上的驅動程式軟體
軟體設定 選擇放置驅動程式的資料夾
軟體設定
Zigbee 開發 & 燒錄方式 Zigbee 簡介 環境介紹 軟體設定 燒錄流程
OctopusX 燒錄流程 燒錄方式 硬體安裝方式 1. 將 OctopusX 裝載上 Debugger broad
OctopusX 燒錄流程 裝載 OctopusX, 並等待 OctopusX 的資訊出現 選擇要燒錄的軟體 是否保留 64bits IEEE 位址 共有五個選項, 選擇清除 燒錄 並確認程式正確性 開始燒錄
Outline Zigbee 開發 & 燒錄方式 如何建立一個 Network 程式架構 & 範例介紹 UART 使用介紹如何傳送資料經多點傳輸
如何建立一個 Network Coordinator 啟動一個 ZigBee 網路 ( 網路中的第一個設備 ) 選擇一個頻道和一個網路識別字 (PAN ID) 允許其他設備加入網路 Multi-hop routing Router 允許其他設備加入網路 Multi-hop routing End device
如何建立一個 Network 如何設定感測器為特定類型? 專案中選擇
如何建立一個 Network 在專案 C/C++ Compiler 下選擇對應的 config 檔
如何建立一個 Network 將各個感測器燒錄不同角色的程式, 即可自行形成網路 一個網路只能有一個 Coordinator 可自行調整一個網路的最大深度, 一個 Router 能擁有的 Child 數 nwk_globals.h Line 80 nwk_globals.c Line 121
Outline Zigbee 開發 & 燒錄方式 如何建立一個 Network 程式架構 & 範例介紹 UART 使用介紹如何傳送資料經多點傳輸
基礎程式範例介紹 SampleApp SampleApp 實驗 實驗目的 : 一個 ZigBee 網路中的某個設備發送 閃爍 LED 命令給該網路中群組 1 的所有成員 群組 1 的所有成員在收到命令後, 將會閃爍 LED 實驗設備 : OctopusX :3 個 OctopusX Programming Board :1 個
基礎程式範例介紹 程式架構 SampleApp_SendPeriodicMessage SampleApp_SendFlashMessage SampleApp_MessageMSGCB SampleApp_HandleKeys SAMPLEAPP_SEND_ PERIODIC_MSG_EV T AF_INCOMING_MSG_C MD ( 收到封包事件 ) KEY_CHANGE ( 按鈕事件 ) User-defined Event SampleApp_ProcessEvent System Event Lower stack
基礎程式範例介紹 程式架構 SampleApp_SendPeriodicMessage SampleApp_SendFlashMessage SampleApp_MessageMSGCB SampleApp_HandleKeys SAMPLEAPP_SEND_ PERIODIC_MSG_EV T AF_INCOMING_MSG_C MD ( 收到封包事件 ) KEY_CHANGE ( 按鈕事件 ) User-defined Event SampleApp_ProcessEvent System Event Lower stack Bottom Message
SampleApp 重要參數介紹 傳送封包的 ID, 此應用傳送兩種封包 : 1.SAMPLEAPP_PERIODIC_CLUSTERI D 2.SAMPLEAPP_FLASH_CLUSTERID 應用程式的辦識 ID( 對於下層來說 ) 接收 & 傳送的封包 ID 表, 此應用只傳送上述的封包 ID 完整描述此應用的資料結構
SampleApp SampleApp_Init 介紹 目的地址的資料結構 1. 傳送模式 - 廣播 2. 對象應用程式 ID 3. 廣播內定地址 4. 傳送模式 - 組內傳送 5. 組名稱 ( 此應用內定 ) 6. 向下層註冊此應用程式 7. 向下層註冊按鈕事件 8. 註冊群組
SampleApp_ProcessEvent SYS_MSG 加入網路後, 狀態改變
SampleApp_ProcessEvent User-defined event Self - defined In SampleApp.h 3 1 2 1. 通知應用的 ID 2. 哪一個自定事件 3. 間隔多久時間
SampleApp_HandleKeys 更改為 HAL_KEY_SW_6
SampleApp_MessageMSGCB 收到 ID 為 SAMPLEAPP_PERIODIC_CLUSTERID 封包處理方式 1 2 3 4 1. 燈 ID 2. 亮的次數 3. 亮的時間區段內, 亮多少 % 時間 4. 亮的時間長度
SampleApp_SendFlashMessage DATA 為閃燈秒數 傳送 DATA 的 FUNCTION
Outline Zigbee 開發 & 燒錄方式 如何建立一個 Network 程式架構 & 範例介紹 UART 使用介紹如何傳送資料經多點傳輸 ADC 使用介紹
UART 使用介紹 專案 C/C++ Compiler Preprocessor 加入 HAL_UART 參數
UART 使用介紹 在需要使用 UART 的程式下, 加入 在程式的 Init function 裡加入 open(projectname_taskid); 在需要由 uart 傳回資料的地方使用 HalUARTWrite( SERIAL_APP_PORT, data, length ); // 內定 port // 資料 pointer(uint8*) // 資料長度
UART 使用介紹 接收 uart 資料 設定 comport 裝置管理員 USB Serial Port 內容
UART 使用介紹 選取 Port Settings 中的 Advanced 選項
UART 使用介紹 將 COM Port 改為 1~4 其中一個
UART 使用介紹 1. 設定串列埠為剛設定的 COM Port 2. 設定鮑率為 38400 3. 依回傳資料型態決定選擇 16 進制顯示與否
UART 使用介紹
Outline Zigbee 開發 & 燒錄方式 如何建立一個 Network 程式架構 & 範例介紹 UART 使用介紹如何傳送資料經多點傳輸
如何傳送資料經多點傳輸 知道目的地的地址 對方和自已在同一個群組 組內廣播 目的地可借由定義特定某包形式, 並使用廣播來讓可能的來源地得知自已的位址 選擇相對應的地址格式, 並填入目的地位址