ZStack
reading_code_man
背着书包去工作。。。
展开
-
osal_msg_send
uint8 osal_msg_send( uint8 destination_task, uint8 *msg_ptr ){ if ( msg_ptr == NULL ) return ( INVALID_MSG_POINTER ); if ( destination_task >= tasksCnt ) { osal_msg_deallocate转载 2014-06-13 13:17:11 · 1103 阅读 · 0 评论 -
OSAL处理接收数据包流程
以下为系统处理来自AF层数据包的大致流程,afIncomingData()——afBuildMSGIncoming()——osal_msg_send()—— osal_set_event()——根据task_id调用事件处理函数(如SampleApp_ProcessEvent())——判断具体事件类型调用相应回调函数(如SampleApp_MessageMSGCB(转载 2014-07-03 10:44:32 · 2119 阅读 · 0 评论 -
接触ZStack
1.写在前面之前一直在写裸机下的cc2530的那部分,现在觉得这样子写没啥意思,所以不再写那部分了,需要到http://www.cnblogs.com/hustlzp/archive/2011/02/13/1952881.html,这里面有你们需要的,而且里面写的很不错,所以请需要的人请移步。在这篇学习笔记中将初次接触Ti公司的zstack。2.揭开她的面纱转载 2014-05-29 16:58:23 · 864 阅读 · 0 评论 -
物理层概述
------------------------------------------------------------------------------物理层概述------------------------------------------------------------------------------IEEE802.15.4物理层主要完成以下几项任务:开转载 2014-07-04 13:52:07 · 1600 阅读 · 0 评论 -
协议栈各层功能及原语概念
在学习zigbee的过程中一直有个困惑,关于层与层之间的通信,看了很多资料,都是通过原语通信来实现。尤其是在组网的过程中,原语通信用的非常多。 在事件捕获中,比如我上一篇所提及到的按键事件,其中就没有用到原语通信,同样可以实现相应功能。里面没有涉及到mac层,网络层等。 我想原语通信只是在组网过程才会用到,其他场合一般不用。 在协议栈设计时,对请求(Request)转载 2014-06-26 16:49:17 · 4153 阅读 · 0 评论 -
协议栈的网络拓扑结构概述
ZigBee协调器是一个起网络控制中心作用的FFD,它不单为网络控制而存在,还可以有自己的应用。就功能而言,ZigBee协调器与扮演ZigBee路由器和ZigBee终端设备角色的FFD没有区别,只是根据构建网络的需要,ZigBee协调器这个FFD承担了控制中心的任务,网络中的每个设备都有一个64位扩展地址用于网内直接通信,如果PAN协调器为设备分配了16位短地址,则设备也可以使用短地址通信转载 2014-07-04 14:24:54 · 1461 阅读 · 0 评论 -
AF层学习总结
AF层学习总结2010-03-16 19:00/** afInit - Initialize the AF.*/extern void afInit( void );作用:初始化AF层,在ZMain中mian()函数中调用/** afRegisterExtended - Register an Application's EndPoi转载 2014-05-30 15:01:42 · 995 阅读 · 0 评论 -
CC2431定位程序分析1
原文地址:CC2431定位程序分析作者:阿元 下面的程序分析是基于CC2431的定位程序,使用的是CC2431中的相关定位寄存器,CC2430不能使用下面定位寄存器。 整个定位引擎的函数均放在LocationEngine.c/h文件里。现在我们看一下具体的定位程序。//定位引擎使能宏定义#define LOC_ENABLE() do {LOCENG转载 2014-07-07 10:09:27 · 766 阅读 · 0 评论 -
协调器的组网,终端设备和路由设备发现网络以及加入网络 设备绑定、两节点间串口通信
第一个功能:协调器的组网,终端设备和路由设备发现网络以及加入网络//第一步:Z-Stack 由 main()函数开始执行,main()函数共做了 2 件事:一是系统初始化,另外一件是开始执行轮转查询式操作系统 int main( void ) { ....... // Initialize the转载 2014-06-11 10:17:48 · 9414 阅读 · 0 评论 -
uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )
/** @fnSampleApp_ProcessEvent* @brief Generic Application Task event processor. This function* is called to process all events for the task. Events* include timers, messages and any other转载 2014-06-17 17:27:37 · 2138 阅读 · 0 评论 -
zigbee 数据发送AF_Data_Request和数据接收afIncomingMSGPacket_t结构体
在学习Z-Stack协议栈的过程中,必不可少的就是AF_DataRequest函数,因为这个API函数将数据发送到了空中,如果你不用AF_DataRequest这个函数(除非你自己实现AF_DataRequest这个函数)那也就没有必要去使用Z-Stack这个协议栈了!先看看这个函数在AF.h头文件中是怎么声明的吧------------------------- afS转载 2014-06-05 14:15:48 · 8252 阅读 · 1 评论 -
RegisterForKeys( GenericApp_TaskID )
RegisterForKeys原函数:uint8 RegisterForKeys( uint8 task_id ){ // Allow only the first task if ( registeredKeysTaskID == NO_TASK_ID )//#define NO_TASK_ID 0xFF //static uint原创 2014-06-18 11:33:43 · 2634 阅读 · 1 评论 -
zigbee 进一步学习重点
我发现最近群里很多人已经可以算是大致入门了,能够在原有例子的基础上进行一些简单工作,实现数据传输。但是我也发现很多人开始把精力投入到钻研协议栈代码细节上面去了,实际上这种学习方式是有问题的。第一:如果从应用的角度看,协议栈的一些实现细节是没有必要钻研的,这就好比是现在的PC机,已经有了Windows系统了,我们在这个系统之上实现自己应用程序的时候其实并不需要对Windows内部实现细节过多地关注,转载 2014-07-10 11:24:15 · 995 阅读 · 1 评论 -
cc2530后面的的DB,BB,EB代表什么意思?
BB: Battery BoardDB: Development BoardEB: Evaluation Board原创 2014-07-10 15:21:06 · 4339 阅读 · 0 评论 -
devStates_t
typedef enum{ DEV_HOLD, // Initialized - not started automatically DEV_INIT, // Initialized - not connected to anything DEV_NWK_DISC, // Discoverin原创 2014-07-10 10:54:08 · 1330 阅读 · 0 评论 -
建立网络的过程
①在ZDApp_Init中调用ZDOInitDevice( 0 )这个函数;②在ZDOInitDevice中调用ZDApp_NetworkInit( extendedDelay )这个函数;③在ZDApp_NetworkInit( extendedDelay )中调用 osal_start_timerEx( ZDAppTaskID, ZDO_NETWORK_INIT, delay转载 2014-06-18 17:34:28 · 2053 阅读 · 0 评论 -
事件捕捉流程
学校放假了,刚回家的孩子就像个客人被父母招待着。在放假的前几天里,你尽管开口,想吃啥爸妈都会满足你,不过好景可不长!在我家,厨房是老妈的地盘,买菜、做饭、洗碗刷锅,一个人全包了。而在饭店吃饭呢,吃饭的人多了,顾客点的饭菜种类各不相同。前前后后,一个人忙乎,哪里顾得过来,所以饭店就有了分工。前台服务员负责将顾客点的菜上报给厨师和;厨师根据上报的菜单做菜;采购员负责柴米油盐酱醋茶。这样,大家各司其职,转载 2014-06-13 16:30:32 · 1778 阅读 · 0 评论 -
数据的传输方式及数据接收
寻址方式地址类型(Addresstypes)ZigBee设备有两种类型的地址。一种是64位IEEE地址,即MAC地址,另一种是16位网络地址。64位地址使全球唯一的地址,设备将在它的生命周期中一直拥有它。它通常由制造商或者被安装时设置。这些地址由IEEE来维护和分配。16为网络地址是当设备加入网络后分配的。它在网络中是唯一的,用来在网络中鉴别设备和发送数据。转载 2014-07-02 17:27:39 · 4787 阅读 · 0 评论 -
Zigbee协议栈z-stack中无线数据包格式结构体afIncomingMSGPacket_t
afIncomingMSGPacket_t *MSGpkt; //无线数据包格式结构体定义 pdata = &pkt->cmd.Data[0]; //注意是指针格式 len = pkt->cmd.DataLength;//数据的长度,字节数typedef struct{ osal_event_hdr_t hdr; //OSAL消转载 2014-06-11 10:09:13 · 4932 阅读 · 0 评论 -
串口收发数据1
1.在Zigbee协议栈中,halUARTCfg_t结构体是如何定义的?2.串口是如何初始化的?3.发送给串口的数据时如何接收的?4.串口是如何向PC机发送数据的?这些问题涉及三个函数:HalUARTOpen()、HalUARTRead()、HalUARTWrite()HalUARTOpen()函数原型如下:uint8 HalUARTOpen(uint8 por原创 2014-06-24 11:27:22 · 3456 阅读 · 0 评论 -
MAC实现的功能
1.1.1 MAC服务 MAC层提供两种类型的服务:MAC数据服务和MAC管理服务。MAC数据服务由NWK层数据实体(NLDE)通过MAC公共部分子层服务接入点(MCPS-SAP)来访问。MAC管理服务通过MLME-SAP来访问。全功能设备(FFD)必须使用整个MAC数据服务,但在MAC管理服务中有一些功能是可选的。在MAC数据和管理服务中有一些功能是FFD所必须具备的,但对半转载 2014-07-17 15:15:30 · 3554 阅读 · 0 评论 -
Zigbee协议规范--数据传输原语流图及说明
图1:数据传输原语流图网络层数据流程原语说明1.数据发送部分原语 APSDE-DATA.request(DstAddrMode, //目的地址寻址模式,0x01=16位短地址DstAddress, //ASDU目的实体设备地址DstEndPoint, //ASDU目的实体的断点地转载 2014-06-25 10:25:53 · 1596 阅读 · 0 评论 -
Zigbee 点对点通信
#include "OSAL.h"#include "AF.h"#include "ZDApp.h"#include "ZDObject.h"#include "ZDProfile.h"//#include "Common.h"#include "GenericApp.h"#include "DebugTrace.h"#if !defined( WIN32转载 2014-06-05 11:48:44 · 6323 阅读 · 0 评论 -
zigbee帧类型
Zigbee协议中帧格式详细说明1网络层帧分为两部分:帧头和帧载荷,帧的格式如下 网络层帧的通用格式其中帧控制的具体格式如下 网络层帧头中帧控制域格式:帧类型由开始两位表示00表示数据帧:01表示网络层命令帧;10,11保留路由搜索域中:1表示支持路由搜索;0表示不支持路由搜索安全子域中:1表示使用安全操作;0表示不支持安全操作网转载 2014-06-26 17:07:57 · 1230 阅读 · 0 评论 -
zigbee 建立一个新的网络
星形网络和树型网络可以看成是网状网络的一个特殊子集,所以接下来分析如何组建一个Zigbee网状网络。组建一个完整的Zigbee网络分为两步:第一步是协调器初始化一个网络;第二步是路由器或终端加入网络。加入网络又有两种方法,一种是子设备通过使用MAC层的连接进程加入网络,另一种是子设备通过与一个先前指定的父设备直接加入网络。 一、 协调器初始化网络 协调器建立一个新网络的流程转载 2014-06-12 17:09:29 · 7272 阅读 · 0 评论 -
zigbee网络启动流程 ---- 协调器
main()->osal_init_system()->osalInitTasks()->ZDApp_Init()进入ZDApp_Init()函数:void ZDApp_Init( uint8 task_id ){ ZDAppTaskID = task_id; // Initialize the ZDO global device short address转载 2014-06-27 16:55:28 · 3681 阅读 · 1 评论 -
halUARTCfg_t
* CONSTANTS */#if !defined( SERIAL_APP_PORT )#define SERIAL_APP_PORT 0#endif#if !defined( SERIAL_APP_BAUD )#define SERIAL_APP_BAUD HAL_UART_BR_38400//#define SERIAL_APP_BAUD HA转载 2014-06-27 16:43:28 · 2017 阅读 · 0 评论 -
zigbee 组网流程
转载:http://blog.sina.com.cn/s/blog_9d48d26f01015tph.html第一个功能:协调器的组网,终端设备和路由设备发现网络以及加入网络//第一步:Z-Stack 由 main()函数开始执行,main()函数共做了 2 件事:一是系统初始化,另外一件是开始执行轮转查询式操作系统int main( void )转载 2014-06-30 17:33:20 · 818 阅读 · 0 评论 -
Zigbee协议栈z-stack学习之串口透明传输(SerialApp)数据的收发过程
一、串口终端1的数据,如何被节点1所接收,并且发送出去的?串口数据是由HAL层来负责的,让我们从主循环 (osal_start_system) 的Hal_ProcessPoll函数找下去 ,Hal_ProcessPoll ==> HalUARTPoll ==> HalUARTPollDMA。在这个 HalUARTPollDMA 函数里最后有这样一句话:dmaCfg.uartCB转载 2014-06-11 10:04:56 · 5141 阅读 · 0 评论 -
ZStack ZDO和AF层API解读
ZDO层API实现了所有ZDP(ZigBee Device Profile)定义的命令和回应所需要的函数。ZDP描述了ZDO如何实现普通ZigBee设备的特性,它定义了设备描述和簇,ZDP为ZDO和应用提供一下功能:· 设备网络建立· 设备和服务发现·转载 2014-06-11 11:03:36 · 1701 阅读 · 0 评论 -
MAC层API
其实也算不上什么解读拉,基本上是把官方的文档翻译了一下。在Zigbee中,是分层结构的,这样做有很多的好处,每一层只负责自己的东西,数据传输更加透明和有效,好了闲话不说,我们开始解读MAC层API,当然是针对Z-Stack的,呵呵 MAC API[802.15.4 MAC API _F8WMAC API[802.15.4 MAC API _F8WMAC API[转载 2014-06-11 11:28:57 · 1479 阅读 · 0 评论 -
RF收发数据
转载 2014-06-11 11:44:38 · 2642 阅读 · 0 评论 -
对ZDO的初步理解
ZigBee学习之10——MAC层API解读 ZigBee学习之13——ZStack ZDO和AF层API解读ZigBee学习之12——对ZDO的初步理解 一直把ZDO当成一个节点设备,其实ZDO是ZigBee协议栈中的一个协议,负责所有设备的管理,安全方案。ZDO就好像是一个驻留在所有ZigBee节点转载 2014-06-11 11:21:54 · 2892 阅读 · 0 评论 -
OSAL(操作系统抽象层)API解读
ZigBee学习之7——OSAL(操作系统抽象层)API解读 2012-11-12 11:04:12| 分类:ZigBee学习 | 标签:|举报|字号大中小 订阅根据Z-Stack1.4.3-1.2.0中OSAL API_F8W-2003-0002_.pdf文档翻译。Z-Stack1.4.3及以后的版本中转载 2014-06-11 11:41:05 · 2314 阅读 · 0 评论 -
Zigbee协议栈(CC2530开发板):绑定
原文地址:Zigbee协议栈(CC2530开发板) 原文作者:江淮一士GenericApp实验绑定是协调器与终端或者终端与终端之间相互传输数据一种方法。绑定之后,网络内设备之间就可以互相传递数据了。1.协调器通过广播方式与网络内所有终端建立绑定uint16 bind_req(uint8 task_id,uint16 events)//终端请求与协调器绑定{ z转载 2014-07-01 15:24:13 · 1581 阅读 · 0 评论 -
Zigbee协议栈ZStack构架
协议栈版本信息:ZigBee2006\ZStack-1.4.3-1.2.11、ZStack协议栈构架 Zigbee协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供一些应用层API,供用户调用。协议栈体系分层架构与协议栈代码文件夹对应表如下: 整个协议栈的构架,如图所示APP:应用层目录,这是用户创建各种不同工程的区域,在这个目录转载 2014-05-28 17:08:01 · 6799 阅读 · 0 评论 -
Zigbee组播的实现
按照SampleApp实验,组播的实现需要如下步骤:1.声明一个组对象aps_Group_t SampleApp_Group;2.对aps_Group_t结构体赋值,示例如下:// By default, all devices start out in Group 1SampleApp_Group.ID = 0x0003;osal_memcpy( SampleApp_转载 2014-07-14 09:23:51 · 2716 阅读 · 0 评论