文件名称:任务调度-5gnr无线网络覆盖优化指导书
文件大小:5.82MB
文件格式:PDF
更新时间:2024-06-27 14:38:08
Z-Stack ZigBee
ZigBee协议栈的分析与设计 第三章协议栈软件总体设计 网络操作系统,具有非常重要的研究价值。 挪威半导体公司Chipcon(目前已经被TI公司收购)作为业界领先的ZigBee 一站式方案供应商,在推出其CC2430开发平台时,也向用户提供了自己的 ZigBee协议栈软件一一Z.Stack。这是一款业界领先的商业级协议栈,使用 CC2430射频芯片,可以使用户很容易的开发出具体的应用程序来。 Z.Stack使用瑞典公司IAR开发的IAR Embedded Workbench for MCS.51作 为它的集成开发环境。Chipcon公司为自己设计的Z.Stack协议栈中提供了一个 名为操作系统抽象层OSAL的协议栈调度程序。对于用户来说,除了能够看到这 个调度程序外,其它任何协议栈操作的具体实现细节都被封装在库代码中。用户 在进行具体的应用开发时只能够通过调用API接13来进行,而无权知道Zig,Bee 协议栈实现的具体细节。 本文在设计协议栈时,对OSAL做了部分修改并将它作为ZigBee协议栈的 调度程序。这样做的好处是,在时间有限的情况下减轻了协议栈设计的压力,将 精力能够更好的集中在协议栈具体实现细节上。同时,由于OSAL本身是经过验 证的设计,因此可以增加协议栈设计成功的概率。 下面将具体介绍,OSAL的调度机制和设计思路以及如何同协议栈的具体原 语操作相结合,从而使协议栈成为一个整体设计。 3.3任务调度 ZigBee协议栈中的每一层都有很多原语操作要执行,因此对于整个协议栈 来说,就会有很多并发操作要执行。本文为协议栈中的每一层都设计了一个事件 处理函数,用来处理与这一层操作相关的各种事件。将这些事件处理函数看成是 与协议栈每一层相对应的任务,由ZigBee协议栈中调度程序OSAL来进行管理。 这样,对于协议栈来说,无论何时发生了何种事件,我们都可以通过调度协议栈 相应层的任务,即事件处理函数来进行处理。这样,整个协议栈便会按照时间顺 序有条不紊的运行。 ZigBee协议栈的实时性要求并不高,因此在设计任务调度程序时,OSAL只 采用了轮询任务调度队列的方法来进行任务调度管理。 OSAL采用一个链表结构来管理协议栈各层相应的任务。链表中的每一项是 一个结构体,用来记录链表中相关任务的基本信息。链表的建立是按照任务优先 21