首先,我是只是一个大学应届毕业生,本人也是因为参加了挑战杯这个项目,所学也专业包涵单片机内容,所以才开始我的ZigBee之旅,写了2个月左右,项目的基本要求大致是达到了。写这篇博客主要是总结这2个月所学的知识,供大家学习的时候参考一下,因为是第一次写博客,所以有些文采不好的地方,所学知识也大多都是自学,比不上各位大牛们,有时甚至有一些简单的错误,让大伙见笑了,主要是给那些刚刚准备学习的孩子看的,有什么看不懂的,或者写错的,欢迎留言。
ZigBee的开发可以使用很多种芯片,本文使用的是网蜂的CC2530芯片,简单介绍一下硬件种类,有1个下载器 2个芯片板 2跟USB转串口线 2跟天线 大致如下图所示:
CC2530芯片板主要有不带PA功放的普通芯片板和带PA功放的传输加强板,不带PA功放的芯片,稳定传输距离大概在250米左右,自动重连的距离最大为110米。带PA功放的加强板的稳定传输距离为400米,自动重连距离为360米。如下图为不带PA功放的芯片主板:
下图为CC2530+CC2591(PA)的芯片主板,即带PA功放板:
详细的I/O配置这里我就不在啰嗦了,不懂的可以百度或者给我留言,有了这些硬件基础,我们就可以顺利的开发8051单片机了,接下来是我们的软件配置。首先,我们安装IAR-EW8051-8101(带注册机)这款Zigbee开发必备的编译软件,下载地址,
打开安装文件,选择IAR安装,默认安装在系统盘:
一路确认下去,然后到了注册界面:在这里打开注册机,把下图中license namber中的数字复制到上图的License#,完成注册。
最后,我们的打开界面是这样的,就说明安装成功了
然后我们再安装SmartRF Flash Programmer 1.9.0这款仿真软件,这是下载地址,安装后会出现:
然后我们安装usb转串口驱动,点击下载地址,进行下载安装
最后选择我们要安装的Zigbee协议栈,这里我们选择的是TI公司的TI ZStack-CC2530-2.3.0-1.4.0,这个协议栈虽然不是最新的,却是Zigbee网络中使用最多的一种协议,直接打开安装文件等待安装,选择默认路径即可,有需要的也可以装在别的盘,有时候协议栈修改后找不回来了,还可以同时安装几个在别的盘符
安装完成后,我们打开sampleApp.eww这个工程文件,对官方的这个无线点灯程序进行修改
在这里先给大伙说说ZigBee协议的特征吧。什么是ZigBee协议栈呢?它和ZigBee协议有什么关系呢 协议是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据发射和接收。协议栈是协议的具体实现形式,通俗点来理解就是协议栈是协议和用户之间的一个接口,开发人员通过使用协议栈来使用这个协议的,进而实现无线数据收发。
下图为ZigBee协议栈的无线网络协议层:
ZigBee的协议分为两部分,IEEE 802.15.4定义了PHY(物理层)和MAC(介质访问层)技术规范;ZigBee联盟定义了NWK(网络层)、APS(应用程序支持子层)、APL(应用层)技术规范。ZigBee协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供API(应用层),用户可以直接调用,所以用户就可以不关心Zigbee协议栈具体的实现细节,为大家的开发带来省下了一大批时间。回到主题,进入协议栈里面,选择APP文件夹,这里主要是存放功能代码的地方,打开SampleAPP.c文件,进行源代码编辑,修改你自己想要实现的功能
修改好了功能,就可以把代码烧录到单片机中,首先,选择编译,编译无错误之后,就可以选择下载按钮进行下载,把ZigBee设备通过下载器连接在PC机旁,开始下载。下载完成后,观察修改的功能是否实现。
这里再介绍一下一些关键词,供大家参考。
CCM - Counter with CBC-MAC (mode of operation) HAL - Hardware Abstraction Layer (硬件抽象层)
PAN - Personal Area Network (个人局域网)
RF - Radio Frequency (射频)
RSSI - Received Signal Strength Indicator (接收信号强度指示)
这次就先写到这里了,开发工具基本介绍完了,关于详细的代码设计在之后慢慢总结出来,第一次写,写的不好的地方,欢迎大伙指导。