物联网实验2 协议栈剖析

1 实验目的

(1)熟悉SampleApp工程;
(2)掌握Zigbee的组网,数据点播、广播;
(3)熟悉协议栈的串口。

2 实验环境

(1)硬件:CC2530节点板2块,CC2530仿真器,PC 机;
(2)软件:Windows 7/Windows XP,IAR集成开发环境。

3 实验内容

(1)在SampleApp工程中添加点播代码;
(2)在SampleApp工程中添加串口功能,实现串口的接收和发送;实现两台电脑的串口射频无线数据传输。

4 实验预习要求

仔细阅读第3篇Zstack协议栈剖析的PPT内容,理解组网、点播和广播,熟悉SampleApp工程中的数据发送和接收函数,熟悉串口的使用。

5 实验步骤

由于源码zigbee网络PAN ID均设置为0xFFF1,为了避免实验环境下多个实验平台之间网络互相串扰,每个实验平台需要修改PAD ID,修改工程内文件:Tools -> f8wConfig.cfg,将PAN ID修改为:个人学号的后四位+100

A、在SampleApp工程中添加点播代码


(1)解压ZStack-CC2530-2.3.0-1.4.0.rar压缩包
(2)打开SampleApp工程,注意软件版本使用IAR8.20
物联网实验2 协议栈剖析
(3)在SampleApp.c文件的对应位置添加下图所示的代码,对点播通讯定义
物联网实验2 协议栈剖析

(4)在SampleApp.c文件的SampleApp_Init()函数对应位置添加下图所示的代码,对点播参数进行赋值物联网实验2 协议栈剖析
(5)由于协调器不进行点播,故周期任务初始化时协调器不初始化,所以将它注释掉。在SampleApp.c文件的SampleApp_Init()函数对应位置注释相应代码物联网实验2 协议栈剖析
(6)在SampleApp.c文件的最后添加点播发送函数的实现代码物联网实验2 协议栈剖析

(7)在SampleApp.h文件的相应位置添加点播发送簇的定义
物联网实验2 协议栈剖析

(8)在SampleApp.c文件的SampleApp_ProcessEvent()函数里,找到相应位置,将广播发送函数注释掉,加上点播发送函数物联网实验2 协议栈剖析

(9)在SampleApp.c中修改SampleApp_MessageMSGCB ()函数,完成点播数据的接收。把发送的内容显示出来。自己编程实现!!!

物联网实验2 协议栈剖析

(10)至此,点播通讯相关的代码添加完毕,尝试编译,直至编译成功,继续第二部分内容。

B、在第一部分的基础上,在SampleApp工程中添加串口功能,实现串口的接收和发送;实现两台电脑的串口射频无线数据传输:

(1)在SampleApp.c文件的开始位置添加下图所示的代码,把串口需要的头文件包含进来物联网实验2 协议栈剖析
(2)在SampleApp.c文件的SampleApp_Init()函数里添加串口的初始化函数
物联网实验2 协议栈剖析

使用HalUARTWrite()函数在这里输出自己的姓名首字母和学号后4位。

(3)在MT_UART.h文件中找到下图相应代码位置,也可以在MT_UartInit()函数中进去查找,关闭流控制和修改波特率为115200物联网实验2 协议栈剖析
在OnBoard.h文件中找到下图位置修改代码,也可以在MT_UartInit()函数中进去查找物联网实验2 协议栈剖析
在MT_UART.c文件的MT_UartInit()函数中找到下图位置,修改代码物联网实验2 协议栈剖析
(4)注释协调器的MT层和ZTOO_P1相关的宏,打开ZAPP_P1宏。添加HOLD_AUTO_START和ZAPP_P1,注释xZTOOL_P1、xMT_TASK、xMT_SYS_FUNC、xMT_ZDO_FUNC、xBUILD_ALL_DEVICES。物联网实验2 协议栈剖析
5)注释终端节点的MT层和ZTOO_P1相关的宏,打开ZAPP_P1宏。添加HOLD_AUTO_START和ZAPP_P1,注释xZTOOL_P1、xMT_TASK、xMT_SYS_FUNC、xMT_ZDO_FUNC、xLCD_SUPPORTED=DEBUG、xNWK_AUTO_POLL。参照上图!!!

(6)在MT_UART.c中找到函数void MT_UartProcessZAppData ( uint8 port, uint8 event ) ,注释流控制功能代码。

物联网实验2 协议栈剖析

(7)在SampleApp.c文件中声明一个结构体用于数据传递,并声明串口接收处理函数。物联网实验2 协议栈剖析
8)在SampleApp.c文件的最后添加串口接收处理的函数实现代码物联网实验2 协议栈剖析

(9)在SampleApp.c文件的SampleApp_ProcessEvent()函数中添加串口事件处理物联网实验2 协议栈剖析
(10)完善点播/广播接收的代码,在接收到点播/广播数据后使用串口输出到电脑
物联网实验2 协议栈剖析

(11)分别编译下载程序物联网实验2 协议栈剖析
物联网实验2 协议栈剖析
(12)分别下载到实验箱中的两个模块,一个终端节点一个协调器,分别连接上串口线,并打开串口调试助手,注意选择COM口,尝试使用串口调试助手互相发送数据,观察现象。
正常现象:两个模块上电时会输出自己的姓名首字母和学号后4位(如果不能输出,可能程序错误或者串口连接线有问题,检查硬件连接),终端节点会定时点播数据到协调器,所以协调器的串口会间隔输出0123456789的字符(尝试定时发送输出自己的姓名首字母和学号后4位),使用串口调试助手可以互相进行数据无线透传。
物联网实验2 协议栈剖析