搜索
查看: 34598|回复: 153

【深度分析Zigbee】第一讲:Zstack协议栈初窥(一)

[复制链接]

9

主题

20

帖子

98

积分

注册会员

Rank: 2

积分
98
发表于 2013-8-20 11:35:55 | 显示全部楼层 |阅读模式
Zstack协议栈是由TI公司在2007年4月推出的Zigbee无线通讯协议,是一种半开源式的协议栈,历经多年发展,功能不断完善,当前最新版本为2.5.1-a。网上资料有的说zstack协议栈是开源的,但是实际上zstack中的很多关键代码都是以库文件的形式给出的,我们并不能知道这些代码的真实内容,这也给学习这个协议栈带来了一定的困难。现在也有几个真正开源的Zigbee协议栈,如msstatePAN协议栈、freakz协议栈,但是同这些协议栈相比zstack的真正优势则是其搭载的硬件平台:TI的Zigbee无线通讯芯片:CC2520、CC2530等。

笔者最早接触Zigbee也是从学习TI的开发套件开始的,经过几年的沉积,对于CC2530和ZStack协议栈的掌握也可以算是细致入微了,现在打算把自己对协议栈的理解和认识拿出来和大家一起分享。

首先我们从Zigbee的特性说起。在网上搜索zigbee,紧跟在它后面的多半都是近距离、低功耗、自组织这些名词,这也是Zigbee最重要的特点。说它近距离是硬件模块的载波频率是2.4GHz,波长短,穿透性差,另外它和蓝牙、wifi是工作在同一频段的,容易受到干扰,因此传输距离不远。室内的话笔者做过的模块一般只能传输40到50米,网上那些不加PA的透传模块声称室内能传百米的,笔者认识都是在扯淡。低功耗是Zigbee非常重要的特点,CC2530的发射电流为29mA,在低功耗休眠模式下,只消耗不到1uA的电流,这个还是非常给力的。当然,随着蓝牙4.0的推出,Zigbee的这一优势将大打折扣。自组织以及与之相关的自愈合、自动路由等等技术则是Zigbee的真正核心竞争力所在,笔者也是在学习和使用Zigbee的过程中逐渐体会到这些功能的强大之处,也是接下来笔者所要阐述的主要内容。

当你第一次打开Zstack协议栈,查看程序代码,第一感觉也许会是:我靠,这该不是唐僧取来的梵文真经吧。然后转念一想,飞盘扔的再远,最后总会回到手中;风筝飞的再高,总是逃脱不了牵引它的线and so on(此处省略1万字)。眼前的一切都是虚妄,只有main才是你永远的家。搜索main,果然,熟悉的面孔让当年的笔者有了一丝的宽慰。
zigbee协议栈-加水印.jpg
(点击图片查看大图)

笔者就是从这个入口函数开始,一步步的走入了Zstack的那缤纷复杂的世界不能自拔。方法只有2个:看文档和单步跟踪调试检验,废话少说,这里笔者就对这些函数来进行粗略的解释。

osal_int_disable( INTS_ALL ); 关掉所有中断。

HAL_BOARD_INIT(); 初始化,对晶振的使用情况以及外围LED工作状态进行初始化。

zmain_vdd_check(); 工作电压检测,这是为了检测CC2530供电电压能够保证它的正常工作。

InitBoard( OB_COLD ); 设备IO初始化,进一步深入这个函数,会看到下面这个函数HalKeyConfig(HAL_KEY_INTERRUPT_DISABLE, OnBoard_KeyCallback)被调用。HalKeyConfig()是对按键使用的IO进行初始化以及设置按键工作方式。按键IO初始化主要是将按键所对应的IO口定义为输入端口。如果HalKeyConfig()的第一个参数是HAL_KEY_INTERRUPT_ENABLE,那么按下该按键会触发IO终端,因此HalKeyConfig()函数还要对IO终端进行初始化的配置;如果HalKeyConfig()的第一个参数是HAL_KEY_INTERRUPT_DISABLE,那么主程序会周期性的执行按键扫描程序,查看按键状态。

HalDriverInit(); 硬件驱动初始化。这个函数主要完成的是对单片机外围设备工作状态进行初始化,如ADC、DMA、LCD、LED、KEY、UART等等。

osal_nv_init( NULL ); NV功能初始化。这里要说明一下,NV是非易失性(non-volatile)的简称,这里的NV区是CC2530 flash里分配的掉电之后仍旧能够保存数据的存储区。一般zigbee模块完成入网之后,如果重启该模块,那么模块先前的网络信息都会丢失,它就是一个全新的“空白”模块,可以加入各种NETWORK ID不同的网络。如果模块启用了NV_RESTORE功能(在preprocesss选项中添加NV_RESTORE),模块上一次加入过的网络信息将保存下来,重启该模块之后,它也只能加入NETWORK ID同上一次相同的网络。

本文为与非网月光码头原创,未经允许谢绝转载。
更多内容请见:【深度分析Zigbee】Zigbee技术知多少?资深大牛对对碰
----------------------------

主讲嘉宾简 介:网名:月光码头。毕业于中国科学院电子学研究所,主要从事zigbee物联网方向的应用研究,尤其擅长TI RF芯片、和Silicon Lab  MCU芯片的使用。现就职于上海理滋芯片设计公司,任研发部门经理,主要从事智能家居产品的设计开发,拥有5年多的zigbee软硬件开发经验。
------------------
推荐技术讲座:
  听东北人讲天线:每周一个实例,个个经典!(CST仿真实践全包括)
【ADS学习小组】课程汇总(火烽主讲)
【HFSS学习小组】课程汇总(木木主讲)
1.jpg
回复

使用道具 举报

0

主题

61

帖子

134

积分

注册会员

Rank: 2

积分
134
发表于 2013-8-20 12:58:53 | 显示全部楼层

RE:【Zigbee系列讲座】第一讲:Zstack协议栈初窥(一)

图片链接失效了。
回复 支持 反对

使用道具 举报

2

主题

34

帖子

67

积分

注册会员

Rank: 2

积分
67
发表于 2013-8-20 13:47:05 | 显示全部楼层

RE:【Zigbee系列讲座】第一讲:Zstack协议栈初窥(一)

高手啊,真是,一起来学习一下
回复 支持 反对

使用道具 举报

10

主题

97

帖子

303

积分

中级会员

Rank: 3Rank: 3

积分
303
发表于 2013-8-20 13:54:22 | 显示全部楼层

RE:【Zigbee系列讲座】第一讲:Zstack协议栈初窥(一)

先看图,看图
回复 支持 反对

使用道具 举报

3

主题

32

帖子

69

积分

注册会员

Rank: 2

积分
69
发表于 2013-8-20 14:22:59 | 显示全部楼层

RE:【Zigbee系列讲座】第一讲:Zstack协议栈初窥(一)

围观群众来袭。还要大于6个字啊
回复 支持 反对

使用道具 举报

1

主题

21

帖子

1

积分

新手上路

Rank: 1

积分
1
发表于 2013-8-20 15:58:54 | 显示全部楼层

回复:【深度分析Zigbee】第一讲:Zstack协议栈初窥(一)

看看·学习
回复 支持 反对

使用道具 举报

445

主题

1871

帖子

1万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
14758
发表于 2013-8-20 16:21:52 | 显示全部楼层

RE:【深度分析Zigbee】第一讲:Zstack协议栈初窥(一)

这个东东我是第一次接触,感觉像以前的单位片机呢,编程来实现功能,不知我理解的对不对
回复 支持 反对

使用道具 举报

10

主题

97

帖子

303

积分

中级会员

Rank: 3Rank: 3

积分
303
发表于 2013-8-20 16:43:20 | 显示全部楼层

回复:【深度分析Zigbee】第一讲:Zstack协议栈初窥(一)

回复第 7 楼 于2013-08-20 16:21:52发表:
这个东东我是第一次接触,感觉像以前的单位片机呢,编程来实现功能,不知我理解的对不对
---东北人大哥见识果然广博,猜也可以猜到三分
回复 支持 反对

使用道具 举报

0

主题

13

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2013-8-20 19:18:57 | 显示全部楼层

RE:【深度分析Zigbee】第一讲:Zstack协议栈初窥(一)

这个好,跟大牛学习
回复 支持 反对

使用道具 举报

9

主题

20

帖子

98

积分

注册会员

Rank: 2

积分
98
 楼主| 发表于 2013-8-21 13:27:41 | 显示全部楼层

回复:【深度分析Zigbee】第一讲:Zstack协议栈初窥(一)

回复第 7 楼 于2013-08-20 16:21:52发表:
这个东东我是第一次接触,感觉像以前的单位片机呢,编程来实现功能,不知我理解的对不对

没错,你理解的是对的,东北人,RF片子用的是51的内核。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条

Archiver|手机版|小黑屋|RF技术社区

GMT+8, 2024-4-20 18:17 , Processed in 0.088079 second(s), 10 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表