柴华芳,毛德兴,陈海华,王 洋,陈富光
(宁波水表(集团)股份有限公司,浙江 宁波 315032)
为了顺应发展潮流,满足消费者随着科技发展而日益增长的万物互联的需求,近年来,一批适合物与物之间远距离通信的无线通信技术飞速发展,如NB-IoT、CAT.1、CAT.4 等。水表行业在物联网飞速发展的同时也在不断推陈出新,从传统机械表到目前技术成熟的带电子装置的机械表再到电子水表,水表的功能和性能都在逐步提升以满足不同用户需求。目前,占据国内无线远传水表市场首位的无线通讯技术当属NB-IoT。NB-IoT 是一种具有连接终端设备多、覆盖范围广、性价比高、功耗低等多个优点的技术,其发展迅速,不易受干扰,适用性强,深受国内物联网企业的青睐。在以往NB-IoT 无线远传水表的方案中,一般利用NB-IoT 通信模块外接MCU 上。此类方案中,MCU 负责接收传感器采集的数据信息,通过UART 方式将采集的数据传送到NB-IoT 模块,再由通讯模块将数据上传至云平台[1]。该方案通讯模组与主控制芯片分工明确,但成本较高且不便于后期维护。因此,提出将基于NBIoT 模组的OpenCPU 解决方案,让NB-IoT 模块不止负责通讯,还成为处理器,既有利于后期的调试和维护,还能在NBIoT 模块上同时实现数据采集和数据传输,降低电子物料的成本,降低整机功耗以提高产品使用年限,提高数据传输的稳定性和数据信息上报的实时效率。
随着对用户用水量的记录成为水表的一项基本功能,无线远传水表被赋予监控用水情况并对漏损情况产生告警,对用水数据的存储和上传等更广泛的意义,采集和管理用户水务信息成为水表的一项重要进阶功能。一般无线远传水表采用双芯的架构,主控制芯片与通信模块各司其职,一起完成内部数据处理和外部数据传输的工作。工作过程中,当到预设的数据采样时间时,通过传感模块对数据进行测量和采集,MCU 对采集的数据进行处理,继而唤醒并激活NB-IoT 通讯模块,利用NB-IoT 网络进行数据传输和控制指令的交互[2]。
NB-IoT 支持大规模设备连接;有良好的扩展性和适应性,上行峰值速率250kbps,下行峰值速率可达170kbps 以上,完美适配低速率传输的市场需求;提升室内信号覆盖性能,支持地下室和下水管道等区域的信号传输;减少设备的复杂性,使通讯方式便捷高效;具有降低功耗和延时的特性。因此,是一种广泛应用于物联网中低速传输场景的技术,具有海量连接、低时延、半双工的优势。NB-IoT有两种超低功耗模式,即PSM 与eDRX,这两种节电模式符合低功耗的特性,可实现超长待机,适用于供电方式为锂电池且数据传输频次中等的环境,如水表、燃气表、电表等抄表业务类型,此类场景中数据传输的频次一般为一天一次至几天一次。NB-IoT 网络凭借其显著优势,已经成为低速率传输需求的物联网产品的首选技术。
OpenCPU 是一种以模块作为主处理器的应用方式,这个系统允许用户进行部分结构设计、模块设计、I/O 操作等,后来其所有的技术文档和源码都以共享方式在网上公布,成了一个开源的CPU 设计,所以命名为OpenCPU。该方案有很多优点,如开发难度小,灵活度更高;可以简化研发人员对无线应用的开发流程,加快嵌入式开发速度;具有芯片集成独立的专用AP 及相应的RAM/ROM,无需外置MCU,只需要增加传感模块和电源模块即可,与之对应的电源也可节省;精简硬件结构设计,减小终端产品的实际尺寸;降低产品成本,改善性价比,提高竞争能力;集成多种外设接口;工作温度范围广;支持不同功耗模式,深度睡眠状态时电流小于1μA,接收状态电流约20 mA 等。OpenCPU 应用到无线通信模组上,主要是为了使用户可以共享模块内的处理器和Flash 资源。当前较多模组企业设计的通信模组均采用了该种方式,如移远的4G 通信模组EC20、海思的Boudica150、Boudica200 等。
图1 传统无线远传水表硬件设计方案Fig.1 Hardware design scheme of traditional wireless remote water meter
相比于普通模式下的工作模式,OpenCPU 方案中用户只需要通过串口进行通信模块的控制、数据发送与接收等,避免了繁琐的AT 指令以及频繁的API 接口调用等,可以缩短开发周期并节省部分外围组件成本[3]。
对于此方案的通讯模块和主控制模块,选取了性能优秀的芯翼XY1100S 芯片,使数据交换更高效、快捷。这也使功能更好地集成,更利于后期调试、问题排查与维护。该设计采用OPENCPU 的解决方案,以XY1100S 作为主处理器,节约原本主控芯片的成本同时可以减小硬件部分体积。为了尽可能减少器件的变换,整体硬件结构仍采用原有方案,减少研发周期和难度。采用该种方案,可以简化用户对无线应用的开发流程,精简硬件结构设计,能够有效降低产品成本的现实优势,从而提高方案实施的性价比,也有利于大面积的推广应用。对于系统的数据存储与计算力,也具有很强的扩展性[4]。
对于传统方案的无线远传水表设计如图1,对于本方案的具体设计如图2。
图2 新无线远传水表硬件设计方案Fig.2 Hardware design scheme of the new wireless remote water meter
基于OpenCPU 的无线远传水表设计实现了数据采集、处理,与抄表平台数据交互等功能。该方案具备可维护性和实用性,可以近端对水表进行升级、读取所需数据,也可以在云平台进行远程操作,并确保与云平台的稳定快速通信,保证通信安全和数据加密,同时能够适应任何应用场景。水务公司可以实时查询用水数据和水表参数(如正反向计量、信噪比、通讯记录等);设置水表参数(底数、自定上报周期等);进行开关阀门的控制等。
为避免终端管道故障造成水资源浪费和用水量超出实际应用量等现象发生,造成用户的损失,水表设计了自动告警功能。终端设备采集数据超过阈值即遇到故障时,自动向系统上报故障告警,包括过流量报警、模块分离报警、磁干扰报警、逆流报警、过流报警等。同时,为便于水务公司掌握用户的使用情况,默认将数据上传设置为一天一次的周期自动上报,记录每日48 组数据(即半小时采样一次),并保存30 日的用水记录便于分析用水情况。
设计采用芯翼公司的XY1100S 芯片,XY1100S 是一款基于窄带蜂窝物联网通信协议,采用软件无线电架构,同时对联网通信和低功耗微控制器应用有需求的高性能、高集成度的SOC 芯片,封装尺寸为6 mm×6 mm,60 个引脚。为支持不同产品的需求差异,具有功耗低、高性价比的优点。XY1100S 可作为低功耗主控MCU(OPENCPU)满足智能表联网的需求,使用Cortex-M3 作为应用核处理器。为提高访问Flash/SRAM 的效率,芯片内部在M3 的SBUS 内置了8KB Cache 控制器,具有完全开放的处理器内核和独立的内存空间,快速地唤醒响应时间,支持各种低功耗策略和具有低功耗的产品优势,能够替代额外的MCU 芯片,降低客户开发难度和节约成本。芯片内部集成了多种通信协议,如TCP/UDP、HTTP(s)、MQTT、CoAP 等。XY1100S同时提供了丰富的外围接口,方便用户开发,广泛应用于物联网产品。
图3 水表软件设计部分Fig.3 Water meter software design part
2.2.1 功耗设计
该方案选择用电池对电子装置进行供电,电池续航可达10 年,并且能提供非常全面的室内覆盖,无论是地上建筑还是地下室都可保证通讯的稳定性和可靠性。该芯片有3 种不同的休眠状态,分别为深度休眠模式、待机模式和等待中断模式。第一级别是WFI:等待中断模式,CPU 停止,发生任何中断事件都可以唤醒;第二级别是STANDBY:轻度睡眠模式,CPU 停止,外设时钟停止,但不掉电,同时可被特殊中断(GPI)唤醒;第三级别是DEEPSLEEP:深度睡眠模式,功耗要比轻度睡眠模式更低,CPU 停止,外设掉电,但唤醒后复位运行。这三级低功耗状态通过关闭外设部分、执行SOC 电源管理接口,降低系统功耗。
为降低功耗,延长电池使用时间,使终端设备日常处于睡眠模式,发生内部中断或是外部中断时可被唤醒。到预设的采样时间时,模块被唤醒,通过传感模块进行用水信息采样。到预设的数据传输时间时,模块被唤醒并开始进行数据传输。当数据传输结束,查看应答信息,若有阀门的操控指令,模块根据开、关阀操作指令对阀门进行控制,若没收到应答信息,模块进入低功耗模式。
2.2.2 软件架构
设计中模块兼具主控制功能和NB-IoT 通信功能,XY1100S 的OpenCPU 解决方案有多种的软件API 接口,例如:AT 接口、看门狗、串口通信接口、时钟管理接口、GPIO 与总线控制接口等。因此,该芯片提供的资源完全满足本方案所需。其集成4M Flash,用来保存数据,掉电不丢失数据,最少支持100000 次擦写。软件设计部分如图3。
2.2.3 数据交互部分
基于OpenCPU 的无线远传水表预设为一天一次自动上报表端数据终端设备根据离散预设的估长将区域用户的上报时间进行离散,当表内时间与离散时间相同时,水表自动将数据传输至平台,同时,平台接收数据信息后返回一个应答。若超时未收到应答,上报失败,则启动重发机制;若上报后返回应答,则说明上报成功,表端收到应答后对返回信息处理。
该方案中无线远传水表支持远程操控的同时,也支持近端通过红外读头对表端数据设置、读取,对模块内程序升级和控制阀门操作。用磁铁触发干簧管,此时干簧管吸合,将红外读头放置于模块中的红外发射管和接收管处,进而通过PC 端软件对水表相关信息查询、设置等。干簧管吸合后的3 min 内,为红外有效期,此时程序循环检测红外端口接收的数据,校验数据合法性,并根据协议对数据处理。3 min 后,干簧管需重新吸合才可继续上述操作。近端操作可便于水表长期的维护和使用。
受疫情影响,芯片供给失衡,MCU 价格上涨,导致产品整体生产成本提升。而基于OpenCPU 的无线远传水表将OpenCPU 应用于NB-IoT 模块,让其作为主处理器不但能解决该问题,还能使硬件设计整体成本大幅下降。无需外接MCU 即可对水表工作的相关信息进行采集,并对这些数据进行分析等相关处理,同时,通过NB-IoT 网络与基站传输数据,并连接综合抄表平台,实现便捷抄表,提升数据准确性及远程操控阀门等。该无线远传水表方案以实现水务公司用水信息采集的时效性为目标,以降低水表企业生产和维护成本为方向,能够极大程度提升供水公司用水管理水平,有效地弥补现有水表的局限性,具有广阔的应用前景。