专利名称:一种基于通信接口的固件升级系统的制作方法
技术领域:
本发明涉及电子技术领域,特别是基于通信接口的固件升级系统。
背景技术:
ISO 9241-210标准将用户体验定义为“人们对于使用或期望使用的产品、系统或者服务的认知印象和回应”。因此,用户体验是主观的,且其注重实际应用。ISO定义的补充说明有如下解释用户体验,即用户在使用一个产品或系统之前、使用期间和使用之后的全部感受,包括情感、信仰、喜好、认知印象、生理和心理反应、行为和成就等各个方面。实际中存在三个影响用户体验的因素系统,用户和使用环境。用户体验这一领域的建立,正是为了全面地分析和透视一个人在使用某个系统时候的感受。其研究重点在于系统所带来的愉悦度和价值感,而不是系统的性能。有关用户体验的确切定义、框架以及其要素还在不断发 展和革新。随着社会的不断发展,市场已经从卖方市场进入了买方市场,用户体验是否优秀已经成为了衡量产品是否具备商业价值的最重要因素,如何吸引用户并留住用户,针对目标群体打造最佳用户体验方案无疑是最好手段之一。固件(Firmware)是指存放在存储器中的软件程序,并且是无法被用户直接读出或修改的,决定一个产品的功能,是产品工作的基础。随着电子技术的发展,电子产品已经遍布到日常生活和工作的每个角落,人们每天都会和大量电子设备打交道。随着人们对电子设备的要求的提高,现在电子设备越来越向智能化方向发展,比如智能手机,智能家居等。由于所有的智能设备都会有一个CPU (Central Processing Unit,中央处理器),都需要编写软件固件,所以就出现了一个问题,软件固件升级问题。任何人编写的软件都很难保证没有软件漏洞的存在,所有早期产品升级固件主要是为了解决一些软件漏洞和软件兼容性问题,但是随着信息时代的来临,厂商对产品功能的设计已经很难全面满足客户需求,因此厂商就需要不断升级固件解决软件漏洞和提供新功能。通过固件升级解决软件漏洞对于用户体验来说是非常重要的,如果存在漏洞而没有很好的方式进行升级,则会严重影响用户对产品的使用,从而影响整个产品,整个公司的发展。用户也可以通过固件升级获取厂商提供的设备的最新补充功能,获取新的用户体验。因此一个好的电子产品,必须有很方便的固件升级的处理途径,并且提供固件升级零风险操作,将用户因为升级失败而导致产品无法使用的风险降到零。目前市场上一般的电子产品都没有固件升级的功能,产品出厂时厂商写入一个固件,然后产品进入市场,这种产品就存在一个非常严重的问题,当固件损坏或者存在漏洞时,用户就无法正常使用产品,厂商只能将产品召回,通过专用的接口进行固件升级,而这种升级方式是不能开放给用户使用的,这样操作模式既浪费的大量的人力和财力,同时也浪费了用户和厂商的大量时间,处理非常不方便,并且会给用户带来很差的用户体验,给用户留下非常坏的印象。这种电子产品存在固件无法升级的致命缺点。另外一些智能产品,比如现在广泛使用的智能手机产品,虽然提供了固件升级功能,但是由于软件算法处理的不完善,固件升级时首先接收全部固件并缓存,然后校验合法性,校验通过后直接使用新固件直接替换当前固件,因此升级开始时当前固件已经被损坏,所以升级过程中如果出现意外断电或者由于固件兼容性而导致升级失败时,产品就会无法使用,出现这种问题,一般用户很难自己解决,只能花大量时间寄回原厂进行处理,升级的风险性非常高。这种固件升级的处理方式导致很多用户不敢进行固件升级,或者冒着很大的风险进行升级。通过这种方式虽然能够升级固件,解决软件漏洞,提高产品使用时的用户体验,但是升级过程中的用户体验非常不好,风险太大,导致很多用户拒绝选择升级。本发明专利针对上述设备存在的不足提出了有效的解决方法a)系统提供固件升级功能,当发现固件存在问题时,厂商可以及时发布新固件,用户获取升级信息,及时升级产品固件,有效节约了用户和厂商的时间,使用户获取更好的用户体验;
b)固件升级时由主控制器模块统一管理,实现零风险升级,程序固件由引导模块、运行模块和备份模块3个部分组成,系统启动时会进行固件校验,校验失败会还原系统,升级固件时会首先对运行模块进行备份,备份成功后才使用新固件覆盖运行模块,保证至少有一套固件不会损坏,并提供强制进入升级模式的功能,将固件升级风险降低为零。
发明内容
现在社会中电子产品日益普及,其中智能设备的比例日益上升,人们对电子产品的用户体验要求越来越高。任何产品的最初设计都不可能完全满足用户体验的要求,都必须不断的改进和提高,不断的升级和完善。智能设备更加需要提供固件升级功能来不断提高产品使用时的用户体验,但是对于固件升级方法本身也是用户体验的一种,只有能够进行方便的、零风险的升级才能保证固件升级过程中的用户体验。本发明提供了一种实现零风险固件升级的系统,采用的技术方案如下一种基于通信接口的固件升级系统如图I所示,其特征在于,包括通信接口模块、主控制器模块、存储介质模块、强制升级模块。通信接口模块连接到主控制器上、存储介质模块连接到主控制器上,强制升级模块也连接到主控制器上,主控制器是整个电路核心,管理所有外围电路模块,实现固件的零风险升级。通信接口模块用来实现系统与外部设备的通信,通过数据的收发实现数据交换,包括接口控制模块和电平转换模块组成,接口控制模块用来解析总线协议,电平转换模块用来实现不同电平信号的转换匹配。主控制器模块包括主控制器芯片模块和程序固件模块,主控制器芯片模块提供程序固件运行的平台,是系统运行的基础;程序固件模块由引导模块、运行模块和备份模块三部分组成。主控制器运行程序固件来实现零风险升级操作。存储介质模块用来存储引导模块、运行模块和备份模块,同时暂存固件升级时接收到的缓存文件。引导模块是系统启动时首先加载的程序固件,负责检查运行模块和备份模块是否出现损坏,完成系统还原功能,校验运行模块通过后会启动运行模块,同时负责响应强制升级模块的请求,强制系统进入等待固件升级模式。运行模块是系统正常工作的模块,被引导模块加载后运行的,负责实现系统的正常工作的各种功能,同时可以实现运行模块和备份模块的固件升级功能。备份模块是对运行模块的备份,保证固件更新时不会出现因为固件损坏而导致系统无法启动的现象出现,系统启动时如果运行模块损坏,则可以使用备份模块还原运行模块。强制升级模块用来强制系统进入等待固件升级模式,人工操作强制升级模块,使其输出强制升级信号,系统启动时检测到强制升级模块输出强制升级信号,则系统启动时自动进入等待固件升级模式,可以通过计算机对应的软件实现固件升级。系统每次启动时首先启动引导模块,引导模块工作流程图如图2所示,工作步骤如下(I)主控制器芯片运行引导模块;
(2)引导模块检测强制升级模块是否输出强制升级信号,如果有强制升级信号,则进入等待固件升级模式,否则进入下一步;(3)引导模块使用校验算法校验运行模块有效性,如果运行模块有效,则启动运行模块,系统开始正常运行,否则进入下一步;(4)引导模块使用校验算法校验备份模块有效性,如果备份模块校验无法通过,则进入等待固件升级模式,否则进入下一步;(5)引导模块使用备份模块还原运行模块;(6)引导模块启动运行模块,引导模块退出,设备开始正常运行。系统工作在引导模块的等待固件升级模式或者工作在运行模块的正常运行模式下都可以进行固件升级操作,升级必须使用通信接口,首先使用通信接口将系统与计算机建立连接,然后使用通信协议开始通信,系统固件升级流程图如图3所示,系统工作步骤如下(I)系统初始化相关通信接口和通信协议;(2)系统判断收到计算机发送的命令是否是固件升级命令,如果不是,则固件正常运行,如果是则返回应答,系统进入固件升级状态;(3)系统接收计算机发送的新固件数据包,并校验数据包是否正确;(4)系统收到的数据包如果校验失败,则返回错误应答给计算机,并丢弃错误数据,固件升级失败,当前固件正常运行,否则,缓存接收的数据包到存储介质模块,然后返回正确应答;(5)系统判断升级是否完成,如果没有完成,则返回步骤3,继续升级,直到固件升级完成;(6)系统固件升级数据发送完成后,计算机发送升级完成命令到系统,系统接收命令后开始进行固件升级操作;(7)系统首先整体校验固件有效性,如果校验失败则返回错误应答给计算机,并丢弃错误文件,固件升级失败,当前固件正常运行,校验通过后则继续下一步;(8)系统首先使用运行模块替换备份模块,实现固件备份,然后使用接收的缓存固件替换运行模块,操作成功则返回升级成功,否则返回升级失败;(9)系统升级成功后提示用户重启,设备如果要使用最新升级的固件,则必须断电重启,重启后升级完成。
用户可以通过网上直接下载升级固件后存放在本地硬盘固件存放目录中,也可以通过相关计算机软件从网络上直接获取升级固件,升级固件获取后即可使用相关软件升级,升级操作之前通过通信接口将计算机与本发明的系统相连接,实现通信功能,固件升级过程计算机软件流程图如图4所示,工作步骤如下(I)计算机软件启动,相关初始化后软件开始正常运行;(2)计算机通过通信接口读取系统固件版本V1 ; (3)软件从本地或网络上获取最新固件和固件版本V2 ;(4)软件比较V1和V2版本号,确定固件是否有升级,如果最新固件没有升级,则升级结束,系统正常运行,否则提示用户固件有升级;
(5)用户看到提示后进行选择,如果选择不升级,则升级结束,系统正常运行,否则开始进入固件升级操作;(6)计算机发送升级命令到系统,并读取系统的应答,如果系统返回正确应答,则表示系统进入固件升级状态,升级继续进行,否则提示升级失败,升级结束;(7)计算机将固件内容分包发送给系统,并读取系统应答,如果系统返回错误应答,则提示升级失败,系统正常运行,否则继续升级;(8)计算机检测文件是否发送完成,如果没有发送完成,则返回步骤7,如果发送完成,则进入下一步;(9)计算机发送固件升级完成命令到系统,并读取系统应答,如果系统返回错误应答,则提示升级失败,如果系统返回的是正确应答,则提示固件升级完成,提示用户重启系统,完成固件升级。本发明提供的方案,带来的有益效果是用户可以实时方便的获取最新固件,并升级最新固件,及时解决各种软件漏洞和获取最新功能,保证用户的权益,同时升级实现方便,不会因为固件升级而耽误用户和厂商的时间,节约了成本,程序固件模块使用三个模块组成,可以进行升级和还原,提供人工强制升级功能,真正实现零风险升级,用户对于升级过程获取更好的用户体验,解决了用户的后顾之忧。
图I本发明系统框2本发明引导模块软件流程3本发明固件升级设备软件流程4本发明固件升级计算机软件流程5本发明实施实例功能模块6本发明实施实例计算机软件流程7本发明实施实例设备软件流程图
具体实施例方式以下实例只用于说明与解释本发明,并不因此而限定本发明的保护范围。本发明通信接口可以是各种串行、并行接口,此实施例为使用LAN接口进行固件升级的操作实现。如图5所示,该实例由计算机系统和设备系统两个组成,计算机和设备通过网线连接,可以直接使用网线将计算机与设备连接,也可以通过路由,集线器等实现连接。计算机系统由计算机和设备对应的计算机软件组成,计算机提供一个软件平台,用户可以直接通过网络下载获取最新固件及其版本,或者使用设备对应的计算机软件从网络上获取,如果固件有升级,则提示用户升级,并实现固件升级功能。设备接受计算机软件的控制,接收升级命令和固件数据,校验通过后完成升级相关操作。固件升级时计算机软件流程图如图6所示,首先用户将设备参数设置完成,然后将计算机通过网线与设备系统进行连接,计算机各种步骤如下(I)启动计算机中对应的软件,选择通信接口为LAN接口,输入设备IP,开始连接 设备,查找设备直到连接成功;(2)连接成功后读取设备的固件版本V1 ;(3)计算机获取最新固件版本V2,最新固件可以从网络上获取,也可以使用本地对应目录下用户下载的固件;(4)计算机对比设备固件版本和最新固件版本,检测是否有升级,如果没有升级,则进入正常运行模式,否则进入升级模式;(5)计算机发送固件升级命令到设备,并读取设备返回的应答,如果设备返回错误应答,则提示升级失败,否则进入下一步;(6)计算机将固件内容分包发送给设备,并读取设备应答,如果设备返回错误应答,则提示升级失败,否则继续升级;(7)计算机检测文件是否发送完成,如果没有发送完成,则返回步骤6,如果发送完成,则进入下一步;(8)计算机发送固件升级完成命令到设备,并读取应答,如果设备返回错误应答,则提示升级失败,如果设备返回正确应答,则提示固件升级完成,提示用户重启设备,完成固件升级。固件升级时设备系统软件流程图如图7所示,设备系统工作步骤如下(I)系统启动后初始化相关的软硬件,设置设备通信接口为LAN,并设置设备IP、子网掩码和网关参数;(2)设备判断收到计算机发送的命令是否是固件升级命令,如果不是,则固件正常运行,如果是则返回应答,设备进入等待固件升级状态;(3)设备接收计算机发送的固件数据包,并校验数据包是否正确;(4)设备校验数据包文件,如果校验失败,则返回错误应答给计算机,并丢弃错误文件,固件升级失败,当前固件正常运行,否则,缓存接收的数据文件到存储介质模块,然后返回正确应答;(5)设备判断升级固件接收是否完成,如果没有完成,则返回步骤3,继续升级操作,直到升级固件接收完成;(6)固件升级数据发送完成后,计算机发送升级完成命令到设备,设备接收命令后开始进行固件操作;(7)设备使用CRC(Cyclic Redundancy Check,循环冗余校验)整体校验缓存的升级固件,如果校验失败则返回错误应答给计算机,并丢弃错误文件,固件升级失败,当前固件正常运行,校验通过后则继续下一步;(8)设备首先使用运行模块覆盖备份模块,然后使用接收到缓存固件替换运行模块,操作成功则返回升级成功,否则返回升级失败;(9)升级成功后提示重启,设备如果要使用最新升级的固件,则必须断电重启,重启后升级完成。升级过程中首先是接收计算机发送过来的固件并缓存,所有升级过程中不会损坏固件,固件接收完成后,首先校验固件的合法性,保证可靠升级。升级时首先备份正常工作的运行模块的固件,然后再升级运行模块的固件,这样有效保证了系统至少有一份固件是可以正常运行的,不会出现由于升级而导致运行固件损坏,系统无法启动的现象。更新运行模块过程中如果出现掉电等因素导致更新中断,则运行模块的固件出现损坏,此时重新上电,则引导模块会校验运行模块的合法性,校验发现文件损坏,则使用备份模块的固件对运行模块进行还原,有效保证了升级的可靠性,降低了升级风险。
·
如果由于不可预知的影响因素导致运行模块和备份模块都损坏时,则引导模块会自动进入等待固件升级模式,然后即可以使用固件升级方法实现升级,保证纵使出现固件全部损坏的情况下也能通过升级操作写入新固件,保证系统正常运行。如果运行模块功能不正常导致系统无法进入等待固件升级模式,则可以人工操作强制升级模块,使其输出强制升级信号,使系统强制进入等待固件升级模式,然后即可以使用固件升级方法实现升级。
权利要求
1.一种基于通信接口的固件升级系统,包括通信接口模块、主控制器模块、存储介质模块、强制升级模块,其特征在于,通信接口模块、强制升级模块和存储介质模块都连接到主控制器模块,其中 通信接口模块实现系统与计算机的通信; 主控制器模块包括主控制器芯片和程序固件模块; 主控制器芯片运行程序固件实现升级功能; 存储介质模块存储程序固件模块; 强制升级模块输出强制升级信号,使系统强制进入等待固件升级模式。
2.根据权利要求I所述的一种基于通信接口的固件升级系统,其特征在于,程序固件模块由引导模块、运行模块和备份模块三部分构成,系统启动时先运行引导模块,引导模块校验运行模块和备份模块的合法性。
3.根据权利要求I所述的一种基于通信接口的固件升级系统,其特征在于,系统工作在引导模块的等待固件升级模式、运行模块的正常运行模式下,都可以进行固件升级操作,升级使用通信接口,首先通过通信接口将系统与计算机建立连接,然后使用通信协议开始通信,其中,系统固件升级步骤如下 (1)系统初始化相关通信接口和通信协议; (2)系统判断收到计算机发送的命令是否是固件升级命令,如果不是,则固件正常运行,如果是则返回应答,系统进入固件升级状态; (3)系统接收计算机发送的新固件数据包,并校验数据包是否正确; (4)系统如果收到的数据包校验失败,则返回错误应答给计算机,并丢弃错误数据,固件升级失败,当前固件正常运行,否则,缓存接收的数据包到存储介质模块,然后返回正确应答; (5)系统判断升级是否完成,如果没有完成,则返回步骤3,继续升级,直到固件升级完成; (6)系统固件升级数据发送完成后,计算机发送升级完成命令到系统,系统接收命令后开始进行固件升级操作; (7)系统首先整体校验固件有效性,如果校验失败则返回错误应答给计算机,并丢弃错误文件,固件升级失败,当前固件正常运行,校验通过后则继续下一步; (8)系统首先使用运行模块替换备份模块,实现固件备份,然后使用接收到缓存固件替换运行模块,操作成功则返回升级成功,否则返回升级失败; (9)系统升级成功后提示用户重启,设备如果要使用最新升级的固件,则必须断电重启,重启后升级完成。
4.根据权利要求I所述的一种基于通信接口的固件升级系统,其特征在于,固件升级过程中意外断电导致运行模块损坏时,系统启动时引导模块将进行固件自动还原,固件还原步骤如下 (1)引导模块首先使用校验算法校验运行模块合法性,校验通过则启动固件,系统正常运行,否则表示当前固件损坏; (2)引导模块使用校验运行模块的方法校验备份模块,如果备份模块校验通过,则使用备份模块还原运行模块,然后启动运行模块,退出引导模块,系统正常运行,否则进入下一步; (3)引导模块提示系统固件丢失,系统进入等待固件升级模式,可以使用升级固件的方法来烧写新固件,烧写完成后设备正常运行。
5.根据权利要求I所述的一种基于通信接口的固件升级系统,其特征在于,在当前固件可以启动,但是出现功能异常,无法进入升级模式的情况下,通过人工操作强制升级模块,使其输出强制升级信号,系统启动后会进入等待固件升级模式,强制设备进行固件升级。
全文摘要
本发明公开了一种基于通信接口的固件升级系统,属于电子技术领域,电路结构包括通信接口模块、主控制器模块、存储介质模块、强制升级模块,其中主控制器模块包括主控器芯片和程序固件模块。设备运行过程中用户可以实时、方便地获取最新固件,并升级系统,及时解决各种软件漏洞和获取最新功能,保证用户的权益,同时升级过程操作方便,不会因为固件升级而耽误用户和厂商的时间,节约了成本。程序固件模块由引导模块、运行模块和备份模块三部分组成,可以进行固件的升级和还原,并提供了人工强制升级功能,实现真正的零风险升级。
文档编号G06F9/445GK102681871SQ201210130959
公开日2012年9月19日 申请日期2012年4月25日 优先权日2012年4月25日
发明者周立功 申请人:广州致远电子股份有限公司