TI+Z-stack协议栈开发环境和工作流程_第1页
TI+Z-stack协议栈开发环境和工作流程_第2页
TI+Z-stack协议栈开发环境和工作流程_第3页
TI+Z-stack协议栈开发环境和工作流程_第4页
TI+Z-stack协议栈开发环境和工作流程_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、TIZ-stack协议栈开发环境和工作流程By KuangJunBinKKuanngJuunBiin:如如您对本本项目感感兴趣或或者有任任何疑问问,欢迎迎与我一一起探讨讨: HYPERLINK mailto:geforcefat geeforrceffatm。谢谢谢您的阅阅读!系统软件件设计是是在硬件件设计的的基础上上进行的的,良好好的软件件设计是是实现系系统功能能的重要要环节,也是提提高系统统性能的的关键所所在。节节点设计计基于通通用性及及便于开开发的考考虑,移移植了TTI公司司的Z-Staack协协议栈,其主要要特点就就是其兼兼容性,完全支支持IEEEE 8022. 115. 4/ZZig

2、BBee的的CC224300片上系系统解决决方案。Z-SStacck还支支持丰富富的新特特性,如如无线下下载,可可通过ZZigBBee网网状网络络(Meesh Nettworrk)下下载节点点更新。图 ZiigBeee节点点开发环环境TI的的Z-SStacck装载载在一个个基于IIAR开开发环境境的工程程里。强强大的IIAR Embbeddded Worrkbeenchh除了提提供编译译下载功功能外,还可以以结合编编程器进进行单步步跟踪调调试和监监测片上上寄存器器、Fllashh数据等等。Z-Staack根根据IEEEE 8022. 115.44和ZiggBeee标准分分为以下下几层:APII

3、(Apppliccatiion Proograammiing Intterffacee),HAAL (Harrdwaare Absstraact Layyer),MAAC(Meddia Acccesss Coontrrol), NWWK(Ziggbeee Neetwoork Layyer),OSSAL(Opeerattingg Syysteem AAbsttracct SSysttem),Seecurrityy,Serrvicce,ZDOO(Ziggbeee Deevicce OObjeectss)。使使用IAAR打开开工程文文件SaamplleAppp.eeww后后,即可可查看到到整个协协议

4、栈从从HALL层到APPP层的的文件夹夹分布。该协议议栈可以以实现复复杂的网网络链接接,在协协调器节节点中实实现对路路由表和和绑定表表的非易易失性存存储,因因此网络络具有一一定的记记忆功能能。Z-Sttackk采用操操作系统统的思想想来构建建,采用用事件轮轮循机制制,当各各层初始始化之后后,系统统进入低低功耗模模式,当当事件发发生时,唤醒系系统,开开始进入入中断处处理事件件,结束束后继续续进入低低功耗模模式。如如果同时时有几个个事件发发生,判判断优先先级,逐逐次处理理事件。这种软软件构架架可以极极大地降降级系统统的功耗耗。整个Z-staack的的主要工工作流程程,大致致分为系系统启动动,驱动动

5、初始化化,OSSAL初初始化和和启动,进入任任务轮循循几个阶阶段,下下面将逐逐一详细细分析。图 Z-Staack系系统运行行流程图图Figuure . TThe Floow CCharrt oof ZZ-Sttackk 系统统初始化化系统上电电后,通通过执行行ZMaain文文件夹中中ZMaain.c的ZSEEG iint maiin( )函数数实现硬硬件的初初始化,其中包包括关总总中断oosall_innt_ddisaablee( IINTSS_ALLL )、初始始化板上上硬件设设置HAAL_BBOARRD_IINITT( )、初始始化I/O口IniitBooardd( OOB_CCOLDD

6、)、初始化化HALL层驱动动HallDriiverrIniit( )、初初始化非非易失性性存储器器sall_nvv_innit( NUULL )、初初始化MMAC层层ZMaacInnit( )、分配664位地地址zmmainn_exxt_aaddrr( )、初始始化操作作系统oosall_innit_sysstemm( )等。硬件初始始化需要要根据HHAL文文件夹中中的haal_bboarrd_ccfg.h文件件配置寄寄存器880511的寄存存器。TTI官方方发布ZZ-sttackk的配置置针对的的是TII官方的的开发板板CC224300DB、CC224300EMKK等,如如采用其其他开发发板

7、,则则需根据据原理图图设计改改变haal_bboarrd_ccfg.h文件件配置,例如本本方案制制作的实实验板与与TI官方方的I/O口配配置略有有不同,其中状状态指示示LEDD2的需需要重新新设置LLED22控制引引脚口、通用II/O口口方向和和控制函函数定义义等。当顺利完完成上述述初始化化时,执执行ossal_staart_sysstemm( )函数开开始运行行OSAAL系统统。该任任务调度度函数按按照优先先级检测测各个任任务是否否就绪。如果存存在就绪绪的任务务则调用用tassksAArr 中中相对应应的任务务处理函函数去处处理该事事件,直直到执行行完所有有就绪的的任务。如果任任务列表表中没

8、有有就绪的的任务,则可以以使处理理器进入入睡眠状状态实现现低功耗耗。程序序流程如如图3-13所所示。oosall_sttartt_syysteem( )一旦旦执行,则不再再返回MMainn( )函数。OSALL任务调调度流程程图Figuure . TThe Floow CCharrt oof OOSALL Scchedduleer OSSAL任任务OSALL是协议议栈的核核心,ZZ-sttackk的任何何一个子子系统都都作为OOSALL的一个个任务,因此在在开发应应用层的的时候,必须通通过创建建OSAAL任务务来运行行应用程程序。通通过ossalIInittTassks( )函函数创建建OSA

9、AL任务务,其中中TasskIDD为每个个任务的的唯一标标识号。任何OOSALL任务必必须分为为两步:一是进进行任务务初始化化;二是是处理任任务事件件。任务务初始化化主要步步骤如下下:(1) 初始化化应用服服务变量量。consst ppTasskEvventtHanndleerFnn taaskssArrr 数组定定义系统统提供的的应用服服务和用用户服务务变量,如MAAC层服服务maacEvventtLooop、用用户服务务SammpleeAppp_PrroceessEEvennt等(2) 分配任任务IDD和分配配堆栈内内存voidd ossalIInittTassks( vooid )主要要

10、功能是是通过调调用ossal_memm_alllocc( )函数给给各个任任务分配配内存空空间,和和给各个个已定义义任务指指定唯一一的标识识号。(3) 在AF层注注册应用用对象通过填入入enddPoiintDDescc_t数数据格式式的EnndPoointt变量,调用 affReggistter( )在在AF层注注册EnndPoointt应用对对象。通过在AAF层注注册应用用对象的的信息,告知系系统affAdddrTyype_t地址址类型数数据包的的路由端端点,例例如用于于发送周周期信息息的SaamplleAppp_PPeriiodiic_DDstAAddrr和发送送LEDD闪烁指指令的SSa

11、mppleAApp_Flaash_DsttAdddr。(4)注注册相应应的OSSAL或或则HAAL系统统服务在协议栈栈中,ZZ-sttackk提供键键盘响应应和串口口活动响响应两种种系统服服务,但但是任何何Z-SStassk任务务均不自自行注册册系统服服务,两两者均需需要由用用户应用用程序注注册。值值得注意意的是,有且仅仅有一个个OSAAL TTaskk可以注注册服务务。例如如注册键键盘活动动响应可可调用RRegiisteerFoorKeeys( )函函数。(5)处处理任务务事件处理任务务事件通通过创建建“ApppliccatiionNNamee”_PrroceessEEvennt( )函数数

12、处理。一个OOSALL任务除除了强制制事件(Manndattoryy Evventts)之之外还可可以定义义15个事事件。SYS_EVEENT_MSGG(0 x880000)是强强制事件件。该事事件主要要用来发发送全局局的系统统信息,包括以以下信息息:AF_DDATAA_COONFIIRM_CMDD:该信信息用来来指示通通过唤醒醒AF DattaReequeest( )函函数发送送的数据据请求信信息的情情况。ZZSucccesss确认认数据请请求成功功的发送送。如果果数据请请求是通通过AFF_ACCK_RREQUUESTT置位实实现的,那么ZZSusssesss可以以确认数数据正确确的到达达目

13、的地地。否则则,ZSSuceess仅仅仅能确确认数据据成功的的传输到到了下一一个路由由。AF_IINCOOMINNG_MMSG_CMDD:用来来指示接接收到的的AF信息息。KEY_ CHHANGGE:用用来确认认按键动动作。ZDO_ NEEW_ DSTTADDDR:用用来指示示自动匹匹配请求求。ZDO_STAATE_CHAANGEE:用来来指示网网络状态态的变化化。 网络络层信息息Zigbbee设设备有两两种网络络地址:1个是644位的IEEEE地地址,通通常也叫叫作MAAC地址址或者扩扩展地址址(Exxtenndedd adddreess),另一一个是116位的的网络地地址,也也叫做逻逻辑地

14、址址(Loogiccal adddresss)或或者短地地址。664位长长地址是是全球唯唯一的地地址,并并且终身身分配给给设备。这个地地址可由由制造商商设定或或者在安安装的时时候设置置,是由由IEEEE来提提供。当当设备加加入Ziigbeee网络络被分配配一个短短地址,在其所所在的网网络中是是唯一的的。这个个地址主主要用来来在网络络中辨识识设备,传递信信息等。协调器(Cooordiinattor)首先在在某个频频段发起起一个网网络,网网络频段段的定义义放在DDEFAAULTT_ CCHANNLISST配置置文件里里。如果果ZDAAPP_ COONFIIG_ PANNID定定义的PPAN ID是

15、是0 xFFFFFF(代表表所有的的PANN IDD),则则协调器器根据它它的IEEEE地地址随机机确定一一个PAAN IID。否否则,根根据ZDDAPPP_ CCONFFIG_ PAANIDD的定义义建立PPAN ID。当节点点为Roouteer或者者Endd Deevicce时,设备将将会试图图加入DDEFAAULTT_ CCHANNLISST所指指定的工工作频段段。如果果ZDAAPP_ COONFIIG_ PANNID没没有设为为0 xFFFFFF,则Roouteer或者者Endd Deevicce会加加入ZDDAPPP_ CCONFFIG_ PAANIDD所定义义的PAAN IID。设

16、备上电电之后会会自动的的形成或或加入网网络,如如果想设设备上电电之后不不马上加加入网络络或者在在加入网网络之前前先处理理其他事事件,可可以通过过定义HHOLDD_AUUTO_STAART来来实现。通过调调用ZDDAppp_SttarttUpFFrommAppp( )来手动动定义多多久时间间之后开开始加入入网络。设备如果果成功的的加入网网络,会会将网络络信息存存储在非非易失性性存储器器(NVV Fllashh)里,掉电后后仍然保保存,这这样当再再次上电电后,设设备会自自动读取取网络信信息,这这样设备备对网络络就有一一定的记记忆功能能。对NNV FFlassh的动动作,通通过NVV_REESTOO

17、RE( )和和NV_ITNNT( )函数数来执行行。有关网络络参数的的设置大大多保存存在协议议栈Tooolss文件夹夹的f88wCoonfiig.ccfg里里。 路由由Z-Sttackk采用无线线自组网网按需平平面距离离矢量路路由协议议AODDV,建建立一个个Hocc网络,支持移移动节点点,链接接失败和和数据丢丢失,能能够自组组织和自自修复。当一个个Rouuterr接受到到一个信信息包之之后,NNMK层层将会进进行以下下的工作作:首先先确认目目的地,如果目目的地就就是这个个Rouuterr的邻居居,信息息包将会会直接传传输给目目的设备备;否则则,Roouteer将会会确认和和目的地地址相应应的路由由表条目目,如果果对于目目的地址

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论