面向照明终端芯片程序的无线远程升级研究与应用

2017-06-20 08:24冯士良唐熠群陈岳军
软件导刊 2017年4期
关键词:数据传输

冯士良+唐熠群+陈岳军

摘要:照明终端现场逐个更换程序芯片或固化编程的传统升级方法需花费大量物力、人力及财力。针对照明终端芯片程序升级中存在的问题,提出一种无线远程升级方法。基于GPRS网络socket通信,将升级程序分包传输,然后照明终端通过校验数据和自身更新程序,同时考虑通讯故障和终端断电的异常处理措施,确保数据传输的高效性以及终端升级程序正确性。应用实践表明,所提出的方法具有升级效率高、升级速度快和安全高等特点,非常适用于照明终端设备多、环境复杂的城市照明监控系统。

关键词:远程升级;芯片程序;照明终端;数据传输

中图分类号: TP319

文献标识码: A

文章编号: 16727800(2017)004017103

0引言 由于软件设计考虑不全面或程序功能不够完善,在软件发布后,往往通过对程序bug进行修改或加入新功能的方式完成升级。终端设备的软件升级已经在电信、电力、电视和微电子等行业得到广泛应用。郭喆[1]分析了EPON系统中OLT对其下属全部在线ONU实现软件升级功能,并在此基础上提出了ONU侧软件升级方法。王伟红和周淦林[2]提出了基于GPRS通信的电力终端软件升级方法。陈迅山[3]在双向有线数字电视网络的基础上,实现了数字电视接收终端软件远程升级系统,并能兼容单向有线数字电视网络。林国汉和石自辉[4]针对电力监控终端设备软件升级需要,讨论了电力终端软件升级方法,提出了基于ARM芯片的GPRS网络的无线远程IAP系统。林志雄等[5]提出了一种基于3G无线网络的软件在线升级方法。目前,照明终端芯片程序升级的传统方法是维修人员到达安装现场,用随身携带的移动设备对监控终端进行程序升级或更换程序芯片,当终端数量较多并且安装地点分布广泛时,存在升级过程复杂、人力成本高、时间长等问题。为解决现场升级面临的各种问题,本文基于C/S架构的软件升级[6]模式,提出一种新的照明终端芯片程序无线远程升级方法,保证数据传输的高效性以及终端升级程序的准确性,提高了客户满意,提升了资源利用率。1无线升级相关技术1.1升级方式 为了保证下载升级程序的完整性,可分为增量升级和完全升级2种方式。增量升级方式即将比较新、旧版本终端程序,将不同部分形成升级文件,并将该升级文件通过GPRS无线网络下载到照明终端;完全升级方式即将新版软件通过GPRS无线网络完全下载到照明终端。完全升级方式不用考虑现场终端升级程序的版本问题,其优点是可以对多个终端同时升级,此方式的缺点是升级耗时较长。若新旧版本照明终端程序差异较小,推荐使用增量升级方式,这样升级快,但此方式不能对不同程序版本终端进行同时升级。1.2校验机制 升级程序文件一般为.HEX或.BIN文件格式,它可以是完整的照明终端程序文件,也可以是比较后生成的增量文件。无论是何种方式,升级程序文件如果超过100KB,则需要将升级文件分包下载到终端。因此,照明终端不但要校验每帧数据的有效性,而且还要保证升级后数据的正确性。2照明终端芯片程序无线远程升级方法2.1升级系统软件设计框架 本文采用OSI模型设计系统,以模块化、标准化实现各子系统功能,通过Web服务的方式为各种公共应用提供接口。系统可划分为3个部分:应用层、通信层和照明终端物理层,如图1所示。系统应用层主要为设备管理、参数设置、数据处理和报表统计等功能模块;通信层负责为前台机和系统提供通信网络服务,包括协议转换以及数据传输等;照明终端设备层主要负责数据收发、数据校验、软件升级处理和升级结果上报。

2.2升级程序数据包格式 为了保证升级过程快速高效,首先对原始的升级程序源码(HEX文件或BIN文件)进行分包,并加入相应的地址符、控制符、数据包号、校验码等组成应用层数据帧。具体数据包格式如表1所示。

SOI:帧,帧头里面包含标示、起始字符、帧长、控制域、地址域。 SEQ:帧序列域,用于描述帧与帧之间传输序列的变化规则。 INFO:数据内容,系统向照明终端设备下发的具体数据。 CRC:帧检验码,通过CRC校验来保证数据传输的准确性和完整性,其中每个数据包都有一个CRC校验。此外,整个升级程序数据还有一个总CRC校验。3系统流程及应用3.1程序升级流程 程序升级流程如图2所示。

(1)建立升级会话:通过socket通信,客户端软件对需要升级的照明终端设备发送升级会话请求,收到照明终端设备应答,表明升级会话建立成功。 (2)请求路灯终端设备升级信息:升级会话建立成功,客户端软件请求终端设备的升级版本信息。 (3)设置分割包属性:客户端软件根据设备返回的版本信息设置分割包的属性,并按数据包格式对相应的升级程序进行分包。 (4)发送升级程序数据:完成步骤(1)~(3)后,客户端软件将升级程序数据分包逐一发给照明终端设备,在客户端软件下发升级数据包过程中,照明终端只需要单向接受、验证数据包及包号,并保存有效数据包和无效数据包的块信息,而不需要向客户端返回其它信息。 (5)请求升级分割包信息:当系统客户端软件下发最后一个数据包后,客户端软件向照明终端请求升级包信息,照明终端设备向客户端软件返回校验出错的数据包以及未收到的数据包号等信息,客户端软件会根据这些校验信息进行数据包补发。 (6)当客户端软件确定照明终端设备已经收到完整、正确的升级程序数据后,客户端软件会请求关闭升级会话。寻找终端设备对升级程序数据包进行还原,并在照明终端空闲时自行执行软件升级并保留原设置参数。若软件更新成功,照明终端设备会自动重启新版本软件;若软件升级失败,终端会恢复上次正常运行版本。3.2无线远程升级方法在照明终端芯片程序中的应用 本文方法已在盛同公司WJ3006终端产品的无线远程升级测试中得到了应用,效果良好。实验结果如表2所示。

升级程序包数:升级程序的总包数,使用128包作为测试数据,分别代表升级程序总大小为64K; 实际发送包数:因为存在发送的包未被正常接收,而需要补包的情况,所以在升级成功的情况下,实际发送的包数要大于或等于升级程序包数; 失败包数:未被正常接收、验证、存储的数据包数,升级成功情况下,该数据等于实际发送包数减去升级程序包数; 每帧发包数:每帧下发给终端的分割包数; 包成功率:最终被成功接收的包除以实际发送的包数,成功升级情况下,实际接收的包数等于升级程序包数; 发送间隔:以毫秒为单位,代表两个下发升级程序包之间的间隔等待时间; 每台用时:代表本次升级从下发升级准备指令开始到查询包全部接收成功用时。 综上所述,就当前设计而言,升级程序的最佳参数如表3所示,应为发送间隔500″,每次发送一包,每包512字节。以64k大小程序为例,数据分为128包,单个终端升级时间再1′10″左右,包成功率在98.5%以上,3组数据中最多丢包2包,都补包一次即完成升级。

4结语 与传统路灯终端设备程序升级方法相比,本文提出的方法具有如下特点:①客户端可以对多个照明设备进行升级,提高升级效率;②由于照明终端自行判断升级结果,客户端不需要对软件升级结果进行监控;③照明终端软件升级灵活性强,照明终端可在闲时升级新程序,而在忙时暂缓软件升级。本文所提方法采用无应答机制、CRC校验和socket通信技术,通过公共GPRS通信网络,实现对路灯终端设备软件程序进行无线远程升级,解决了現有逐个更换程序芯片或现场固化编程的弊端。目前,该路灯终端设备已在嘉兴、武进路灯系统中试商用。实验结果表明,本文所提出的方法具有升级效率高、升级速度快和安全性高的特点,非常适用于照明终端设备多、所处环境复杂的城市照明监控系统。

参考文献:

[1] 郭喆.EPON中ONU软件升级技术的研究与设计[J].光通信技术,2011:(2):1315.

[2]王伟红,周淦林.电能信息采集系统终端软件远程升级方案的设计与实现[J].仪器仪表标准化与计量,2010(6):4043.

[3]陈迅山.数字电视接收终端软件远程升级系统设计与应用[D].广州:华南理工大学,2012年.

[4]林国汉,石自辉.基于ARM和GPRS的无线远程IAP的研究与实现[J].工业控制计算机,2009(5):4648.

[5]林志雄,鄢萍,贺晓辉.面向嵌入式无线信息终端的在线升级方法[J].计算机应用,2010(7):17251727.

[6]贺广新.c_s模式下客户端软件自动升级的设计与实现[D].西安:西安电子科技大学,2013年.

(责任编辑:陈福时)

猜你喜欢
数据传输
具有物联网功能的医用恒温反应箱的研制
具有物联网功能的医用恒温反应箱的研制
基于Ad Hoc的微震监测数据传输系统设计
基于FPGA的可反馈式同步串行通信技术