zigbee入门经典Word格式文档下载.docx
- 文档编号:22488656
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:52
- 大小:246.48KB
zigbee入门经典Word格式文档下载.docx
《zigbee入门经典Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《zigbee入门经典Word格式文档下载.docx(52页珍藏版)》请在冰豆网上搜索。
但是需要强调的是安装路径----默认就好!
3、接下来就是让我们看的第一个文档为:
Start->
Programs->
TexasInstruments->
ZStack-1.4.3->
Z-StackUser’sGuide,
第二步:
Z-Stack用户指导
这个文档的更新时间为:
2007年12月21日----应该还是比较新的版本。
由于本人英文的却有限,就不翻译了,浏览一遍,把大概意思说下就可以了:
1、介绍
1.1、适用范围
本文档适用于CC2430开发板(具体的板子不同也会有差别)
2、产品包描述
2.1、安装包内容
这个就是上面提到的的ZStack-CC2430-1.4.3.exe安装之后的所有内容了。
说白了就是包含Zstack开发所需要的所有软件和文档资料等。
2.2、开发板介绍
C51RF-M套件,由一个网管,4个电池板(节点)组成一个zigbee硬件系统,当然了,还需要仿真板子,USB下载线,这样就OK了,可以玩zigbee了。
2.3、电缆
也就是包含开发包所需要的电缆,如RS232串口线,USB线等等附属配件。
3、安装配置
3.1、主机配置
一台个人计算机,含有串口,USB接口就ok了
3.2、目标板需求
其实也是开发环境需求---IAREW8051。
目前需要的版本为7.30B及以上。
要想开发好点的话,就要弄一点上位机软件来配套使用,Z-TOOLS等(我就用了无线龙公司的C51RF-WSN监控软件V3.00)
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地址),这个地址通过软件SmartRF04FlashProgrammer已经写到了CC2430内部FLASH里面,用户也可以修改的,这个地址被写入到FLASH的0x1FFF8地址中,注意这个地址也可以更改的,通过些FLASH软件,一般xFFFFFFFFFFFFFFFF地址被认为是无效地址。
5、配置并试用Z-Stack
5.1、配置Z-Stack
这个详见5.3节。
5.2、逻辑类型
这里主要是介绍了ZIGBEE协议中的三种设备类型:
ZigBee协调者(ZC):
这个设备被配置为初始化并建立一个PAN网络(注意PANID的分配)
ZigBee路由器(ZR):
该设备被配置为加入一个存在的网络,可以加入一个协调求或路由器,
然后允许其他设备加入它,在网络中路有数据信息。
ZigBee终端节点(ZED):
该设备被配置为加入一个存在的网络,可以加入一个协调求或路由器。
5.3、建立样品应用设备:
SampleApp
基本上就是采用SampleApp应用中的例子来演示整个流程,就是采用一个协调器和一个或多个路由器来形成一个ZigBee网络演示。
在该例子中主要通过我手中的一套C51RF-M套件来完成,配合一点外围设备。
5.4、建立一个SampleLight协调器设备
首先要打开对应工程,C:
\TexasInstruments\ZStack-1.4.3-1.2.1\Projects\zstack\Samples\SampleApp\CC2430DB
\SampleApp,在工作窗口中选择CoordinatorEB,然后选择工程菜单(Project)下的全部编译(RebuildAll)选项,
然后选择工程菜单(Project)下的调试(Debug)选项,下载完之后就可以退出调试状态,通过选中调试菜单下的停止调试选项,按照此种方法下载至少两个RouterEB模块,就可以进行演示了。
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不同的值可以选择不同的频道,其频道如下所示。
改协议默认-DDEFAULT_CHANLIST=0x00000800
//11-0x0B
/*DefaultchannelisChannel11-0x0B*/
//Channelsaredefinedinthefollowing:
//
0
:
868MHz
0x00000001
1-10:
915MHz
0x000007FE
11-26:
2.4GHz
0x07FFF800
//
//-DMAX_CHANNELS_868MHZ
//-DMAX_CHANNELS_915MHZ
//-DMAX_CHANNELS_24GHZ
//-DDEFAULT_CHANLIST=0x04000000//26-0x1A
//-DDEFAULT_CHANLIST=0x02000000//25-0x19
//-DDEFAULT_CHANLIST=0x01000000//24-0x18
//-DDEFAULT_CHANLIST=0x00800000//23-0x17
//-DDEFAULT_CHANLIST=0x00400000//22-0x16
//-DDEFAULT_CHANLIST=0x00200000//21-0x15
//-DDEFAULT_CHANLIST=0x00100000//20-0x14
//-DDEFAULT_CHANLIST=0x00080000//19-0x13
//-DDEFAULT_CHANLIST=0x00040000//18-0x12
//-DDEFAULT_CHANLIST=0x00020000//17-0x11
//-DDEFAULT_CHANLIST=0x00010000//16-0x10
//-DDEFAULT_CHANLIST=0x00008000//15-0x0F
//-DDEFAULT_CHANLIST=0x00004000//14-0x0E
//-DDEFAULT_CHANLIST=0x00002000//13-0x0D
//-DDEFAULT_CHANLIST=0x00001000//12-0x0C
-DDEFAULT_CHANLIST=0x00000800
/*DefinethedefaultPANID.
*Settingthistoavalueotherthan0xFFFFcauses
*ZDO_COORDtousethisvalueasitsPANIDand
*RoutersandenddevicestojoinPANwiththisID
*/
//-DZDAPP_CONFIG_PAN_ID=0xFFFF
-DZDAPP_CONFIG_PAN_ID=0xFFFF
DEFAULT_CHANLIST和ZDAPP_CONFIG_PAN_ID都作为IARIDE中的编译选项可以进行设置,在应用文件中的…\Projects\Tools\CC2430DB目录下的f8wConfig.cfg文件中有相应设置。
学习ZigBee入门-2
51
Sample例子演示
上节基本上初步认识了Zstack的一些情况,今天继续我的学习,打开Sample例子看看,究竟ZIGBEE是怎么回事。
毫无疑问:
如果是第一次打开这个例子工程,肯定很迷糊,因为此时我迷糊了。
很多的文件夹,很多层,这么多文件夹,打开之后又有那么多文件,从何看起?
不要着急,特别是有些人拿到之后,啥都不知道的人第一个问题就是:
我要实现XXX,在哪修改或者在哪添加我的函数呢?
凡是我遇到这样的客户,我就可以肯定他技术部咋的。
就连我这个外行都知道,不把这些弄明白,就是实现XXX只需要修改一个字母,那也不知道在哪改啊?
所以我不急,但是我也理解很多客户,因为有时候项目催的比较急,毕竟老板都是外行嘛!
两条路:
1就是先看主函数,2就是看看TI提供例子说明文档没有。
我这里先看看主函数再说哈!
因为我就知道从主函数看起.没办法大概每个文件夹找啊,主函数的特征还是比较明明显的。
下面把主函数复制过来简单看下:
ZSEGintmain(void)
{
//Turnoffinterrupts--关闭中断
osal_int_disable(INTS_ALL);
//InitializeHAL
--初始化HAL(硬件相关的)
HAL_BOARD_INIT();
//Makesuresupplyvoltageishighenoughtorun--电压检测,最好是能保证芯片能正常工作的电压
zmain_vdd_check();
//Initializestackmemory--初始化stack存储区
zmain_ram_init();
//InitializeboardI/O
--初始化板载的IO口
InitBoard(OB_COLD);
//InitialzeHALdrivers
--初始化HAL驱动
HalDriverInit();
//InitializeNVSystem
--初始化NV条目
osal_nv_init(NULL);
//Determinetheextendedaddress决定长地址
zmain_ext_addr();
//InitializebasicNVitems--初始化NV系统
zgInit();
//InitializetheMAC
--初始化MAC层
ZMacInit();
#ifndefNONWK
//SincetheAFisn'
tatask,callit'
sinitializationroutine
afInit();
#endif
#ifdefLCD_SUPPORTED
HalLcdInit();
//Initializetheoperatingsystem--初始化操作系统
osal_init_system();
//Allowinterrupts
--允许中断
osal_int_enable(INTS_ALL);
//Finalboardinitialization
--在初始化板子
InitBoard(OB_READY);
//HalLcdInit();
//Displayinformationaboutthisdevice显示设备信息
zmain_dev_info();
/*DisplaythedeviceinfoontheLCD*/
zmain_lcd_init();
osal_start_system();
//NoReturnfromhere没有反映了,进入OS操作系统了
}//main()
可以看到基本上都是初始化函数,因为函数名称都基本上带了init字样的,呵呵,个人觉得TI的变成习惯比我好,一看名称就知道大概功能了。
所以这里也奉劝各位像我这样菜鸟级的初学者,一开始一定就要养成规范化编程的习惯,据说这样维护以及以后升级或者移植兼容性都比较好。
我就先不管各个初始化函数是怎么实现的,我先看看各个功能什么,现掌握整体功能在细化,我觉得这样的学习方法比较好,因为代码是在太多了,从一开始就逐句看,我敢保证没几个人有耐心看完看明白!
幸好每个初始化函数都有一句说明,虽然是英文的,但是理解起来一点都不难的。
关于每个函数的功能我就直接写在上面的程序里面,节省纸张哈!
一句话:
主函数的功能就是初始化!
主函数看完了又开始模糊了,又从何看起呢?
在无从下手之际,只有去寻求TI说明文档的帮助了。
上节不是漏掉了内容,是关于演示结果的,这里做上补充,怕因为缺调一点后面遇到什么不理解的就惨了!
Sample例子演示演示现象:
1、认识硬件------------按键和LED
上节提到了EM和DB两个板子,其硬件是不一样的。
按键的定义---hal_key.h中,具体的功能定义在hal_key.c中
/-------------------hal_key.h---------------------/
/*Interruptoption-Enableordisable*/
#defineHAL_KEY_INTERRUPT_DISABLE
0x00//--禁止中断
#defineHAL_KEY_INTERRUPT_ENABLE
0x01//--中断使能
/*Keystate-shiftornornal*/
#defineHAL_KEY_STATE_NORMAL
0x00
#defineHAL_KEY_STATE_SHIFT
0x01
/*Switches(keys)*/
#defineHAL_KEY_SW_10x01//Joystickup
#defineHAL_KEY_SW_20x02//Joystickright
#defineHAL_KEY_SW_50x04//Joystickcenter
#defineHAL_KEY_SW_40x08//Joystickleft
#defineHAL_KEY_SW_30x10//Joystickdown
#defineHAL_KEY_SW_60x20//ButtonS1ifavailable
#defineHAL_KEY_SW_70x40//ButtonS2ifavailable
/*Joystick*///---游戏杆
#defineHAL_KEY_UP
0x01
//Joystickup
#defineHAL_KEY_RIGHT0x02
//Joystickright
#defineHAL_KEY_CENTER0x04//Joystickcenter
#defineHAL_KEY_LEFT
0x08
//Joystickleft
#defineHAL_KEY_DOWN
0x10//Joystickdown
//--------------------hal_key.c-----------------------------//
#defineHAL_KEY_DEBOUNCE_VALUE25//--去抖动值
#defineHAL_KEY_POLLING_VALUE
100
//--查询值
#ifdefined(HAL_BOARD_CC2430EB)||defined(HAL_BOARD_CC2430BB)//--EB/BBP0.6
#defineHAL_KEY_SW_6_ENABLE
#defineHAL_KEY_SW_6_PORT
P0
/*PortlocationofSW1*/
#defineHAL_KEY_SW_6_BIT
HAL_KEY_BIT1
/*BitlocationofSW1*///--SW1
#defineHAL_KEY_SW_6_SEL
P0SEL
/*PortSelectRegisterforSW1*/
#defineHAL_KEY_SW_6_DIR
P0DIR
/*PortDirectionRegisterforSW1*/
#defineHAL_KEY_SW_6_IEN
IEN1
/*InterruptEnableRegisterforSW1*/
#defineHAL_KEY_SW_6_IENBIT
HAL_KEY_BIT5
/*InterruptEnablebitforSW1*/
#defineHAL_KEY_SW_6_EDGE
HAL_KEY_RISING_EDGE
/*TypeofinterruptforSW1*/
#defineHAL_KEY_SW_6_EDGEBITHAL_KEY_BIT0
/*EdgeTypeenablebitSW1*/
#defineHAL_KEY_SW_6_ICTL
PICTL
/*PortInterruptControlforSW1*/
#defineHAL_KEY_SW_6_ICTLBITHAL_KEY_BIT3
/*InterruptenablebitforSW1*/
#defineHAL_KEY_SW_6_PXIFG
P0IFG
/*PortInterruptFlagforSW1*/
#defineHAL_KEY_P0INT_LOW_USED
HAL_KEY_SW_6_BIT
/*P0canonlybeenabled/disabledasgroupofhighorlownibble*/
#endif
//--注意条件编译的灵活使用
#ifdefined(HAL_BOARD_CC2430BB)//--BB
#defineHAL_KEY_POINT_HIGH_USED0
#ifdefined(HAL_BOARD_CC2430EB)//--EB
#defineHAL_KEY_JOYSTICK_ENABLE
#defineHAL_KEY_JOY_CHN
HAL_ADC_CHANNEL_6
//--ADC采样的通道6
#defineHAL_KEY_SW_5_ENABLE
#defineHAL_KEY_SW_5_PORT
/*PortlocationofSW5*/
#defineHAL_KEY_SW_5_BIT
/*BitlocationofSW5*/
#defineHAL_KEY_SW_5_SEL
/*PortSelectRegisterforSW5*/
#defineHAL_KEY_SW_5_DIR
/*PortDirectionRegisterforSW5*/
#defineHAL_KEY_SW_5_INP
P0INP
/*PortInputModeRegisterforSW5*/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- zigbee 入门 经典