打印
[CC2530]

CC2530协议栈网络管理

[复制链接]
897|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aoyi|  楼主 | 2019-9-5 11:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
实验设备
硬件:PC 机一台;ZB2530(底板、核心板、仿真器、USB 线) 一套
软件:win7 系统,IAR 8.20 集成开发环境

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

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

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


使用特权

评论回复

相关帖子

沙发
aoyi|  楼主 | 2019-9-5 11:51 | 只看该作者
发送部分程序
发送部分代码只需要修改点播发送函数,修改后的代码如下所示:



第 499 行:编译器会自动根据用户选择的是路由还是终端,来定义SampleApp_NwkState 变量,若选择 RouterEB-Pro 来编译,则 SampleApp_NwkState=DEV_ROUTER。
第 499~504 行:给各个终端和路由器一个编号。
第 507~514 行:将编号发送出去。


使用特权

评论回复
板凳
aoyi|  楼主 | 2019-9-5 11:52 | 只看该作者
接收部分程序
接收部分的代码,只需要对接收函数进行修改,其中,有两个地方大家需要注意的。
(1) pkt->cmd.Data[0]是协调器接收数据后,存放设备编号的变量;
(2) pkt->srcAddr.addr.shortAddr 是数据包的 16 位短地址。
修改后的代码如下所示:



第 407 行:获取发送设备(路由/终端)的短地址。
第 409~412 行:判断发送设备的编号。
第 415~418 行:将短地址通过串口发给电脑显示。


使用特权

评论回复
地板
aoyi|  楼主 | 2019-9-5 11:53 | 只看该作者
        实验现象

打开工程程序,分别选择EndDeviceEB-Pro 和 CoordinatorEB-Pro 编译后下载程序到两个(多个终端)模块上,然后,协调器通过串口连接到电脑。打开串口调试助手,设置相关配置,可以看到设备都会往协调器发送自身编号,协调器通过判断编号后,获取各个发送设备的短地址,并通过串口发给电脑显示出来。



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

3307

帖子

3

粉丝