TI Z-Stack协议栈架构分析

news/2024/7/20 13:31:48 标签: 内存管理, 操作系统

协议栈定义通信硬件和软件在不同级如何协调工作。在网络通信领域,在每个协议层的实体们通过对信息打包与对等实体通信。在通信的发送方,用户需要传递的数据包按照从高层到低层的顺序依次通过各个协议层,每一层的实体按照最初预定消息格式向数据信息中加入自己的信息,比如每一层的头信息和校验等终抵达最低的物理层,变成数据位流,在物理连接间传递。在通信的接收方数据包依次向上通过协议栈,每一层的实体能够根据预定的格式准确的提取需要在本层处理的数据信息,最终用户应用程序得到最终的数据信息进行处理。

ZigBee无线网络的实现,是建立在ZigBee协议栈的基础上的,协议栈采用分层的结构协议分层的目的是为了使各层相对独立,每一层都提供一些服务,服务由协议定义,程序员只需关心与他的工作直接相关的那些层的协议,它们向高层提供服务,并由低层提供服务。

在ZigBee协议栈中,PHY、MAC层位于最低层,且与硬件相关;NWK、APS, APL层以及安全层建立在PHY和MAC层之上,并且完全与硬件无关。分层的结构脉络清晰、一目了然,给设计和调试带来极大的方便。

整个Z-Stack采用分层的软件结构,硬件抽象层(HAL)提供各种硬件模块的驱动,包括定时器Timer,通用I/O口GPIO,通用异步收发传输器UART,模数转换ADC的应用程序接口API,提供各种服务的扩展集。操作系统抽象层OSAL实现了一个易用的操作系统平台,通过时间片轮转函数实现任务调度,提供多任务处理机制。用户可以调用OSAL提供的相关API进行多任务编程,将自己的应用程序作为一个独立的任务来实现。整个Z-Stack协议栈结构如图2-13

Z-stack OSAL API 介绍

OSAL层是与协议栈独立的,但是整个协议都要基于OS才能运行。OSAL提供如下服务和管理:信息管理、任务同步、时间管理、中断管理、任务管理、内存管理、电源管理以及非易失存储管理。[28][29]

一、信息管理API

信息管理为任务间的信息交换或者外部处理事件(例如:中断服务程序或一个控制循环内的函数调用等)提供一种管理机制。包括允许任务分配或不分配信息缓存、发送命令信息到其他任务、接受应答信息等API函数。

二、同步任务API

该API允许一个任务等待某个事件的发生并返回等待期间的控制。该API的功能是为某个任务设置事件,一旦任何一个事件被设置就修改该任务。

三、时间管理API

该API允许定时器被内部(Z-Stack)任务和外部任务使用。该API提供开始和停止一个定时器的功能,这些定时器能用毫秒(ms)设置。

四、中断管理API

这些API是外部中断和任务的接口。这些API函数允许一个任务为每个中断分配指定服务程序。这些中断能被允许或禁止。在服务程序内,可为其他的任务设置事件。

五、任务管理API

该API用在管理OSAL中的任务,包括系统任务和用户自定义任务的创建、管理和信息处理等。

六、内存管理API

该API描绘了简单的存储分配系统。这些函数允许动态存储分配。

七、电源管理API

这里描写了OSAL的电源管理系统。当OSAL安全地关闭接收器与外部硬件并使处理器进入休眠模式时,该系统提供向应用/任务通告该事务的方式。

转载于:https://www.cnblogs.com/yqh2007/archive/2011/04/29/2032437.html


http://www.niftyadmin.cn/n/793213.html

相关文章

【开源工程】mpc

mpc Peter Lee 2008-06-05一、简介Mpc是一个非常流行的开源播放器,国外的K-Lite Codec,国内的幻想影音、终极解码、完美解码等播放工具都捆绑了mpc播放器程序。另外,暴风、kmplayer等播放器程序也都或多或少地参考及使用了mpc中的功能和代码…

QuickTime文件格式解析

QuickTime文件格式解析 Peter Lee 2008-06-14一、简介QuickTime是Apple公司开发的一套完整的多媒体平台架构,可以用来进行多种媒体的创建,生产,和分发,并为这一过程提供端到端的支持:包括媒体的实时捕捉,以…

python37idle如何调试程序_Python IDLE 的使用与调试

Python IDLE 是Python 安装包自带的集成开发环境。IDLE集成了Python 解释器、编辑器与调试器。适用于初学者了解Python 语法知识。 1、使用 Python IDLE 编辑Python 在Python 安装完成以后在开始菜单启动IDLE 编程环境。以后的很多Python 小程序我们都使用IDLE。Python把程序的…

【开源工程】MediaInfo

MediaInfo Peter Lee 2008-06-14一、简介MediaInfo 用来分析视频和音频文件的编码和内容信息。MediaInfo可以获得多媒体文件的哪些信息?内容信息:标题,作者,专辑名,音轨号,日期,总时间……视频&#xff1…

python遍历json数组_python如何处理jsonarray

_WCDMA import json s [{ "id": 77, "title": "学猫叫", "href": "spacer.gifhttp://a.b.space.1g86.pw/78/78-fEUlLzTLfhyMT7sCzQl.mp3", "downHref": "spacer.gifhttp://a.b.space.1g86.pw/78/78-fEUlLz…

【开源工程】VirtualDub

VirtualDub Peter Lee 2008-09-28一、简介图1 VirtualDub主界面 VirtualDub是一款开源的音视频捕获、处理软件。VirtualDub也可称为一款多媒体编辑软件,因为它包含了多媒体输入、编辑、处理、输出等各个环节,但是作者并未将它定位为一款多媒体编辑软件…

ios开发转行_最低什么样的学历,才可以选择转行web前端?

先上2020年9月最新的深圳前端招聘截图,可以看到,几乎所有的招聘都是在大专以上,那结果自然不言而喻了。但是,我们大专以下的同学是否就在真的没有机会了?且看下文:当下前端开发的学历要求基本都是大专及以上…

blog继续更新。。。

好几个月没有更新blog文章了,只因为这几个月开发工作太繁忙了,基本没有闲暇的时间。最近工作任务稍许稳定些了,接下去peter会继续更新blog,希望大家继续关注。 预告一下后期的文章,目前peter手头存了好多开源工程和多媒…