您的当前位置:首页正文

基于蓝牙技术的无线传感器网络数据通信系统的设计

2021-06-23 来源:步旅网
・16・《测控技术》2009年第28卷第1期

基于蓝牙技术的无线数据采集系统设计

任小洪,傅成华,胡 科

1

2

2

(1.人工智能四川省(高校)重点实验室,四川自贡 643000;2.四川理工学院电子与信息工程系,四川自贡 643000)

摘要:利用蓝牙技术建立一个具有主从网络结构的蓝牙无线数据采集系统。设计采用基于BC219159

蓝牙芯片的蓝牙模块;从设备以AT89C2051为控制器,将采集的工业现场信号处理后送入蓝牙芯片进行无线发送;主设备选用77E58作为控制器,实现对从设备的自动搜索连接和数据的接收,并通过LCD进行实时显示。系统地阐述了硬件和软件设计原理,对蓝牙通信协议进行了重点介绍。系统测试表明,有效通信距离可达12.5m(无障碍),数据传输稳定。关键词:蓝牙模块;主从网络结构;主设备;从设备;通信协议中图分类号:TN273  文献标识码:A  文章编号:1000-8829(2009)01-0016-04

WirelessDataAcquisitionSystemDesignBasedonBluetoothTechnology

RENXiao2hong,FUCheng2hua,HUKe

1

2

2

(1.ArtificialIntelligenceofKeyLaboratoryofSichuanProvince,Zigong643000,China;

2.CollegeofAutomationandelectronicInformation,SichuanUniversityofScienceandEngineering,Zigong643000,China)

Abstract:ABluetoothwirelessdataacquisitionsystemwiththemaster2slavenetworkstructureisdesignedwithBluetoothtechnology.TheBluetoothmodulesbasedonBC219159Bluetoothchiparetakeninthedesign.ThesubordinatedevicetakesAT89C2051asMCUtoperformtheacquisitionandprocessingoftheindustrialspotsignals,andsendthedatatoBluetoothchipforradiotransmission.TheprimarydeviceusesW77E58asMCUtoautomaticallysearchandconnectthesubordinatedeviceswirelessly,andreceivetherealtimedatafromthem,anddisplayontheLCD.Theprincipleofthehardwareandsoftwaredesignisstatedsystematically,andBluetoothcommunicationprotocolsareemphaticallyintroduced.Thesystemtestindicatesthatthedatatrans2missionisstablewhiletheeffectivecommunicationdistanceisupto12.5m(noobstacles).

Keywords:Bluetoothmodule;master2slavenetworkstructure;primarydevice;subordinatedevice;communica2tionprotocols

  蓝牙技术(Bluetooth)作为一种低成本、低功耗、近距离的无线通信技术,正广泛应用于固定与移动设备通信环境中的个人网络,数据速率可高达1Mb/s,采用跳频/时分复用技术,能进行点对点(point2to2point)

[1]

和点对多点(point2to2many)的通信。但如何将这项新技术应用到工业现场实现多点数据采集的无线传输,解决电缆传输存在的弊端,特别是满足一些工业环境较为恶劣或有特殊要求的场所,一直是测控界关注和研究的课题。尽管在车载系统、无线抄表系统等取得了较好效果,但在工业传感器及其网络的应用仍不

收稿日期:2008-06-02

基金项目:四川省教育厅科研基金项目(2005A147)

作者简介:任小洪(1960—),男,硕士,副教授,主要研究方向为智能测控技术。

见起色,为此,设计研究了一种能适用于工业现场的无线传感器系统。该系统以蓝牙模块BC0062C3为核心,通过对蓝牙HCI底层协议进行二次开发,实现了一个具有主从网络结构的蓝牙无线数据采集系统。

1 硬件原理

图1所示为蓝牙无线数据采集系统的网络拓扑图,它由主设备(或主节点)及传感器节点(处于激活状态的最多7个)构成。主设备通过自动或手动搜索方式连接已设定的从设备,分别请求7个从设备发送数据,然后将其接收保存和实时显示,在显示屏LCD上显示出从设备号、实时数据等。使用小键盘可以查看任意已连接设备的当前数据。此外还可根据检测物理参数类型设置测量单位和数据格式等;通过主设备RS2232接口,可将数据向上位机传送。

基于蓝牙技术的无线数据采集系统设计・17・

具有工作电压低(1.8~3.3V),外配元件少,RF接收器具有中频接近于零的特点;连接天线匹配电阻为50Ω,内部功率放大器(PA)最大输出功率只有+6dBm,参考时钟范围为8~40MHz;支持USB、UART,PCM语音接口、PIO通用IO接口和SPI接口等多种通信接口;片上有32KBRAM,用于保存语音数据的拨号缓冲器和蓝牙栈所需的通用存储,还有8MB的Flash(闪存);支持点对点和点对多点网络拓扑结构,可构

[3]

成匹克网(Picnet)和散射网(Scatternet)。如图2所示,BC0062C2模块由蓝牙芯片BC219159B及其少数外围元器件构成,晶振为16MHz,工作电压3.3V,完全遵循蓝牙技术规范v1.1,支持USB、UART、PCM、PIO和SPI接口。

图1 主从网络拓扑(匹克网)

1.1 蓝牙模块

BC0062C2蓝牙模块的核心是CRS公司2005年

推出的Buluecore022flashz单片射频芯片BC219159B,

软硬件完全符合蓝牙技术规范v1.1和v1.2。该芯片图2 蓝牙主设备硬件图

1.2 主设备硬件设计

主设备是一个数据采集器,是拓扑网络中的主节

点,主要由微控器、蓝牙模块、键盘显示屏和电源等相关电路组成。微控器W77E58是一个与8051兼容的快速8位微控器,采用全CMOS静态设计,与标准

[5]

80C52管脚兼容,指令则与MC51兼容。设计采用蓝牙模块的异步通信接口UART与微控器进行通信,硬件连线如图2所示。值得注意的是,蓝牙芯片工作在3.3V,而微控器工作在5V,存在逻辑电平不匹配问题。设计中采用了两块具有三态输出的八缓冲器和总线驱动器74LVC244来进行3V/5V的逻辑电平转换。利用微控器的P0.0~0.7和P2.0~2.3分别作为LCD12864的数据线和控制线;P3.2、P2.5~2.7与ZLG7289A键盘显示专用驱动芯片相连,P3.2进行键盘中断,读取按键值。LCD用于显示蓝牙设备的通道

号,实时参数等信息;键盘则用于实现蓝牙模块的控制,具有数据显示格式更改,通道选择及数据的上传等相关功能。此外,还利用W77E58的第二个串口,设计有与上位机通信的RS2232接口,可以实现数据实时上传。1.3 从设备硬件设计

从设备是网络拓扑中的蓝牙传感器节点。根据蓝牙技术规范,一个主设备最多可与7个处于激活状态的从设备进行通信,因此,在一个匹克网中传感器原则上不超过7个。从设备主要由单片机、蓝牙模块、A/D转换器、4~20mA或1~5V接口电路及电源等组成。低功耗AT89C2051单片机具有与蓝牙模块相同的工作电压,通信串口可以直接连接,具体连接参照图2,无需逻辑电平转换。波特率设置为19200b/s兼顾通信速度和抗干扰。设计4~20mA或1~5V接口电路

・18・

是因为目前现场传感器或变送器输出大都为4~20mA或1~5V,这样蓝牙从设备能够与之配套使用,从而实现测量参数的无线传输。

《测控技术》2009年第28卷第1期

问蓝牙硬件的统一命令方式。在实际应用中,微控制

器(蓝牙主机)可通过HCI接口直接控制蓝牙芯片,完成对蓝牙芯片的通信控制,进行应用开发。

2 蓝牙核心协议简介

蓝牙协议规范遵循开放系统互联OSI(opensys2teminterconnection)模型。如图3所示。

3 软件设计

3.1 蓝牙主从设备连接

图3 蓝牙协议栈

蓝牙协议体系结构分为4层:核心协议层、替代电

缆协议(RECOMM)层、电话控制协议层(TCS)和选用协议层(PPP、UDP/TCP/IP等)。核心协议由SIG制定的蓝牙指定协议组成,包括:基带、LMP、L2CAP、SDP。蓝牙设备发送数据时,基带(BB)部分将来自高层协议的数据进行信道编码,向下传给射频(RF)进行发送;接收数据时,射频将解调恢复空中数据并上传至基带,基带再对数据进行解码,向高层传输,基带与链路控制层(LMP)一起确保匹克网内各蓝牙设备之间射频构成物理连接。基带数据分组提供两种物理连接方式:同步链接SOC(synchronousconnectionoreinted)和异步链接ACL(asynchronousconnectionoreinted)。SOC主要用于语音及语音/数据组合,ACL适用于数据分组,采用了3种不同的纠错方案:前向纠错(FEC)、冗余校验(CRC)和自动重复请求(ARQ),以确保信道数据传输的安全;链路管理层协议(LMP)控制和协商两个蓝牙设备之间有关连接的所有操作,包括建立和控制逻辑传输和逻辑链路,同时也控制物理层,通过该协议,收方链路管理器对信号进行识别和筛选,而不再转发到更高层协议;逻辑链路控制和适配协议(L2CAP)是基带的上层协议,将基带层的数据分组交换,便于高层应用的数据格式,提供协议复用和服务质量交换等,是低层协议和高层协议之间不同长度的协议数据单元的桥梁;服务搜索协议是所有用户模式的基础,用以查询设备和服务类型,从而建立蓝牙设备之间的联系。除协议外,V2.0定义了主机控制器接口(HCI),为基带控制器、链路管理器、硬件状态和控制寄存器提供命令接口,也是硬件配置参数的访问接口,为用户提供了访

在蓝牙主从网络结构中,蓝牙主从设备的连接通过两个进程来完成:查询进程和寻呼进程。主设备通过查询模式发现从设备的存在,通过寻呼模式建立连接。主设备要发现从设备的存在,应该处于查询子状态,蓝牙从设备则应处于查询扫描子状态,在收到查询后,回复一个查询响应分组(事件),主设备通过查询响应事件来判断从设备的存在并获取从设备的地址等相关参数;在主设备发现从设备后,主设备激活并连接从设备,处于寻呼子状态,采用寻呼方式对从设备发出寻呼请求,此时从设备则处于寻呼扫描子状态,接收一个主设备连接请求,并通过发送接受连接请求或拒绝连接请求指令(事件)来建立或拒绝该连接。值得注意的是,如果蓝牙主设备事先已知从设备的地址(BD2ADDR),则直接进行连接,不再进行查询过程,这样节约了连接时间。一旦建立连接,蓝牙主从设备将分别通过响应事件,告诉对方的链接句柄,开始进行数据的传送(ACLData或SOCData)。本设计根据文献[2]提供HCI命令和事件数据分组格式,采用MC51汇编语言编写了微控制器77E58完成对蓝牙HCI的初始化和控制程序,实现了主从设备的连接和传感器数据收发。3.2 程序实现

图4(a)所示是主设备程序流程图。上电后主设备首先进行初始化工作,包括键盘中断,存储器,串口中断,显示开机画面,设置波特率,蓝牙等初始化工作,然后进入功能菜单,通过按键选择需要执行的功能,去调用相应的程序执行,这些操作功能包括搜索蓝牙设备、连接或断开蓝牙设备、保存数据、上传数据等。图4(b)所示是从设备程序流程,初始化工作包括定时器(设置波特率9600b/s)、蓝牙、A/D转换器等。AD转换器MAX187的输出端P6口将转换后的数字信号传送给单片机2051的P1.5口并且将数据存放,然后通过串行通信口TXD将数据传送蓝牙芯片。

由上可知,蓝牙HCI是硬件访问的统一接口,因此设计出符合其协议格式的控制程序就是实现微控制器和蓝牙芯片以及主从蓝牙节点连接的关键。HCI分组的传输层有4种:USB、RS232、URAT及SD(securedigital),其中UART最适合于嵌入式系统应用,所有收发数据都通过TX和RX两条信号线完成(如图1所示)。蓝牙通过UART发送的HCI的分组共有4种:

基于蓝牙技术的无线数据采集系统设计・19・

DM1,[00]是扫描重复段间隔为R0模式———连续,[00]为扫描模式,采用强制呼叫扫描,[0000]为时隙设置,[00]则以本地设备为主设备;蓝牙芯片收到Create_Connection指令后,如果连接成功(或失败)将

向微控制器返回指令状态事件分组和指令完成事件分组[1] 金纯,等.蓝牙技术[M].北京:电子工业出版社,20012

03.[2] 金纯,林金朝,万保红.蓝牙协议及其源代码分析[M].

北京:国防工业出版,2006206.

TM

[3] CambridgeSiliconRadioLimited.BluecoreflashHCIs2

tack1.1v17.3.4softwarereleasenote[Z].2003.[4] 马方魁,郇极.蓝牙技术在工业控制系统中的集成和开发

[J].北京航空航天大学学报,2006,(32)12:1459-1462.[5] WinbondElectroicsCorp.W77E58规格书[Z].2005.[6] 陈平,陈彦.基于蓝牙技术的温度数据采集系统[J].仪表

技术与传感器,2005,(11):40-42

[7] BilstrupU,WibergP.Bluetoothinindustrialenvironment

[A].2000IEEEInternationalWorkshoponFactoryCom2municationSystems,Porto:IEEE,2000:239-246.

(a) 主设备流程从设备流程      (b) 

图4 主从设备软件设计流程

HCI指令分组、HCI事件分组、HCIACL数据分组和HCIACLSCO数据分组。HCI指令分组用于由蓝牙主机(微控制器)向蓝牙HCI发送命令,HCI事件分

[2]

组则只能由蓝牙HCI向主机发送,说明分组指令执行情况,HCIACL/SCO数据分组则双方都能发送或接收。由于HCI分组是从同一通用物理接口发出,HCI无法区分具体分组,因此专门设置有HCI分组指示器,其中HCI指令分组的标志为0x01,HCI事件分组标志为0x04,HCI数据分组标志为0x02(ACL数据分组)和0x03(SCO数据分组)。主机通过命令分组控制主机控制器接口,包括HCI复位、事件滤波器清除、扫描结构参数设置、鉴权允许参数设置、事件过滤器设置、写入链接识别超时结构参数、写入呼叫响应超时结构参数、读取本地蓝牙地址(Read_BR_ADDR)等。要实现微控制器对蓝牙芯片的初始化、实现数据传送,微控制器(主机)编程必须遵循蓝牙HCI4种分组格式,数据采用十六进制,有关蓝牙HCI指令、事件和数据分组格式详见参考文献[2]。以本设计的一个蓝牙从设备为例,连接地址为[E36C03AC0800],需要发送的数据格式为:[0105040D0008AC036CE308000000000000],连接命令为Create_Connection[0105040D0008AC036CE308000000000000],共17B(Tx=17),其中[01]为分组指示器,[0405]是操作码,[0D]表示参数长度,[E36C03AC0800]为对方蓝牙地址,[0008]表示分组类型为

欢迎订阅2009年《测控技术》

欢迎发布广告信息

●订阅代号:82-533  ●定价:15100元/期  ●每月18日出刊

因篇幅问题不能全部显示,请点此查看更多更全内容