第四部分 提高篇-第7章 CC2530协议栈网络管理

实验设备
硬件:PC 机一台;ZB2530(底板、核心板、仿真器、USB 线) 一套
软件:win7 系统,IAR 8.20 集成开发环境

我们都知道每个 CC2530 芯片出厂时候都有一个全球唯一的 32 位 MAC 地址(也称长地址)。但是,当设备连入网络中的时候,每个设备都能获得由协调器分配的 16位短地址,(协调器默认地址是 0x0000),很多时候网络就是通过短地址进行管理。
今天的实验以点播为依托来进行,下面先来明确发送和接收部分程序需要完成的工作。

 发送部分程序完成的工作:
(1) 给各个终端和路由器一个编号;
(2) 然后,将编号发送出去。

 接收部分程序完成的工作:
(1) 接收并判别编号;
(2) 获取设备信息并串口发给电脑显示。
下面分别讲解发送和接收部分的程序:

 发送部分程序
发送部分代码只需要修改点播发送函数,修改后的代码如下所示:
这里写图片描述
这里写图片描述
第 499 行:编译器会自动根据用户选择的是路由还是终端,来定义SampleApp_NwkState 变量,若选择 RouterEB-Pro 来编译,则 SampleApp_NwkState=DEV_ROUTER。
第 499~504 行:给各个终端和路由器一个编号。
第 507~514 行:将编号发送出去。

 接收部分程序
接收部分的代码,只需要对接收函数进行修改,其中,有两个地方大家需要注意的。
(1) pkt->cmd.Data[0]是协调器接收数据后,存放设备编号的变量;
(2) pkt->srcAddr.addr.shortAddr 是数据包的 16 位短地址。
修改后的代码如下所示:
这里写图片描述
这里写图片描述
第 407 行:获取发送设备(路由/终端)的短地址。
第 409~412 行:判断发送设备的编号。
第 415~418 行:将短地址通过串口发给电脑显示。
 实验现象
打开工程程序,分别选择EndDeviceEB-Pro 和 CoordinatorEB-Pro 编译后下载程序到两个(多个终端)模块上,然后,协调器通过串口连接到电脑。打开串口调试助手,设置相关配置,可以看到设备都会往协调器发送自身编号,协调器通过判断编号后,获取各个发送设备的短地址,并通过串口发给电脑显示出来。

这里写图片描述

图7-1实验现象

本章参考代码

点击进入

猜你喜欢

转载自blog.csdn.net/u013162035/article/details/80980166