OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 综合技术 » 通讯及无线技术 » 一般的jennic zigbee应用程序

共1条 1/1 1 跳转至

一般的jennic zigbee应用程序

专家
2009-03-20 08:33:33    评分
一般的jennic zigbee应用程序

 

1.初始化函数

首先调用的函数用来初始化和启动系统,当设备上电时,程序从AppColdStart开始,这里系统完成初始化。用户程序可能调用其他的初始化函数,比如初始化用户变量和系统片上外设比如定时器、UART等。另外,必要的zigbee系统参数,比如无线信道必须在这里配置。最后,BOS已经初始化和启动,调用启动BOS的函数不会返回,BOS开始控制系统。

BOS在调用函数JZA_vAppDefineTasks之前开始执行一些内部函数。JZA_vAppDefineTasks是用户程序可以在BOS中注册的函数(除了默认的用户任务),尽管如此在大多数情况下BOS用户任务不是必须的。然后由BOS控制系统。

执行完一些内部函数,BOS将控制权交给用户程序中最后的初始化函数:JZA_boAppStart,在这个函数中,可以为节点端点放置调用AF为端点注册任何ZIGBEE描述符,一旦这个步骤完成,必须在函数退出和返回控制权给BOS之前调用函数启动zigbee协议栈的函数。

 

主要的 Application 函数

一旦BOS和Zigbee协议栈启动,BOS将控制权通过一些函数交给用户程序,其中一个函数就由BOS调用,其他的函数是由事件驱动的,只有在相关的事件发生时才会被调用。当用户代码结束的时候,控制权又返回给BOS。BOS将周期性传递控制权给zigbee协议栈以完成必要的动作。

用户应用程序必须是非自锁的,它必须不能等待一个不停判决的条件,或者执行等待条件发生的空循环,因为周期性地将控制权交给BOS和zigbee协议栈以便正常工作是非常重要的。

主要的应用函数如下:

JZA_vAppEventHandler

由BOS在一定的时间间隔调用,任何需要周期性运行的用户应用程序可以放在其中。

 

JZA_vStackEvent

处理从下层协议栈来的各种事件,比如APS层的数据传输确认。

 

JZA_vPeripheralEvent

当硬件中断发生时被调用,比如Timer 或者DIO 线上的中断。从中断的上下文调用,可以将处理中断的应用函数代码置于其中。

 

JZA_bAfKvpObject

当KVP命令帧从其他设备接收时调用,可以将处理输入的命令和产生响应的用户程序放在该函数中。

 

JZA_bAfMsgObject

当MSG帧从其他设备接收时调用,可以将处理输入消息的应用程序放入该函数中。

 

JZA_vAfKvpResponse

当有输入的KVP 响应帧从其他节点接收时调用,可能是一个更早的命令帧的确认,或者请求数据的响应。可以将接收和处理响应帧的用户程序置于该函数中。

 

JZA_vZdpResponse

当一个响应从ZDP接收时调用该函数,比如一个绑定请求的响应,可以将处理相关响应的用户程序置于该函数中。

 

为了产生调用zigbee协议栈,发送KVP或MSG命令帧到其他的节点,或产生ZDP服务的请求(比如绑定),必要的函数调用必须在用户程序中包含。




关键词: 一般     jennic     zigbee     应用程序     函数         

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]