陶俊豪
( 中国人民解放军63801部队,四川 西昌 615042 )
随着物联网技术的发展,利用局域网或无线网技术将各种设备组网,实现信息化、远程管理控制和智能化的网络,成为物联网发展的现实需求。
对电动工具如电钻、角磨机、电锤等产品进行用电监测,对开关机和峰值情况进行统计分析,甚至进行远程控制、全寿命周期管理时[1],传统的人工记录和抄表存在准确性差、费时费力等问题。无线电计量技术可充分发挥物联网技术优点,破解传统人工记录的局限性,实现设备智能化控制。
基于物联网的智能电计量装置结构设计见图1。系统主要由三部分组成:无线传输部分、电能计量部分和供电部分。
为提高电动工具的集成化程度,所有板件和芯片采用小封装和低功耗产品。无线传输部分使用北欧Nordic Semiconductor公司出品的nRF51822芯片,该芯片是功能强大、高灵活性的多协议SoC,非常适用于Bluetooth®低功耗和2.4GHz超低功耗无线应用,其功能是完成基于蓝牙的数据无线接收和发送。
nRF51822基于配备256kB flash+16kB RAM的32位ARM® Cortex™ M0 CPU构建,不仅包含了丰富的外设,且各外设通过I/O配置更改映射。
电能计量部分采用ATT7039AU芯片,该芯片是上海钜泉光电出品的精简版单相计量SoC,片内集成单相计量高效1-cycle CPU51处理器、电源管理、时钟管理、硬件自动温补RTC、LCD驱动及JTAG调试等丰富功能。
ATT7039AU的功能是监测电能使用情况,包括电压、电流、功率、电能等参数,存储系统开关机时间、累计使用时长、累计电能使用及峰值情况等。供电部分采用开关电源,加入电池作为后备电源。开关电源部分使用离线式非隔离反激电源芯片MP150GJ,该芯片最大连续输出电流可达200mA,非常适合物联网应用中的供电。
在对外连接方面,智能电计量装置通过蓝牙与手机或其他智能终端进行数据的通讯。为了实现智能化控制,在电能计量芯片I/O端口加入发送和接收光耦,实现工具开关机、变频调速、工作状态设定和监测等基于串口的命令。电表正常工作时需要根据工况进行校正和电能使用情况的存储,在系统中加入SPI FLASH芯片来存储校正系数、电能使用情况以及工具的序列号、授权期限等信息。
图1 系统结构框图
系统内部ATT7039和nRF51822均为低功耗芯片,使用3.3V供电,故开关电源采用220V交流转3.3V直流输出模式。经过查阅各芯片、光耦、LED的数据手册,估算整机峰值耗电电流约70mA。如采用传统的阻容降压取电安全性差,存在整机体积偏大,负载动态电流变化大导致功耗高等问题。《电器产品消防安全通用要求》4.3.2中规定民用电器产品主电源降压装置不应使用阻容降压方式。故本机采用高效离线式开关电源芯片MP150作为电源控制芯片。该芯片是替代线性及阻容降压式电源的低成本解决方案,是元件数目最少的高效离线式开关IC。作为一款绿色模式电压调制器,内部集成一个500V的MOSFET,峰值电流和开关频率随负载下降而下降。
电源电路见图2,电源输入端火线与低压供电端共地实现低成本取样电阻进行电压和电流的采样,在电源前端加入R11减少上电电流,过流时起到保险丝作用,D2、L1、C6、C7组成半波整流电路,电源输出电压由R5与R10的比值确定,即Vo=2.5×(R5+R10)/R10。
图2 电源电路
为降低成本,提高国产化程度,采用国产计量芯片ATT7039AU。该芯片采用8位 R8051XC内核,具有8052兼容指令集和总线结构,片内集成按键、串行通讯、LCD、红外调制、 I2C等外设,采样端提供2路ADC输入,提供单相电能计量所需要的有功功率与有功电能、无功功率与无功电能、电压有效值、电流有效值及频率参数等,支持软件校表方式。
在动态范围5000∶1内有功误差小于0.1 %,支 持IEC 62053-21、IEC 62053-22标准的精度要求。芯片外接电池后可通过VDD3P3端口供给其他芯片使用,如时钟和存储芯片,确保掉电后其他低功耗芯片正常工作。
采样电路中采用了低成本的电阻采样,其中V3P和V3N为电阻分压监测线电压,使用多个电阻分压采样;V1P和V1N为电流监测端,使用1mΩ采样电阻获取用电器电流信息[2]。芯片使用UART串行外设与nRF51822进行数据交换,使用SPI接口与存储芯片进行数据的读取和写入。芯片外围电路中的Y1和C24、C25晶振电路用于RTC时钟,RTC时钟可用于电路的定时、校时和闹钟功能;BT1和D4组成电池和开关电源双供电模式,在系统掉电(R14、R15和C10组成掉电监测电路)时维持内部RTC时钟运行。U3和U4为通讯光耦TLP2301,用于电动工具的状态控制和采集,实现基于串口的智能化控制。计量电路见图3。
图3 计量电路
nRF51822是功能强大、高灵活性的多协议片上系统,适用于Bluetooth®低功耗和 2.4GHz超低功耗无线应用。该芯片基于配备256kB flash和16kB RAM的32位ARM Cortex M0 CPU构建,2.4GHz模式与Nordic Semiconductor的nRF24L系列产品无线兼容。另外,还具备丰富的模拟和数字周边产品,可在无需CPU参与的情况下通过可编程周边产品互联 (PPI) 系统进行互动。灵活的31引脚GPIO映射方案可使I/O(例如串行接口、PWM和正交解调器)根据PCB设计需求映射到任何设备引脚,实现完全的设计灵活性及引脚位置和功能。无线收发模块见图4。
图4 无线收发模块
在模块中采用外部16MHz无源晶振作为时钟源,外围电路较为简单,除串行调试接口外,仅包括指示灯、去耦电容以及射频发射部分。其中射频部分经阻抗匹配后通过板载PCB刻蚀天线进行2.4GHz蓝牙信号的收发。存储部分,采用W25Q64的SPI接口FLASH芯片,内存8M字节,循环写入10万次,既可存储校表参数,也可以存储用电情况等,本应用中采用的存储方式是分扇区存储,后两个扇区存储校表参数(其中一个做备份用,扇区记录数据包含CRC16校验的两个字节)、设备授权信息、序列号等,前4094个扇区以循环方式存储电能使用情况,包括开关机时间、电流、电压和功率的极值、使用总时间和次数等。
智能电计量模块包含的两个主要芯片nRF51822和ATT7039,分别自带ARM Cortex M0微处理器和R8051XC处理器,需单独通过各自的编程接口在KEIL中进行编程[3]。无线收发的另一端,需通过带蓝牙功能的终端进行控制,本文使用安卓智能手机实现,基于Android Studio 3.3开发相应的应用程序(APP)。
nRF51822软件基于Nordic Semiconductor官方提供的SDK12.0.3开发,系统采用的S130协议栈(softdevice)需在nRFgo Studio中用Jlink调试器下载到nRF51822芯片中,烧写BootLoader(可选)和应用程序[4]。BootLoader支持对程序的空中升级,即后续程序的更新升级。
应用程序使用Keil MDK编程环境,具体流程图见图5。该部分程序的核心部分是对手机或终端指令的解析,为实现可靠的手机与智能电计量模块之间数据传输,需要编写分层结构的协议栈通讯[5][6],本文采用的通讯协议有包头、包长、包序号、校验字节等信息,并对不同的命令进行分层编码,在传输失败后重发3次。在图5的流程中,等待指令环节既包括来自蓝牙的指令,如查询、测量和控制等,也包括来自ATT7039的指令,如查询校表参数、写入校表系数以及写入使用记录等。指令解析如仅查询记录,则以SPI接口从25Q64读取,如涉及电能计量或智能控制,则需要与ATT7039通讯,转发相应的指令,ATT7039响应指令后从串口返回数据,MCU处理后以无线数据包方式发送至手机或其他终端。
图5 程序流程图
ATT7039支持标准JTAG接口,用户可在线编程和调试。包括电压、电流以及功率测量、RTC时钟的读取和设定、相关开关机信息的记录和读取等,必要时包含闹钟设定。图5中,计量模块初始化需从存储芯片中读取校表参数、电能使用情况以及上次能量脉冲个数,以串口通讯方式交付nRF51822读取[7]。
流程中,定时器事件定时对电能参数进行测量,更新电能使用情况。RTC事件检测授权是否过期,如过期则模块停止工作。MCU通过中断的方式读取串口数据,放入指定环形数组。收到串口数据既可来自nRF51822,也可来自电动工具其他模块,串口使用循环读取数据方式解析数据包,返回执行结果同样通过串口[8][9]。
开关机监测部分在检测到电流大于阈值的情况下记录开机时间,电流小于阈值时记录关机时间,并写入存储芯片。
手机端于安卓5.1以上版本开发,需开启BLUETOOTH权限和BLUETOOTH_ADMIN权限。为避免蓝牙广播无法搜索,需添加ACCESS_COARSE_LOCATION以及ACCESS_FINE_LOCATION权限。
APP端采用MCU同样的通讯协议,包括包头、包长、包序号、校验字节等信息,对不同指令进行分层编码,传输失败后重发3次。
将指令分为设置、查询、控制等多组,每组指令下分为多个子命令,子命令后附加键值以实现灵活控制。APP首先使用android.bluetooth.le.BluetoothLeScanner类下的startScan()函数实现广播的发现,广播以RecyclerView列表框展现给用户选择,APP查找相应的蓝牙服务,选择写入服务和通知服务后可进行指令的发送和接收。
APP采用列表式android.support.v4.app.Fragment类与用户进行交互[10],接收和发出命令后以二进制方式显示,必要时以文本形式展现,界面形式见图6。
图6 最终实物图和软件界面
本文从硬件和软件上阐述了系统的设计实现,通过ATT7039计量芯片和nRF51822蓝牙芯片实现电能参数的采集、传输、记录存储以及终端实时查询功能,友好嵌入各类智能电动工具,为设备的联网打下基础,实现了设备的信息化、智能化管理应用[11]。