欢迎来到天天文库
浏览记录
ID:45566773
大小:124.21 KB
页数:10页
时间:2019-11-14
《TI_Z-stack协议栈开发环境和工作流程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、TIZ-stack协议栈开发环境和工作流程系统软件设计是在硬件设计的基础上进行的,良好的软件设计是实现系统功能的重更环节,也是捉高系统性能的关键所在。节点设计基于通用性及使于开发的考虑,移植了TJL公司的Z-Stack协议栈,其主要特点就是其兼容性,完全支持IEEE802・15.4/ZigBee的CC2430片上系统解决方案。Z-Stack还支持丰富的新特性,如无线下载,可通过ZigBee网状网络(MeshNetwork)下载节点更新。IAREmbeddedWorkbenchJxiiS4JLklfMJRTi
2、nt/bQCtioa^/t«r・Ip-jnK.,nif*ff“i.rrw”©eC*2〃Q40Z/JbxoJtatoa4求duiiJIDE••2*#ce>;llU"3、调试和监测片上寄存器、Flash数据等。Z-Stack根据IEEE802.15.4和ZigBee标准分为以卜几层:API(ApplicationProgrammingInterface),HAL(HardwareAbstractLayer),MAC(MediaAccessControl),NWK(ZigbceNetworkLayer),OSAL(OperatingSystemAbstractSystem),Security,Service,ZDO(ZigbeeDeviceObjects)。使用IAR打开丁程4、文件SampleApp.eww后,即可查看到整个协议栈从HAL层到APP层的文件夹分布。该协议栈可以实现复杂的网络链接,在协调器节点屮实现对路由表和绑定表的非易失性存储,因此网络具有一定的记忆功能。Z-Stack采用操作系统的思想来构建,采用事件轮循机制,当各层初始化Z后,系统进入低功耗模式,当事件发生时,唤醒系统,开始进入中断处理事件,结束后继续进入低功耗模式。如果同时有几个事件发生,判断优先级,逐次处理事件。这种软件构架可以极人地降级系统的功耗。整个Z-stack的主要工作流程,大致分为系统启动,驱动初5、始化,OSAL初始化和启动,进入任务轮循几个阶段,下面将逐一详细分析。开中断xlOSALfr^严轮循左循坏相对低在LCD设备信息调用那件处理程序图Z-Stack系统运行流程图Figure.TheF1owChartofZ-Stack系统初始化系统上电后,通过执行ZMain文件夹中ZMain.c的ZSEGintmain()函数实现硬件的初始化,其中包括关总中断osal_int_disable(INTS_ALL)、初始化板上硬件设置HALBOARD1NIT()、初始化I/O口lnitBoard(OBCOLD)、初6、始化HAL层驱动HalDriverlnit()、初始化非易失性存储器sal_nv_init(NULL)、初始化MAC层ZMaclnit()、分配64位地址zmainextaddr()、初始化操作系统osal_init_systeni()等。硬件初始化需要根据HAL文件夹中的hal_board_cfg.h文件配置寄存器8051的寄存器。TT官方发布Z-stack的配置针如的是TT官方的开发板CC2430DB.CC2430EMK等,如釆用其他开发板,则需根据原理图设计改变halboardcfg.h文件配置,例如7、本方案制作的实验板与TI官方的I/O口配置略有不同,其中状态指示LED2的需耍重新设置LED2控制引脚口、通用I/O口方向和控制函数定义等。当顺利完成上述初始化时,执行osal_start_system()函数开始运行OSAL系统。该任务调度函数按照优先级检测各个任务是否就绪。如果存在就绪的任务则调用tasksArr:]中相对应的任务处理函数去处理该事件,直到执行完所有就绪的任务。如果任务列表中没有就绪的任务,则可以使处理器进入睡眠状态实现低功耗。程序流程如图3T3所示oosal_start_system(8、)一旦执行,则不再返回Main()函数。OSAL任务调度流程图Figure.TheF1owChartofOSALSchedulerOSAL任务OSAL是协议栈的核心,Z-stack的任何一个子系统都作为OSAL的一个任务,因此在开发应用层的时候,必须通过创建OSAL任务來运行应用程序。通过osallnitTasks()函数创建OSAL任务,其中TaskID为每个任务的唯一标识号。任何0SAL任务必须分为两步:一是
3、调试和监测片上寄存器、Flash数据等。Z-Stack根据IEEE802.15.4和ZigBee标准分为以卜几层:API(ApplicationProgrammingInterface),HAL(HardwareAbstractLayer),MAC(MediaAccessControl),NWK(ZigbceNetworkLayer),OSAL(OperatingSystemAbstractSystem),Security,Service,ZDO(ZigbeeDeviceObjects)。使用IAR打开丁程
4、文件SampleApp.eww后,即可查看到整个协议栈从HAL层到APP层的文件夹分布。该协议栈可以实现复杂的网络链接,在协调器节点屮实现对路由表和绑定表的非易失性存储,因此网络具有一定的记忆功能。Z-Stack采用操作系统的思想来构建,采用事件轮循机制,当各层初始化Z后,系统进入低功耗模式,当事件发生时,唤醒系统,开始进入中断处理事件,结束后继续进入低功耗模式。如果同时有几个事件发生,判断优先级,逐次处理事件。这种软件构架可以极人地降级系统的功耗。整个Z-stack的主要工作流程,大致分为系统启动,驱动初
5、始化,OSAL初始化和启动,进入任务轮循几个阶段,下面将逐一详细分析。开中断xlOSALfr^严轮循左循坏相对低在LCD设备信息调用那件处理程序图Z-Stack系统运行流程图Figure.TheF1owChartofZ-Stack系统初始化系统上电后,通过执行ZMain文件夹中ZMain.c的ZSEGintmain()函数实现硬件的初始化,其中包括关总中断osal_int_disable(INTS_ALL)、初始化板上硬件设置HALBOARD1NIT()、初始化I/O口lnitBoard(OBCOLD)、初
6、始化HAL层驱动HalDriverlnit()、初始化非易失性存储器sal_nv_init(NULL)、初始化MAC层ZMaclnit()、分配64位地址zmainextaddr()、初始化操作系统osal_init_systeni()等。硬件初始化需要根据HAL文件夹中的hal_board_cfg.h文件配置寄存器8051的寄存器。TT官方发布Z-stack的配置针如的是TT官方的开发板CC2430DB.CC2430EMK等,如釆用其他开发板,则需根据原理图设计改变halboardcfg.h文件配置,例如
7、本方案制作的实验板与TI官方的I/O口配置略有不同,其中状态指示LED2的需耍重新设置LED2控制引脚口、通用I/O口方向和控制函数定义等。当顺利完成上述初始化时,执行osal_start_system()函数开始运行OSAL系统。该任务调度函数按照优先级检测各个任务是否就绪。如果存在就绪的任务则调用tasksArr:]中相对应的任务处理函数去处理该事件,直到执行完所有就绪的任务。如果任务列表中没有就绪的任务,则可以使处理器进入睡眠状态实现低功耗。程序流程如图3T3所示oosal_start_system(
8、)一旦执行,则不再返回Main()函数。OSAL任务调度流程图Figure.TheF1owChartofOSALSchedulerOSAL任务OSAL是协议栈的核心,Z-stack的任何一个子系统都作为OSAL的一个任务,因此在开发应用层的时候,必须通过创建OSAL任务來运行应用程序。通过osallnitTasks()函数创建OSAL任务,其中TaskID为每个任务的唯一标识号。任何0SAL任务必须分为两步:一是
此文档下载收益归作者所有