- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.协议栈工作原理
WeBee 团队 Zigbee 组网实验教程
4、协议栈工作原理
前言:
前文已经有多次地方提及到协议栈,但是迟迟没有做一个介绍。呵呵,
不是不讲,时候未到!我们需要在最适合的时候做最适合的事。今天,我们来
讲述一下协议栈的工作原理,这个东西将是我们以后接触得最多的东西,从学
习到项目开发,你不得不和他打交道。由于我们的学习平台是基于TI 公司的,
所以讲述的当然也是TI 的Z-STACK 。
内容讲解:
相信大家已经知道CC2530 集成了增强型的8051 内核,在这个内核中进
行组网通讯时候,如果再像以前基础实验的方法来写程序,相信大家都会望而
止步,ZigBee 也不会在今天火起来了。所以 ZigBee 的生产商很聪明,比如TI
公司,他们问你搭建一个小型的操作系统(本质也是大型的程序),名叫Z-stack。
他们帮你考虑底层和网络层的内容,将复杂部分屏蔽掉。让用户通过 API 函数
就可以轻易用ZigBee 。这样大家使用他们的产品也理所当然了,确实高明。
也就是说,协议栈是一个小操作系统。大家不要听到是操作系统就感觉
到很复杂。回想我们当初学习 51 单片机时候是不是会用到定时器的功能?嗯,
我们会利用定时器计时,令LED 一秒改变一次状态。好,现在进一步,我们利
用同一个定时器计时,令 LED1 一秒闪烁一次,LED2 二秒闪烁一次。这样就
有2 个任务了。再进一步…有n 个LED,就有n 个任务执行了。协议栈的最终工
作原理也一样。从它工作开始,定时器周而复始地计时,有发送、接收…等任
务要执行时就执行。这个方式称为任务轮询。
图1 任务轮询
1
WeBee 团队 Zigbee 组网实验教程
协议栈很久没打开了吧?没什么神秘的,我直接拿他们的东西来解剖!我
们打开协议栈文件夹 Texas Instruments\Projects\zstack 。里面包含了TI 公司
的例程和工具。其中的功能我们会在用的的实验里讲解。再打开 Samples 文件
夹:
图2
Samples 文件夹里面有三个例子: GenericApp、SampleApp、SimpleApp
在这里们选择SampleApp 对协议栈的工作流程进行讲解。打开
\SampleApp\CC2530DB 下工程文件 SampleApp.eww。留意左边的工程目录,
我们暂时只需要关注Zmain 文件夹和App 文件夹。
2
WeBee 团队 Zigbee 组网实验教程
图3
任何程序都在main 函数开始运行,Z-STACK 也不例外。打开Zmain.C,
找到int main( void ) 函数。我们大概浏览一下main 函数代码:
3
WeBee 团队 Zigbee 组网实验教程
图4
/********************************************************************
*
* @fn main
* @brief First function called after startup.
* @return dont care
*/
int main( void )
文档评论(0)