《可穿戴计算:基于人体传感器网络的可穿戴系统建模与实现》 —3.4 SPINE框架
3.4 SPINE框架
SPINE是一个成熟且可扩展的解决方案,可以对基于BSN的应用和系统进行快速原型设计。通过支持多个生理传感器、节点内和协调器上的信号处理程序、生物信号的无线传输以及经过优化的内置网络和资源管理功能,SPINE可以快速实现能够进行分布式信号处理的密集型应用程序。SPINE采用模块化结构,以简化与其他传感器驱动程序和信号处理模块的集成,此外,框架本身可以通过简单的机制进行裁剪和定制,以便根据具体应用要求将所有的传感和处理模块结合在一起。采用SPINE的一个主要优势是其基于特定的感知和配置需求对BSN系统进行配置的能力,以这种方式,相同的传感器可以用在不同的应用程序中,而无须在从一个应用程序切换到另一个应用程序之前进行离线重新编程。SPINE支持在概念上以星形拓扑结构组织的BSN网络,其中,传感器节点代表边缘,协调器单元作为星形拓扑网络的中心。节点到节点的直接通信也成为可能,尽管预定义的处理功能并不需要这种功能。值得注意的是,SPINE设备在应用程序级的协议之上进行通信,因此,原则上可以使用多跳网络层来实现这样的系统—该系统基于协调器和节点之间大于一跳距离的物理网络。
下文描述SPINE的软件架构,还有它的高级数据处理模块,最后讨论其对传感器和协调器设备平台的异构支持。
3.4.1 架构
SPINE架构的高层表示如图3.1所示。SPINE中间件的一部分在协调器设备上,另一部分则位于可穿戴传感器上。中间件在协调器和传感器节点上均提供API,用于开发最终依赖与平台无关的通信协议层的应用程序。这个协议表示一个抽象层,包括各种依赖于平台的通信适配器,该适配器在协调器上动态加载,而在传感器节点层进行编译时链接。
图3.1 SPINE中间件架构
图3.2和3.3分别显示SPINE节点和SPINE协调器组件的架构。前者用专用传感器平台的嵌入式编程语言实现,并放置在每个BSN传感器节点上;后者用Java实现,并在协调器设备上运行(SPINE协调器的Android移植版也已实现)。
图3.2 SPINE节点软件架构(图片来自参考文献[2])
图3.3 SPINE协调器软件架构(图片来自参考文献[2])
SPINE节点(见图3.2)由四个主要组件构成:
传感器节点管理器,用于处理感知管理、信号处理和通信模块之间的交互;它从远程协调器向对应的模块发送请求。
通信,用于处理消息的接收/发送,并控制无线电的工作周期。它由入站数据包解码器(即服务发现、启动和重置计算请求、建立功能请求、功能激活/停用请求和建立感知请求)和出站数据包编码器(即服务广告、缓冲的传感器读取、处理后数据消息以及确认数据包)组成。任何数据包最初都由无线电控制器模块处理,该模块提供独立于具体底层无线电芯片适配器的通用接口。
感知管理(或传感器板控制器),它是为节点上可用的物理传感器提供通用接口的组件。它允许执行一次性的传感器数据读取,并为周期性采样设置定时器。该组件通过参数化的传感器接口列表,提供对所有受支持的传感器驱动程序的简单和独立于硬件的访问(SPINE目前支持3D加速度计、2D陀螺仪、4导联心电图、呼吸率、GSR、肌电图、可见光和红外光、湿度和环境温度)。选择这种设计的动机是基于对高度模块化和高效定制的需求,以便于方便地支持异构感知资源。传感器读数存储在缓冲池中,缓冲池(BufferPool)是一种与信号处理模块共享的数据结构。缓冲池内部组织为多个循环缓冲区,提供两种访问传感器数据的机制:(i)根据请求,使用getter函数;(ii)通过事件监听器,监听器必须由感兴趣的组件(例如信号处理模块)注册,以便在新的传感器数据可用时能够及时得到通知。感知管理还有一个共享的传感器注册表,每个传感器驱动程序在程序引导时自行注册到这个注册表。该注册表在运行时被其他组件访问,以检索该特定节点上实际可用的传感器列表。
信号处理,它使用一个称为功能管理器的功能块,该功能块负责处理一组可定制和可扩展的信号处理功能,比如数学集成器(一些特征值,例如最大值、最小值、幅度、平均值、标准偏差、信号能量和熵)、基于阈值的触发器(也称为警报器)以及过滤器。这些处理功能可以任意地应用于任何传感器数据流。功能管理器引擎使用基于一组参数化功能接口的高效设计方法,为任意类型的处理任务提供通用的抽象。信号处理模块从缓冲池中检索传感器数据,并通过与传感器节点管理器和数据包管理器进行交互,把处理结果发送到协调器单元。
SPINE协调器(见图3.3)由两个主要组件构成:
通信,具有与传感器节点上相应组件类似的功能;它在运行时根据所需的网络堆栈加载相应的无线电模块适配器。它从依赖于所选平台的实际网络活动中抽象出协调器和传感器节点之间的逻辑交互。这种抽象是通过将通信接口与其依赖于平台的实现层进行解耦来实现的。
SPINE协调器管理器,它是最上面的一个层级,每个SPINE应用程序都要依赖这一层。它由传感器网络控制API(参见表3.1)和事件调度程序组成。前者是由最终用户应用程序开发人员使用的接口,用于管理底层BSN(例如,配置传感器并启用节点上的信号处理),而后者则负责将事件(例如,新节点的发现和数据消息的到达)分派给由SPINE应用程序实现的已经注册的监听器。
表3.1 在协调站由SPINE显露的API
- 点赞
- 收藏
- 关注作者
评论(0)