董文润,易会磊,黄书成
(天信仪表集团有限公司,浙江 温州 325800)
目前能源紧张与环境污染问题日趋严重,全球正在推进高效、清洁、多元化能源转型,天然气作为一种清洁、廉价的能源成为首选,未来将成为全球第一大消费能源。天然气和水、电能源一样,在贸易计量结算时,传统抄表方式往往采用外勤人员上门巡检、抄表,人工抄表频次低、效率低、管理成本较高,且对仪表本身来说,仪表状态、故障反馈的实时监控度差等产生的供销差问题一直存在。而在非贸易的工业计量、过程监控领域,传统多采用有线的通信方式,例如RS485总线、4mA~20mA、HART等。有线方式存在架设成本较高、传输距离有限、易受外部干扰、可靠性较低等缺点。
随着互联网和无线通信技术的不断发展,物联网技术成为又一次信息产业的革命,于是基于新一代物联网技术的智能燃气表应运而生。应用于智能仪表的物联网业务的无线通信技术按距离可分为两类,一种为广域低功耗的物联网技术以LoRa、Sigfox、GPRSCDMA、NB-IoT、LTE Cat-m等为代表,一种为短程无线技术以Zigbee、Bluetooth、Wi-Fi、RF射频等为代表。综合考虑应用场景和技术特点认为作为新物联网技术的NB-IoT和BLE低功耗蓝牙更符合无线通信修正仪的应用要求。基于此设计了一种基于蓝牙的可充电外挂转换模块[3-5]。
图1 蓝牙模块原理框图Fig.1 Bluetooth module schematic
图2 指示灯原理图Fig.2 LED schematic
由于蓝牙转换模块要求体积小,所以微处理器需为小封装,再从性价比稳定性方面考虑,PIC24FV32KA301可为不错的选择。PIC24FV32KA301是Microchip公司生产的一款具有XLP技术的20脚SSOP封装通用16位闪存单片机,具备双串口,FLASH空间32K,SRAM空间2K,并且具有以下一些特点:
1)超低功耗
PIC24FV32K301工作在8MHz时钟条件下时,休眠模式(CPU、闪存以及外设不工作,SRAM工作)电流为8uA,工作电压为2.0V~5.5V。
2)模拟特性
最多16路通道的12位模数转换器,100ksps转换速率,休眠和空闲期间可进行转换,可选择片内参考电压。
3)其他特殊性能
用于休眠/深度休眠的超低功耗唤醒(ULPWU)功能;标准看门狗定时器(WDT),带片上低功耗RC振荡器以便可靠工作;通过两个引脚进行在线编程(ICSP)和在线调试(ICD)。
蓝牙转换模块的串口二通过UART接口与蓝牙模组相连,串口一通过RS485芯片实现与流量计相连[2]。
选用绿鲸科技有限公司的E66A标准透传模组,小尺寸(21mm×12.6mm),板载天线,模块功耗低,支持BLE4.0/4.2通信协议。经过前期的反复测试,最后将模组参数配置确定为2s间隔广播、100ms间隔连接、19200串口波特率、-12dBm发射功率、TANCY+6个字节设备名称,模组2s间隔广播时(一直有信号)功耗为10uA,处于100ms连接状态时功耗为60uA,该参数模式下蓝牙信号覆盖范围约为2m。
该蓝牙模组具有以下特点:
跳频:使用所有蓝牙规范版本通用的自适应跳频,最大程度地减少和其他2.4GHz ISM频段无线技术的串扰。
主控制:更加智能,可以休眠更长时间,只在需要执行动作的时候才唤醒。延迟:最短可在3ms内完成连接设置并开始传输数据。健壮性:所有数据包都使用24-bitCRC校验,确保最大程度抵御干扰。
安全:使用AES-128 CCM加密算法进行数据包加密和认证[4,5]。
蓝牙转换模组在与流量修正仪进行通讯的同时,还需要为流量修正仪提供24V外电源,采用AIC1896升压芯片将3.7V锂电池电压升压成24V,升压芯片不使能时输出电压等于输入的锂电池电压,锂电池电压通过LT1521-3.3稳压芯片给蓝牙芯片和MCU提供电源。TP4056是一款完整的单节锂电池线性稳压器,可以通过USB Type-C数据线和电源适配器对电池进行充电。当电池电压小于3.4V时,就需要用USB Type-C数据线给蓝牙模块充电,2~3个小时即可充满,充满电时电池电压为4.1V[1]。
蓝牙转换模组上面一共有3个模组状态LED指示灯,D12灯亮起时表示模块成功连上手机,熄灭时表示与手机断开;D14灯亮起时表示蓝牙模组有数据发给MCU;D13灯亮起时,表示蓝牙模组处于唤醒状态,此时MCU正有数据传输给蓝牙模组,熄灭时蓝牙模组处于休眠模式[5]。
蓝牙转换模组采用低功耗方式进行通信处理,利用串口中断唤醒MCU。当蓝牙转换模组与手机APP没有数据通讯时,MCU处于休眠模式,此时蓝牙转换模组有两种状态:一种是处于广播状态,但未与手机APP连接,整个电路板功耗为100uA;一种是处于广播状态,并与手机APP连接,整个电路板功耗为150uA。在没有与手机APP进行数据通讯状态下电池可以运行2年。
当MCU检测到手机APP有报文数据下传,串口二在接收数据时,MCU同时使能升压电路输出24V给修正仪供电,并退出休眠模式,打开内部定时器,唤醒蓝牙模组,定时1.5s后通过串口一转发串口二接收的命令报文数据(例如读实时数据命令、读历史数据命令等),当流量计接收到命令后,回传数据包给串口一。串口一接收的数据如果超过200个字节,则需要分包发送(蓝牙模组单次最多只能发送200个字节,而后需要延时至少5ms,否则会导致蓝牙模组拥塞造成数据不能成功发送),即串口一每接收200个字节,串口二就用查询方式转发这200个字节,同时串口一持续在接收新的数据,等最后接收到的不大于200个字节的一帧数据接收发送完,则MCU将一些标志字节恢复为初始状态并执行不使能升压电路、休眠蓝牙模组、定时器关闭、进入Sleep模式等操作以保证低功耗,如果超过3s串口一没有收到回传数据,则认为数据掉线,MCU执行以上同样的操作。软件使用芯片内部看门狗,2.5s溢出,在主函数中执行喂狗指令,有数据通讯时打开内部看门狗,无数据通讯时MCU处于休眠模式时,关闭内部看门狗[1,2]。
图3 MCU软件流程图Fig.3 MCU Software flowchart
图4 手机APP界面Fig.4 Mobile APP interface
手机APP是基于安卓系统开发的智能手机应用程序,打开软件后要先搜索蓝牙信号,当搜到蓝牙模块的ID“TANCY +6个字节”时,点击连接,一个蓝牙模块只能同时被一个手机APP连接,即点对点网络,手机APP是主机,蓝牙模块是从机。前期经过反复测试,当修正仪上传的数据量比较大时,例如上传小时记录往往有几十K或者几百K个字节,这时将蓝牙模组的连接间隔设置为100ms就可以完整地将这么多数据发送给手机。连接间隔100ms的意思就是E66蓝牙模组每隔100ms将收到的数据发送出去,还有一个MTU参数(Maximum Transmission Unit,最大传输单元)以设置为100为最佳,这个参数需要主机手机APP设定。
为了响应国内燃气计量和仪表智能化、物联网化的号召,本文设计了一款基于蓝牙的可充电外挂转换模块。该模块采用蓝牙无线技术,具有低发射功率、低成本和短距离通信以及PIC单片机稳定低功耗的特点,可方便快捷地对气体流量计修正仪进行参数配置和数据读取。相信随着蓝牙无线通信和移动互联技术的普及,该模块会得到广泛的应用[2,3,5]。