王仕元,杨晓明
(中原工学院,河南 郑州 450007)
在当今社会丢失儿童、宠物的事件屡见不鲜,随身重要物品遗失的情况更是层出不穷,这些都对人们的正常生活、工作造成了不同程度的影响。为有效防范类似事件的发生,设计一款便捷有效的防丢器势在必行。蓝牙技术以其自身的特点在防丢器设计领域受到青睐,它是一种短距离无线通讯技术,具有兼容性强、功耗低、传输速率高、响应迅速、安全稳定性好等优点。本防丢器的设计利用蓝牙技术中的RSSI技术(Received Signal Strength Indicator,通过接收到的信号强弱来测定信号点与接收点的距离,进而根据相应数据进行定位计算的一种定位技术),以CC2540BLE芯片实现核心构架。
本防丢器以蓝牙4.0低功耗芯片CC2540BLE为核心,辅以外围设备来实现防丢功能。在硬件结构中设置一个主机模块(拥有者随身携带)和一个从机模块(防止丢失的儿童、宠物或随身携带物品携带)。要求从机离开主机一定距离后,从机和主机报警,实现防丢功能。在软件逻辑判断中,由于两个CC2540BLE芯片间可实时获取RSSI(信号强度指示)信号,以此RSSI信号的强弱推算两个CC2540BLE芯片间的距离,进而判定从机与主机的距离是否大于设定值,如大于设定值则防丢器发出报警控制信号,达到防丢效果。
防丢器主机硬件包括按键模块、复位模块、电源模块、CC2540模块、LED灯和蜂鸣器模块。主机硬件组成如图1所示。
各模块功能如下:①按键模块:通过按键对CC2540模块进行操作,关闭主机的报警;②复位模块:使器件恢复到初始状态;③电源模块:由电池和稳压芯片AMS1117-3.3 V组成,为整个电路提供电能,供电电压为3.3 V;④CC2540模块:进行主机和从机之间的无线连接并根据这两块芯片的RSSI值做出相应的处理,是整个电路的处理器;⑤蜂鸣器:声音报警;⑥LED灯:光报警。
图1 主机硬件组成图
防丢器从机硬件包括复位模块、电源模块、CC2540模块、LED灯和蜂鸣器模块。从机硬件组成如图2所示。各模块功能与主机相同。
图2 从机硬件组成图
1.3.1 电源模块的选择
依据系统框架选择电源模块。系统框架的主要用电器件为CC2540模块,因此电源模块的选择主要视CC2540而定。CC2540工作电压为2 V~3.6 V,故选择压降较小、标准输出电压为3.3 V的AMS1117-3.3 V稳压芯片作为电源模块。
1.3.2 报警器的选择
为便于及时发现警报、方便寻找遗失人或物,报警方式采用声报警和光报警。出于低功耗、低成本的考虑,在能够完成声光报警任务的前提下,确定选用蜂鸣器作为声音报警模块的核心,选用LED灯作为光报警模块的核心。
以最小系统板为母板,将CC2540全部GPIO通过两个12P 1.27间距的排针引出。最小系统板由CC2540F256主芯片、32 MHz金属壳晶振、32.768 kHz晶振、PCB天线、SMA外接天线座、天线选择跳线电阻、1.27间距排针和村田电容电感等组成。此模块中的PCB天线充当此系统信号的接收和发射天线,32 MHz金属壳晶振为整个系统提供时钟信号,32.768 kHz晶振充当系统处于睡眠状态的时钟信号。模块引脚如图3所示。
图3 CC2540BLE模块引脚图
电源电路采用AMS1117-3.3 V稳压芯片和3节5号电池相结合的模式。电路中设置一个LED灯作为电源指示灯;为减小输入电压波动幅度,在电源电路输入端设置一个电容C2;为提高AMS1117-3.3 V供电质量,在其输出端同样增设一个电容C3。电源电路图如图4所示。
图4 电源电路图
复位电路由上电复位电路和手动复位电路组成,电路图如图5所示。
上电复位电路的工作流程为:VCC电源接通时电容C1需经历一个充电过程,在此过程中RESET端会维持一段时间的低电平,起到低电平复位信号的作用;随着VCC电源向C1充电,C1两端的电压增大,一段时间后RESET端变为高电平,上电复位结束。
图5 复位电路图
手动复位电路的工作流程为:在VCC电源作用下,当按键S1按下时,电容C1被短路放电,RESET端呈低电平状态,松开按键S1后,RESET端低电平状态会维持一段时间,起到低电平复位信号的作用;随着VCC电源对C1充电,C1的端电压差增大,一段时间后RESET端再次变为高电平,手动复位结束。
声报警电路由一个扬声器与一个NPN型三极管共同构成。三极管将报警信号放大,使蜂鸣器在低电压下也能产生很强的报警信号。
光报警电路由一个LED灯与一个电阻串联构成。电路以高电平点亮LED灯,电阻起到限流作用,避免输出电流过大烧坏LED灯。
按键电路仅在主机电路中存在,电路主要由按键、电阻组成。按键未按下时,相对应的引脚处于低电平状态;按键按下时,使引脚处于高电平状态,引脚高电平有效。主机以引脚的电平判断按键是否按下。
该防丢器的软件是基于TI公司CC2540芯片的BLE协议栈进行二次开发的。TI公司为 CC2540提供BLE协议栈,CC2540可以单芯片实现 BLE 蓝牙协议栈的所有组件,开发人员通过协议栈来使用协议,在主机和从机提供的原始程序基础上进行应用程序二次开发[1-4]。
主机程序流程如图6所示。主机程序的任务:对从机所发出的广播信号进行扫描,获取从机信息,然后向从机发出连接请求,从机接收到主机发出的连接请求后建立连接;连接成功后,主机获取主机与从机之间的信号强度指示值(RSSI), 并与RSSI设定值进行比较,当RSSI值大于设定值时,向主机的报警电路发出信号,并通过主机的CHAR向从机的报警电路发出信号(CHAR值为1),这时主机、从机均处于报警状态;当RSSI值不大于设定值时,不产生报警信号(CHAR值为0)。这里报警信号包括声报警信号和光报警信号。
长按按键模块可解除主机的报警信号,此时仅从机处于报警状态,可根据声、光报警信号迅速确定从机位置。
图6 主机程序流程图
从机程序流程如图7所示。从机开机后先进行初始化,然后向主机发出广播信号,等待主机的连接信号;若主机未发出连接信号,从机将一直处于广播状态并等待主机发送连接信号,当收到主机的连接信号后建立连接;之后从机处于等待主机发送CHAR值的状态,从机通过所获得的CHAR值来判断是否产生报警信号。从机未设置按键模块,其报警信号的解除只能通过主机的CHAR值来完成。防丢器功能的实现需要主机和从机共同完成,因此两者建立连接是整个功能实现的基础。
图7 从机程序流程图
经过软件和硬件的调试、整改和优化,目前防丢器在试验室运行良好。
通过合理设计,将CC2540芯片及其外围电路有机地结合成为一个整体,通过对BLE蓝牙协议栈的二次开发,达到了设计本防丢器目的,充分体现了其使用便捷、功耗低、安全稳定、响应迅速的特点。
参考文献:
[1] 韩江洪,段玲琳,张建军,等.嵌入式信息家电系统中蓝牙子系统的研究与开发[J].系统仿真学报,2004,16(12):2825-2827.
[2] 林挺.蓝牙核心协议栈的研究[D].北京:北京交通大学,2006 :28-57.
[3] 徐金苟.低能耗蓝牙4.0协议原理与实现方法[J].微型电脑应用, 2012 ,28(10):16-19.
[4] 金纯.超低功耗(ULP)蓝牙技术规范解析[M].北京:国防工业出版社,2010.