zigbee入门经典Word格式文档下载.docx

上传人:b****7 文档编号:22488656 上传时间:2023-02-04 格式:DOCX 页数:52 大小:246.48KB
下载 相关 举报
zigbee入门经典Word格式文档下载.docx_第1页
第1页 / 共52页
zigbee入门经典Word格式文档下载.docx_第2页
第2页 / 共52页
zigbee入门经典Word格式文档下载.docx_第3页
第3页 / 共52页
zigbee入门经典Word格式文档下载.docx_第4页
第4页 / 共52页
zigbee入门经典Word格式文档下载.docx_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

zigbee入门经典Word格式文档下载.docx

《zigbee入门经典Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《zigbee入门经典Word格式文档下载.docx(52页珍藏版)》请在冰豆网上搜索。

zigbee入门经典Word格式文档下载.docx

但是需要强调的是安装路径----默认就好!

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:

// 

:

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模板 > 卡通动漫

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1