引言
在各种生产现场都需要温度传感器实现温度的检测中,温度是一种最常用的控制参数。但在一些危险的场合或物体移动的情况下,有线的温度传感器不仅布线复杂而且容易造成线缆脱落影响数据的可靠性。近年来,蓝牙技术作为一种较成熟的短距离无线通信技术,将它和单片机技术相融合设计无线温度传感器,可以方便、实时、可靠地将采集到的温度数据传输给控制终端,保证了生产的顺利进行。
而且,经过功能扩展建立的无线传感器网络,能够适应更加复杂的测量现场。
1 蓝牙技术简介
蓝牙技术是一种无线的数据与语音通信的开放性标准,工作在2.4GHz的ISM频段上,采用跳频扩谱技术。蓝牙设备的最大发射功率可分为3级:
100mw(20dB/m)、2.smw(4dB/m)、lmw(0dB/m)。当蓝牙设备功率为lmw时,其传输距离一般为0.1~10m。当发射源接近或是远离而使蓝牙设备接收到的电波强度改变时,蓝牙设备会自动地调整发射功率。当发射功率提高到10mw时,其传输距离可以扩大到10om。蓝牙支持点对点和点对多点的通信方式,在非对称连接时,主设备到从设备的传输速率为721kbps,从设备到主设备的传输速率为57.6kbPs;对称连接时,主从设备之间的传输速率各为432.6kbps。蓝牙标准中规定了在连接状态下有保持模式(HoldM0de)、呼吸模式(SniffMode)和休眠模式(ParkMode)3种电源节能模式,再加上正常的活动模式(ActiveMode),一个使用电源管理的蓝牙设备可以处于这4种状态并进行切换,按照电能损耗由高到低的排列顺序为:
活动模式、呼吸模式、保持模式、休眠模式,其中,休眠模式节能效率最高。蓝牙技术的出现,为各种移动设备和外围设备之间的低功耗、低成本、短距离的无线连接提供了有效途径。
2 系统硬件结构
无线温度传感器主要由单片机控制单元、蓝牙模块、温度检测单元、接口电路及其它辅助电路组成,系统结构如图1所示。控制单元凌阳单片机为整个系统的核心,对检测到的温度数据进行转换、显示、传输,外扩4MBFLASH用于存储程序和温度数据。蓝牙模块包括蓝牙芯片、放大器、非平衡变压器(Balun)等,负责与蓝牙控制终端进行无线连接和数据传输,按键完成系统设置、复位等信息输人,测量的温度数据在传输到控制终端的同时在LED上显示,并通过扬声器定时语音播报当前温度数据和超限报警。
2.1 单片机控制单元
控制单元采用SPCE061A单片机,工作电压为2.6~3.6V,工作频率为0.32一49.152MHz,较高的处理速度使其能够非常容易、快速地处理复杂的数字信号。该芯片内包括ADC、DAC、定时器/计数器、RAM、FLAsH、ROM等器件,具有一套高效率的指令系统和集成开发环境,并且支持标准C语言,可以实现C语言与凌阳汇编语言的相互调用,为硬件设计和软件开发提供了便利条件。另外,芯片内置的2路10位精度的DAC,再配合丰富的语音函数库,可方便地完成语音的播放,非常适合于语音应用的开发。
2.2 温度检浏单元
温度检测单元采用D1S8B02型传感器,是美国DALLAS公司推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过编程实现9~12位的数字值读数方式。DS18BZo与SPCEo61A单片机的接口电路如图2所示,由于DS18B20传感器支持“一线总线”接口,因此只需将DS18B20信号线接到单片机的1位1/0线上即可,而且在1根1/0线上可以挂接多个传感器实现多点温度测量。
为了提高抗干扰性能,采用外加电源方式对传感器供电。
2.3 无线传愉控制单元
随着蓝牙芯片单芯片的集成度越来越高和集成了芯片、Balun、晶振等各种蓝牙模块的面世,将蓝牙嵌人到其它数字化设备中也越来越容易实现。本系统无线传输由蓝牙模块BCM02实现,BCM02核心采用CSR(CambridgesiliconRadio)公司的BlueCoreZ一External蓝牙芯片,外围扩展T晶振、FLASH、Balun、带通滤波器(BPF)、1.SV稳压电路,可以根据不同的应用场合快速开发,模块符合蓝牙Vl.1标准,最大发射功率设计为2.smw(4dB/m),是一个二级蓝牙芯片,工作电压为3士0.3V。BCMoZ通过UART口与单片机相连,为简化设计,将所需的蓝牙协议栈和无线传输应用程序直接固化在蓝牙模块中,利用蓝牙提供一个透明的无线数据传输,而单片机只要设置好波特率等参数即可进行通信,传输控制由单片机完成。
3 软件设计及流程
3.1 单片机软件设计
单片机软件部分主要包括主程序、中断子程序、测温子程序、转换显示及存储子程序、UART通信子程序、语音播放子程序等,为了降低功耗,使用中断来唤醒单片机进行测温等工作,因此主程序部分比较简单,主要负责系统各部分初始化和中断的调用,在系统初始化完成后就直接进人睡眠模式,当中断到来时单片机退出睡眠模式,调用中断子程序实现测温、转换显示、温度数据的传输以及语音的播报和报警等功能。
3.2 蓝牙应用程序设计
本系统是基于蓝牙的串口应用模型SPP(SerialPortProfile)实现无线数据的透明传输,在核心协议栈之上编写自己的上层应用程序。CSR的蓝牙核心协议栈包括HCI、LZCAP、SDP、RFCOMM等,以固件的形式提供给开发人员,用户编写的应用程序和协议栈一起运行在CSR嵌人式环境中。在CSR程序中,不同任务之间可以异步地发送消息,每一个任务在创建的时候可以让其中一个拥有消息队列,其它的就把发给任务的消息提交给该消息队列,由任务调度程序自动运行获得任务的消息。蓝牙模块上层应用程序流程如图3所示。
4 低功耗设计
作为无线传感器,低功耗运行可以最大限度地延长设备的有效使用时间,为了获得最佳性能,设计时在电源损耗和可用性方面必须根据情况权衡使用,除了选用低功耗器件外,笔者从以下几个方面设计了电源管理程序以尽量减少无线温度传感器的功耗。
(1)由于无线温度传感器负责向控制终端传输数据,因此何时进行数据采集、何时进行数据传输可以由控制终端决定,非常适合使用休眠模式和呼吸模式,通过减少蓝牙设备在微微网中的活动达到节电的目的,并且控制终端一般接有持久的电源,所以电源管理的开销由终端来负责比较合适。把控制终端作为主设备,将电源管理程序设计在终端的应用控制层中,并由控制终端完成设备的查询、配对、建链等工作,当无线传感器与控制终端配对成功并建立RFCOMM连接后进人休眠模式,此时主从设备仍然保持着RFCOMM信道,只是不能发送和接收数据,休眠模式下信标间隔可设为15,电流大概在lmA左右。当需要进行数据传输时,退出休眠模式进人呼吸模式,通过呼吸时隙发送数据,呼吸间隔可设为20~40ms,间隔过大会带来明显延迟,当数据传输结束后再次进人休眠模式,从而尽可能地降低能耗。
(2)CSR的BlueCore芯片提供T独特的硬件节能方法—深度睡眠(Depslep)模式,进人和退出深度睡眠模式至少需要10ms,通过按钮或事件进人深度睡眠模式很大程度上降低了损耗。当用户确定将有较长时间不使用无线温度传感器时,可通过控制终端发送事件消息进人深度睡眠模式,需要使用时再通过消息快速退出。在深度睡眠模式下电流一般可控制在50拼A左右。
(3)凌阳单片机SPCE06lA也可以应用CPU的睡眠模式,且A口具有键唤醒功能,将BCM02的PIOS与单片机的IOA7相连接,当蓝牙模块退出休眠模式,发送指令进行数据采集时,PIOS输出高电平,通过IOA7电平的变化产生中断来唤醒CPU进人工作状态。