Z-Stack

CCM - Counter with CBC-MAC          (mode of operation)
HAL - Hardware Abstraction Layer        ( 硬件抽象层)   提供接口访问TIMER,GPIO,UART,ADC等
PAN - Personal Area Network           (个人局域网)
RF - Radio Frequency              (射频)
RSSI - Received Signal Strength Indicator   (接收信号强度指示)

以简单的无线数据通信为例,其一般步骤为:

① 组网:调用协议栈组网函数、加入网络函数,实现网络的建立和节点的加入

② 发送:发送节点调用协议栈的发送函数,实现数据无线发送

③ 接收:接收节点调用协议栈的无线接收函数,实现无线数据接收

  由于协议栈都把这些函数都封装好了,因此我们用起来比较方便。下面是协议栈无线发送函数:

                    

启动程序

typedef struct {
uint16 myAddr;
uint16 panId;
uint8 channel;  //RF通道,必须在11-26之间
uint8 ackRequest;
#ifdef SECURITY_CCM  //预定义取消加密
uint8* securityKey;
uint8* securityNonce;
#endif
} basicRfCfg_t;//typedef struct{...} basicRfCfg_t,
                //在这里basicRfCfg_t类似于一个新的变量名称            

basicRfCfg_t 的数据结构,并初始化其中的成员,在basic_rf.h 代码中可以找到

uint8 basicRfInit(basicRfCfg_t* pRfConfig)//调用 basicRfInit()函数进行协议的初始化,在 basic_rf.c 代码中可以找到

函数功能:对 Basic RF 的数据结构初始化,设置模块的传输通道,短地址,PAD ID。

发送程序

  1. 创建一个 buffer,把 payload 放入其中。Payload 最大为103 个字节
  2. 调用 basicRfSendPacket()函数发送,并查看其返回值
uint8 basicRfSendPacket(uint16 destAddr, uint8* pPayload, uint8 length)
//destAddr 目的短地址
//pPayload 指向发送缓冲区的指针
//length 发送数据长度

函数功能:给目的短地址发送指定长度的数据,发送成功刚返回 SUCCESS,失败则返回 FAILED

接收程序

uint8 basicRfPacketIsReady(void)
//  上层通过 basicRfPacketIsReady()函数来检查是否收到一个新数据包

函数功能:检查模块是否已经可以接收下一个数据,如果准备好刚返回TRUE

uint8 basicRfReceive(uint8* pRxData, uint8 len,int16* pRssi)
//用 basicRfReceive()函数,把收到的数据复制到 buffer 中

函数功能:接收来自 Basic RF 层的数据包,并为所接收的数据和 RSSI 值

时间: 2024-10-16 14:08:09

Z-Stack的相关文章

Zigbee Z‐STACK协议栈和TinyOS

ZigBee 和 Tinyos 关于ZigBee和TinyOS ZigBee的基础是IEEE 802.15.4.但IEEE仅处理低级MAC层和物理层协议,因此Zigbee联盟扩展了IEEE,对其网络层协议和API进行了标准化,这就是Z‐STACK,Z‐STACK协议栈是TI公司研发,通过ZigBee联盟认证的免费协议栈,协议内部包括了WSN(无线传感器网络)的OS的模型,协议栈具有国际化,标准化的特点,协议栈已提供十几种应用场景,可以非常轻松的让用户开发出满足国际标准的产品. TinyOS是一个

[ZOJ 4016] Mergable Stack

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4016 直接用栈爆内存,看网上大神用数组实现的,构思巧妙,学习了! AC代码: /* * 用数组实现栈的一些操作 */ #include <cstdio> #include <cstring> using namespace std; const int maxn = 300005; int arr[maxn]; //存放所有的数据 //top代表栈

UVA442-栈

题意: 求矩阵相乘的次数,用栈 WA了这么多次 下次还是不能去猜题意,o(︶︿︶)o 唉 #include<iostream> #include <stdio.h> #include <memory.h> using namespace std; struct Node { int r; int c; }; int main() { freopen("d:\\1.txt", "r", stdin); int total; Node

POJ 2246 Matrix Chain Multiplication

用栈来处理一下就好了. #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<map> using namespace std; struct Mar { int r,c; } mar[3000000]; int n; char s[100000]; int r,c,top,flag; Mar Stack[1000000]; int m

(转载)MatLab绘图

转载自:http://www.cnblogs.com/hxsyl/archive/2012/10/10/2718380.html 转载自:http://www.cnblogs.com/jeromeblog/p/3396494.html plot选项: 一 基础功能 二维图形 一. plot函数① 函数格式:plot(x,y)  其中x和y为长度相同                     坐标向量     函数功能:以向量x.y为轴,绘制曲线. [例] 在区间0≤X≤2?内,绘制正弦曲线y=si

ufldl学习笔记与编程作业:Multi-Layer Neural Network(多层神经网络+识别手写体编程)

ufldl学习笔记与编程作业:Multi-Layer Neural Network(多层神经网络+识别手写体编程) ufldl出了新教程,感觉比之前的好,从基础讲起,系统清晰,又有编程实践. 在deep learning高质量群里面听一些前辈说,不必深究其他机器学习的算法,可以直接来学dl. 于是最近就开始搞这个了,教程加上matlab编程,就是完美啊. 新教程的地址是:http://ufldl.stanford.edu/tutorial/ 本节学习地址:http://ufldl.stanfor

[ufldl]Supervised Neural Networks

要实现的部分为:forward prop, softmax函数的cost function,每一层的gradient,以及penalty cost和gradient. forwad prop forward prop是输入sample data,使sample data通过神经网络后得到神经网络输出的过程. 以分类问题来说,不同层的输入和输出如下表所示: 层 输入 输出 输入层 sample data feature map 隐藏层 feature map feature map 输出层 fea

UVA - 442 Matrix Chain Multiplication

点击打开链接 题目意思是求矩阵相乘的运算次数, 设A size为n*s,B size为s*m 那么A*B运算量为n*m*s. 注意括号里面的优先级,并且依次累加即可,并且没有不合法的序列. 思路是先对输入的n个矩阵编号按照字典序排序,因为每次两个矩阵相乘会得到一个新的矩阵,编号可以设置成在n的编号加1,并且重新压入栈中. #include <iostream> #include <cstdio> #include <cmath> #include <vector&

基于ZigBee的家居控制系统的设计与应用

基于ZigBee的家居控制系统的设计与应用 PPT简介:http://pan.baidu.com/s/1i38PC6D 摘  要 智能家居是未来家居的发展方向,其利用先进的网络技术.计算机技术和无线通信技术等将家居中的各种电子电气设备连接起来,统一管理.远程监控和资源共享,实现了高效.便利的生活环境.近些年互联网的迅猛发展,网络的稳定性.安全性和网络带宽都有了长足的发展,由互联网提供的各种服务已经深入到人们生活的方方面面,因此将智能家居系统同互联网结合起来,为用户提供远程控制服务,延伸智能家居系

Leetcode#113Path Sum II

Path Sum II Total Accepted: 43473 Total Submissions: 162906My Submissions Question Solution Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum. For example:Given the below binary tree and sum = 22,