「ZigBee模块」协议栈-Z-Stack协议栈基础和数据传输实验

本文介绍了Z-Stack协议栈的基础知识和无线数据传输实验,包括实验目的、平台、步骤。通过实验,终端节点将数据无线发送到协调器,协调器通过串口转发数据到PC。文中详细解析了协议栈的工作流程,从初始化到任务处理,以及串口初始化、发送和接收代码。此外,还提到了串口优化方案,将有线串口改为蓝牙传输。
摘要由CSDN通过智能技术生成

花了好久写的...感觉还不错的呢...如果看,请细看...Mua~

Z-Stack协议栈基础和数据传输实验

一、实验目的

    终端节点将数据无线发送到协调器,协调器通过串口将数据发送到PC端,并在屏幕上显示出来。串口优化把有线串口传输改为无线蓝牙传输。

 

二、实验平台

  硬件:2zigbee节点,1个编译器,1根方口转USB数据线,一个蓝牙模块

  软件:实验基于SampleApp工程进行。

 

三、实验步骤

  1. 串口初始化代码
  2. 发送部分代码
  3. 接收部分代码

 

四、协议栈基础

  做实验之前先了解一点关于协议栈的基础知识吧~

  什么是协议栈?我们知道使用Zigbee一般都要进行组网、传输数据。可想而知其中的代码数量是非常庞大的,如果我们每次使用zigbee都需要自己写所以代码的话,会非常麻烦。因此就有了协议栈。可以说它是一个小型的操作系统,把很多通信、组网之类的代码都封装起来了。我们要做的只是通过调用函数来实现我们的目的。

  来看一下协议栈的工作流程图(图1)。然后我会对照流程图对协议栈进行简单的分析。

 

1

 

  我们就从流程图的“开始”开始分析吧~

  打开工程文件SampleAppmain函数是程序执行的开始,我们要先找到它。Main函数在ZMAin文件夹的ZMain.c下,打开它,找到main函数。

  1 int main( void )
  2 
  3 {
  4 
  5   // Turn off interrupts 
  6 
  7   //关闭所有中断
  8 
  9   osal_int_disable( INTS_ALL );
 10 
 11  
 12 
 13   // Initialization for board related stuff such as LEDs 
 14 
 15   //初始化系统时钟
 16 
 17   HAL_BOARD_INIT();
 18 
 19  
 20 
 21   // Make sure supply voltage is high enough to run 
 22 
 23   //检测芯片电压是否正常
 24 
 25   zmain_vdd_check();
 26 
 27  
 28 
 29   // Initialize board I/O
 30 
 31   //初始化外设
 32 
 33   InitBoard( OB_COLD );
 34 
 35  
 36 
 37   // Initialze HAL drivers
 38 
 39   //初始化芯片各硬件模块
 40 
 41   HalDriverInit();
 42 
 43  
 44 
 45   // Initialize NV System
 46 
 47   //初始化flash存储器
 48 
 49   osal_nv_init( NULL );
 50 
 51  
 52 
 53   // Initialize the MAC
 54 
 55   //初始化MAC层
 56 
 57   ZMacInit();
 58 
 59  
 60 
 61   // Determine the extended address
 62 
 63   //确定IEEE 64位地址
 64 
 65   zmain_ext_addr();
 66 
 67  
 68 
 69 #if defined ZCL_KEY_ESTABLISH
 70 
 71   //Initialize the Certicom certificate information.
 72 
 73   zmain_cert_init();
 74 
 75 #endif
 76 
 77  
 78 
 79   // Initialize basic NV items
 80 
 81   //初始化非易失变量
 82 
 83   zgInit();
 84 
 85  
 86 
 87 #ifndef NONWK
 88 
 89   // Since the AF isn't a task, call it's initialization routine
 90 
 91   afInit();
 92 
 93 #endif
 94 
 95  
 96 
 97   // Initialize the operating system
 98 
 99   //初始化操作系统***********************************初始化重点
100 
101   osal_init_system();
102 
103  
104 
105   // Allow interrupts
106 
107   //允许中断使能
108 
109   osal_int_enable( INTS_ALL );
110 
111  
112 
113   // Final board initialization
114 
115   //初始化按键
116 
117   InitBoard( OB_READY );
118 
119  
120 
121   // Display information about this device
122 
123   //显示设备信息
124 
125   zmain_dev_info();
126 
127  
128 
129   /* Display the device info on the LCD */
130 
131 #ifdef LCD_SUPPORTED
132 
133   zmain_lcd_init();
134 
135 #endif
目录 第1章 ZigBee技术概述 1.1 ZigBee技术的演变与进展1 1.1.1 ZigBee技术的由来2 1.1.2 ZigBee技术的发展历程2 1.2 ZigBee技术特点5 1.3 ZigBee2007/PRO特性6 1.3.1 ZigBeeZigBee PRO比较6 1.3.2 不同ZigBee版本的兼容分析8 1.4 ZigBee无线网络使用频谱和ISM开放频带16 1.5 ZigBee技术的广阔应用前景17 第2章 低功耗微控制器MSP430与ZigBee芯片CC2520 2.1 低功耗微控制器MSP43022 2.1.1 关键特性22 2.1.2 MSP430模块化架构23 2.1.3 16位RISC先进CPU24 2.1.4 超低功耗性能25 2.1.5 灵活的时钟系统26 2.1.6 智能外设27 2.1.7 MSP430应用29 2.2 MSP430F2618简介29 2.2.1 MSP430F2xxx介绍30 2.2.2 MSP430F2618特性30 2.3 ZigBee芯片CC252031 2.3.1 CC2520的特性32 2.3.2 CC2520引脚描述34 2.3.3 CC2520与CC2420的区别35 2.3.4 CC2520典型设计36 第3章 ZigBee无线网络多功能开发系统 3.1 无线网络ZigBee开发系统平台选择39 3.1.1 如何选择嵌入式无线开发工具和平台40 3.1.2 需要的设备和必要条件42 总结43 3.2 多功能可视化ZigBee无线网络开发系统C51RF3PK44 3.2.1 C51RF3PK仿真器44 3.2.2 网络液晶扩展板45 3.2.3 C51RF3PK电池板51 3.2.4 ZigBee模块53 3.3 图形化ZigBee2007开发系统56 3.3.1 ZigBee模块CC252057 3.3.2 网络液晶扩展板58 3.4 ZigBee软件集成开发平台63 3.4.1 IAR集成开发环境的安装65 3.4.2 添加文件或新建程序文件72 3.4.3 设置工程选项参数74 3.4.4 编译、链接、下载78 3.4.5 仿真调试79 第4章 ZigBee开发入门 4.1 认识ZigBee协议栈88 4.2 ZigBee网络数据传输90 4.2.1 实验目的90 4.2.2 ZigBee数据传输原理解析90 4.2.3 实验设备准备110 4.3 ZigBee协议栈编译/下载111 4.3.1 设备选择及设置111 4.3.2 编译/下载程序112 4.4 ZigBee源代码剖析113 4.4.1 发送一个信息包113 4.4.2 收发数据过程113 4.4.3 接收一个信息包116 4.5 实验流程117 4.5.1 流程图117 4.5.2 路由器代码118 4.5.3 协调器代码120 4.6 ZigBee分析仪分析ZigBee数据包121 4.6.1 协议分析仪121 4.6.2 ZigBee数据格式122 4.6.3 加入网络数据分析125 4.6.4 收发数据分析126 4.7 实验效果128 第5章 ZigBee无线网络开发进阶 5.1 ZigBee协议栈结构129 5.2 ZigBee协议栈实时操作系统132 5.2.1 OS术语介绍132 5.2.2 OSAL API介绍133 5.2.3 OSAL任务142 5.3 ZigBee2006应用接口144 5.3.1 实验目的144 5.3.2 原理介绍144 5.3.3 软件准备SAPI介绍145 5.4 网络形成145 5.4.1 协调器格式化网络146 5.4.2 路由器和终端设备加入网络146 5.4.3 ZDO_StartDevice147 5.5 绑定148 5.5.1 绑定表格149 5.5.2 绑定建立151 5.5.3 绑定解除156 5.6 命令156 5.6.1 命令定义及使用156 5.6.2 串159 5.6.3 ZCL介绍159 5.6.4 Profile介绍160 5.7 灯光控制实验165 5.7.1 APP函数分析165 5.7.2 灯光控制实验过程176 5.7.3 实验总结178 5.8 无线温度传感器实验179 5.8.1 设备179 5.8.2 命令180 5.8.3 发现和绑定180 5.8.4 数据包发送和接收181 第6章 ZigBee2007/PRO入门 6.1 ZigBee2007/PRO入门实验185 6.2 实验设备185 6.2.1 硬件介绍185 6.2.2 硬件组成186 6.3 实验基础知识186 6.3.1 ZigBee2007简介186 6.3.2 ZigBee2007/PRO协议栈简介187 6.3.3 ZigBee设备在Zstack中的体现189 6.4 实验内容191 6.4.1 建立任务192   6.4.2 按键处理函数197   6.4.3 发送函数198   6.4.4 接收处理函数200  6.5 实验步骤和结果200   6.5.1 建立网络200   6.5.2 路由设备加入网络202   6.5.3 发送数据203   6.5.4 退出小组203   6.5.5 加入小组203  6.6 实验拓展204   6.6.1 项目分析204   6.6.2 协调器函数的设计204   6.6.3 路由器设备函数设计205  6.7 实验总结206 第7章 ZigBee2007/PRO进阶  7.1 实验目的207  7.2 实验设备207   7.2.1 硬件介绍207   7.2.2 硬件组成208   7.2.3 ZigBee2007协议栈208  7.3 实验基础知识209   7.3.1 ZigBee PRO简介209   7.3.2 ZigBee PRO中的路由210   7.3.3 ZigBee PRO新功能211   7.3.4 信息包格式211  7.4 实验内容212   7.4.1 初始化任务213   7.4.2 任务处理215   7.4.3 UART_RX_CB_EVT事件219   7.4.4 串口发送函数222   7.4.5 串口接收中断函数223   7.4.6 串口读取函数224   7.4.7 ZigBee发送函数225   7.4.8 ZigBee接收处理函数226  7.5 实验步骤和现象228   7.5.1 建立网络228   7.5.2 路由设备加入网络229   7.5.3 查看网络中节点230   7.5.4 配置地址231   7.5.5 收发数据231  7.6 实验总结233 第8章 ZigBee2007/PRO高级应用——家庭自动化  8.1 家庭自动化概念234  8.2 ZigBee2007/PRO的家庭自动化236  8.3 家庭自动化实验目的236  8.4 家庭自动化体系236  8.5 实验设备237  8.6 家庭自动化实验工程238  8.7 家庭自动化工程剖析239   8.7.1 实验操作流程图240   8.7.2 灯和控制器主函数程序流程图240   8.7.3 其他初始化关键函数242   8.7.4 网络状态变化函数243   8.7.5 绑定相关函数246  8.8 操作系统250   8.8.1 操作系统关键参数251   8.8.2 操作系统关键函数252  8.9 灯设备关键任务256  8.10 控制器关键任务260  8.11 实验操作步骤265  8.12 家庭自动化例程总结268 第9章 ZigBee2007无线传感器网络  9.1 无线传感器网络概述269   9.1.1 什么是无线传感器网络269   9.1.2 无线传感器网络现状270   9.1.3 ZigBee在无线传感器网络上的应用272   9.1.4 ZigBee无线传感器网络系统特点272  9.2 ZigBee2007无线传感器网络实验概述273  9.3 ZigBee2007无线传感器网络硬件设计274   9.3.1 网关底板设计275   9.3.2 传感器底板设计276  9.4 网关与PC机的数据连接281  9.5 ZigBee2007无线传感器网络建立与网络管理287   9.5.1 网络通信过程介绍287   9.5.2 网关网络节点的地址管理288  9.6 网关与节点间的无线采集过程293  9.7 程序编译、下载303  9.8 实验效果304 附录A 网络层所定义的特性常量311 附录B 网络层信息库属性312 参考文献315
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值