一、前言
以下内容皆是个人学习过程中的总结,记录一下整个过程,用于后期复习,如有不对之处,麻烦各位大佬指出~
(喜欢的朋友麻烦点个关注~~~ 后期还会进行持续更新)
二、ZigBee定义
ZigBee是基于IEEE802.15.4标准的低功耗局域网协议。根据国际标准规定,ZigBee技术是一种短距离、低功耗的无线通信技术。这一名称(又称紫蜂协议)来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。其特点是近距离、低复杂度、自组织、低功耗、低数据速率。主要适合用于自动控制和远程控制领域,可以嵌入各种设备。简而言之,ZigBee就是一种便宜的,低功耗的近距离无线组网通讯技术。ZigBee是一种低速短距离传输的无线网络协议。ZigBee协议从下到上分别为物理层(PHY)、媒体访问控制层(MAC)、传输层(TL)、网络层(NWK)、应用层(APL)等。其中物理层和媒体访问控制层遵循IEEE 802.15.4标准的规定。
三、ZigBee特点
下面是zigbee特点的详细介绍
(1)低功耗:两节五号电池支持长达6 个月到2 年左右的使用时间。
(2)低成本:由于简化了协议栈,降低内核的性能要求,以CC2530 为例,内核就是一个增强型的8051 内核,从而降低了芯片成本。每块CC2530 大约15 块RMB。
(3)低速率:Zigbee 可以提供三种原始数据吞吐率,分别为:250kbps(2.4GHz)、40kbps(915MHz)、20kbps(868MHz)。
(4)近距离:“近”是相对的,与蓝牙相比,Zigbee 属于低速率远距离数据传输。
(5)可靠:采用碰撞避免机制,同时为需要固定带宽的通信业务预留了专用时隙,避免了发送数据时的竞争和冲突;节点模块之间具有自动动态组网的功能,信息在整个Zigbee 网络中通过自动路由的方式进行传输,从而保证了信息传输的可靠性。
(6)短时延:针对时延敏感的应用做了优化,通信时延和从休眠状态激活的时延都非常短。
(7)网络容量大:Zigbee 可采用星状、网状和网状网络结构,如图1.1.2 所示,由一个主节点管理若干子节点,最多一个主节点可管理254 个子节点;同时主节点还可由上一层网络节点管理,最多可组成65000 个节点的大网。
(8)安全:Zigbee 提供数据完整性检查和鉴权功能,加密算法采用通用的AES-128。
(9)高保密性:64 位出厂编号和支持AES-128 加密。
四、zigbee应用
基于Zigbee技术的传感器网络应用非常广泛,可以帮助人们更好地实现生活梦想。Zigbee技术应用在数字家庭中,可使人们随时了解家里的电子设备状态,并可用于对家中病人的监控,观察病人状态是否正常以便作出反应。Zigbee传感器网络用于楼宇自动化可降低运营成本。如:酒店里遍布空调供暖(HVAC)设备,如果在每台空调设备上都加上一个ZigBee节点,就能对这些空调系统进行实时控制,节约能源消耗。此外,通过在手机上集成Zigbee芯片,可将手机作为Zigbee传感器网络的网关,实现对智能家庭的自动化控制、进行移动商务(利用手机购物)等诸多功能。据BobHeile介绍,目前意大利TIM移动公司已经推出了基于Zigbee技术的Z-sim卡,用于移动电话与电视机顶盒、计算机、家用电器之间的通信及停车场收费等
五、开发环境配置
IAR安装(1.2版本)
首先,我建议大家下载破解版的,这样不用去自己去破解,即使不是破解版的,网上也有很多破解教程,然后下一步就行了,下面是安装界面:
CH340 (USB 转串口)驱动的安装
为什么要按这个东西呢,因为单片机和电脑连接的是通过我们的usb相连的,而单片机是只有串口的,所以需要通过这个驱动,使电脑和单片机进行连接和通信。
安装完以后,当你通过单片机和电脑连接的时候,如果单片机有串口转usb的这个模块的话,就可以进行连接。
六、新建工程、配置
首先,我们打开IAR软件,创建工程
第一步:点击新建工程
第二步:选择类型,并点击OK
第三步:选择工程保存路径以及工程名称
第四部:新建.c文件
第五步:选择.c文件保存路径以及文件名
第六步:添加刚刚创建的.c文件
第七步:点击进入配置工程页面
第八步:根据所使用的ZigBee芯片型号来进行配置
第九步:链接和输出配置
依次选择Linker和Config,然后选lnk51ew_cc2530f256_banked.xcl,如图所示。
选择Output,按如图所示配置。
选择Extra Output,按如图所示配置。
选择Debugger,在Driver中选择Texas Instruments,如图所示。
六、编写代码
在LED.c文件中添加如下代码:
#include<ioCC2530.h>
//宏定义
#define uint unsigned int
#define uchar unsigned char
#define LED0 P1_0 //定义LED0对应的IO口
#define LED1 P1_1 //定义LED1对应的IO口
void delay(uint i)
{
uint j,k;
for(k=0;k<i;k++)
{
for(j=0;j<500;j++);
}
}
//IO端口初始
void Init_port()
{
P1SEL &=~0x03; //1.IO端口功能选择PxSEL,0-GPIO 1-外设,配置P1_0、P1_1为GPIO
P1DIR |=0X03; //2.IO端口方向选择PxDIR,0-输入,1-输出、P1_1为输出
P1 &=~0x03;
}
void main()
{
Init_port(); //IO端口初始
while(1)
{
LED0=1;
LED1=0;
delay(100);
LED0=0;
LED1=1;
delay(100);
}
}
添加完成后,可以编译链接工程。鼠标右击工程名字,然后选择Rebuild All,重新编译链接整个工程,如图所示。
可以在如图所示位置查看编译链接结果
编译无误之后,连接好设备,如图所示点击运行
开始运行之后,即可看到板子上的LED灯在循环亮灭