Core2530-B-User-Manual

来自Waveshare Wiki
跳转至: 导航搜索

Zigbee组网实验

Zigbee组网最少需要一个协调器和一个路由器,模块出厂后内置Bootloader,可以直接通过串口将固件下载到模块。

注:组网通信实验需要Core2530 (B)两块,XBee USB Adapter底板两块。

Zigbee角色介绍

1. 协调器(Coodinator)

  • 选择一个频道和PAN ID,组建网络
  • 允许路由和终端结点加入这个网络
  • 对网络中的数据进行路由
  • 必须保持供电,不能进入睡眠状态
  • 可以为睡眠的终端结点保留数据,至其唤醒后取回

2. 路由器(Router)

  • 在进行数据收发之前,必须首先加入一个Zigbee网络
  • 本身加入网络后,允许路由和终端结点加入
  • 加入网络后,可以对网络中的数据进行路由
  • 必须保持供电,不能进入睡眠状态
  • 可以为睡眠的终端结点保留数据,至其唤醒后取回

3. 终端(End Device)

  • 在进行数据收发之前,必须首先加入一个Zigbee网络
  • 不允许其他设备加入
  • 必须通过其父节点收发数据,不能对网络中的数据进行路由
  • 可由电池供电,必要时可以进入睡眠状态

Bootloader

1. Bootloader简介

利用模块内置的Bootloader,用户可以通过串口直接下载应用程序而不需要CC Debugger;但Bootloader的烧录必须通过CC Debugger。

本模块配套的bootloader.hex,具体工作情况如下:

模块上电后,如果Flash内部应用程序有效,则立刻开始执行;否则LED1闪烁,表示没有应用程序,可以通过串口进行下载。

因为模块出厂前还另外烧写了Router.bin的应用程序,所以模块接上usb线后,则会直接执行router应用程序,如果要重新进入到“可串口下载程序”状态,可长按Boot按键,同时按下Reset按键,此时可看到LED1灯开始闪动,则可重新烧写程序。

2. CC debugger驱动安装

  • 解压例程提供的软件包CC-Debugger_Drivers.7z到安装目录中。
  • 双击 Setup_SmartRF_Drivers-1.2.0.exe 打开安装程序
  • 点击Next,选择安装路径

Core2530-XCore2530-User-Manual-1.jpg

  • 点击 Install,等待安装完成

Core2530-XCore2530-User-Manual-2.jpg

  • 安装结束后,连接CC Debugger到电脑,打开windows 设备管理器,如有下图显示的硬件,说明驱动安装成功。

Core2530-XCore2530-User-Manual-3.jpg

3. 烧录Bootloader

  • 将模块安装到底板上,通过USB线连接电脑,同时连接CC Debugger
  • 打开底板电源,按下CC Debugger上的RESET按键,如果指示灯变为绿色说明通信正常,可以下载。
  • 打开SmartRF Studio7,选择软件右上角Flash Programmer并打开。

Core2530-XCore2530-User-Manual-4.jpg

  • 选择Program CCxxxx Soc or MSP430,Flash image处选择需要下载的烧录文件,这里选择bootloader_wait.hex,单击Perform actions开始下载。

Core2530-XCore2530-User-Manual-5.jpg

  • 如果底部出现信息: program and verify OK,同时底板LED1开始闪烁,说明下载成功。

Core2530-XCore2530-User-Manual-6.jpg

固件下载

这里以两套Core2530 (B) + XBee USB Adapter为例,分别烧录协调器和路由器固件,完成组网。为方便描述,将这两套系统称为A和B。

  • 将A、B通过USB线接入电脑,上电后分别记录对应的串口号
  • 如果之前已有bootloader固件,且Flash内部应用程序应用程序有效,重新复位A或B后,模块会直接执行应用程序。需要长按Boot按键,同时按下Reset按键,此时可看到LED1灯开始闪动,则可重新烧写程序。如果没有固件,上电后LED1闪烁,说明直接进入Bootloader模式,不需要按Boot按键。
  • 打开串口烧录软件 SBDemo.exe

Core2530-XCore2530-User-Manual-7.jpg

  • 填入A对应的串口号,点击…,Image File选择 Coordinator.bin 固件,,烧写波特率选择115200,点击 Load Image开始下载,等待下载结束。

Core2530-XCore2530-User-Manual-8.jpg

Core2530-XCore2530-User-Manual-9.jpg

  • B选择Router.bin固件,下载方式同上。
  • 打开两个串口调试助手,串口号分别对应A和B,波特率38400、数据位8、停止位1。
  • 重新复位A,等待串口输出 “Coordinator ok”,说明网络建立成功。
  • 重新复位B,等待串口输出“Router ok”,说明路由器已经加入网络,组网成功

模块组网通信

以下操作均直接使用UART串口发送和接收数据。

广播模式通信

描述:广播方式是由一个设备发送信息至整个Zigbee网络上的所有设备

格式:要发送的数据

示例:

如果任意一个模块需要以广播的方式发送信息“Hello Waveshare”,操作现象如下:

字符串输入框输入以下字符,点击发送:

Hello Waveshare

所有路由和协调器的字符串接收框都可以接收以下信息:

Hello Waveshare

点对点通信

描述:实现网络中任意两个节点之间的通信

格式:P2P 目的地址 要发送的数据

示例:

如果A模块要向B模块发送数据“Hello World”,操作和现象如下:

通过AT+GETADDR读取A和B模块的短地址

字符串输入框:

AT+GETADDR

便能够读取到A模块和B模块的地址:

Module A ADDR=0x50F5
Module B ADDR=0x3CB8

在A模块使用P2P指令就可以给B模块发送数据了。如下:

P2P 3CB8 Hello World

此时就只有B模块能收到以下数据,其他的节点和路由都无法收到数据。

Hello World

点对多通信

描述:一个节点向指定的多个节点发送数据

格式:O2M 目的地址个数 目的地址1 目的地址2 … 发送的数据

示例:

如果A模块要向B,C模块发送数据“Hello World”,操作和现象如下:

通过AT+GETADDR读取A,B,C模块的短地址

字符串输入框:

AT+GETADDR

字符串接收框:

Module A ADDR=0x50F5
Module B ADDR=0x3CB8
Module C ADDR=0x143E

在A模块使用O2M指令就可以给B、C模块发送数据了。如下:

O2M 2 3CB8 143E Hello World

此时就只有B,C模块能收到以下数据,其他的节点和路由都无法收到数据。

Hello World

使用上位机

上位机介绍

ZBSCOMM是微雪电子根据本模块专门开发的一款上位机软件,通过它可以对模块进行设置并且能够读取当前模块的配置信息;如果你不想采用上位机配置模块,同样也可以通过模块内置的AT指令集完成操作。

Core2530-XCore2530-User-Manual-10.jpg

指令详解

表 1: 重启模块

命令 AT+RESTART
输入参数
返回值 RESTART OK
备注 当串口返回 RESTART OK 之后,模块重新启动

表 2: 恢复出厂设置

命令 AT+RESET
返回值 SETUART OK SETCHN OK SETPANID OK
备注 重启模块之后生效

出厂参数:

PANID :0xFFFF(随机分配)

CHANNEL:11/2405MHz (随机分配)

UART选择:0(选择串口0)

波特率:38400

流控制:0(无流控制)

表 3: 串口信息配置

命令 AT+SETUART 串口通道 波特率 流控制(命令参数之间用空格隔开)
功能介绍 设置串口号,波特率,流控制,
输入参数 串口通道:这里必须写0,选择串口0进行配置。

波特率:9600-115200

流控制:这里必须写0,关闭流控制

返回值 成功:SETUART OK

失败:SETUART ERR

备注 出厂参数:UART选择:0(选择串口0)

波特率:38400

流控制:0(无流控制)

示例:

如果需要设置串口的波特率,只需在字符串输入框中输入“AT+SETUART 0 38400 0” 点击发送即可,需重启设备才生效,操作和现象如下:

字符串输入框:

AT+SETUART 0 38400 0

字符串接收框:

SETUART OK

表 4: 信道设置

命令 AT+SETCHN 信道
功能介绍 设置Zigbee的信道。
输入参数 信道: 取值范围 11-26。
返回值 成功返回: SETCHN OK

失败返回: SETCHN ERR

备注 所有的模块必须设置为同一的信道才可以进行组网,默认自动分配。

出厂参数: 默认随机分配 。

表 5: 设置PAN ID

命令 AT+SETPANID 局域网标志符
功能介绍 Zigbee协议使用一个16位的局域网标志符(PANID)来标识一个网络
输入参数 局域网标志符 :0x0000-0x3FFE
返回值 成功返回:SETPANID OK

失败返回:SETPANID ERR

备注 如果PANID=0xFFFF:设备将建立或加入一个“最优”的网络。

如果PANID≠0xFFFF:设备建立或加入指定PANID网络。

PANID的出现一般是伴随在确定信道以后的。

表 6: 读取所有配置信息

命令 AT+GETCFG
功能介绍 读取所有的配置信息
输入参数
返回值 UART:串口的参数(波特率,流控制)。

PANID:局域网标志符

ADDR:自己的短地址

FADDR:父辈的短地址

CHANNEL:模块的通信信道

表 7: 读取串口配置信息

命令 AT+GETUART
功能介绍 读取串口的配置信息
输入参数
返回值 串口编号:0/1(串口0/串口1)

串口波特率:9600-115200

流控制:0/1(没有流控制/有流控制)

表 8: 读取当前通信信道

命令 AT+GETCHN
功能介绍 读取模块的通信信道
输入参数
返回值 返回 CHANNEL的信道值

表 9: 读取自身PAN ID

命令 AT+GETPANID
功能介绍 读取当前网络的标示符
输入参数
返回值 成功将返回:PANID=0xxxx;

不成功返回:PANID=0xFFFE

表 10: 读取自身短地址

命令 AT+GETADDR
功能介绍 读取自身短地址
输入参数
返回值 返回ADDR=0xXXXX;
备注 短地址长度:16位

用于点对点,点对多的数据传输

表 11: 读取父节点短地址

命令 AT+GETFADDR
功能介绍 读取父节点的短地址
输入参数
返回值 FADDR=0xXXXX;
备注 短地址长度:16位

表 12: 读取自身IEEE地址

命令 AT+GETIEEE
功能介绍 读取自身IEEE地址
输入参数
返回值 IEEE=xx xx xx xx xx xx xx xx
备注 设备的IEEE是一个64位的地址

表 13: 读取父节点IEEE地址

命令 AT+GETFIEEE
功能介绍 读取父节点的IEEE地址
输入参数
返回值 MY_FIEEE=xx xx xx xx xx xx xx xx
备注 父设备的IEEE是一个64位的地址