基于机组通讯网络的多联机设备批量程序升级系统设计与实现
2019-02-26张光旭赖东锋叶铁英
张光旭 杨 都 赖东锋 叶铁英
(珠海格力电器股份有限公司 珠海 519070)
引言
由于多联机系统复杂,设备节点多,通讯距离远,工程现场环境复杂多变。在用户实际使用过程中,一旦出现功能使用异常问题需要控制器方面的售后处理时,如果采用逐个拆卸更换电路板的方式进行维修,既面临更换操作复杂,人身安全隐患,又有效率底下,维修成本高昂的问题。因此通过机组的现有通讯网络,对多联机组的设备进行批量程序升级,可以很好地解决控制器售后维修问题,提升用户满意度。
基于机组通讯网络的多联机设备批量程序升级系统,需要实现以下功能:
1)利用机组正常运行时的机组网络,无需改变机组原有通讯接线,升级设备只需通过工程维修口接入机组网络即可。
2)对于机组网络中,采用同一个程序的设备节点,一次性完成批量程序升级,操作简便,大大提升升级效率,短时间内完成设备程序更新,最大限度降低因程序升级操作对用户使用的影响。程序升级设备自动识别待升级设备程序升级信息,提供交互接口,完成程序升级流程的指令与数据下发,实现批量程序升级。
3)具备高可靠性,抵御因工程现场环境电磁干扰,安装接线规范问题,以及设备差异性导致的可能干扰,确保程序升级的正常完成。在遇到异常情况,例如升级过程中意外断电,通讯连接异常,其他设备干扰时,可以通过抗干扰机制以及其他机制,确保批量程序升级可靠实现。
1 程序升级系统构成
1.1 程序升级系统框架设计
程序升级系统包括升级设备、机组通讯网络以及待升级设备,升级设备通过机组通讯网络与待升级设备进行通讯连接。实际使用过程中,升级设备作为维修时加入的通讯设备,通过识别机组网络的波特率、极性等通讯参数,加入到当前机组网络。
升级设备的功能包括:获取当前机组网络下待升级设备的类型、数量、地址信息、运行程序信息等,发送程序升级相关升级指令、待升级程序文件数据,接收待升级设备升级过程状态信息等,进行升级过程中异常情况下的处理。
待升级设备需要实现的功能包括:发送当前设备的类型、地址信息、运行程序信息等,接收程序升级相关升级指令、待升级程序文件数据,反馈当前设备升级过程状态信息等。
机组通讯网络作为升级设备与待升级设备之间进行通讯的网络,允许升级设备的随时就接入和断开。
如图1所示程序升级系统中,多联机外机、室内机、升级设备通过机组通讯网络连接。作为待升级设备,外机数量m和室内机数量n根据实际工程需要数量不定,室内机数量可多达上百台。多联机的机组通讯网络通常为CAN通讯、RS485通讯等,从批量程序升级的效率和可靠性来看,采用CAN通讯网络的机组[1],具备更好的表现。
升级设备作为程序升级系统的发起者,负责整个升级流程时序以及状态切换,具备程序升级入口,用户交互,数据发送接收,状态显示等功能,待升级设备具备In-Application Programming(IAP)功能,程序通常分为两个部分:Bootloader部分[2]和应用部分程序,Bootloader部分负责实现IAP功能,应用部分用于实现机组相关功能,程序升级只是更新应用部分程序,Bootloader部分始终存在。通过升级设备的指令进入IAP状态,接收指令及数据后,完成擦除、烧录及校验工作,实现程序升级。
1.2 程序升级系统流程
图2为多联机设备程序升级流程图。
图1 程序升级系统框图
图2 多联机设备程序升级流程图
多联机设备程序升级流程图如下。
1)升级设备接入多联机机组通讯网络,上电运行,识别机组通讯网络参数如波特率、极性等,加入到机组通讯网络。用户操作升级设备,选择需要升级的设备,升级设备将会点名当前设备类型,查询当前设备类型的程序名称,数量,地址信息等,汇总当前设备类型的程序信息列表。
2)用户选择当前设备类型下需要升级的程序以及程序文件,将程序文件信息发送给相应待升级设备,待升级设备与自身信息进行匹配比较,确认是否升级,然后反馈升级确认信息。当至少有一台设备需要程序升级时,允许进入到程序正式烧录阶段。
3)待升级设备答复可以接收程序文件数据时,升级设备通过机组通讯网络发送程序文件片段数据,校验无误后,待升级设备完成片段烧录,并将烧录状态反馈给升级设备,升级设备根据反馈信息,确定是否重发该片段数据。为提高程序升级可靠性,并且由于待升级设备通常性能有限,没有足够的空间一次性收发全部程序文件数据。因此,基于待升级设备的程序地址空间特性,同时考虑到升级过程的可靠听,通常将程序文件拆分为数kb字节大小的片段,进行数据收发处理。
4)当待升级设备完成所有片段数据烧录后,校验无误后,待升级设备完成程序更新,可以完成跳转以运行新程序。
在程序升级过程中,一旦出现意外断电,或者其他异常情况,导致程序升级失败,可通过制定数据重发机制处理升级过程中的干扰[3]。由于待升级设备Bootloader部分始终存在,待升级设备可以再次进入IAP状态,以完成程序升级。
2 程序升级系统软硬件设计
2.1 升级设备硬件设计
1)主芯片部分
主芯片部分是整个升级设备的核心,是实现程序升级功能的基础。选择一款具备机组通讯外设如CAN或者UART、USB接口、存储设备接口如SD接口、液晶显示接口等功能的主芯片,同时需具备一定的程序空间和RAM空间以及类似SDRAM或者DDR空间,可以满足程序升级的需求。
2)通讯部分
升级设备控制器需具备通讯功能,可以接入机组网络,识别通讯参数,与内外机通讯,进行数据收发。目前多联机大多采用的CAN通讯,CAN通讯的无主通讯方式,短帧结构,数据帧抗干扰特性,可以很好的满足设备程序升级所需的效率与高可靠性。
3)显示部分
升级设备室需要在工程现场由专业人员进行升级操作的,需要良好具备人机交互接口,通常采用电容触摸屏,用户进行页面操作,页面反馈当前程序升级相关信息。
4)存储部分
程序升级设备需要存储待升级设备的程序升级文件以及相关配置信息,以及存储升级设备自身运行所需的UI相关文件,通常采用SPI FLASH、eMMC等存储方案。
5)其余部分
升级设备其余部分主要包括电源电路,提供升级设备正常工作的电源,电源的品质与升级设备工作的抗干扰性有着重大影响。
2.2 升级设备软件设计
多联机设备程序升级系统中的升级设备软件部分主要包括通讯部分、显示部分、程序文件处理等。
通讯部分实现的功能是,通过主芯片通讯接口外设与机组网络连接,自动识别通讯波特率、极性等参数,加入到机组网络,当用户操作升级某类设备的程序时,发送程序升级相关指令与数据,接收来自于升级设备的状态信息,根据状态信息确定程序升级流程,完成升级设备与待升级设备之间的数据交互。
显示部分主要是显示机组网络相关状态参数,程序升级时,显示待升级设备的运行程序信息、数量信息等,以及程序升级文件的信息包括程序名称、版本信息、程序大小、修改时间、校验信息等。在升级过程中,实时显示升级进度、状态信息等。
程序文件的处理,包括待升级设备程序文件的导入、显示、输出等,为便于操作,通常升级设备具备类似USB、SD卡接口,如果是其他类型的如eMMC,通常需要对该类设备进行文件系统格式化,挂载文件系统,便于文件管理。升级设备自身也需要移植文件系统,常见的如FATFS[4]。升级设备以文件的形式处理程序升级文件,包括程序文件信息的获取,程序文件数据的解析等。
2.3 待升级设备软硬件设计
作为程序升级系统中的待升级设备,硬件部分主芯片需具备通过机组网络与升级设备进行通讯以及运行机组正常功能与程序升级功能。具备程序升级功能的主芯片,需具备IAP功能,待升级设备的通过Boolloader部分代码,对片上程序存储器完成擦除、编程、校验等功能,实现运行程序的更新。
待升级设备的软件部分主要是Bootloader部分和应用程序部分,程序升级更新的也是应用部分程序。应用部分主要用于实现机组正常功能,同时也可以识别升级设备发送的升级信息,当确认需要进行程序升级时,应用部分程序跳转至运行Bootloader部分程序,实现应用部分跳转功能,可以在无需对待升级设备进行硬件复位的情况下,进入Bootloader部分,简化了程序升级操作。Bootloader部分是实现程序升级的部分,同时在此部分也可以识别升级设备发送的升级指令,避免由于应用部分升级失败或者其他原因导致无法运行的情况下,可以直接在Bootloader部分识别程序升级指令,进入程序升级状态。进入程序升级流程后,Bootloader程序接收来自于升级设备的指令及程序数据,完成擦除、烧录、校验等,并反馈烧录状态信息给升级设备,直至完成整个程序的烧录。烧录无误后,可以自行跳转运行更新后的应用部分程序,或者由硬件复位的方式、升级设备指令的方式运行更新后的应用部分程序。
3 测试验证与结论
实际测试中,多联机设备通过CAN网络进行批量程序升级,在一次性升级上百台室内机时,完成时间在10分钟之内,成功率为100 %;对于机组网络中的通讯干扰以及异常情况下的升级中断,通过各项容错机制,可以最终实现程序升级成功。
基于机组通讯网络的多联机设备程序升级系统,以批量的形式对网络中的机组进行程序升级,具备效率高、可靠性高、成本低的特点,应用于多联机的工程项目中,可以大大降低售后维修的难度,减少由于售后处理对于用户使用的影响,提升用户的舒适度和满意度。