可穿戴式计算机由于其可穿戴性,则要求主机的重量轻、体积小。主机芯片采用linux嵌入式操作系统,其上集成蓝牙协议栈。由于头戴显示系统中的多媒体流和GPRS骨干网的带宽限制的矛盾,主机要求较高的存储能力,内部集成10G的硬盘。在主机中集成蓝牙适配器的主要目的是使主机能与其它蓝牙设备进行通信。如果条件允许还可在主机中集成GPS模块等。
蓝牙设备
可穿戴网络中的蓝牙设备是内嵌了蓝牙模块的小型化设备,把设备采集的数据通过蓝牙链路传输到主机或由主机传输到蓝牙设备。
头戴显示系统:内部集成了微型蓝牙模块、摄像头、DSP芯片。首先通过摄像头采集初始图像,送入DSP 芯片进行预处理以去除视频和图像信号的冗余,其视频压缩标准可以采用 MPEG-4 。 DSP 处理后的信号可直接送入显示屏或送入主机以进行进一步处理。
蓝牙耳机:可以实现与其它蓝牙设备的音频信号传输,通过语音命令实现对主机的控制,或者将话音信号通过GPRS、CDMA、TD-SCDMA网络传送到远端。
图 1 基于蓝牙和ZigBee的可穿戴网络的体系结构
ZigBee设备
ZigBee设备可设计为手表式、鞋垫式等。它包括传感器、A/D转换器、ZigBee模块。传感器采集外部信号(心跳、血压、脉搏、温度、干湿度等)并将它们转化为电信号,然后通过A/D转换器转换后送入MCU,最后通过ZigBee收发模块,并经网关送入到主机。经主机处理之后,再传送到其它设备。
蓝牙/ZigBee网关
蓝牙/ZigBee网关主要针对可穿戴网络无线通信中两种不同标准蓝牙和ZigBee产品之间的相互通信,其协议模型如图2所示
图 2 蓝牙 /ZigBee 网关的通信协议模型
基于蓝牙和ZigBee的可穿戴网络的硬件实现
在本文介绍的可穿戴网络的体系结构中,主要需要实现的是ZigBee节点和网关的硬件平台,下面介绍这两个平台的硬件实现。
ZigBee节点的硬件实现
ZigBee节点作为一种传感器,其主要的功能是采集人们感兴趣的数据,并将数据发送到蓝牙/ZigBee网关,然后通过GPRS、CDMA或WI-FI等发送到远程控制中心或数据库。ZigBee节点主要由电源模块、微控制器模块、存储单元、ZigBee收发模块和传感单元等组成,如图3所示。
图 3 ZigBee节点硬件框图
在我们的系统中我们采用Freescale公司hc(s)08系列的8位MC9S08GB60微控制器[4],MC9S08GB60有丰富的片上存储功能,具有64KB(其中flash占60KB,RAM占4KB)的存储空间。在40MHz的工作频率下,其功率消耗不到1mw。而且该微控制器具有多种省电模式以供选择。除了具有丰富的片上存储功能和多种省电模式以外,MC9S08GB60微控制器还具有8个10bit的A/D转换器、多个I/O数据线、两个串行通信接口(SCI)、四线串行外围接口(SPI),这些使之很容易用软件编程,这些接口同时还可以用作与传感单元的接口。
整个ZigBee节点的通信模块是由ZigBee收发器来实现的。ZigBee收发器我们选用的是Freescale公司的MC13192[5],该收发器工作在2.4GHzISM公用频道。MC13192具有以下一些主要特点:
具有 16 个信道。
典型的发射功率为0dBm,最大发射功率达到3.6dBm。
采用DSSS扩频通信技术,最大速率为250kbps。
在分组错误率为1%的情况下,其接收灵敏度达到-92dBm(典型值)。
7个通用输入输出端口(GPIO)。
整个ZigBee节点采用AAA电池供电。
蓝牙/ZigBee网关的硬件实现
网关在可穿戴网络中起着很重要的作用。蓝牙/ZigBee网关的硬件部分主要由ZigBee模块、蓝牙模块和中央处理单元组成。
网关的中央处理单元主要完成从蓝牙和ZigBee协议的转换工作:对从ZigBee设备发送到带蓝牙适配器的主机的数据来说,在蓝牙/ZigBee网关它需经过以下处理:从ZigBee设备接收到的数据→去掉物理层的ZigBee分组→去掉MAC层的ZigBee分组→添加L2CAP头的蓝牙分组→添加物理层头的蓝牙分组。对从蓝牙设备发送到ZigBee设备的数据来说,过程相似,这里就不再进行说明。
中央处理单元的主要器件是Freescale的MC68HC908KL8微处理器[6],该微处理器具有16种灵活的寻址方式、高效指令集;支持在线可重复编程,这样可达成低成本的编程变更和现场软件升级;编程速度极快,64字节的编码在2ms内完成,极快的编程速度降低了产品编程成本;多达26个双向I/O口,大电流的I/O口可直接驱动LED和其他电路,从而省去外部驱动设备,降低系统成本。
ZigBee模块同样采用Freescale的MC13192,这里不再说明。
蓝牙模块主要实现蓝牙HCI层以下的协议,并且提供符合蓝牙规范的空中接口。在本设计中,我们采用BlueCore2-Flash RF PnG(8M)蓝牙单芯片方案,它集成了射频及基带芯片。其UART(可以为二线:RXD、TXD;四线:RXD、TXD、RTS、CTS;八线:完全RS232方式)连接数据口用于数据传输。
基于蓝牙和ZigBee技术的可穿戴网络的软件结构
在我们所设计的可穿戴网络中,软件部分主要集中在网关和ZigBee节点上。网关的主要功能是管理和处理ZigBee节点传输过来的数据。其主要处理两个问题:分组处理和地址处理。
分组处理:要将来自一个网络设备的应用程序的报文发送到另一个网络设备,网关中的协议转换功能单元----管理层就要将报文进行拆装和封装。网关把它从发送设备接收到的分组进行拆装,去掉数据首部和尾部,从分组中提取有用数据信息,再把该有用信息封装成接收设备协议所要求的分组格式,根据目的地址和接口把数据发送到接收设备。蓝牙与ZigBee分组格式的转换式:网关通过射频单元从ZigBee设备(蓝牙设备)收到ZigBee分组(蓝牙分组)对其进行拆装,去掉分组头和分组尾,提取出数据净载荷,再按照蓝牙分组(ZigBee分组)格式进行封装,添加分组头和分组尾,通过射频发送到蓝牙设备(ZigBee设备)。
地址处理:每一个与网关建立连接的蓝牙设备或ZigBee设备都将与网关中的一个端口绑定在一起(通过动态或静态的分配)。这样,就可以通过网关的地址和端口号来唯一地标识该蓝牙设备或ZigBee设备。当蓝牙设备和ZigBee设备交换信息时,网关就负责蓝牙通信协议和ZigBee协议之间的转换工作。从而使蓝牙设备和ZigBee设备透明地进行数据交换。地址映射可使用静态或动态映射两种方法。静态映射使创建一个表,将一个逻辑地址与物理地址关联起来,该表存储在每一个设备上。每当物理地址发生变化,这个表就必须更新,比较麻烦。动态映射是当设备知道两个地址(逻辑地址或物理地址)中的一个时,就可使用协议将另一个地址找出来。通常使用动态映射的两个协议来解析地址。
考虑到可穿戴网络的特点,我们采用嵌入式linux操作系统,用户很容易在其基础上开发自己的应用程序。
ZigBee节点上的软件主要利用C语言开发,主要完成的功能是接受传感单元的数据,并将数据发送到蓝牙/ZigBee网关上。