ZigBee NV层使用
原文转载于http://www.cnblogs.com/yqh2007/archive/2011/05/31/2065284.html
系统NV区:
初始化nv数据项 osal_nv_item_init()
读取nv数据项 osal_nv_read()
写入nv数据项 osal_nv_write()
在使用osal_nv_read()或osal_nv_write()之前必须调用
osal_nv_item_init()。
函数原型:
uint8 osal_nv_item_init( uint16 id, uint16 len, void *buf )
--id: NV项的ID
--len: 项的长度
-- buf: 初始化项的数据,如果没有设置为NULL
uint8 osal_nv_read( uint16 id, uint16 ndx, uint16 len, void *buf )
-- id: NV项的ID
-- ndx: 项中的索引
-- len: 项的长度
-- buf: 项的数据
uint8 osal_nv_write( uint16 id, uint16 ndx, uint16 len, void *buf )
-- id: NV项的ID
-- ndx: 项中的索引
-- len: 项的长度
-- buf: 项的数据
0x0000 保留
0x0001-0x0020 OSAL
0x0021-0x0040 NWK
0x0041-0x0060 APS
0x0061-0x0080 Sec
0x0081-0x00A0 ZDO
0x00A1-0x0200 保留
0x0201-0x0FFF APP
0x1000-0xFFFF 保留
系统已定义NV的项:
// osal 的项
ZCD_NV_EXTADDR 0x0001 64位扩展地址
ZCD_NV_BOOTCOUNTER 0x0002 boot计数器
ZCD_NV_STARTUP_OPTION 0x0003 开始的控制选项
(ZCD_STARTOPT_DEFAULT_CONFIG_STATE)
(ZCD_STARTOPT_DEFAULT_NETWORK_STATE)
ZCD_NV_START_DELAY 0x0004 开始延迟时间
// NWK层的项
ZCD_NV_NIB 0x0021
ZCD_NV_DEVICE_LIST 0x0022
ZCD_NV_ADDRMGR 0x0023
ZCD_NV_POLL_RATE 0x0024 轮询率
ZCD_NV_QUEUED_POLL_RATE 0x0025 队列轮询率
ZCD_NV_RESPONSE_POLL_RATE 0x0026 响应轮询率
ZCD_NV_REJOIN_POLL_RATE 0x0027 重新连接轮询率
ZCD_NV_DATA_RETRIES 0x0028 传输数据重试次数
ZCD_NV_POLL_FAILURE_RETRIES 0x0029 轮询失败重试次数
ZCD_NV_STACK_PROFILE 0x002A 使用的profile ID
ZCD_NV_INDIRECT_MSG_TIMEOUT 0x002B 默认间接消息举手超时
ZCD_NV_ROUTE_EXPIRY_TIME 0x002C 路由的有效期
ZCD_NV_EXTENDED_PAN_ID 0x002D 扩展PAN ID
ZCD_NV_BCAST_RETRIES 0x002E 广播参数
ZCD_NV_PASSIVE_ACK_TIMEOUT 0x002F 广播参数
ZCD_NV_BCAST_DELIVERY_TIME 0x0030 广播参数
ZCD_NV_NWK_MODE 0x0031 网络模式
ZCD_NV_CONCENTRATOR_ENABLE 0x0032 多对一的value
ZCD_NV_CONCENTRATOR_DISCOVERY 0x0033 多对一的value
ZCD_NV_CONCENTRATOR_RADIUS 0x0034 多对一的value
ZCD_NV_MAX_SOURCE_ROUTE 0x0035 多对一的value
// APS层的项
ZCD_NV_BINDING_TABLE 0x0041 绑定表
ZCD_NV_GROUP_TABLE 0x0042 组表
ZCD_NV_APS_FRAME_RETRIES 0x0043 传输失败允许传输的最大次数
ZCD_NV_APS_ACK_WAIT_DURATION 0x0044 这个数被用做轮询设备
ZCD_NV_APS_ACK_WAIT_MULTIPLIER 0x0045 这个数被用做非轮询设备
ZCD_NV_BINDING_TIME 0x0046 终端设备绑定时间数
// 安全层的项
ZCD_NV_SECURITY_LEVEL 0x0061 安全等级
ZCD_NV_PRECFGKEY 0x0062 预先配置的安全密钥
ZCD_NV_PRECFGKEYS_ENABLE 0x0063 密钥配置为整个网络还是协调器
//ZDO层的项
ZCD_NV_USERDESC 0x0081
ZCD_NV_NWKKEY 0x0082 网络密钥
ZCD_NV_PANID 0x0083 PAN ID
ZCD_NV_CHANLIST 0x0084 默认的信道列表
ZCD_NV_LEAVE_CTRL 0x0085 控制等级
ZCD_NV_SCAN_DURATION 0x0086 默认开始扫描的期限
ZCD_NV_LOGICAL_TYPE 0x0087 逻辑设备类型
// ZCL 层的项
ZCD_NV_SCENE_TABLE 0x0091
// Non-standard NV item IDs
ZCD_NV_SAPI_ENDPOINT 0x00A1
用户自定义NV项:
为用户保留的NV项目号从 0x0201 --- 0x0FFF
原语操作NV:
1、 初始化 byte NLME_InitNV( void )
2、 设置默认的NIB,设备表,绑定表 void NLME_SetDefaultNV( void )
3、 从NV中恢复网络存储器项 byte NLME_RestoreFromNV( void )
4、 把NIB写入到NV中 void NLME_UpdateNV(
byte enables )
--NWK_NV_NIB_ENABLE 0x01 保存网络NIB
--NWK_NV_DEVICELIST_ENABLE 0x02 保存设备列表
--NWK_NV_BINDING_ENABLE 0x04 保存绑定表
--NWK_NV_ADDRMGR_ENABLE 0x08 保存管理表地址
ZigBee NV层使用的更多相关文章
- ZigBee MAC层(上)
1. 介绍 ZigBee MAC层,即IEEE 802.15.4 MAC层,这里主要介绍了802.15.4-2003版本 MAC层处理所有对物理无线信道的访问控制,并负责下面的任务 - 为协调器生成网 ...
- ZigBee PHY层
1. 介绍 ZigBee PHY层,即IEEE 802.15.4 PHY层,这里主要介绍了802.15.4-2003版本 PHY主要实现了如下功能 - 启动和关闭RF收发器 - 信道能量检测(Chan ...
- ZigBee MAC层(下)
6. MAC功能描述 6.1 信道访问 802.15.4使用的物理无线电信道的访问机制有下面两种: - 基于竞争的访问机制: 设备使用CSMA-CA退避算法以分布式方式访问信道 - 无竞争的访问机制: ...
- TI Zigbee Light Link 参考设计
TI Zigbee Light Link 参考设计 原文出处: http://processors.wiki.ti.com/index.php/Category:ZigBee_Light_Link ...
- Zigbee协议栈OSAL层API函数【转载】
OSAL层提供了很多的API来对整个的协议栈进行管理.主要有下面的几类:信息管理.任务同步.时间管理.中断管理.任务管理.内存管理.电源管理以及非易失存储管理.看到这些管理是不是感 ...
- [ZigBee] 16、Zigbee协议栈应用(二)——基于OSAL的无线控制LED闪烁分析(下)
说在前面:上一篇介绍了无线LED闪烁实现的OSAL部分,本篇介绍如何实现无线数据收发及数据处理: 上一篇是用SI跟着流程查看源码,我个人认为以架构的思维去了解代码能让人更清晰 ::ZMain.c程序入 ...
- 「2014-5-31」Z-Stack - Modification of Zigbee Device Object for better network access management
写一份赏心悦目的工程文档,是很困难的事情.若想写得完善,不仅得用对工具(use the right tools),注重文笔,还得投入大把时间,真心是一件难度颇高的事情.但,若是真写好了,也是善莫大焉: ...
- [ZigBee] 15、Zigbee协议栈应用(一)——Zigbee协议栈介绍及简单例子(长文,OSAL及Zigbee入门知识)
1.Zigbee协议栈简介 协议是一系列的通信标准,通信双方需要按照这一标准进行正常的数据发射和接收.协议栈是协议的具体实现形式,通俗讲协议栈就是协议和用户之间的一个接口,开发人员通过使用协议栈来使用 ...
- 第1章 ZigBee协议栈初始化网络启动流程
作者:宋老师,华清远见嵌入式学院讲师. ZigBee的基本流程:由协调器的组网(创建PAN ID),终端设备和路由设备发现网络以及加入网络. 基本流程:main()->osal_init_sys ...
随机推荐
- android.content.res.Resources$NotFoundException:String resource ID #ffffffff
无语,搞了半天,只能去插这个错误代号,结果就找到了这个结果. scoreTextView.setText(score+""); 这个一定要自己手动转换..不科学啊..关键是在ecl ...
- [Effective C++ --031]将文件间的编译依存关系降至最低
引言:编译时间成本 在项目中我们都会碰到修改既存类的情况:某个class实现文件做了些轻微改变,修改的不是接口,而是实现,而且只改private成分. 重新build这个程序,并预计只花数秒就好,当按 ...
- Ruby on Rails Tutorial 第一章 之 Git项目管理
1.安装和设置 (1)git的安装(略) (2)初始化设置 $ git config --global user.name "LihuaSun" $ git config --gl ...
- php引入公用部分html出现了一行空白(原创)
在导入公用部分html(客服信息)时,莫名其妙出现了一行空白,样式,html均无问题 后来才发现是html多了一行空白 <div class="ad-module-item3 fn-m ...
- Redis 数据备份与恢复
Redis SAVE 命令用于创建当前数据库的备份. 语法 redis Save 命令基本语法如下: redis 127.0.0.1:6379> SAVE 实例 redis 127.0.0.1: ...
- 小白日记42:kali渗透测试之Web渗透-SQL盲注
SQL盲注 [SQL注入介绍] SQL盲注:不显示数据库内建的报错信息[内建的报错信息帮助开发人员发现和修复问题],但由于报错信息中提供了关于系统的大量有用信息.当程序员隐藏了数据库内建报错信息,替换 ...
- 易维清使用技巧:CHM编辑利器
易维清源代码生成软件不但是一款专业的管理信息系统源代码生成器,其附带的编辑帮助信息功能更是CHM编辑利器.而且,免费试用版中的这个功能完全没有削减的哦,不花钱就可以帮你轻松编辑生成完美的CHM,官方下 ...
- [转].NET进阶系列之一:C#正则表达式整理备忘
本文转自:http://www.cnblogs.com/KissKnife/archive/2008/03/23/1118423.html 有一段时间,正则表达式学习很火热很潮流,当时在CSDN一天就 ...
- [改善Java代码]不推荐覆写start方法
多线程比较简单的方式是继承Thread类,然后覆写run()方法,在客户端程序中通过调用对象的start方法即可启动一个线程,这个是多线程程序的标准写法. 错误代码: public class Cli ...
- hdu 4455 动态规划
思路:用sum[i]表示区间长度为i的不相同数的个数和,假使所有的数都不相同,那么sum[i]=sum[i-1]+n-i+1-later[i-1]; later[i-1]表示的是序列最后面的长度为i- ...