基于Bluetooth和ZigBee相结合的信息分发器的设计

发布时间:2010-11-10 阅读量:1621 来源: 我爱方案网 作者:

0引言

无线技术在人们的生活中越来越重要,目前市场上的焦点技术包括3G/HSDPAWiMAXUWBWi_Fi、蓝牙等。这些技术都与人们直接存储数据的应用有关,例如上网、下载影音文件或者拨打电话等。与此同时,无线传感网络也正在快速的发展,这类应用主要包括有家庭看护监控、入侵检测、家电自动化、工厂作业控制、物流管理、以及环境检测等。ZigBee正是专为此类应用而规划的技术,ZigBee具有低功耗,低复杂性、低成本、长距离组网性能好等特点,但其主要用于工业无线控制领域,使用面狭小,无法与通信消费电子设备连接,这使其应用受到很大的限制。在这方面Bluetooth支持点对点和点对多点的数据传输服务,已经成功应用到手机、PDA、手提电脑、网络接入设备以及视听娱乐设备等电子终端设备中,逐渐成为这些设备的标准配置。

基于展览馆、博物馆、各种景区等公共场所对蓝牙用户提供数据服务的需求,设计蓝牙和ZigBee相结合的信息分发器系统,满足特定场合对蓝牙数据服务的需要。例如走进商场,携带蓝牙手机的用户,只要打开蓝牙,便可以收到各个专柜的活动信息或是某品牌的打折信息,这样极大程度上方便用户购物和消费。本文介绍了ZigBee网络拓扑结构以及系统的整体结构,叙述了信息分发器节点的硬件设计,然后介绍了在层次结构的蓝牙协议中的OBEX协议,给出了与蓝牙用户通信的软件体系及实现,最后是总结和改进。

1系统的体系结构设计

1.1 ZigBee技术及相应的网络拓扑结构

ZigBee技术是一种类似蓝牙的新型无线通信技术,其具有3个可工作频段,分别是:2.402~2.480GHz868~868.6MHz902~928MHz,在与其它如蓝牙、WLAN2.4G频段工作的设备共存时,此规范能有效的减少传输帧的冲突。

ZigBee网络中最多容纳65535个节点,这些网络节点分为:CoordinatorRouterEnd Device,由这些节点可以组成星形、树形和网状形的网络,节点间的理论通信速率最高达到250Kbps。不论ZigBee网络采用何种拓扑方式,网络中都需要有一个并且只能有一个Coordinator,该节点的功能是:选择网络所使用的频率通道,开始网络,将其它节点加入网络,Coordinator通常还会提供信息路由,安全管理和其它的服务;End Device节点的主要任务就是发送和接收信息;如果ZigBee网络采用了树形和星形拓扑结构就需要用到Router这种类型的节点,Router主要完成:在节点之间转发信息,容许子节点通过他加入网络,需要注意的是通常Router节点不能够休眠。

网状网络拓扑具有更加灵活的信息路由规则,在可能的情况下,路由节点之间可以直接的通讯。这种路由机制使得信息的通讯变得更有效率,而且意味这一旦一个路由路径出现了问题,信息可以自动的沿着其它的路由路径进行传输。所以本设计中的网络拓扑结构采用网状拓扑结构。

1.2系统的整体架构介绍

本系统包括服务器和服务节点(主控节点、中间节点、终端节点)两大组成部分,旨在实现数据的分布式服务。整个系统的结构如图1所示。

1.2.1服务器的功能介绍

服务器是数据服务系统的数据源,对服务节点提供数据更新。服务器作为系统的数据提供者,其由PC以及与其相连接的无线发射模块组成。PC机通过一个即插即用的无线发射模块往主控节点发送数据和命令,无线发射模块以ATMEGA16为处理器、ZigBee为无线发射模块,使用串口和USB端口实现ZigBee模块和PC通信,从而完成ZigBeePC(USB转串口、串口转USB)的数据传输、ZigBeeZigBee的数据传输。

1.2.2服务节点的功能介绍

服务节点结合了蓝牙和ZigBee,旨在实现集成化控制和分布式服务。包括有主控节点、中间节点、终端节点三者类型,和ZigBee网络拓扑结构中的3种节点对应起来,及主控节点对应Coordinator、中间节点对应Router、终端节点对应EndDevice,这3种节点在和蓝牙用户通信上角色是一样的,都能为蓝牙用户提供数据服务,但主控节点还有一重要任务就是和服务器通信,取得原始文件,然后通过中间节点传播到整个区域空间节点的存储模块中,控制网络的数据更新以及负责和服务器通信。

2服务节点的硬件结构设计

服务节点以ZigBee为主控模块,包括有电源模块、蓝牙模块、存储模块、传感器模块以及时钟模块组成。其中ZigBee模块在整个系统中起到总控制器的作用,并负责组网;蓝牙模块负责和客户机通信;存储模块存储发送到客户端的程序和各种媒体文件;传感器模块采集系统附近的温湿度等环境信息;而时钟模块负责为系统日志提供详细的时间标记,便于系统的运行分析。服务节点的硬件系统结构图如图2所示。

2.1 ZigBee模块

ZigBee模块在整个系统中处于核心地位,不仅充当系统控制器,而且还是多个相同系统中通信、组网的设备。

ZigBee模块利用其丰富的接口,分别控制着存储模块、传感器模块、时钟模块以及蓝牙模块。通过SPI接口,ZigBee对存储模块进行读写操作,将所需文件存储到该模块,并在需要的时候读取出来,以供其它模块使用。该模块还通过IIC接口控制相应的传感器和时钟模块,将相应的数据从两个模块中读出,同时还能够在系统更新时间的时候将新的时间数据写入时钟模块。而与蓝牙模块的通信是通过UART端口实现的,此端口用来传送蓝牙要向客户端发送的数据,目前两者之间的通信速率最高可以达到2Mbps,能够很好的满足两者的通信要求。

ZigBee具有1001000的通信距离,相互之间具有良好的通信效果,并能组成各种形式的网络,从而克服了蓝牙不能组网的缺陷。通过网络,各个独立系统可以统一更新文件,调整时钟,相互传送节点环境相关数据以及蓝牙采集到需要服务器计算并返回的数据。其具有安全快捷的优点,保证了系统的稳定、有效的工作。

2.2蓝牙模块

主要完成与客户端的手机通信任务。其不仅可以向客户端发送客户端程序,发送完整的文件目录以及对应的文件,还能够在用户允许的情况下采集用户的信号质量等相关信息,并通过ZigBee将这些数据汇集到服务器端,经过服务器解析,最终得到用户的位置信息,最后根据客户的要求将此信息告知客户。

2.3存储模块

作为系统的记忆部分。存储模块使用了相应的存储芯片来存储系统的文件以及运行日志。当需要为蓝牙用户提供数据服务时,ZigBee模块和蓝牙模块通过一组约定的命令来读写存储芯片,在ZigBee的控制下,完成文件的发送。

3层次结构的蓝牙协议中OBEX协议

蓝牙模块主要完成与客户端的手机通信任务,与蓝牙用户建立连接后,就会将文件以蓝牙规范中的文本传输协议发送给手机。下面我将介绍一下蓝牙操作模式和OBEX协议的相关概念,以及在本系统里我们将采用构建在OBEX之上的OPP(object push profile)对象“推”送规范来向蓝牙用户发送文件。

3.1蓝牙操作模式

开发蓝牙应用程序,是根据具体的应用来选择相应的蓝牙协议,除了诸如基带协议、服务发现协议、链路管理协议、逻辑链路控制和适配协议、电缆替代协议等为核心协议,蓝牙协议栈的上层诸如拨号网络协议、耳机、局域网访问、文件传输,分别对应一种应用模式。

蓝牙规范的每个操作模式代表某种蓝牙设备在某种应用场合必须遵循的规范,操作模式的名称反映了操作模式的应用场合,在蓝牙规范中,定义了13种操作模式,这13种操作模式大致可分为4大类。如图3所示,分别为通用操作模式与服务发现应用操作模式、电话相关的操作模式、串口操作模式以及普通对象交换模式。

服务节点实现信息分发器是通过文本传输协议完成的。普通对象交换操作模式的传输层为支持对象交换的协议OBEX,当蓝牙设备内的应用程序为对象发送、文本传输、数据同步时,由于这些应用程序的传输都是以对象交换的形式存在的,所以必须利用到普通对象交换操作模式的功能,及上述提到的第4类蓝牙操作模式——普通对象交换操作模式。

3.2 OBEX协议构架

在层次结构的蓝牙协议栈中,对象交换协议OBEX(object exchange)是一种面向应用的会话层协议如图4所示,提供了灵活的目标文件交换方式。它运行于蓝牙协议栈的顶部,支持文件传输,对象“推”操作(objectpushprofileOPP),同步等多种应用,提供了设备间简单易行的对象交换手段可交换的对象可以是文件、图像,也可以是应用支持的任何数据单位对象交换采用了基于查询/应答方式的Client/Server模式,任意两台蓝牙设备间都可组成主从关系,主动发起方是主设备,被找到者是从设备。

3.3 OPP协议

构建在OBEX之上的一个具体的应用就是对象“推”操作。实现OPP的两端的蓝牙设备分别称为PUSH Client端和PUSH Server端。数据从Client端到Server端称作PUSH操作,数据从Server端到Client端称作POLL操作。两个蓝牙手机间的PUSH操作和POLL操作如图5所示。

OBEX上的应用(OPP)遵循的都是C/S的请求—应答机制,OPP这种互操作特性决定了相应的操作过程,OPPClient端相关的过程包括:InitializationConnectPush first packet of an

objectPush next packet of an objectPush last packet of an objectDisconnect

OPP Server端相关的过程包括:InitializationConnectStartpollPoll next packetPoll final packetDisconnect

在本系统中蓝牙模块是OPPClient角色,负责往蓝牙手机PUSH数据,下面一节我将具体介绍蓝牙端通信软件的设计。

4蓝牙模块通信软件的设计

4.1蓝牙模块和ZigBee模块的通信设计

蓝牙模块和ZigBee模块的通信是通过UART端口实现的,此端口用来传送蓝牙要向客户端发送的数据,目前两者之间的通信速率最高可以达到2Mbps,能够很好的满足两者的通信要求。

两个模块间定义了一组通信命令,包括有:FILE_NAME(文件名)FILE_LENGTH(文件长度)FILE_TYPE(文件类型)FRAME_LENGTN(帧长度,用于两个模块的流量控制,每次蓝牙模块发送帧长度命令,ZigBee将相应帧长度的字节数传给蓝牙模块)

这组命令由蓝牙模块发给ZigBee模块,ZigBee解析相应命令,并根据命令的类型从存储模块中读取相应的数据通过图3蓝牙操作模式UART发送给蓝牙模块。

4.2蓝牙模块和用户手机的通信设计

服务节点和用户手机建立好连接后,蓝牙模块就会通过上述命令和ZigBee通信取得文件(文本、图像等)内容,然后“推”送给手机,直到整个文件发送完成。

本系统中的蓝牙模块采用的是CSR蓝牙模块,软件开发环境是Bluelab 3.6.1,该开发环境集成了丰富的蓝牙协议开发包,针对其OPPC协议框架开发的应用程序。

蓝牙模块流程如图6所示。

4.3实验结果和改进

本系统旨在实现特定场合为蓝牙用户提供数据服务,诸如超市、大卖场、展览馆等地方用户在可能处于走动状态,所以服务节点和用户建立连接后,能否快速的将文件信息传输给用户,是本系统需要考虑的问题。

按特定帧长度通过UART取得数据,开BUFFER存储这些数据,最后通过OPP分包“推”送至手机,整个过程中,开BUFFER存储数据,占据系统70%的时间开销。

为了提供系统的传输效率,需直接从UART取得一串数据的首地址和长度,然后用OPP“推”送出去。开发Bluelab应用程序时数据的传送是以Stream形式存在的,Stream可以通过无线方式在蓝牙设备中传输,或者通过处理器或者芯片之间的连线进行数据的传输。Stream的两端分别称为SourceSinkSource定义为数据从哪里来,Sink定义为数据到哪里去。

Bluelab里定义了StreamUartSource()StreamUartSink()表示UARTSourceSink。通过SourceMap()SourceSize()可以得到读UART数据流的首地址和长度作为OppcPushPacket()的参数,直接从UART里定位到数据“推”送出去,实验验证了可行性并极大的缩小了传输的时间。实验结果如表1所示。

5结束语

结合蓝牙、ZigBee的优势构建低成本普适网络环境,给中小型区域建立方便的无线传输服务系统提供了新的解决方案。该方案成本低,具有集中式控制管理和分布式服务的特点,在景区,博物馆,各种展览场馆,超市具有广泛的应用前景。接下来的工作需要在硬件上升级,用100的蓝牙模块替代现在的10模块,考虑到更多的应用场景,缩短传输文件的时间需要进一步思考,打算直接用OBEX下层的RFCOMM协议来完成文件的传输,这需要在手机端编写一个RFCOMM接收程序。

相关资讯
贸泽电子深入探讨以人为本的工业5.0新变革 探索灵活的可持续未来工业机遇

本期EIT探讨了从工业4.0到工业5.0的转变,以及即将实现的技术进步

2025第24届西部全球芯片与半导体产业博览会

CWGCE2025西部芯博会总规模将达到60000㎡,同期举办光电展+工业展+智能展+军工展等相类展会,将有更多集成电路行业新装备、新产品、新材料、新技术、新工艺、新趋势及新应用集中亮相

2025第24届西部芯博会走集团化品牌化之路

CWGCE2025西部芯博会总规模将达到60000㎡,同期举办光电展+工业展+智能展+军工展等相类展会,将有更多集成电路行业新装备、新产品、新材料、新技术、新工艺、新趋势及新应用集中亮相

CWGCE2025第24届西部芯博会4月启幕

CWGCE2025西部芯博会总规模将达到60000㎡,同期举办光电展+工业展+智能展+军工展等相类展会,将有更多集成电路行业新装备、新产品、新材料、新技术、新工艺、新趋势及新应用集中亮相

CCWPE2025第24届西部光电博览会4月启幕

作为我国中西部地区历史最悠久的光电领域全产业链综合性年度盛会,规模和档次逐年增加和提高,CCWPE2025又新增了多个行业组织联办单位,同时将进一步扩容和丰富论坛内容。