传感网应用开发(高级)ppt课件

上传人:文**** 文档编号:251962888 上传时间:2024-11-11 格式:PPT 页数:43 大小:4.36MB
返回 下载 相关 举报
传感网应用开发(高级)ppt课件_第1页
第1页 / 共43页
传感网应用开发(高级)ppt课件_第2页
第2页 / 共43页
传感网应用开发(高级)ppt课件_第3页
第3页 / 共43页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,PPT,模板下载:, ZigBee一词来自人们对蜜蜂的移动姿态,ZigBee,设备,ZigBee,网络设备有三种逻辑类型:,协调器,(Coordinator),路由器,(Router),终端设备,(End-device),ZigBee设备 ZigBee网络设备有三种逻辑类型:,ZigBee,频谱分布,ZigBee频谱分布,ZigBee,信道,ZigBee信道,ZigBee PAN ID,即,ZigBee,局域网,ID,,是节点用于判断自身所属网络的标识。,Zigbee,无线传感网的协调器是通过选择网络工作信道及各域网识别标志,PANID,(网络号)来启动一个无线传感网的。,PANID,是一个,32,位标识,范围从,0 x0000-0 xFFFF,。通过,mDefaultValueOfPanId_c,来设置一个初始化的,PANID,。,ZigBee PAN ID即ZigBee局域网ID,是节点,2,ZigBee,协议栈,2ZigBee协议栈,Zstack,概述,每个服务实体通过一个服务接入点(,SAP,)为上层提供一个接口,每个,SAP,支持多种服务原语来实现要求的功能。,ZigBee,协议栈结构由一组被称作层的模块组成。每一层为上面的层执行一组特定的服务:数据实体提供了数据传输服务,管理实体提供了所有其它的服务。,TI,公司开发的,ZStack,是,ZigBee,协议栈,并且经过了,ZigBee,联盟的认可而为全球众多开发商所广泛采用。,Zstack概述 每个服务实体通过一个服务接入点(SAP),Zstack,结构,应用层,网络层,MAC,层,物理层,IEEE802.15.4,ZigBee,协议,Zstack结构 应用层,Zstack,结构层次,Zstack结构层次,Zstack,层次功能,APP,:为应用层目录,用户可以根据需求添加自己的任务。这个目录中包含了应用层和这个项目的主要内容,在协议栈里面一般是以操作任务实现的。,HAL,:硬件驱动层,包括硬件相关的配置、驱动以及操作函数。,MAC,:,MAC,层目录,包括着,MAC,层配置参数文件及,MAC LIB,库的函数接口文件;,MT,:包括基于,AF(,应用框架,),层的调试函数文件,主要包括串口等通信函数;,OSAL,:协议栈的操作系统。,Profile,:,AF,层目录,包含,AF,层处理函数。,Zstack层次功能APP:为应用层目录,用户可以根据需求添,Zstack,层次功能,Security&Services,:安全服务层目录,安全层和服务层处理函数,比如加密。,Tools,:工程配置目录,包括空间划分及,ZStack,相关配置信息。,ZDO,:,ZDO,设备对象目录,。,ZMac,:,MAC,层目录,包括,MAC,层参数及,MAC,层的,LIB,库函数回调处理函数。,Zmain,:主函数目录,包括入口函数及硬件配置文件。,Output,:输出文件目录,由,IAR,自动生成。,Zstack层次功能Security&Services:安全,Zstack,工作流程,整个,Z-Stack,的主要工作流程,大致分为系统启动,驱动初始化,,OSAL,初始化和启动,进入任务轮循几个阶段。,Zstack工作流程整个Z-Stack的主要工作流程,大致分,Zstack-OSAL,任务调度函数按照优先级检测各个任务是否就绪。如果存在就绪的任务则调用,tasksArr,中相对应的任务处理函数去处理该事件,直到执行完所有就绪的任务。如果任务列表中没有就绪的任务,则可以使处理器进入睡眠状态实现低功耗。,OSAL,是协议栈的核心,,Z-Stack,的任何一个子系统都作为,OSAL,的一个任务。,Zstack-OSAL任务调度函数按照优先级检测各个任务是否,3,ZigBee,协议栈安装,3ZigBee协议栈安装,Zstack,下载,Zstack下载,Zstack,安装,Zstack安装,Zstack,安装,Zstack安装,Zstack,安装,协议栈各目录文件,说明文档,工程文档,工具文件,Zstack安装协议栈各目录文件说明文档工程文档工具文件,Z-Stack OSAL,运行机制 任务与事件的添加,基于协议栈的串口通信,Z-Stack OSAL运行机制 任务与事件的添加,01,重点与难点,02,原理介绍,03,目录,CONTENTS,串口通信案例,01重点与难点02原理介绍03目录CONTENTS串口通信案,重点与难点,重点:,1,、,OSAL,的运行机制;,2,、任务、事件、事件处理函数的概念。,难点:,1,、事件响应机制;,2,、添加任务、事件的实现。,重点与难点 重点:1、OSAL的运行机制;,2.1 OSAL,术语及概念,Z-Stack,采用基于一个,轮转查询,式操作系统,该操作 系统命名为,OSAL,(,Operating System Abstraction Layer,),中文为“,操作系统抽象层,”。,Z-Stack,协议栈将底层、网络层等复杂部分屏蔽掉,让程序员通过,API,函数就可以轻松地开发一套,ZigBee,系统。,原理介绍,2.1 OSAL术语及概念原理介绍,任务(,Task,),任务又称线程,是一个简单的,程序的执行过程,。在任务设计时,需要将问题尽可能地分为多个任务,每个任务独立,完成某种功能,,同时被赋予一定的优先级,,拥有,自己的,CPU,寄存器和堆栈空间,资源,。一般将任务设计为一个,无限循环,。,事件(,Events,),ZigBee,协议栈是由各个层组成的,每一层都要处理各种事件,所以就为每一层定义了一个事件处理函数,可以把这个处理函数理解为任务,,任务从消息队列中提取消息,从消息中提取所发生的具体事件,调用相应的具体事件处理函数,,比如按键处理函数等等。,原理介绍,任务(Task)原理介绍,2.2 OSAL,运行机制,OSAL,就是以实现多任务为核心的系统资源分配机制,主要提供任务注册、初始化和启动,任务间的同步、互斥,中断处理,存储器分配与管理等功能。,OSAL,负责调度各个任务运行,如果有事件发生时,则会调用相应的事件处理函数进行处理。,图,1 OSAL,运行机制,原理介绍,2.2 OSAL运行机制图1 OSAL运行机制原理介绍,事件和任务的事件处理函数是如何建立关系:,首先,建立一个,事件表,,保存各个任务的对应的事件;,其次,建立一个,函数表,,保存各个任务事件处理函数的地址;,最后,将这两个表建立某种对应关系,,当某一事件发生时,则查找函数表找到对应的事件处理函数,。,原理介绍,图,2,事件表和函数表的关系,事件和任务的事件处理函数是如何建立关系:原理介绍图2 事件,通过不断地查询,事件表,(,tasksEventsidx,),判断是否有事件发生,如果,有则查找函数表,(,tasksArridx,),,调用本事件的处理函数,。,事件表是用数组来表示,,,数组的每个元素对应用一个任务的事件,,一般用户定义的事件最好是每一位二进制数表示一个事件,那么一个任务最多可以有,16,个事件(因为,events,是,uint16,类型)。例如:,0 x01,表示串口接收新数据,,0 x02,表示读取温度数据,,0 x04,表示读取湿度数据等,但是不用,0 x03,、,0 xFE,等数值表示事件。,函数表是用指针数组来表示,,数组的每个元素是相应任务的,事件处理函数的首地址,(函数指针)。,OSAL,是一种基于,事件驱动,的任务轮询式操作系统,,事件有效,才,调用相应任务的事件处理函数,。,原理介绍,通过不断地查询事件表(tasksEventsidx),,2.3,关键函数,在,ZigBee,协议栈中,,tasksCnt,、,tasksEvents,和,tasksArr,三个变量非常重要:,tasksCnt,:该变量保存了,任务的总数量,。,tasksEvent,:这是一个,指针,,,指向了事件表的首地址,。在,OSAL_SampleApp.c,中声明为:,uint16*tasksEvents;,tasksArr,:这是一个,数组,,该数组的每个元素都是一个函数指针(函数的地址),,指向了事件函数,。,原理介绍,2.3 关键函数原理介绍,2.4,添加任务与事件的方法,在,ZigBee,协议栈应用程序开发时,添加新的任务及其对应的事件,方法如下:,在任务的函数表中添加新任务。,编写新任务的初始化函数。,定义新任务全局变量和事件。,编写新任务的事件处理函数。,原理介绍,2.4 添加任务与事件的方法原理介绍,3.1,案例介绍,在用户应用层任务处理函数,SampleApp_ProcessEvent,中实现每隔,1,秒向串口发送“,Hello ZigBee,!,”,;并增加一个应用层新任务,实现由,PC,端发送字符“,1”,和“,0”,控制,ZigBee,模块的,LED2,灯的开与关。,实训案例,3.1 案例介绍实训案例,1,、移除工程中的,SampleAppHw.h,和,SampleAppHw.c,文件。修改,SampleApp.c,文件对头文件的引用(注意,Workspace,选择,CoordinatorEB,)。,实训案例,1、移除工程中的SampleAppHw.h和SampleA,2,、打开,MT_UART.h,,关闭串口流控,将波特率改为,115200,。,实训案例,2、打开MT_UART.h,关闭串口流控,将波特率改为11,3,、修改,SampleApp.h,,增加周期时长和串口事件编号的宏定义。,实训案例,3、修改SampleApp.h,增加周期时长和串口事件编号,4,、,SampleApp.c,中修改,SampleApp_Init,函数,启动一个,1,秒定时器,向,SampleApp_TaskID,发送串口定时发送事件。,实训案例,4、SampleApp.c中修改SampleApp_Ini,实训案例,5,、修改,SampleApp_ProcessEvent,函数。增加新事件,SAMPLEAPP_SEND_PERIODIC_UART_MSG_EVT,的处理,先向串口输出“,Hello ZigBee,”信息,再启动,1,秒定时器。,实训案例5、修改SampleApp_ProcessEvent,实训案例,6,、,添加应用层新任务。,(,1,)创建,UartApp.h,头文件,并在该文件中增加任务初始化函数和事件处理函数声明。,实训案例6、添加应用层新任务。(1)创建UartApp.h头,实训案例,(,2,)创建,UartApp.c,文件,并在该文件中增加新任务的初始化函数和事件处理函数,(重要),。,实训案例(2)创建UartApp.c文件,并在该文件中增加新,实训案例,(,3,)打开,OSAL_SampleApp.c,文件,在任务数组,const pTaskEventHandleFn tasksArr,中增加应用层任务处理函数,UartApp_ProcessEvent,,保证新任务事件处理函数得到调度。,实训案例(3)打开OSAL_SampleApp.c文件,在任,实训案例,(,5,),在,OSAL_SampleAPP.c,中添加头文件,UartApp.h,的引用。,实训案例(5)在OSAL_SampleAPP.c中添加头文,实训案例,实训案例,实训案例,思考与作业:,(,1,),通过串口发送非,1,数字(如,6,),灯会被点亮吗?,(,2,)发送,1,后,如何将灯从常亮改为闪烁?,实训案例 思考与作业:,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!