文档库 最新最全的文档下载
当前位置:文档库 › zigbee z-stack如何添加自己的新任务

zigbee z-stack如何添加自己的新任务

zigbee z-stack如何添加自己的新任务
zigbee z-stack如何添加自己的新任务

进行的,讲的真不错https://www.wendangku.net/doc/6516064930.html,/viewthread.php?tid=89&from=indexheats

下一次要自己加以个发上来

在Zstack(TI的Zigbee协议栈)中,对于每个用户自己新建立的任务通常需要两个相关的处理函数,包括:

(1).用于初始化的函数,如:SampleApp_Init(), 这个函数是在osalInitTasks()这个osal(Zstack中自带的小操作系统)中去调用的,其目的就是把一些用户自己写的任务中的一些变量,网络模式,网络终端类型等进行初始化;

(2).用于引起该任务状态变化的事件发生后所需要执行的事件处理函数,如:

SampleApp_ProcessEvent(),这个函数是首先在const pTaskEventHandlerFn tasksArr[ ] 中进行设置(绑定),然后在osalInitTasks()中如果发生事件进行调用绑定的事件处理函数.

在Zstack(TI的Zigbee协议栈)中,对于每个用户自己新建立的任务通常需要两个相关的处理函数,包括:

(1).用于初始化的函数,如:SampleApp_Init(), 这个函数是在osalInitTasks()这个osal(Zstack中自带的小操作系统)中去调用的,其目的就是把一些用户自己写的任务中的一些变量,网络模式,网络终端类型等进行初始化;

(2).用于引起该任务状态变化的事件发生后所需要执行的事件处理函数,如:

SampleApp_ProcessEvent(),这个函数是首先在const pTaskEventHandlerFn tasksArr[ ] 中进行设置,然后在osalInitTasks()中如果发生事件进行调用绑定的事件处理函数.

下面分3个部分分析.

1.用户自己设计的任务代码在Zstack中的调用过程

(1).main() 执行(在ZMain.c中)

main() ---> osal_init_system()

(2). osal_init_system()调用osalInitTasks(), (在OSAL.c中)

osal_init_system() ---> osalInitTasks()

(3). osalInitTasks()调用SampleApp_Init() , (在OSAL_SampleApp.c中) osalInitTasks() ---> SampleApp_Init()

在 osalInitTasks()中实现了多个任务初始化的设置,其中

macTaskInit( taskID++ )到ZDApp_Init( taskID++ )的几行代码表示对于几个系统运行初始化任务的调用,而用户自己实现的SampleApp_Init()在最后,这里

taskID随着任务的增加也随之递增.所以用户自己实现的任务的初始化操作应该在osalInitTasks()中增加.

void osalInitTasks( void )

{

uint8 taskID = 0;

//这里很重要, 调用osal_mem_alloc()为当前OSAL中的各任务分配存储空间

//(实际上是一个任务数组),并用tasksEvents指向该任务数组(任务队列).

tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt);

/将taskSEvents所指向的空间清零

osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt));

macTaskInit( taskID++ );

nwk_init( taskID++ );

Hal_Init( taskID++ );

#if defined( MT_TASK )

MT_TaskInit( taskID++ );

#endif

APS_Init( taskID++ );

ZDApp_Init( taskID++ );

SampleApp_Init( taskID ); //用户自己需要添加的任务

}

2.任务处理调用的重要数据结构

这里要解释一下,在Zstack里,对于同一个任务可能有多种事件发生,那么需要执行不同的事件处理,为了方便,对于每个任务的事件处理函数都统一在一个处理函数中实现,然后根据任务的ID号(task_id)和该任务的具体事件(events)调用某个任务的总事件处理函数,进入了该任务的总事件处理函数之后,再根据events再来判别是该任务的哪一种事件发生,进而执行相应的事件处

理.pTaskEventHandlerFn 是一个指向函数(事件处理函数)的指针,这里实现的

每一个数组元素各对应于一个任务的事件处理函数,比如

SampleApp_ProcessEvent对于用户自行实现的事件处理函数uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events ),所以这里如果我们实现了一个任务,还需要把实现的该任务的事件处理函数在这里添加.

const pTaskEventHandlerFn tasksArr[] = {

macEventLoop,

nwk_event_loop,

Hal_ProcessEvent,

#if defined( MT_TASK ) //一个MT任务命令

MT_ProcessEvent,

#endif

APS_event_loop,

ZDApp_event_loop,

SampleApp_ProcessEvent

};

注意, tasksEvents和tasksArr[]里的顺序是一一对应的, tasksArr[]中的第i个事件处理函数对应于tasksEvents中的第i个任务的事件.

//计算出任务的数量

const uint8 tasksCnt = sizeof( tasksArr ) / sizeof( tasksArr[0] );

uint16 *tasksEvents;

3. 对于不同事件发生后的任务处理函数的调用

osal_start_system() 很重要,决定了当某个任务的事件发生后调用对应的事件处理函数

void osal_start_system(void)

{

#if !defined ( ZBIT )

for(;;) // Forever Loop

#endif

{

uint8 idx = 0;

Hal_ProcessPoll(); // This replaces MT_SerialPoll() and

//osal_check_timer().检查时钟

//这里是轮训任务队列,并检查是否有某个任务的事件发生

do {

if (tasksEvents[idx]) // Task is highest priority that is ready. 。、、//这是定义uint16 *tasksEvents; 另外在OSAL_SampleApp中的void

//osalInitTasks( void )中已经这样定义过tasksEvents = (uint16

//*)osal_mem_alloc( sizeof( uint16 ) * tasksCnt);是数组,不同的id对应的存着不//同的任务的事件

{

break;

}

} while (++idx < tasksCnt);

if (idx < tasksCnt)

{

uint16 events;//songjie大名鼎鼎的events居然是一个局部变量,那

//说明把与任务对应的事件传递给相应的任务去处理的调用行为在这个函数中

//就实现了

halIntState_t intState;//typedef unsigned char halIntState_t;

/*

【hal_defs中】#define st(x) do { x } while (__LINE__ == -1)

【hal_mcu中】

#define HAL_ENTER_CRITICAL_SECTION(x) st( x = EA; HAL_DISABLE_INTERRUPTS(); )

#define HAL_EXIT_CRITICAL_SECTION(x) st( EA = x; )

#define HAL_CRITICAL_STATEMENT(x) st( halIntState_t s;

HAL_ENTER_CRITICAL_SECTION(s); x; HAL_EXIT_CRITICAL_SECTION(s); )

#define HAL_ENABLE_INTERRUPTS() st( EA = 1; )

#define HAL_DISABLE_INTERRUPTS() st( EA = 0; )

#define HAL_INTERRUPTS_ARE_ENABLED() (EA)

HAL_ENTER_CRITICAL_SECTION(intState);//这里看出来为什么叫intState了,//因为这里实际代码是(intState=EA;HAL_DISABLE_INTERRUPTS();)EA是总中//断,这里把总中断的状态给了intState.然后关闭中断,防止这里读取任务时//被打断

events = tasksEvents[idx]; //处理该idx的任务事件, 是第idx个任务的事件发生了

tasksEvents[idx] = 0; // Clear the Events for this task.

HAL_EXIT_CRITICAL_SECTION(intState);//这里搞得很老实,把读取任务//事件之前的中断状态有还原回去了,没有做什么操作

//对应调用第idx个任务的事件处理函数,用events说明是什么事件

events = (tasksArr[idx])( idx, events );

//当没有处理完,把返回的events继续放到tasksEvents[idx]当中

HAL_ENTER_CRITICAL_SECTION(intState);

tasksEvents[idx] |= events; // Add back unprocessed events to the current task.

HAL_EXIT_CRITICAL_SECTION(intState);

}

#if defined( POWER_SAVING )

else // Complete pass through all task events with no activity?

{

osal_pwrmgr_powerconserve(); // Put the processor/system into sleep

}

#endif

}

}

Zigbee组网流程——理论

星形网络和树型网络可以看成是网状网络的一个特殊子集,所以接下来分析如何组建一个Zigbee网状网络。组建一个完整的Zigbee网络分为两步:第一步是协调器初始化一个网络;第二步是路由器或终端加入网络。加入网络又有两种方法,一种是子设备通过使用MAC层的连接进程加入网络,另一种是子设备通过与一个先前指定的父设备直接加入网络。 一、协调器初始化网络 协调器建立一个新网络的流程如图1所示。 图1 协调器建立一个新网络 1、检测协调器 建立一个新的网络是通过原语NLME_NETWORK_FORMATION.request发起的,但发起NLME_NETWORK_FORMATION.request原语的节点必须具备两个条件,一是这个节点具有ZigBee协调器功能,二是这个节点没有加入到其它网络中。任何不满足这两个条件的节点发起建立一个新网络的进程都会被网络层管理实体终止,网络层管理实体将通过参数值为INVALID_REQUEST的NLME_NETWORK_FORMATION.confirm的原语来通知上层这是一个非法请求。 2、信道扫描 协调器发起建立一个新网络的进程后,网络层管理实体将请求MAC子层对信道进行扫描。 信道扫描包括能量扫描和主动扫描两个过程。首先对用户指定的信道或物理层所有默认的信道进行一个能量扫描,以排除干扰。网络层管理实体将根据信道能量测量值对信道进行一个递增排序,并且抛弃能量值超过了可允许能量值的信道,保留可允许能量值内

的信道等待进一步处理。接着在可允许能量值内的信道执行主动扫描,网络层管理实体通过审查返回的PAN描述符列表,确定一个用于建立新网络的信道,该信道中现有的网络数目是最少的,网络层管理实体将优先选择没有网络的信道。如果没有扫描到一个合适的信道,进程将被终止,网络层管理实体通过参数仠为STARTUP_FAILURE的NLME_NETWORK_FORMATION.confirm的原语来通知上层初始化启动网络失败。 3、配置网络参数 如果扫描到一个合适的信道,网络层管理实体将为新网络选择一个PAN描述符,该PAN 描述符可以是由设备随机选择的,也可以是在NLME_NETWORK_FORMATION.request里指定的,但必须满足PAN描述符小于或等于0x3fff,不等于0xffff,并且在所选信道内是唯一的PAN描述符,没有任何其它PAN描述符与之是重复的。如果没有符合条件的PAN 描述符可选择,进程将被终止,网络层管理实体通过参数值为STARTUP_FAILURE的NLME_NETWORK_FORMATION.confirm的原语来通知上层初始化启动网络失败。确定好PAN 描述符后,网络层管理实体为协调器选择16位网络地址0x0000,MAC子层的macPANID 参数将被设置为PAN描述符的值,macShortAddress PIB参数设置为协调器的网络地址。 4、运行新网络 网络参数配置好后,网络层管理实体通过MLME_START.request原语通知MAC层启动并运行新网络,启动状态通过MLME_START.confirm原语通知网络层,网络层管理实体再通过NLME_NETWORK_FORMATION.confirm原语通知上层协调器初始化的状态。 5、允许设备加入网络 只有ZigBee协调器或路由器才能通过NLME_PERMIT_JOINING.request原语来设置节点处于允许设备加入网络的状态。当发起这个进程时,如果PermitDuration参数值为0x00,网络层管理实体将通过MLME_SET.request原语把MAC层的macAssociationPermit PIB 属性设置为FALSE,禁止节点处于允许设备加入网络的状态;如果PermitDuration参数值介于0x01和0xfe之间,网络层管理实体将通过MLME_SET.request原语把macAssociationPermit PIB属性设置为TRUE,并开启一个定时器,定时时间为PermitDuration,在这段时间内节点处于允许设备加入网络的状态,定时时间结束,网络层管理实体把MAC层的macAssociationPermit PIB属性设置为FALSE;如果PermitDuration参数的值为0xff,网络层管理实体将通过MLME_SET.request原语把macAssociationPermit PIB属性设置为TRUE,表示节点无限期处于允许设备加入网络的状态,除非有另外一个NLME_PERMIT_JOINING.request原语被发出。允许设备加入网络的流程如图2所示。

基于ZigBee技术的智能家居系统

一、智能家居的背景 从宏观上来讲,事物的每个发展阶段都是当时从业人员认识水平、技术水平、市场认知、原材料成本等几个原因共同作用的结果。每个阶段都会局限于当时的技术水平、市场接受程度等,都会有其无法突破的瓶颈和困难。即便智能家居系统在中国已发展20多年,且经过这么多年的发展,产品、技术已日趋成熟、稳定,但每项技术并不一定都完美无瑕。只要产品或技术处于高速发展中,它必然需要不断地去解决一些技术上或者产品上的问题。智能家居产品未来会还向节能环保,舒适度方面发展。比如冬暖夏凉型建筑,不用空调,由建筑自身的功能去调节温度。而智能家居必须结合这些建筑上的功能去发展,从这个方面来说,必然会推动智能家居的适应性发展。对与现阶段的智能家居来说,没有专用的对讲或智能家居数字处理芯片,无论是技术层面还是集成层面,都只是有所关联。如果能够很好的解决,未来数字对讲将会取得更好的应用。而随着中国城镇化趋势的加剧,大型小区会越来越多,人们对安保的重视程度也会日益加强,将来小区的多个安防子系统在技术上必然会走向综合化、集成化。除此之外,厂家需理性地为各类应用设计解决方案,校正一些过往的虚假概念。只有设计实用性强,性价比高,能适应拓展未来新技术的系统,才能更好地为用户服务。除此之外,各家产品的兼容性也是一个急需解决的问题。目前各厂家的产品均采用自家的协议,无法很好地做到兼容,而不同品牌的可视对讲和智能家居系统如何互连互通也将是今后需突破的难点 二、智能家居系统旨在实现的以下主要功能: (1)可以控制和相应的状态查询,如查询室内和室外的温度,可用于家用电器,如灯一键全开,一键全关,更方便。 (2)在光线方面我们可以依照家庭装修环境背景或者用户的其他层次的要对

基于ZigBee的温度监控系统毕业设计

基于ZigBee的温度监控 系统毕业设计 一、zigbee应用 有了ZigBee的一些技术优势,也谈到了不足之处,目前有些说法把它跟其它他 的无线技术,如Wi-Fi、Bluetooth、RFID、NFC等等进行类比,说某种技术不如另 一种,甚至说某种技术要取代另一种,这样的说法是片面的。作为一种低速率的短距 离无线通信技术,ZigBee有其自身的特点,因此应该有为它量身定做的应用,尽管 在某些应用方面可能和其他技术重叠。下面就来简单看看ZigBee可能的一些应用, 包括智能家庭、工业控制、自动抄表、医疗监护、传感器网络应用和电信应用。 二、系统总体设计 1.系统总体方案 Zigbee的主要优势是低功耗和组网,网络的组建是zigbee不同于其他无线协议 的主要优势所在,一个网络的组建形式决定了整个系统能否畅通,顺利的工作,因此 选择合理的网络结构是非常重要的。 为了实现任意无线节点之间都可以传递信息的目标,在串状连接方式的基础上又 发展了网状连接方式。网状连接方式又称为点到点到点(point-to-point-topoint)方式,它与传统的点到多点连接方式最大的不同是,网状连接方式中的每一个节点都 有无线微处理器,所以无需无线路由器就可以实现与另一节点之间的互连。由于这个 新的网络特征,每个无线节点不仅可以收发信息,还可以自动转发信息到网络中的其 他任意节点。 由于网状连接方式中每个节点的智能化,所以,当网络中任一节点故障时,附近 的无线节点会代替该故障的节点,继续进行信息的传输和转发,从而大大提高了系统 可靠性。同时,由于任意无线节点之间通过无线连接就如接力赛跑一样,信息可以通 过无线节点组成的网络传输到更远的地方。 网状结构如下图

Zigbee组网实验之Sample App

Zigbee组网实验之Sample App https://www.wendangku.net/doc/6516064930.html,/ 佳杰科技开发套件,最便宜、最详细、最好的Zigbee开发套件。 1.实验设备: Q2530SB开发底板(V1.1以上版本)2块 RF2530N射频板2块 天线(非必要,影响传输距离)2根 SmartRF04EB仿真器带USB线和仿真器接头线1个 电池盒有电池一个(负责供电) 2.硬件连接说明 射频板RF2530N分别连接底板Q2530SB 仿真器USB线连接电脑和其中一块底板 电池盒连接另外一块底板、保证系统都正常供电 3.实验步骤及效果 1.打开实验代码:在路径Texas Instruments\ZStack-CC2530- 2. 3.0-1. 4.0\Projects\zstack\ Samples\SampleApp\CC2530DB下鼠标双击打开文件SampleApp.eww 2.在应用层APP文件夹中找到SampleApp.c文件,找到函数SampleApp_HandleKeys并双 击打开。 3.将函数中的代码做以下修改 if ( keys & HAL_KEY_SW_1 ) { /* This key sends the Flash Command is sent to Group 1. * This device will not receive the Flash Command from this * device (even if it belongs to group 1). */ SampleApp_SendFlashMessage( SAMPLEAPP_FLASH_DURATION ); } 改为 if ( keys==0x20 ) { /* This key sends the Flash Command is sent to Group 1. * This device will not receive the Flash Command from this * device (even if it belongs to group 1).

基于zigbee智能家居控制系统的设计2

基于Zigbee的智能家居控制系统的设计 王超,高峰,姜洋 (东北石油大学电气信息工程学院黑龙江大庆163318) 摘要:本文是基于Zigbee技术,采用CC2430模块构成传输网络,与中心控制板STM32之间进行2.4GHz的无线通信。控制板由STM32驱动触屏显示器,由编制的GUI(用户自定义)界面,使用户简单方便的对家具环境进行控制与监视。可增加WIFI(无线路由)上网功能实现远程控制功能等,具有良好的可扩展性。 关键字:Zigbee;触屏控制板;STM32;WIFI; Design of Smart-home System Based on Zigbee Wangchao,Gaofeng,Jiangyang (Department of Electrical Information Engineering, Northeast Petroleum University, Daqing, Heilongjiang ,China,163318) Abstract:This paper is based on Zigbee technology, using the 2.4GHz wireless communication between CC2430 module transmission network and center panel STM32. Panel STM32 drive by touch screen display, compiled by the GUI interface and the user is simple and easy to control the furniture with the monitoring environmental. It also can increase the WIFI Internet function to make the remote control function come true, It has good expansibility. Keyword:Zigbee;touch-screen-panel;STM32;WIFI; 1引言 现代科技的发展驱使人们寻求更加简便更加快捷的生活方式,即使你是住在最偏远的城市,你也会感受到这种速度,所以,基于我们所学的知识,我们畅想一种用于控制我们切身生活的新方式,运用Zigbee技术和网络技术,将家中所有的可控部件集中在一个触屏控制板上,我们所用的Zigbee是一种高可靠性的无线数传网络。Zigbee数传模块类似于移动网络基站,支持无限扩展。同时,Zigbee具有低功耗、低成本、抗干扰、易组网的优点[1]。 本文是基于具有Zigbee无线传输技术的CC2430和STM32芯片,通过触摸屏控制板实现对家里的安防报警、室内温度和照明灯具、家用电器的控制。因为系统由自己开发,具有可扩展性和个性化,控制方便,更加贴近用户需求等特点。 2系统实现 2.1 系统总体结构 系统整体框图结构如图1所示,具有显示控制功能的中央的控制板我们采用具有高性能、低功耗的特点,而且不用外加射频功放,通信距离就可达到百米左右的STM32W108芯片(内置128KB FLASH和8KB SRAM它同时支持人机交互,可与CC2430进行通信[2]。 用于作为下级传输的Zigbee模块,我们采用TI 公司的CC24430 无线射频芯片,它有显著的低成本、低消耗、网络节点多等的无线传输功能。可以将一个节点作为路由,由一个主节点管理若干子节点,同时可由上一层网络节点管理,最多可组成65000 个节点的大网,实现组网,也有效的延长了Zigbee的传输距离。同时其具有高容量优点,可采用星状、片状和网状网络结构,通过对与STM32通信和传感数据采集传输的开发,形成对家中照明、安防、电器等日常工具的进程和远程控制,实现家居的智能化。 我们采用SDIO WIFI模块芯片实现数据的远程传输,具有的USB 2.0接口,与STM32 的连接非常简单,二者可以通过标准的USB 接口直接相连。该模块用来实现家庭网关与Internet 连接。通过WIFI可以在家中随时上网,同时也可以通过家庭网关实现远程控制。 图1 智能家居控制系统结构图 Control Board W I F I 安防传感器 控 制 显 示 测量传感器 空 调 报 警 照 明 作者简介:王超,黑龙江大庆,东北石油大学电气气信息工程学院,学生

zigbee的系统结构和组网方式

简介 ZigBee是一种新兴的短距离、低功耗、低数据传输速率的无线网络技术,它是一种介于无线标记技术和蓝牙之间的技术方案。ZigBee是建立在IEEE802.15.4标准之上,它确定了可以在不同制造商之间共享的应用纲要。IEEE802.15.4标准定义了ZigBee协议的PHY层和MAC层。PHY层规范确定了在2.4GHz(全球通用的ISM频段)以250kb/s的基准传输率工作的低功耗展频无线电以及另有一些以更低数据传输率工作的915MHz(北美的ISM频段)和868MHz(欧洲的ISM频段)的实体层规范。MAC层规范定义了在同一区域工作的多个IEEE802.15.4无线电信号如何共享空中通道。 为了促进ZigBee技术的发展,2001年8月成立了ZigBee联盟,2002年下半年,英国Invensys公司、日本三菱电子公司、美国摩托罗拉公司以及荷兰飞利浦半导体公司四大巨头共同宣布,它们将加入“ZigBee联盟”,目前该联盟已经有150多家成员,以研发名为ZigBee的下一代无线通信标准。 正如前面所述,ZigBee不仅仅只是802.15.4的名字,IEEE802.15.4仅处理低级MAC层和PHY层协议,所以ZigBee联盟对其网络层协议和API进行了标准化,还开发了安全层,以保证这种便携设备不会意外泄漏其标识。 ZigBee的组成和构网方式 1.FFD和RFD 利用zigbee技术组件的无线个人区域网(WPAN)是一种低速率的无线个人区域网(LR WPAN),这种低速率个人区域网的网络结构简单、成本低廉,具有有限的功率和灵活的吞 吐量。 在一个LR WPAN网络中,可同时存在两种不同类型的设备,一种是具有完整功能的设备(FFD),另一种是简化功能的设备(RFD)。 在网络中,FFD通常有3中工作状态:(1)作为个人区域网络(PAN)的主协调器;(2) 作为一个普通协调器;(3)作为一个终端设备。FFD可以同时和多个RFD或其他FFD通信。 而RFD则只用一种工作状态即作为一个终端设备,并且一个RFD只能和一个FFD通信。2.ZigBee的体系结构 ZigBee体系结构主要有物理(PHY)层、媒体接入控制(MAC)层、网络/安全层以及应用框架层构成,如下图所示:

Zigbee组网流程

1、网络形成 组网开始时,网络层首先向MAC层请求分配协议所规定的信道,或者由PHY层进行有效信道扫描,网络层管理实体等待信道扫描结果,然后根据扫描结果选择可允许能量水平的信道。找到合适的信道后,为这个新的网络选择一个个域网标识符(PANID)。PANID可由网络形成请求时指定,也可以随机选择一个PANID(除广播PANID固定为0xFFFF外),PANID 在所选信道中应该是唯一的。PANID一旦选定,无线网关将选择16位网络地址0x0000作为自身短地址,同时进行相关设置。完成设置后,通过MAC层发出网络启动请求,返回网络形成状态。 2、网络维护 网络维护网络维护主要包括设备加入网络和离开网络过程。当网络形成后,通过网络管理实体设定MAC层连接许可标志来判断是否允许其他设备加设备初始化为协调器入网络。加入方式有联合方式和直接方式,在协议实现中采取直接加入网络方式。这种方式下由待加入的设备发送请求加入信标帧,网关接收到后,网络管理实体首先判断这个设备是否已存在于网络。存在,则使其加入网络;若不存在,则向设备发送信标帧,为这个设备分配一个网络中唯一的16位的短地址。这里的信标帧是由网关无线协议MAC层生成作为PHY层载荷,它包含PANID、加入时隙分配等信息。网内设备也可以请求断开网络。当网关收到设备断

开连接请求后,MAC层向网络层发送报告,开始执行断开流程,从设备列表中删除该设备相关信息。 网络层上层请求网络层发现当前在运行的网络: NLME NETWORK DISCOVERY.request(ScanChannels,ScanDuration) ScanChannels:高5为保留(b27~b31),低27为分别表示27个有效信道,该位为1,表示扫描;为0不扫描。 ScanDuration:扫描时间,aBaseSuperframeDuration*(2^n+1),n为ScanDuration值。 网络层在家收到该原语后,将通过检查ScanChannels参数发现网络,如果该设备为一个FFD 设备,则执行主动的扫描。如果为一个RFD设备,倘若设备实现主动扫描,那么他会执行主动的扫描,否则 一个合适的父节点需要满足三个条件:匹配的PAN标志符、链路成本最大为3、允许连接,为了寻找合适的父节点,NLME_JOIN.request原语请求网络层搜索它的邻居表,如果邻居表中不存在这样的父节点则通知上层,如果存在多个合适的父节点则选择具有最小深度的父节点,如果存在多个具有最小深度的合适的父节点则随机选择一个父节点。

ZigBee的工作原理

ZigBee 的工作原理_ZigBee 组网技术ZigBee 是一种高可靠的无线数传网络,类似于CDMA和GSM网络。ZigBee 数传模块类 似于移动网络基站。通讯距离从标准的75m到几百米、几公里,并且支持无限扩展。Zigbee 技术特点主要有低功耗、低成本、时延短、网络容量大、工作频段灵活、低速率、安全的数据传输等。其中低功耗是Zigbee 技术最重要的特点。由于Zigbee 的传输速率相对较低发射功率较小,使得Zig bee 设备很省电,这是Zigbee 技术能够广泛应用的基石。 ZigBee 协议适应无线传感器的低花费、低能量、高容错性等的要求。Zigbee 的基础是IEEE 802.15.4 。但IEEE仅处理低级MAC层和物理层协议,因此Zigbee 联盟扩展了IEEE,对其网络层协议和API 进行了标准化。Zigbee 是一种新兴的短距离、低速率的无线网络技术。主要用于近距离无线连接。它有自己的协议标准,在数千个微小的传感器之间相互协调实现通信。 ZigBee 组网概述 组建一个完整的zigbee 网状网络包括两个步骤:网络初始化、节点加入网络。其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网。 ZigBee 网络初始化预备 Zigbee 网络的建立是由网络协调器发起的,任何一个zigbee 节点要组建一个网络必须要满足以下两点要求: (1)节点是FFD节点,具备zigbee 协调器的能力; (2)节点还没有与其他网络连接,当节点已经与其他网络连接时,此节点只能作为该网络的子节点,因为一个zigbee 网络中有且只有一个网络协调器。 FFD:Full Func TIon Device 全功能节点 RFD:Reduced Func TI onDevice 半功能节点

Zigbee组网程序

SappleApp.c #include "OSAL.h" #include "ZGlobals.h" #include "AF.h" #include "aps_groups.h" #include "ZDApp.h" #include "SampleApp.h" #include "SampleAppHw.h" #include "OnBoard.h" /* HAL */ #include "hal_lcd.h" #include "hal_led.h" #include "hal_key.h" #include "string.h" #include "MT_UART.h" //#include "Lcd128X64.h" #include "UtOled.h" #include "sensor.h" #include "HAL_ADC.h" #include "exsensor.h" #include "lcd128_64.h" const cId_t SampleApp_ClusterList[SAMPLEAPP_MAX_CLUSTERS] = { SAMPLEAPP_PERIODIC_CLUSTERID, SAMPLEAPP_FLASH_CLUSTERID }; const SimpleDescriptionFormat_t SampleApp_SimpleDesc = { SAMPLEAPP_ENDPOINT, // int Endpoint; SAMPLEAPP_PROFID, // uint16 AppProfId[2]; SAMPLEAPP_DEVICEID, // uint16 AppDeviceId[2]; SAMPLEAPP_DEVICE_VERSION, // int AppDevVer:4; SAMPLEAPP_FLAGS, // int AppFlags:4; SAMPLEAPP_MAX_CLUSTERS, // uint8 AppNumInClusters; (cId_t *)SampleApp_ClusterList, // uint8 *pAppInClusterList; SAMPLEAPP_MAX_CLUSTERS, // uint8 AppNumInClusters; (cId_t *)SampleApp_ClusterList // uint8 *pAppInClusterList; };

基于ZigBee的智能家居系统

基于ZigBee的智能家居系统 摘要: 基于ZigBee的智能家居系统是针对家居高度自动化、智能化的要求提出的一种新的解决方案。主要用ZigBee手持控制器无线采集室内环境参数,远程控制各种家居电器,实现家居控制、参数检测的完全自动化、智能化。设备以C8051F020单片机为控制核心单元,检测湿度,负责驱动电机,处理和传输数据。采用高精度传感器作为湿度检测器件,直流电机等为执行机构,完成环境参数检测,对窗帘、交流电电器等的控制功能。用手持设备通过IP-LINK1270模块串口实现了室内无线通信,可以接收湿度数据,控制简单家居。本系统具有良好的开发和应用前景。 关键词:ZigBee 无线通信湿度检测智能家居 由于生活质量的日益改善,各种家电设备的高度自动化和智能化已经成为一种消费需求,同时科学技术的飞速发展,让这种需求的达到已经不再遥远。新的ZigBee协议在无线传感器网络和各种无线终端控制方面有良好的前景,为传感器网络和控制设备提出了新的方案。基于ZigBee的网络控制系统就可以实现对各种家电设备的控制和调节,只需要对旧式家电(家居)进行改装,或加入必要的驱动电路,便可以实现小信号对交流电器的控制。室内温度、湿度等环境参数直接影响生活质量,同样可以通过ZigBee控制器对室内温度、湿度检测设备进行较远距离的适时采集,然后根据个人意愿对家电(家居)进行不同程度的调节。 我们对实用小功率电扇进行了改装,对窗帘装上直流电机和定滑轮,可以由ZigBee控制器向单片机发送命令对电扇和窗帘的开关程度控制和调节。室内参数检测方面,开发了湿度检测设备,可以有效的反馈实时数据。 一、系统(主设备)结构及各部分功能 在整个系统设计方案中,以C8051F020为核心,作为数据处理器和设备控制器,整个设备也可作为工业现场设备,从属于ZigBee核心控制器。 系统(主设备)结构如图所示, 图1 系统(主设备)总体结构图

ZigBee的工作原理

ZigBee得工作原理_ZigBee组网技术ZigBee就是一种高可靠得无线数传网络,类似于CDMA与GSM网络。ZigBee数传模块类似于移动网络基站。通讯距离从标准得75m到几百米、几公里,并且支持无限扩展。Zig bee技术特点主要有低功耗、低成本、时延短、网络容量大、工作频段灵活、低速率、安全得数据传输等。其中低功耗就是Zigbee技术最重要得特点。由于 Zigbee得传输速率相对较低发射功率较小,使得Zig bee设备很省电,这就是 Zigbee技术能够广泛应用得基石。 ZigBee协议适应无线传感器得低花费、低能量、高容错性等得要求。Zigbee 得基础就是IEEE 802.15。4、但IEEE仅处理低级MAC层与物理层协议,因此Zigbee联盟扩展了IEEE,对其网络层协议与API进行了标准化。Zigbee就是一种新兴得短距离、低速率得无线网络技术。主要用于近距离无线连接。它有自己得协议标准,在数千个微小得传感器之间相互协调实现通信。 ZigBee组网概述 组建一个完整得zigbee网状网络包括两个步骤:网络初始化、节点加入网络。其中节点加入网络又包括两个步骤:通过与协调器连接入网与通过已有父节点入网。 ZigBee网络初始化预备 Zigbee网络得建立就是由网络协调器发起得,任何一个zigbee节点要组建一个网络必须要满足以下两点要求: (1)节点就是FFD节点,具备zigbee协调器得能力; (2)节点还没有与其她网络连接,当节点已经与其她网络连接时,此节点只能作为该网络得子节点,因为一个zigbee网络中有且只有一个网络协调器。 FFD:Full Func TI on Device 全功能节点 RFD:Reduced FuncTI onDevice半功能节点

基于ZigBee的智能家居系统设计与实现

毕业设计(论文)题目:基于ZigBee的智能家居系统设计与实现 学院:软件学院 专业名称:软件工程 班级学号:08201124 学生姓名:曾刘保 指导教师:苗利 二O一二年三月

毕业设计(论文)任务书 I、毕业设计(论文)题目: 基于ZigBee的智能家居系统设计与实现 II、毕业设计(论文)使用的原始资料(数据)及设计技术要求: 1、摘要扼要叙述本论文的主要内容、特点,文字精炼,摘要500字左右。 2、正文:一般包括引言、本、结论三个部分。字数不少于13000字。 3、收集资料:a历史资料;b理论资料;c实践资料 4、技术要求:在论文写作中进行一定程度的创新性活动,如提出一个新问题、对现 实问题进行新的解释等。 III、毕业设计(论文)工作内容及完成时间: 1、查阅并收集与论文相关的国内外文献资料,完成开题报告。(第1-2周) 2、毕业论文资料调研,进行实地调查研究,掌握第一手资料。(第3周) 3、撰写毕业论文详细提纲。论文提纲应分为几个部分或几个层次。写明论文的中心、重点、主要观点、结论等。(第4周) 4、完成论文绪论部分,说明本课题的意义、目的、研究范围及要求达到的技术要求;简述本课题在国内外的发展概况及存在的问题。(第5周) 5、完成毕业论文正文部分,包括问题的提出,研究工作的基本前提、假设和条件,理论论证,理论在课题中的应用,课题得出的结果等。(第6-7周) 6、完成结论部分。即对整个研究工作进行归纳和综合得出的总结,对所得结果比较和课题尚存在的问题,以及进一步开展研究的见解与建议。结论应该明确、精炼、 完整、准确。(第8周) 7、完成毕业论文(设计)初稿。(第9周) 8、完成毕业论文二稿。(第10周) 9、毕业论文定稿;毕业论文打印;毕业答辩准备。(第11周)

ZigBee源码程序及解释

协议栈无线透传编程原理: 第一个功能:协调器的组网,终端设备和路由设备发现网络以及加入网络 //第一步:Z-Stack 由 main()函数开始执行,main()函数共做了 2 件事:一是系统初始化,另外一件是开始执行轮转查询式操作系统 int main( void ) { ....... // Initialize the operating system osal_init_system(); //第二步,操作系统初始化...... osal_start_system(); //初始化完系统任务事件后,正式开始执行操作系统 ...... } //第二步,进入 osal_init_system()函数,执行操作系统初始化 uint8 osal_init_system( void ) //初始化操作系统,其中最重要的是,初始化操作系统的任务 { // Initialize the Memory Allocation System osal_mem_init(); // Initialize the message queue osal_qHead = NULL; // Initialize the timers osalTimerInit(); // Initialize the Power Management System osal_pwrmgr_init(); // Initialize the system tasks. osalInitTasks(); //第三步,执行操作系统任务初始化函数 // Setup efficient search for the first free block of heap. osal_mem_kick(); return ( SUCCESS ); } //第三步,进入osalInitTasks()函数,执行操作系统任务初始化 void osalInitTasks( void ) //第三步,初始化操作系统任务 { uint8 taskID = 0; tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt); osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt));

【标准】基于Zigbee技术的智能家居系统设计方案

基于Zigbee技术的智能家居系统设计方 家居设备通过Zigbee 进行无线组网,把家居设备的信息和数字视频传输到因特网网络上, 进行实时的显示并进行后续的利用和控制;同时将收集各处传输进来的数字视频信息进行后续的处理和识别。如入侵检测,人脸检测和识别等。 智能家居又称为智能住宅,在国外常用Smart Home 表示。与智能家居含义近似的有家庭自动化(Home Automation)、电子家庭(Electr ON ic Home、E-home)、数字家园(Digital Family)、家庭网络(Home Net/Networks for Home)、网络家居(NetworkHome)、智能家庭/建筑(Intel ligent Home/Building)等。 智能家居系统利用先进的计算机技术、网络通讯技术、综合布线技术将与家居生活有关的各种子系统有机地结合在一起,通过统筹管理,让家居生活更加舒适、安全。智能家居可以提供全方位的信息交换功能,帮助家庭与外部保持信息交流通畅,优化人们的生活方式,增强家居生活的安全性,甚至为各种能源费用节约资金。 1 项目概述 1.1 智能家居发展概况 智能家居是利用先进的计算机技术、嵌入式系统和网络通讯技术,将家庭中的各种设备(如照明系统、环境控制、安防系统、网络家电)通过家庭网络连接到一起的,自从美国在1984 真正的智能建筑出现以来,国外已经有将近30 年的研究历史,而国内在这方面的研究相对较晚,从2003 年才逐步应用于高端市场,而且标准不统一,如海信、海尔、清华大学等大家各自为营。由于智能家居系统具有安全、方便、高效、快捷、智能化和个性化的独特魅力,使得智能家居的开发与建设成为21 世纪科技发展的必然趋势。随着全球对能源和环境的要求越来越高,而智能家居在节能方面的效果优势非常明显,因此具有非常广阔的市场前景。 1.2 开发板主要参数 本项目所使用开发板为Real6410 开发板,采用三星公司的ARM11 内核的处理器 S3C6410.开发板上还集成了123 M的DDR 内存以及1 GB NandFlash, 同时预留了

ZigBee协调器技术及系统方案设计--毕业论文

目录 中文摘要......................................... 错误!未定义书签。英文摘要......................................... 错误!未定义书签。 1 绪论 (1) 1.1题目研究背景与意义 (1) 1.2国内外研究现状 (1) 1.3 ZigBee无线网络的研究前景 (2) 1.4 论文的组织结构 (3) 2 相关技术及系统方案设计 (4) 2.1 ZigBee技术 (4) 2.1.1 ZigBee无线网络设备组成 (5) 2.1.2 ZigBee无线网络拓扑结构 (5) 2.2 系统方案设计 (6) 2.2.1 系统方案设计框图 (6) 2.2.2 各模块功能介绍 (7) 3 硬件电路设计 (8) 3.1 硬件电路设计简介 (8) 3.2 处理器模块 (9) 3.2.1 处理器CC2530简介 (9) 3.2.2 芯片功能介绍 (9) 3.3协调器硬件单元电路原理图设计 (10) 3.3.1 CC2530支撑电路原理图设计 (10) 3.3.2 RS232串口通信电路原理图设计 (12) 3.3.3 电源电路设计 (12) 3.3.4 JTAG接口电路设计 (15) 3.3.5 人机交互接口电路设计 (14) 4 IAR开发环境介绍 (15)

4.1 IAR的安装及简介 (15) 4.2 ZigBee 2007 协议栈安装 (17) 4.3 IAR使用介绍: (19) 5 ZigBee无线网络协调器软件设计 (21) 5.1 Z-stack软件架构分析 (21) 5.1.1 Z-stack协议栈的几个重要概念 (21) 5.1.2 Z-stack协议栈分析 (22) 5.1.3 OSAL操作系统 (22) 5.2协调器软件设计 (23) 5.2.1 总体流程设计及代码 (24) 5.2.2 协调器新建网络流程图及代码 (26) 5.2.3绑定与接收 (29) 5.2.4 协调器向串口发送数据 (31) 6 调试 (36) 6.1 软硬件调试方法 (36) 6.2 调试中遇到的问题 (36) 7 总结 (38) 7.1 设计总结 (38) 7.3 设计不足和改善 (38) 参考文献 (39) 致谢 (40)

Zigbee网络设备启动流程—协调器(自启动模式)

使用的协议栈版本信息: ZigBee2006\ZStack-1.4.3-1.2.1 Zigbee网络设备启动流程—协调器(自启动模式)—以SampleApp的协调器为例. 1、协调器预编译信息 通过project->options->c/c++compiler->extraOptions可以看到协调器所带的配置文件为: -f $PROJ_DIR$\..\..\..\Tools\CC2430DB\f8wCoord.cfg -f $PROJ_DIR$\..\..\..\Tools\CC2430DB\f8wConfig.cfg 即编译了ZDO_COORDINATOR和RTR_NWK. 通过project->options->c/c++compiler->reprocessor->Defined symbols可以看到协调器预编译包含了: CC2430EB; ZTOOL_P1; MT_TASK; LCD_SUPPORTED=DEBUG; MANAGED_SCAN 没有编译HOLD_AUTO_START和SOFT_START. 2、具体流程 main()->osal_init_system()->osalInitTasks()->ZDApp_Init() 进入ZDApp_Init()函数: ************************************** void ZDApp_Init( byte task_id ) { uint8 capabilities; // Save the task ID ZDAppTaskID = task_id; // Initialize the ZDO global device short address storage ZDAppNwkAddr.addrMode = Addr16Bit; ZDAppNwkAddr.addr.shortAddr = INVALID_NODE_ADDR; //0xFFFE (void)NLME_GetExtAddr(); // Load the saveExtAddr pointer. // Check for manual"Hold Auto Start" //检测到有手工设置SW_1则会设置devState = DEV_HOLD,从而避开网络初始化 ZDAppCheckForHoldKey(); // Initialize ZDO items and setup the device - type of device to create. ZDO_Init(); //通过判断预编译来开启一些函数功能 // Register the endpoint description with the AF // This task doesn't have a Simple description, but we still need // to register the endpoint. afRegister( (endPointDesc_t *)&ZDApp_epDesc ); #if defined( ZDO_USERDESC_RESPONSE ) ZDApp_InitUserDesc(); #endif // ZDO_USERDESC_RESPONSE // set broadcast address mask to support broadcast filtering NLME_GetRequest(nwkCapabilityInfo, 0, &capabilities); NLME_SetBroadcastFilter( capabilities ); // Start the device? if ( devState != DEV_HOLD ) { ZDOInitDevice( 0 ); }

基于Zigbee技术的智能家居系统设计方案

基于Zigbee技术的智能家居系统设计方案

基于Zigbee技术的智能家居系统设计 方案 摘要:对基于ZigBee 技术对嵌入式Web 的智能家居远程监控系统进行研究和设计。对家居设备通过Zigbee 进行无线组网,把家居设备的信息和数字视频传输到因特网网络上,在因特网上设立一个"无线视频网关"WEB 服务器,可供外部访问;实现将家居信息如温度进行实时的显示并进行后续的利用和控制;同时将收集各处传输进来的数字视频信息进行后续的处理和识别。如入侵检测,人脸检测和识别等。 智能家居又称为智能住宅,在国外常用Smart Home 表示。与智能家居含义近似的有家庭自动化(Home Automation)、电子家庭(Electr ON ic Home、E-home)、数字家园(Digital Family)、家庭网络(Home Net/Networks for Home)、网络家居(NetworkHome)、智能家庭/建筑 (Intel ligent Home/Building)等。 智能家居系统利用先进的计算机技术、网络通讯技术、综合布线技术将与家居生活有关的各

种子系统有机地结合在一起,通过统筹管理,让家居生活更加舒适、安全。智能家居可以提供全方位的信息交换功能,帮助家庭与外部保持信息交流通畅,优化人们的生活方式,增强家居生活的安全性,甚至为各种能源费用节约资金。 1 项目概述 1.1 智能家居发展概况 智能家居是利用先进的计算机技术、嵌入式系统和网络通讯技术,将家庭中的各种设备(如照明系统、环境控制、安防系统、网络家电)通过家庭网络连接到一起的,自从美国在1984 真正的智能建筑出现以来,国外已经有将近30 年的研究历史,而国内在这方面的研究相对较晚,从2003 年才逐步应用于高端市场,而且标准不统一,如海信、海尔、清华大学等大家各自为营。由于智能家居系统具有安全、方便、高效、快捷、智能化和个性化的独特魅力,使得智能家居的开发与建设成为21 世纪科技发展的必然趋势。随着全球对能源和环境的要求越来越高,而智能家居在节能方面的效果优势非常明显,因此具有非常广阔的市场前景。 1.2 开发板主要参数

zigbee网络建立过程简介(G1)知识讲解

z i g b e e网络建立过程 简介(G1)

星形网络和树型网络可以看成是网状网络的一个特殊子集,所以接下来分析如何组建一个Zigbee网状网络。组建一个完整的Zigbee网络分为两步:第一步是协调器初始化一个网络;第二步是路由器或终端加入网络。加入网络又有两种方法,一种是子设备通过使用MAC层的连接进程加入网络,另一种是子设备通过与一个先前指定的父设备直接加入网络。 一、协调器初始化网络 协调器建立一个新网络的流程如图1所示。 图1 协调器建立一个新网络 1、检测协调器 建立一个新的网络是通过原语NLME_NETWORK_FORMATION.request发起的,但发起 NLME_NETWORK_FORMATION.request原语的节点必须具备两个条件,一是这个节点具有ZigBee协调器功能,二是这个节点没有加入到其它网络中。任何不满足这两个条件的节点发起建立一个新网络的进程都会被网络层管理实体终止,网络层管理实体将通过参数值为INVALID_REQUEST的 NLME_NETWORK_FORMATION.confirm的原语来通知上层这是一个非法请求。 2、信道扫描 协调器发起建立一个新网络的进程后,网络层管理实体将请求MAC子层对信道进行扫描。信道扫描包括能量扫描和主动扫描两个过程。首先对用户指定的信道或物理层所有默认的信道进行一个能量扫描,以排除干扰。网络层管理实体将根据信道能量测量值对信道进行一个递增排序,并且抛弃能量值超过了可允许能量值的信道,保留可允许能量值内的信道等待进一步处理。接着在可允许能量值内的信道执行主动扫描,网络层管理实体通过审查返回的PAN描述符列表,确定一个用于建立新网络的信道,该信道中现有的网络数目是最少的,网络层管理实体将优先选择没有网络的信道。如果没有扫描到一个合适的信道,进程将被终止,网络层管理实体通过参数仠为STARTUP_FAILURE的NLME_NETWORK_FORMATION.confirm的原语来通知上层初始化启动网络失败。 3、配置网络参数

相关文档
相关文档 最新文档