《cc2530实现协议栈网络通信实验(广播)》由会员分享,可在线阅读,更多相关《cc2530实现协议栈网络通信实验(广播)(3页珍藏版)》请在金锄头文库上搜索。
1、易思开发工作室 ES Technology http:/es- 文件名:协议栈网络通信实验(广播) Zigbee 的通讯方式主要有三种点播、组播、广播。点播,顾名思义就是点对 点通信,也就是 2 个设备之间的通讯,不容许有第三个设备收到信息;组播,就 是把网络中的节点分组,每一个组员发出的信息只有相同组号的组员才能收到。 广播,最广泛的也就是 1 个设备上发出的信息所有设备都能接收到。 这也是 ZigBee 通信的基本方式。 注意: 1. 先安装好 PL2302 USB 转串口驱动,转备好 USB 线,连接计算机与接收模块。 2. 需要两个或者两个以上模块,分别用于协调器、路由器、终端。 实验
2、目的:学习如何使用 TI 提供的协议栈,进行组网和无线数据通信。其 中一个模块为协调器,一个模块为无线终端,一个模块为路由器。 实验步骤: 1. 打开工程文件:协议栈的无线数据传输 ProjectszstackSamplesSampleAppCC2530DB SampleApp,分别选择 EndDeviceEB-Pro, RouterEB-Pro, CoordintorEB-Pro, 分别下载到三个模块中, 如下图所示。 2. 连接计算机与协调器模块,可以看到各个设备都在广播发送信息,同时 也接收广播信息。 易思开发工作室 ES Technology http:/es- 实验结果:将修改后的程
3、序分别以协调器、路由器、终端的方式下载到 3 个设备,可以看到各个设备都在广播发送信息,同时也接收广播信息 具体实验:具体实验: 1. 发送部分发送部分 广播就是任何一个节点设备发出广播数据,网络中的任何设备都能收到。广 播的定义都是协议栈预先定义好的。所以我们直接来运用就可以了。 在 SampleApp.c 中找到广播参数的配置。代码如下。 SampleApp_Periodic_DstAddr.addrMode = (afAddrMode_t)AddrBroadcast; SampleApp_Periodic_DstAddr.endPoint = SAMPLEAPP_ENDPOINT; Sa
4、mpleApp_Periodic_DstAddr.addr.shortAddr = 0xFFFF; 其中 0xFFFF 是广播地址。 发送函数 void SampleApp_SendPeriodicMessage( void ) uint8 data10=0,1,2,3,4,5,6,7,8,9; if ( AF_DataRequest( uint16 flashTime; switch ( pkt-clusterId ) case SAMPLEAPP_PERIODIC_CLUSTERID: HalUARTWrite(0,“Receive data: n“,14); for(i=0;icmd.Datai,1);/sent data to PC HalUARTWrite(0,“n“,1); break; case SAMPLEAPP_FLASH_CLUSTERID: flashTime = BUILD_UINT16(pkt-cmd.Data1, pkt-cmd.Data2 ); HalLedBlink( HAL_LED_4, 4, 50, (flashTime / 4) ); break; 其中默认接收 ID 就是刚定义的周期性广播发送 ID。 将修改后的程序分别以协调器、路由器、终端的方式下载到 3 个设备,可以 看到各个设备都在广播发送信息,同时也接收广播信息