基于nRF52832的低功耗体温计设计
2019-02-12宋林桂
宋林桂
摘 要:文章提出一种基于nRF52832的低功耗体温计设计方法,并考虑到体温计体积和纽扣电池电量的限制,在电路设计和程序设计过程中采取多种措施来降低系统功耗。
关键词:nRF52832;低功耗;体温计
1 硬件电路设计
为了满足体温计测量精度方面的要求,同时兼顾到可穿戴应用对于低功耗和微型化的需求,对硬件电路进行如下设计。
1.1 蓝牙芯片选择
本电路选择nRF52832作为温度采集和传输芯片,nRF52832是一款功能强大、高度灵活的超低功耗多协议SoC蓝牙单芯片。nRF52832芯片内置512 KB的Flash和64 KB的RAM,nRF52832采用32位ARM?Cortex?-M4F CPU,Cortex-M4F的内核主频高达64 MHz,拥有强大的运算能力以及浮点运算的技术,NRF52832的电源电压范围是1.7~3.6 V。
1.2 传感器选择和电路设计
本设计中采用的型号为MEB-503E3950UL87的NTC热敏电阻,具有体积小、灵敏度高的特点,适用于体温测量,在体温30~45 ℃测量范围内的阻值变化范围为40.24 KΩ~21.76 KΩ,结合电路结构,传感器电路的分压电阻选取阻值为30 KΩ,精度为±0.1%,温度系数为25 PPM的高精度低温漂电阻。传感器和高精度低温漂电阻串联,随着温度的改变,传感器电路输出的电压也相应改变[1]。
1.3 温度信号处理电路设计
为了减小温度采集的误差,在传感器電路和蓝牙芯片的ADC采集电路之间加了电压跟随电路。运放芯片使用3PEAK公司的为低功耗集成运放芯片LMV358TP,LMV358TP的供电电压范围+2.1~+6.0 V,满足纽扣电池供电的需求。LMV358TP的静态工作电流只有40 uA,满足低功耗的需求。
1.4 传感器电源供电电路设计
传感器电路的输出电压除了和温度有关,还和传感器电路的供电电压大小有关。电路使用纽扣电池供电,纽扣电池的输出电压不稳定,使用可控精密稳压源芯片TL431提供稳定的电源为传感器电路供电,TL431的参考电压端和阳极端连接在一起,输出电压和参考基准电压2.495 V一样,工作电流是1 mA,限流电阻选680 Ω大小的电阻。传感器电路和电压跟随器电路的供电电流大概1 mA,为了实现低功耗,传感器电源供电和电压跟随器的电源由蓝牙芯片的一个I/O口提供,蓝牙I/O口最大的输出电流3 mA,满足温度传感器电路和处理电路供电需求[2]。
2 nRF52832软件设计
nRF52832软件设计包括nRF52832外设初始化、蓝牙协议栈初始化、蓝牙GAP参数初始化、蓝牙串口服务初始化、蓝牙广播和连接参数初始化、蓝牙广播和配对、温度定时采集发送程序设计。温度采集使用nRF52832的SAADC采集,温度定时采样的定时器使用蓝牙协议的软定时器,温度发送使用串口通信任务发送。系统软件流程如图1所示。
图1 系统软件流程
2.1 SAADC采集
温度传感器电路输出电压Vo=2.495/(Rx+30)×Rx,Rx为温度传感器的阻值。温度传感器电路的输出电压由nRF52832的SAADC进行采样,nRF52832总共有8路ADC采集,信号采集模式可以是单通道输入采集和差分输入采集,本设计使用单通道输入采集。nRF52832的ADC采集的参考电压有两种:内部产生的0.6 V和VDD/4,本设计的VDD电压不稳定,选择内部的0.6 V作为参考电压,nRF52832还有ADC输入电压增益调节电路,本设计增益选择1/6。nRF52832的ADC位数可以配置为8位、10位、12位和过采样14位,本设计在满足温度采集的精度和低功耗的要求下选择12位ADC采集配置。所以ADC转化后的数字量为adc_result=Vo/3.6×4 096,由温度传感器的温度和阻值数据拟合的温度和数字量之间的关系式是wendu=-60/174.0×adc_result+851;把得到的浮点型变量转换成字符串,然后通过nRF52832串口把温度数据发送给手机[3]。浮点型变量转换成字符串代码如下:
data_array[0]=wendu/100+0x30;
data_array[1]=wendu/10%10+0x30;
data_array[2]=.;
data_array[3]=wendu%10+0x30;
2.2 软件定时器
为了实现低功耗使用蓝牙协议栈下的软件定时器定时采集和发送温度,并降低功耗和提高系统的稳定性,定时5 s进行温度采集和温度数据发送到手机。由于温度传感器供电的功耗比较大,为了降低系统功耗,定时60 s为温度传感器电路供电,定时60 s结束后停止温度传感器供电,并且停止温度采集和发送温度数据,本方法很大程度上降低了系统功耗[4]。定时60 s的定时器初始化和启动程序如下:
err_code =app_timer_create(&my_timer, APP_TIMER_MODE_SINGLE_SHOT, my_timer_handler);
APP_ERROR_CHECK(err_code);
err_code =app_timer_start(my_timer, APP_TIMER_TICKS(60000), NULL);
APP_ERROR_CHECK(err_code);
app_timer_create()函数的第一个形参是定时器的ID。函数第二个参数是定时器的模式,分别是一次定时模式APP_TIMER_MODE_SINGLE_SHOT和重复定时模式APP_TIMER_MODE_REPEATED,定时60 s使用的APP_TIMER_MODE_SINGLE_SHOT模式,定时5 s使用的APP_TIMER_MODE_REPEATED模式。函数的第3个参数是定时中断服务函数,定时时间到进入该中断服务函数。app_timer_start()函数第一个形参还是定时器的ID。第二个参数是定时间,60 000表示60 000 uS,即定时60 s的时间。
2.3 串口通信任务
蓝牙协议分为3层:应用层、主协议层、控制层。应用层有一些应用任务,分为标准蓝牙任务和非标准蓝牙任务,标准蓝牙任务是蓝牙兴趣小组SIG的官方网站公布的任务:电池任务、心率任务等。串口通信任务位于应用层,属于非标准蓝牙任务,存在数据传输,蓝牙协议里数据传输在主协议层里通用属性协议(Generic Attribute Profile,GATT)层完成,蓝牙协议在GATT层定义了两个角色:GATT服务器和GATT客户端,本设计中手机端属于GATT客户端,nRF52832属于GATT服务器。一个GATT服务器通过一个称为属性表的表格组织数据传输,在GATT层一个属性都有一个UUID值,本设计中有3个属性就有3个UUID值,串口通信任务UUID值是0x6E400001-B5A3-F393-E0A9-E50E24DCCA9E,串口通信任务发送特性的UUID值是0x6E400002-B5A3-F393-E0A9-E50E24DCCA9E,串口通信任务接收特性UUID值是0x6E400003-B5A3-F393-E0A9-E50E24DCCA9E。
3 Android APP软件设计
本文使用简单易用的APP INVENTOR软件设计Android手机APP,APP INVENTOR程序设计分为两部分:界面设计和逻辑程序设计。界面设计把APP中用到的按钮、文本、列表、蓝牙4.0通信、定时器、活动等组件拖到界面里面。逻辑程序设计包括蓝牙协议参数初始化和启动蓝牙扫描、蓝牙配对、控制发送体温开始采集指令、体温定时采集显示。
4 系统测试设计
蓝牙体温计温度采集时电流3 mA,纽扣电池的容量是210 mAh,每采集一次的功耗是0.05 mAh,預计可以使用4 200次。体温计温度测量的精度可达 0.1 ℃,温度测量的范围是30~45 ℃。
5 结语
本文中所提出的数字体温计设计,能精确地进行温度测量,精度可达0.1 ℃,响应时间快,是传统水银温度计较好的替代产品。
[参考文献]
[1]邓迟,胡巍,刁盛锡,等.一种基于NTC的体温传感器测量误差分析及校准技术[J].中国医疗器械杂志,2015(6):395-399.
[2]吴蓬勃,张金燕,张小苗.基于nRF52832的蓝牙鱼缸水情检测系统设计[J].单片机与嵌入式系统应用,2018(2):79-83.
[3]陈宏铭,李水竹,陈宏维,等.适合便携式快速反应数字医用体温计的低功耗LCD显示SoC芯片与方案实现[J].中国集成电路,2012(8):41-48.
[4]朱文亮.低功耗可穿戴式心电监护系统研制与开发[D].苏州:苏州大学,2018.
Design of low power consumption thermometer based on nRF52832
Song Lingui
(School of Electronic Information, Suzhou Chien-Shiung Institute of Technology, Taicang 215411, China)
Abstract:In this paper, a design method of low power consumption thermometer based on nRF52832 is proposed, considering the limitation of thermometer volume and button battery power, many measures are taken to reduce the power consumption of the system in the process of circuit design and program design.
Key words:nRF52832; low power consumption; thermometer