桑田 武继荣 周泽
1.合肥一六八中学 安徽合肥 230000;2.美的集团电冰箱事业部 安徽合肥 230000
随着移动互联网时代的到来,芯片和软件都在不断发展。组成互联网的已经不只是电脑和手机,比如电视、冰箱、音箱、汽车、门禁都可以接入网络。越来越多的厂商开发出智能家电并接入网络。
通过家电互联、数据共享,给人们的生活带来了便利。但与此同时,厂商也在不断探索,如何通过联网,使家电获得更高的品质、更佳的可扩展性,或者在厂商内部取得价值链收益,而不是仅仅作为一个卖点噱头;用户也期望得到更好的使用体验。
OTA(Over-The-Air)顾名思义空中升级。是一种基于联网的远程升级技术。在手机固件、APP中应用较多,近年在汽车电子中快速发展。在用户需求多变、开发周期收紧、可靠性要求提高的大环境下,OTA技术被视为智能产品开发的有效支撑。
本文旨在讨论OTA技术在家电产品中的应用,并提出有效的解决方案,提高可靠性、可扩展性、用户体验。为厂商、用户带来正向收益。暂以冰箱应用为实例进行说明。
案例:某系列智能冰箱产品,由于功能配置接近,其电控板的硬件设计已经通用化,但因为不同的设定温度范围及规则需要,软件并不兼容。随着产品量产,给工厂防呆带来较大困扰,电控板的外观十分相似,装配错误时有发生,等到通电检测才能发现,返修耗费了大量时间,影响工厂作业效率。在上市之后,其衍生产品开发出了更优的控制规则,使得保鲜效果更好,虽然之后的产品已经应用,但已经上市的产品无法体现,销售端也未能宣传,影响市场表现。
将OTA技术作为主要方案。实现以下目标:市场端软件版本后台受控;工厂PBA在装配端通用;新技术、新功能智能推送,用户自主选择。
以上技术方案的基础,在于电控软件的远程升级,方案中,采用云端服务器存储电控固件版本,使用公司内部的软件编码(唯一)作为区分,在联网后,冰箱通过Wi-Fi模块或者其他媒介查询本地电控固件版本与云端固件版本,如果云端有更新版本,就运行版本校验和白名单校验规则。对于符合校验规则的冰箱,Wi-Fi模块从云端下载固件,校验正确后,通知电控板下载,电控板下载完成并校验正确后,电控软件进入待切换状态,在确认当前工作场景后进行切换。如图1所示。
在应用中,开发者上传固件包时,云服务器端核对编码并进行MD5校验,将结果补充在固件数据之后,待Wi-Fi模块下载完成时进行校验。考虑到冰箱MCU的运算能力,在冰箱下载完成之后进行CRC16校验。
在电控软件设计时,因为MCU的RAM资源有限,同时没有其他辅助存储区域用于存储固件包,故实例中使用分区的方案。将电控MCU的FLASH切分为BOOT区域、APP区域、BACKUP区域,其中BOOT区域用于存在引导相关代码,APP区域为当前运行固件代码,BACKUP区域为备用固件存储区域。为了减少RAM资源和运行时间的占用,电控下载固件包时分帧下载,如每帧下载128个字节,单帧校验使用CRC8,下载全部完成用CRC16进行固件包的完整性校验,如图2所示。
在实例中,电控MCU使用瑞萨电子(Renesas)的R5F100MGA,其有效FALSH 128kB,其中BOOT区分配8kB,APP和BACKUP区域均为59kB,OCDROM作为仿真使用,预留2kB,其中BOOT区功能按照图3所示步骤设计。
思蓉和思远走后,楚墨重新扎进厨房。这次他要为念蓉榨一杯西瓜汁,他说天太热,喝杯西瓜汁去暑。念蓉不理他,去浴室洗好澡,出来,楚墨已经将两杯西瓜汁榨好。
BOOT区域代码设计时不使用定时器、UART等硬件资源,在初始化时也仅设定看门狗运行、时钟选择等基本资源。尽量小的占用系统资源和ROM大小。
APP区域中需要设计UART分帧接收固件包,并利用自编程写入BACKUP区对应地址。其功能按照图4所示设计。
在下载之前,首先需要确认BACKUP区域为全空,否则先进行擦除,下载中按照顺序写入,在完成后进行完整性校验,校验合法之后根据使用场景,如用户没有打开冰箱门等,在合适的场景下完成切换。
在本实例中,APP区域/BACKUP区域大小为59kB,使用8M的振荡器时钟,经过测试,BOOT区引导完成切换的时间为640mS左右,配合切换场景的选择,可以达成对用户体验无影响。分帧下载的长度,需要综合RAM的可用资源和下载速度综合选择。如图5所示。
实例中兼容框架通讯协议,如每次下载64Byte,实际通讯字节86Byte。在9600bps的速率下,通讯接收耗时约87ms,接受完成后需要进行校验、解析、FALSH写入和读取校验,综合约每222ms完成一帧固件数据的下载。59kB的数据包总计需要:
图1 冰箱OTA的功能流程图
图3 BOOT区功能状态机图
图4 APP区域OTA分帧下载功能的状态机图
图5 分帧下载中的UART接收波形图
图6 OTA下载时,冰箱功能时基有轻微的累计误差
222mS×(59×1024/64)= 209.6秒
在下载过程中,还需要冰箱电控功能正常运行,考虑系统负载率和电控功能的时钟准确性。本实例中最终使用每次下载128Byte,固件包下载总耗时122秒。同时因为串口占用中断资源,在相同中断优先级的情况下,电控功能的定时器时基,响应中断时间可能滞后(本实例中冰箱功能运行的时基为1ms)。在实际使用时,设计者应当综合考虑,协调下载速率、RAM资源占用、系统负载率、电控基本功能的协调性,以保证用户体验不受影响,如图6所示。
通过方案的设计,实现了市场端电控软件版本的受控和后台管理。为了进一步给价值链和用户体验带来价值,实施了两个拓展应用:
对于实例中的系列产品,设计了机型码和Wi-Fi模块关联单元,并统一使用公共版的电控板,在制造基地搭建了本地服务器。公共版电控板设计了基于系列电控板硬件的检测软件,用于完成电控板的制造中硬件检测(如自检和FCT检测),同时写入了机型码和软件编码的对应关系;为了不影响冰箱在产线的检测效率,公共版软件在运行的前4分钟内开启压缩机。关联单元用于产线绑定机型和Wi-Fi模块MAC码的对应关系。本地服务器用于固件包的本地存储,并定时与云端服务器的固件包数据进行同步,由于本地连接,只需要本地硬件平台(如供电)不失效,即可以保证高可靠性,满足实际生产需要。系统主要架构图如图7所示,产线工序设计如图8所示。
在生产中,员工1安装电控板和Wi-Fi模块,并通过关联模块扫码冰箱机型码和Wi-Fi模块MAC码,获得对应关系并通过本地网络上传本地服务器。在此工位,电控板和Wi-Fi模块都是通用物料,不需要区分型号。
员工2接通冰箱电源并开始测试,此时Wi-Fi模块向电控板请求机型型号,得到通用型号的回复后,Wi-Fi模块通过AP向本地服务器请求与自身MAC关联的机型号,并发送给电控板。电控板记录机型号并回传对应的软件编码信息,后续同市场端OTA流程。电控板将在几分钟内完成与整机机型对应的电控软件固件下载。因为公共版电控软件在前几分钟内也会打开压缩机,从冰箱制造的实际场景看,对于产线检测的效率没有影响。
通过这项应用,工厂端可以实现电控板安装的彻底防呆,员工不再需要在安装电控板之前确认型号;同时从实际生产场景考虑,每当电控软件需要升级迭代时,库存的电控板不需要再额外安排软件更新。在新的固件包上传到云服务器后,实例中本地服务器每1分钟进行一次同步,可以保证新版本快速应用在制造端。
本应用中,云服务器与市场端OTA公用,对于制造端,仅需要新增本地服务器和关联模块,投入有限,却大大提升了制造的通用性金额效率,上下游的电控板制造工厂也减小了库存呆滞的压力。
每当厂商研发出新的技术,可以通过移动端APP向用户推送,在获得同意后软件升级为最新版本,或者获得新的功能应用拓展。推送版本软件在到达预设的时间后,可以再次向用户推送是否需要更改回当前量产版本。本应用仅需要确认有更新版本后向用户推送是否升级的确认页面即可。这样,通过OTA功能的拓展应用,用户可以持续使用到最新的保鲜控制技术;对于厂商,也可以大大增加智能产品的用户黏性,并使得已销售产品拥有持续获得收益的可能性,其工作框架如图9所示。
互联网、物联网逐步改变了人们的生活方式和使用习惯,也给家电产品注入新的活力。随着芯片和软件技术的发展,家电产品也终将变得智能、灵活起来。
本文讨论了基于联网技术下,通过OTA技术的原理研究、在家电领域方案设计和实施应用,使得厂商、用户等价值链各环节都获得了新的工作方式;从新的视角,解决了困扰多年的问题,使得家电的控制固件不再是出厂一次性设定,而是可以促进厂商、用户的多次交互,共同定义家电最终的功能组成。
图7 制造端使用公共版通用生产的功能组成简图
图8 制造端使用公共版通用生产的线体工序简图
图9 新功能通过OTA向用户推送的功能简图