当前位置:主页 > 科技论文 > 网络通信论文 >

Z-Stack运行机制的实验教学探究

发布时间:2021-02-17 05:49
  无线传感器网络课程中ZigBee技术开发是重要教学内容,本文分析了ZigBee实验过程中Z-Stack运行原理和机制,通过对Z-Stack工程文件分析以及对比部分实验探讨,进一步帮助学生理解OASL运行调度机制,提高学生应用Z-Stack进行ZiBee技术开发的能力。 

【文章来源】:电子制作. 2020,(20)

【文章页数】:3 页

【图文】:

Z-Stack运行机制的实验教学探究


Z-Stack工程文件目录结构

按键,串口


我们再设计一个实验,具体要求是在串口实验实现的功能基础上,添加按键功能,每当按键按下时,串口显示出按键信息。这在CC2530基础实验中,是很容易实现的。只要配置好输入输出口,采用轮询或中断方式,使用按键检测代码,就可检测按键是否按下。在Z-Stack里,采用的思路也是完全不一样。本文具体分析Z-Stack采用按键轮询的方式进行按键功能的设计。初始化是必不可少的,Z-Stack里提供了初始化按键的函数HalKeyInit(),调用此函数即可进行初始化GPIO,但要在宏定义里,修改定义的引脚为用作按键的引脚(比如使用P0.5作为按键输入)。HalkeyPoll()函数是按键检测函数,检测是哪个按键以及按键是否按下。如果在CC2530基础实验里,我们可以通过循环语句来进行轮询。但在Z-Stack中是通过事件来驱动的OASL进行轮询。按键查找的是在HAL层进行,Z-Stack在HAL层定义一个按键事件HAL_KEY_EVENT,此层初始化时,需要通过函数osal_set_event()把此定义的按键事件添加进去,OSAL循环运行中检测到按键事件是否发生,如发生按键事件,HAL层处理函数Hal_ProcessEvent()会调用HalkeyPoll()函数,对按键进行检测,从而检测到按键状态。为了达到定时轮询,可以通过osal_start_timerEx()函数设置定时触发按键事件HAL_KEY_EVENT,这样,就相当于定时扫描是否有按键按下,获得按键信息。按键获得的信息是在HAL层获得的,但是按键处理通常是在APP层,那么APP层又如何获得按键信息的呢?Z-Stack里提供了OnBoard_SendKeys()函数,这个函数的功能就是将按键的值和按键的状态进行打包,然后发送到应用层。在APP应用层,处理函数里进行解包,就获得按键的信息,调用按键处理程序进行处理。运行结果如图2所示。由此可见,Z-Stack里是把按键作为一个事件来处理,需要把按键进行注册,不断产生事件,让OASL循环调用按键检测,获得按键信息,并传送到应用层。当有按键按下时,触发按键事件,然后调用事件处理函数进行按键处理,所以Z-Stack必须依赖OASL才能运行,不管在那一层,都可让OASL进行调度。

【参考文献】:
期刊论文
[1]基于Z-Stack的ZigBee协议栈组网过程研究[J]. 何智勇,徐丽萍.  南京工业职业技术学院学报. 2018(01)
[2]ZigBee技术在开放性实验教学中的应用[J]. 李洋,章韵.  无线互联科技. 2016(12)
[3]面向ZigBee技术的教学实验平台[J]. 郭伟然,汤勇明.  电气电子教学学报. 2014(01)
[4]Z-Stack剖析及其在无线测温网络中的应用[J]. 张奇松,尹航.  计算机系统应用. 2009(02)



本文编号:3037524

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/wltx/3037524.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户1765f***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com