标题 | 基于智能手机的MSP430系列芯片软件升级研究 |
范文 | 杜俏俏+赵悦+宋乐+王建 摘 要:传统的远程终端嵌入式系统软件升级可操作性差、稳定性低,无法保证数据传输过程中的完整性。 针对这些问题,使用智能手机作为操作平台,实现了由MSP430系列芯片组成的仪表软件升级解决方案。采用蓝牙方式将智能手机与IC卡读写射频器连接,IC卡读写射频器将需要升级的代码信息通过无线射频技术传给MSP430系列芯片,通过ISP技术完成MSP430系列芯片嵌入式软件的程序升级。通过远程天然气仪表测试及应用,证明该软件升级方案能进行MSP430系列芯片嵌入式软件的稳定升级。 关键词:智能手机;蓝牙通信;无线射频;MSP430系列芯片 DOIDOI:10.11907/rjdk.171385 中图分类号:TP319 文献标识码:A 文章编号文章编号:1672-7800(2017)008-0171-03 0 引言 嵌入式终端设备在工业领域应用广泛,嵌入式应用软件也越来越复杂。当程序出现缺陷,或者用户提出新的需求,则需要对嵌入式应用程序进行修复、升级[1-2];生产厂商在开发维护终端设备过程中,需要对设备中存在的缺陷进行修复及优化,以提升产品性能。伴随着嵌入式技术的发展,嵌入式应用软件的升级方法也在不断更新,实现技术和手段都发生了很大变化。利用自定义升级固件进行程序升级的方式比较灵活且用途广泛,本文在此基础上设计了一套符合MSP430系列芯片的嵌入式软件升级方法。 1 系统框架 基于智能手机升级MSP430芯片软件系统结构如图1所示。采用智能手机结合研发的APP,通过蓝牙将升级信息传给IC卡读写射器,IC卡读写射器再将其传给终端设备,完成对终端设备应用程序的升级。该系统由智能手机APP、IC卡读写射器及仪表终端3大模块组成。 运行在智能手机上的APP负责读写IC卡上的数据信息,如表压、差压、流量等,这些数据都和天然气管理系统仪表相关。该APP将仪表升级的代码信息下载并通过手机蓝牙通信模式传给IC卡读写射频器,IC卡读写射频器判断为传输数据后通过无线射频传给终端仪表,成功与否反馈给智能手机APP。 IC卡读写射频器是专为本研究而设计的一款产品。IC卡读写射频器,顾名思义,它既可以在智能手机APP上显示IC卡对应的仪表数据,也可在无线通信过程中起到连接智能手机和终端仪表的作用。 天然气远程销售网主要由集中器、路由器、控制器和基表组成,基表或称流量计用于最终用户用气的计量,它和控制器采用485方式进行通讯,其它产品采用无线射频方式进行通讯。其中集中器还带有GPRS模块,和天然气销售中心进行远程通讯,接收销售中心发布的购气、调价等指令,或上传用户的有关消费数据和故障信息。无论是集中器、路由器还是控制器均带有无线射频模块。集中器、路由器、控制器构成仪表终端设备。 2 关键技术 软件升级系统由智能手机APP、蓝牙通讯模块、MSP430 CPU、无线射频和集中器等模块组成。蓝牙模块基于智能手机APP与MSP430 CPU连接起来,负责APP与嵌入式设备间的通信;RF模块将MSP430 CPU与嵌入式终端设备连接起来,负责CPU与终端设备间的信息传递。其中蓝牙、射频通信模块和软件升级模块是保证系统正常工作的关键部分,其安全可靠的通信协议以及高效的升级策略保障了软件升级的安全。 2.1 系统通信协议 根据各模块用途及与CPU的通信方式,将模块间的通信协议分为外部通信协议和内部通信协议,其结构如图2所示。外部通信协议即智能手机APP与CPU的蓝牙通信协议,内部通信协议即CPU和集中器或路由器等设备的通信协议。 外部通信协议是基于智能手机APP通过手机蓝牙与MSP430系列芯片外围蓝牙设备进行数据交换的协议格式,数据包格式如图3所示,主要由帧头、类型、长度、标识、序列号、表号、数据和CRC校验数据组成。帧头用来区分此数据包是外部通信协议包,类型字段表示此数据包是读数据还是写数据,表号用来表示此数据包发送给哪个硬件设备,CRC校验数据则根据选择的CRC-32算法计算此数据包的校验和,用来检测和校验数据在传输过程中是否错误。 内部通信协议用于MSP430芯片与嵌入式设备其它模块(如集中器)通过无线射频进行通信的协议格式,其数据包格式如图4所示,与外部通信协议格式相似,由帧头、表号、类型、长度、标识、序列号、数据和校验和组成。 在嵌入式软件升级过程中,智能手机APP通过蓝牙设备,将升级文件按照外部通信协议发送给MSP430 CPU,然后CPU通过无线射频设备转发至需要升级的设备,在此过程中CPU需要对外部通信协议与内部通信协议相互转换。外部协议转内部协议方法:首先保存表号,然后将类型、长度、标识和序列号后移7位,然后在包头附加内部协议帧头和表号,最后重新计算校验和。内部协议转外部协议方法与之相反。 校验码是数据包检验和[3],其作用是进行数据的完整性校验,目前应用最为广泛的数据完整性校验算法是CRC算法,而生成多项式的选择是CRC算法的重要部分,不同的多项式有不同的错误检测能力与总体碰撞概率,而多项式最重要的属性是它的长度。根据公式g(x)=p(x)(1+x)可以得出一个CRC多项式与最大错误检测位数: Bitmax length=2r-1-1(1) 式(1)中,r为CRC校验码的监督码。根据(1)可以得出每种多项式对应的最大不冲突数据字节数,如表1所示。 根据表1可知,当升级代码大于16KB时,为保证错误检查能力与总体碰撞概率最优,将CRC-32算法作为效验新升级代码的完整性校验算法。 2.2 升级文件格式 运行在MSP430系列芯片的嵌入式软件是使用IAR软件编译生成的HEX文件。在升级应用程序之前,需要对HEX文件进行解析,解析流程如下:①从HEX文件中读取一行二进制数据,如果有数据则制定步骤②,否则跳到步骤④;②过滤掉一些非法的无用字符;然后判断首字符是否是q,如果不是则执行步骤③,否则此行后续的字符串代表此软件版本,保存版本号并跳回步骤①继续执行;③判断首字符是不是@符,如果是,则后续字符串代表本分段的地址字符串,否则后续字符串标识此行后续字符串代表本分段對应的代码字符串。保存对应的值并跳回步骤①继续执行;④解析完成,如图5所示。 3 软件升级流程 本文设计的系统主要针对TI公司低功耗单片机MSP430系列芯片,其片上主存储类型为Flash,在正常工作电压下,程序可对Flash进行擦写操作,特别适合程序升级。物联网传感终端系统中将Flash分为引导程序区、信息存储区、应用程序区3个区域,如图6所示。 嵌入式程序升级流程如图7所示,设备远程在线升级步骤:①当终端节点需要升级[4]时,远端控制中心向该终端设备发送固定的协议报文,终端通过对协议中的软件版本号与I2C上正在运行的软件版本号比较,判断是否需要进行升级;②终端节点从远程控制中心请求程序包,同时在传输过程中采用CRC校验技术,保证数据传输的完整性;③终端节点确定收到了完整、正确的升级程序包后,开始执行软件升级操作并保存相关参数。若软件升級成功,终端节点会将新的软件版本和参数返回给控制中心,如果升级失败,则用保存在I2C中的原代码覆盖Flash中的代码并通知控制中心升级失败[5]。 4 结语 本文设计的基于智能手机升级MSP430芯片的软件系统[6],实现了对MSP430系列芯片所组成的仪表软件的升级,确保数据在传输过程的完整性及升级过程的稳定性,提升了设备的适用性、安全性与可靠性。基于智能手机工具与蓝牙通信方式,降低了设备维护成本,提高了工作效率,满足了预期功能需求。 参考文献: [1] 彭井花,蔡声镇,吴允平,等.基于GPRS的嵌入式系统软件的远程在线升级[J].现代电子技术,2009,32(4):47-49. [2] 杨枢,贾小涛,叶蔚.嵌入式系统软件远程在线升级的研究与实现[J].微型电脑应用,2008,24(11):37-39. [3] 李刚,周毅波,卿柏元.智能电力设备在线远程软件升级新方法[J].自动化与仪表,2010,25(2):50-53. [4] 楼亮亮,金彦亮,鲍星合,等.物联网设备无线固件升级技术的研究[J].单片机与嵌入式系统应用,2015,15(6):7-10. [5] 李权,鄢萍,贺晓辉.高可靠性的嵌入式软件现场更新方法[J].计算机应用,2010,30(8):2228-2231. [6] 刘贇,左小川.嵌入式软件在线升级系统的设计与实现[J].计算机测量与控制,2015,23(4):1425-1427. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。