ZigBee学习笔记文档格式.docx
- 文档编号:20695039
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:48
- 大小:1.06MB
ZigBee学习笔记文档格式.docx
《ZigBee学习笔记文档格式.docx》由会员分享,可在线阅读,更多相关《ZigBee学习笔记文档格式.docx(48页珍藏版)》请在冰豆网上搜索。
省电:
两节五号电池支持长达6个月到2年左右的使用时间。
可靠:
采用了碰撞避免机制,同时为需要固定带宽的通信业务预留了专用时隙,避免了发送数据时的竞争和冲突;
节点模块之间具有自动动态组网的功能,信息在整个Zigbee网络中通过自动路由的方式进行传输,从而保证了信息传输的可靠性。
时延短:
针对时延敏感的应用做了优化,通信时延和从休眠状态激活的时延都非常短。
网络容量大:
可支持达65000个节点。
安全:
ZigBee提供了数据完整性检查和鉴权功能,加密算法采用通用的AES-128。
高保密性:
64位出厂编号和支持AES-128加密。
Zigbee的发展前景
Zigbee技术和RFID技术在2004年就被列为当今世界发展最快,市场前景最广阔的十大最新技术中的两个。
关于这方面的报道,你只需在XX,或GOOGLE搜索栏中键入“Zigbee”,你就会看到大量的有关报道。
总之,今后若干年,都将是Zigbee技术飞速发展的时期。
Zigbee技术在我国的应用情况
尽管,国内不少人已经开始关注Zigbee这们新技术,而且也有不少单位开始涉足Zigbee技术的开发工作,然而,由于Zigbee本身是一种新的系统集成技术,应用软件的开发必须和网络传输,射频技术和底层软硬件控制技术结合在一起。
因而深入理解这个来自国外的新技术,再组织一个在这几个方面都有丰富经验的配套的队伍,本身就不是一件容易的事情,因而,到目前为止,国内目前除了成都西谷曙光数字技术有限公司,真正将Zigbee技术开发成产品,并成功地用于解决几个领域的实际生产问题而外,尚未见到其它报道。
Zigbee和现有移动网(GPRS,CDMA-1X)的比较
1.无网络使用费:
使用移动网需要长期支付网络使用费,而且是按节点终端的数量计算的,而Zigbee没有这笔费用;
2.设备投入低:
使用移动网需要购买移动终端设备,每个终端的价格在人民币1000元上下,而使用Zigbee网络,不仅Zigbee网络节点模块(相当于基站)费用每只人民币不到1000元,而且,主要使用的网络子节点(相当于手机)的价格还要低得多;
3.通信更可靠:
由于现有移动网主要是为手机通信而设计的,尽管CDMA-1X和GPRS可以进行数据通信,但实践发现,不仅通信数率比设计速率低很多,而且数据通信的可靠信也存在一定的问题。
而Zigbee网络则是专门为控制数据的传输而设计的,因而控制数据的传输具有相当的保证。
4.高度的灵活性和低成本:
首先,通过使用覆盖距离不同,功能不同的Zigbee网络节点,以及其它非Zigbee系统的低成本的无线收发模块,建立起一个Zigbee局部自动化控制网,(这个网络可以是星型,树状,网状及其共同组成的复合网结构)再通过互联网或移动网与远端的计算机相连,从而实现低成本,高效率的工业自动化遥测遥控;
5.比起现有的移动网来,尽管Zigbee仅仅只是一个局域网,覆盖区域有限,但它却可以与现有的移动网,互联网和其它通信网络相连接,将许多Zigbee局域网相互连成为一个整体。
有效的解决移动网的盲区覆盖问题:
我们知道,现有移动网络在许多地方存在盲区,特别是铁路,公路,油田,矿山等野外,更是如此。
而增加一个移动基站或直放站的费用是相当可观的,此时使用Zigbee网络进行盲区覆盖不仅经济有效,而且往往是现在唯一可行手段。
Zigbee与现有数传电台的比较
1.可靠性高:
由于Zigbee模块的集成度远比一般数传电台高,分离元器件少,因而可靠性更高;
2.使用方便安全:
因为集成度高,比起一般数传电台来,Zigbee收法模块体积可以做得很小,而且功耗低,例如成都西谷公司远距离传输模块(2-5公里),最大发射电流比一个CDMA手机还要小许多,因而很容易集成或直接安放在到设备之中,不仅使用方便,而且在户外使用时,不容易受到破坏;
3.抗干扰力强,保密性好,误码率低:
Zigbee收发模块使用的是2.4G直序扩频技术,比起一般FSK,ASK和跳频的数传电台来,具有更好的抗干扰能力,和更远的传输距离;
参阅我们网站中有关CDMA直序扩频技术的优越性讨论,和Cypress公司有关实验报道。
4.免费频段:
Zigbee使用的是免费频段,而许多数传电台所使用的频段不仅需要申请,而且每年都需要向国家无委会交纳相当的频率使用费。
5.价格低:
Zigbee数传模块的价格只有具有类似功能的数传电台的几分之一;
(2.4G,250kps,3-5公里距离DSSS数传模块每只不到200元人民币)
提供低成本,高可靠性的无线数传互联网平台(包括软件和硬件),以及相关技术支持,以满足不同客户的具体需要,就是我们的服务宗旨。
学习Zstack之1
Zstack情况:
本人采用的是TI的Zstack1.4.3协议,据说这个需要IAR7.30B及以上版本,而目前市面上又没有破解,所以用的人很少,这也是我的机会!
呵呵!
(傻笑有点多,关键是WORD里没有表情符号,不能正常表达我此时的心情!
)
正式开始:
开始之前在说一句:
从TI网站上下载的Zstack的方法就不介绍了。
否则就是从-1开始了而不是从0开始了-----------------我是这么觉得的!
第一步:
安装Zstack
从TI官方网站上下载的Zstack为:
swrc072c.zip,我想这个压缩包大家都认识。
解压之后为:
ZStack-CC2430-1.4.3.exe文件。
这个安装文件大家都会了。
默认安装路径为:
C:
\TexasInstruments\ZStack-1.4.3。
安装之后在C:
\TexasInstruments\ZStack-1.4.3目录下有各PDF文档为:
GettingStartedGuideCC2430.pdf,不用多说,这个肯定是要看的。
既然把它放到这么前面,说明它是入门中的入门文档。
下面就简单介绍下这个文档:
1、介绍了安装ZStack-CC2430-1.4.3.exe需要的硬件软件条件:
需要电脑、操作系统为Windows2000或WindowsXP。
至于更高或更低版本的本人没有尝试。
2、讲了安装流程。
这个有点多余了,这年月哪个有电脑的没有安装上百上千次的软件啊?
但是需要强调的是安装路径----默认就好!
3、接下来就是让我们看的第一个文档为:
Start->
Programs->
TexasInstruments->
ZStack-1.4.3->
Z-StackUser’sGuide,
既然让我看我就来看看这个文档!
!
第二步:
Z-Stack用户指导
这个文档的更新时间为:
2007年12月21日----应该还是比较新的版本。
由于本人英文的却有限,就不翻译了,浏览一遍,把大概意思说下就可以了:
1、介绍
1.1、适用范围
本文档适用于CC2430ZigBee开发板----CC2430ZDK。
2、产品包描述(TI提供的CC2430ZDK工具包)
2.1、安装包内容
这个就是上面提到的的ZStack-CC2430-1.4.3.exe安装之后的所有内容了。
说白了就是包含Zstack开发所需要的所有软件和文档资料等。
2.2、开发板介绍
两块SmartRF04EB评估版,每个都可以用于CC2430EM评估模块。
如图1-1所示:
Figure1:
ChipconSmartRF04EBEvaluationBoardwithCC2430EM
5块CC2430DB评估板,如图1-2所示:
Figure2:
ChipconCC2430DBDevelopmentBoard
10个SOC_BB评估板,每个都可以用于CC2430EM或CC2431EM。
如图1-3所示:
Figure3:
ChipconSOC_BBBatteryBoard
2.3、电缆
也就是包含开发包所需要的电缆,如RS232串口线,USB线等等附属配件。
3、安装配置
3.1、主机配置
一台个人计算机----也就是电脑哈。
我想玩嵌入式的应该都有,而现今不过时的配置就可以:
下面是最低配置
.NET1.1架构
WindowsXPServicePack1(i如果是WindowsXP)
1个串口(也就是RS232接口)s
1USB接口
个人认为要求已经相当低了,如果你的电脑没有这配置,个人强烈建议马上扔掉!
不过如今笔记本电脑很少有串口的,所以建议使用台式电脑,而且装机的时候一定要把串口引出,否则就比较麻烦了!
3.2、目标板需求
其实也是开发环境需求---IAREW8051。
目前需要的版本为7.30B及以上。
要求还是比较高的,因为目前这个版本没有破解的。
但是在
4、产品安装过程
4.1、安装Z-Stack
这个也就是安装ZStack-CC2430-1.4.3.exe的过程。
4.2、IAR安装
一般来说安装选择默认路径,但是自定义路径也不会出问题的。
注意IAR版本7.30B及以上版本才可以运行1.4.3协议。
4.3、设备IEEE地址
每个CC2430DB,CC2430EM,和CC2431EM都已经排列了一个唯一的64位物理地址(IEEE地址),这个地址已经写到了CC2430内部FLASH里面,在CC2430DB,CC2430EM,和CC2431EM板的底部有这个地址标签。
这个地址被写入到FLASH的0x1FFF8地址中,注意这个地址也可以更改的,通过些FLASH软件,一般0xFFFFFFFFFFFFFFFF地址被认为是无效地址。
5、配置并试用Z-Stack
5.1、配置Z-Stack
这个详见5.3节。
5.2、逻辑类型
这里主要是介绍了ZIGBEE协议中的三种设备类型:
ZigBee协调者(ZC):
这个设备被配置为初始化并建立一个PAN网络
ZigBee路由器(ZR):
该设备被配置为加入一个存在的网络,可以加入一个协调求或路由器,然后允许其他设备加入它,在网络中路有数据信息。
ZigBee终端节点(ZED):
该设备被配置为加入一个存在的网络,可以加入一个协调求或路由器。
5.3、建立样品应用设备:
SampleApp
基本上就是采用SampleApp应用中的Demo例子来演示整个流程,就是采用一个协调器和一个或多个路由器来形成一个ZigBee网络演示。
在该例子中主要通过SmartRF04EB板上的某些跳线来完成设备类型的选型,当然这个方法在程序中是需要判断哪个按键被拉低或拉高,对于做个设计的来说应该是相当好理解的。
申明:
由于本人很穷,所以没钱买TI原装开发包,当然也就没有上面提到的硬件,本人采用的是某家公司(为了避免广告,这里就不说明了)的硬件系统。
5.4、建立一个SampleLight协调器设备
至于提到的硬件连接这里一律省略。
无疑:
首先要打开对应工程,如图1-4所示:
图1-4
在工作窗口中选择DemoEB,如图1-5所示:
图1-5
然后选择工程菜单(Project)下的全部编译(RebuildAll)选项,如图1-6所示:
图1-6
然后选择工程菜单(Project)下的调试(Debug)选项,如图1-7所示:
图1-7
下载完之后就可以退出调试状态,通过选中调试菜单下的停止调试选项,如图1-8所示:
图1-8
按照此种方法下载至少两个CC2430EM模块,就可以进行Demo演示了。
6、Z-Stack示范
略
至于详细的示范流程,这里先不说了,因为本人采用的硬件与原装有点差异,即使按照这个方法下载仍然不能演示,因为我这个不能用跳线来选择设备类型。
所以我必须进入程序把跳线判断程序进行简单必要的修改才能演示。
该文档介绍的演示结果及现象都是基于CHIPCON原厂评估板。
7.PanID和通道(Channel)选择
ZigBee协议规范规定,一个14位的个域网标志符(PANID)来标识唯一的一个网络。
Z-Stack可以用两种方式由用户自己选择其PANID,当ZDAPP_CONFIG_PAN_ID值设置不为0xFFFF时,那么设备建立或加入网络的PANID由ZDAPP_CONFIG_PAN_ID指定;
如果设置ZDAPP_CONFIG_PAN_ID为0xFFFF;
那么设备就将建立或加入它发现网络中的“最好”的网络。
关于这里提到的“最好”的网络,我觉得可能是有些参数评估,只不过这里没有详细的介绍,在后续文档中应该有介绍的。
在2.4G频段上,IEEE802.15.4/ZIGBEE规范规定了16各频道。
用户可以通过选择DEFAULT_CHANLIST不同的值可以选择不同的频道,其频道如图1-9所示。
改协议默认频道为0xB及0x00000800。
图1-9
DEFAULT_CHANLIST和ZDAPP_CONFIG_PAN_ID都作为IARIDE中的编译选项可以进行设置,在应用文件中的…\Projects\Tools\CC2430DB目录下的f8wConfig.cfg文件中有相应设置,如图1-10所示。
图1-10
学习Zstack之2
上节基本上初步认识了Zstack的一些情况,今天继续我的学习,打开Sample例子看看,究竟ZIGBEE是怎么回事。
毫无疑问:
如果是第一次打开这个例子工程,肯定很迷糊,因为此时我迷糊了。
对图2-1我简直是相当迷糊。
图2-1
这么多文件夹,打开之后又有那么多文件,从何看起?
不要着急,特别是有些人拿到之后,啥都不知道的人第一个问题就是:
我要实现XXX,在哪修改或者在哪添加我的函数呢?
凡是我遇到这样的客户,我就可以肯定他技术部咋的。
就连我这个外行都知道,不把这些弄明白,就是实现XXX只需要修改一个字母,那也不知道在哪改啊?
所以我不急,但是我也理解很多客户,因为有时候项目催的比较急,毕竟老板都是外行嘛!
两条路:
1就是先看主函数,2就是看看TI提供例子说明文档没有。
我这里先看看主函数再说哈!
因为我就知道从主函数看起.
没办法大概每个文件夹找啊,主函数的特征还是比较明明显的,见图2-2所示:
图2-2
下面把主函数复制过来简单看下:
ZSEGintmain(void)
{
//Turnoffinterrupts------------关闭中断
osal_int_disable(INTS_ALL);
//InitializeHAL-----------初始化HAL,关于HAL是什么我想后面会有介绍的。
HAL_BOARD_INIT();
//Makesuresupplyvoltageishighenoughtorun----电压检测,最好是能保证芯片能正常工作的电压
zmain_vdd_check();
//Initializestackmemory-------------初始化stack存储区
zmain_ram_init();
//InitializeboardI/O------------初始化板载IO
InitBoard(OB_COLD);
//InitialzeHALdrivers-------------初始化HAL驱动
HalDriverInit();
//InitializeNVSystem--------------初始化NV系统,NV是什么后面我想也会有介绍的
osal_nv_init(NULL);
//Determinetheextendedaddress------------确定扩展地址(64位IEEE/物理地址)
zmain_ext_addr();
//InitializebasicNVitems----------------初始化基本NV条目
zgInit();
//InitializetheMAC----------------初始化MAC
ZMacInit();
#ifndefNONWK
//SincetheAFisn'
tatask,callit'
sinitializationroutine
afInit();
#endif
//Initializetheoperatingsystem----------初始化操作系统,看样子这里面还有OS,麻烦了……..!
osal_init_system();
//Allowinterrupts-------------允许中断
osal_int_enable(INTS_ALL);
//Finalboardinitialization------------------最后的版在初始化
InitBoard(OB_READY);
//Displayinformationaboutthisdevice---------------显示设备信息
zmain_dev_info();
/*DisplaythedeviceinfoontheLCD*/------------液晶支持显示
#ifdefLCD_SUPPORTED
zmain_lcd_init();
osal_start_system();
//NoReturnfromhere-------------------这里没有返回,大概是进入OS了。
}//main()
可以看到基本上都是初始化函数,因为函数名称都基本上带了init字样的,呵呵,个人觉得TI的变成习惯比我好,一看名称就知道大概功能了。
所以这里也奉劝各位像我这样菜鸟级的初学者,一开始一定就要养成规范化编程的习惯,据说这样维护以及以后升级或者移植兼容性都比较好。
我就先不管各个初始化函数是怎么实现的,我先看看各个功能是什么,现掌握整体功能在细化,我觉得这样的学习方法比较好,因为代码是在太多了,从一开始就逐句看,我敢保证没几个人有耐心看完看明白!
幸好每个初始化函数都有一句说明,虽然是英文的,但是理解起来一点都不难的。
关于每个函数的功能我就直接写在上面的程序里面,节省纸张哈!
一句话:
主函数的功能就是初始化!
主函数看完了又开始模糊了,又从何看起呢?
在无从下手之际,只有去寻求TI说明文档的帮助了。
上节不是漏掉了内容,是关于演示结果的,这里做上补充,怕因为缺调一点后面遇到什么不理解的就惨了!
Sample例子演示演示现象:
1、认识硬件------------按键和LED
上节提到了EM和DB两个板子,其硬件是不一样的。
按键EM就有5各SW1~SW5,而DB只有1各方向键,但是他们有个对应关系,如图2-3所示.
图2-3
LED数量和颜色也不一样,EM有四个LED,如图2-4;
而DB只有两个,如图2-5。
如图2-4
如图2-5
关于上面几个图2-4/5中出现的LEDx实际上是程序中出现的关键字。
2、初始化64位IEEE地址
实际上在主函数中有这么个初始化函数的:
zmain_ext_addr()。
这里说如果地址复位为0xFFFFFFFFFFFFFFFF的话,那么就会不停的闪烁LED1,一直等到按键SW5按下后程序才能继续运行,意思就是说按下SW5后就把无效的地址初始化为有效地物理地址了,这个应该是程序上实现的,那么就来看看对应的程序zmain_ext_addr。
/*********************************************************************
*@fnzmain_ext_addr
*@briefMakesextendedaddressifnoneexists.确定扩展地址是有效的
*@returnnone
*********************************************************************/
staticZSEGvoidzmain_ext_addr(void)
uint8i;
uint8led;
uint8tmp;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ZigBee 学习 笔记
![提示](https://static.bdocx.com/images/bang_tan.gif)