本发明涉及嵌入式计算机领域,更具体地说,涉及一种多个微处理器及外存储器系统的升级方法。
背景技术:
随着物联网及智能家居的发展,电器产品中单片机(Micro Controller Unit,微控制单元,也称单片机)的应用非常广泛。对于软硬件模块化的产品而言,通常一个产品由多个不同的单片机和外存储器组成,各部分使用成熟的模块,加快了开发进程,减少了设备间的干扰,但系统因此变得复杂程度越来越高。由此,产品客户在调试时,软件更新难度增大,各芯片软件的版本不好控制。其次在升级维护时,需要拆机进行升级操作,容易损害原有硬件。于2010年3月17日授权公告的中国发明专利CN101673209A公开了一种升级多个单片机程序的方法,该方法通过外部计算机接口实现软件升级,将需要升级的程序从外部LOADER载入主单片机的FLASH内部应用区和数据缓存区,然后逐一升级各从单片机。但此升级方法只适用于使用普通电脑升级在同一总线上的多个单片机设备,而不适用于更复杂的系统;如果在升级过程中断电或失去连接,会引起版本混乱的情况。此外,将升级数据存入主单片机中占用了宝贵的存储空间。
技术实现要素:
针对现有技术存在的问题,本发明提供对包括多个微处理器和外存储器的复杂系统的升级方法。
本发明解决上述技术问题采用的技术方案为:多个微处理器及外存储器系统包括一主单片机、至少一个与所述主单片机连接的从单片机以及至少一个与所述主单片机连接的外存储器,其特征在于,所述外存储器包括用于存储系统升级数据的升级数据外存储器;所述主单片机通过通讯接口与外部设备交换数据;
主单片机通过通讯接口连接存储升级数据的外部交换设备并接收升级指令后的升级方法包括以下步骤:
S1:主单片机判断升级数据外存储器的升级标志是否被标记,若未被标记则进入步骤S2,若被标记则进入步骤S4;
S2:主单片机将外部设备中的升级数据复制到升级标志未被标记的升级数据外存储器;
S3:复制完成后,主单片机将升级数据外存储器的升级标志进行标记并重启系统,进入步骤S1;
S4:主单片机判断升级数据外存储器的升级标志被标记,主单片机写入升级数据外存储器中缓存的升级数据,主单片机完成升级数据写入后,从单片机接收并写入主单片机发送的升级数据,主单片机将升级数据写入各外存储器,完成升级;
S5:升级完成后,主单片机将升级数据外存储器的升级标志清零,保存版本信息,提示用户升级完成,跳转进入正常工作状态。
步骤S2包括以下步骤:
S21:主单片机判断通讯接口是否有外部设备接入,如果有设备接入则进入步骤S22,如果没有设备接入则进入正常工作状态;
S22:主单片机读取外部设备的数据,对升级数据进行版本及完整性校验,如果校验通过则进入步骤S23,如果不通过则不作升级,进入正常工作状态;
S23:主单片机将外部设备中的升级数据复制到升级数据外存储器中的数据缓存区。
如果步骤S23复制过程中断,主单片机提示用户复制失败并进入正常工作状态;继续升级的方法为再次接收升级指令,进入步骤S1~S5,覆盖所述步骤S23已复制的数据。
步骤S4包括以下步骤:
S41:主单片机将升级数据外存储器中的升级数据写入主单片机的FLASH应用区;
S42:主单片机将升级数据外存储器中的升级数据发送给各从单片机,各从单片机把接收的升级数据写入从单片机的FLASH应用区;
S43:主单片机将升级数据外存储器中的升级数据写入给各外存储器相应区域。
如果步骤S41升级数据写入过程中断,系统重启后的升级方法为进入步骤S1、S4、S5,覆盖所述步骤S41已写入的数据。
如果步骤S42升级数据写入过程中断,系统重启后的升级方法为进入步骤S1、S4、S5,覆盖所述步骤S41、S42已写入的数据。
如果步骤S43升级数据写入过程中断,系统重启后的升级方法为进入步骤S1、S4、S5,覆盖所述步骤S41、S42、S43已写入的数据。
通讯接口包括USB接口、串行数据接口或蓝牙接口。
主单片机与各从单片机、外存储器之间根据实际通讯需要,而通过不同数据总线通信。
升级数据外存储器为大容量存储器,可同时存储所有处理器的程序及所有外存储器所需的数据。
本发明提供的升级方法中,主单片机可直接读取各种移动设备的数据,摆脱依赖外部计算机升级的单一、被动模式;不占用主单片机内部空间,同时又有效利用了廉价的外存空间,最终实现一种安全、方便的升级方式。在升级过程中,如果发生断电或失去连接等情况时,系统重启后,主单片机依据升级标志是否被标记判断重新升级或是进入正常工作程序,保证所有单片机程序及外存储器数据版本统一。此外,本升级方法不仅适用于采用I2C总线通讯的系统,还适用使用多种总路线的复杂系统。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1含多个微处理器和存储器系统的整体结构示意图;
图2是本发明的升级方法流程图;
图3是主单片机与外部设备数据交换的流程图;
图4是升级中断后继续升级的方法流程图。
具体实施方式
下面,参照附图对本发明的多个微处理器和外存储器系统的升级方法进行说明。
本发明的升级方法适用如图1所示的含有多个微处理器和存储器的系统,其中3个从单片机、SPI FLASH、EEPROM和其他外存储器分别与主单片机连接,主单片机与从单片机及外存储器通过不同的数据总线通讯,各数据总线不复用且不限定类型,其数据总线类型包括SPI、UART、I2C等。主单片机通过通讯接口与带有升级数据的载体连接。
将SPI FLASH设定为升级数据的外存储器,选用的SPI FLASH的内存储空间满足升级程序、升级数据及自身数据的存储。主单片机对SPI FLSAH进行读写操作前识别SPI FLASH的标志位,在读写完成后对SPI FLASH的标志位进行标记操作。例如:对SPI FLASH写入数据完成后对其标志位进行标记,将SPI FLASH中的升级数据读取完毕,完成其他微处理器、存储器的升级后,将SPI FLASH的标志位清零。在考虑使用便捷及性价比的情况下,也可选用系统中其他拥有足够存储空间的外存储器作为升级数据包的存储器。
进行升级操作前,首先通过计算机终端或云端等途径下载升级数据到外部设备中。主单片机通过通讯接口与外部设备交换升级数据,主单片机的通讯接口为USB接口,串行数据接口或者是蓝牙接口。根据系统中主单片机的通讯接口的不同,存储升级数据的外部设备包括使用USB接口的U盘,使用蓝牙接口的手机等不同的移动外部设备。
如图2所示,针对上述含有多个微处理器和存储器的系统的升级方法包括以下步骤:
S1:主单片机判断升级数据外存储器的升级标志是否被标记,若未被标记则进入步骤S2,若被标记则进入步骤S4;
S2:主单片机将外部设备中的升级数据复制到升级标志未被标记的升级数据外存储器;
S3:复制完成后,主单片机将升级数据外存储器的升级标志进行标记并重启系统,进入步骤S1;
S4:主单片机判断升级数据外存储器的升级标志被标记,主单片机写入升级数据外存储器中缓存的升级数据,主单片机完成升级数据写入后,,从单片机接收并写入主单片机发送的升级数据,主单片机将升级数据写入各外存储器,完成升级;
S5:升级完成后,主单片机将升级数据外存储器的升级标志清零,保存版本信息,提示用户升级完成,跳转进入正常工作状态。
步骤S1的实施具体如下:
主单片机接收升级指令后,此时主单片机还没有对SPI FLASH进行读写操作和标记操作,那么SPI FLASH的升级标志没有被标记。主单片机识别SPI FLASH的升级标志未被标记,进入步骤S2。
如图3所示,步骤S2包括以下步骤:
S21:主单片机判断通讯接口是否有外部设备接入,如果有设备接入则进入步骤S22,如果没有设备接入则进入正常工作状态;
S22:主单片机读取外部设备的数据,对升级数据进行版本及完整性校验,如果校验通过则进入步骤S23,如果不通过则不作升级,进入正常工作状态;
S23:主单片机将外部设备中的升级数据复制到升级数据外存储器中的数据缓存区。
具体如下:主单片机识别SPI FLASH的升级标志未被标记后,判断其通讯接口是否有外部移动设备连接,包括USB接口是否有U盘插入连接,蓝牙接口是否有其它蓝牙模块接入等。如果没有外部设备接入,则正常进入工作的应用程序。如果有外部设备接入,单片机通过通讯接口读取外部设备中的内容,对升级数据进行版本及完整性校验,如果校验不通过则放弃升级,进入正常工作的应用程序。
如果用户需要对系统进行升级,那么用户已经将U盘插入或已用手机建立蓝牙连接,主单片机读取U盘或手机中的数据内容,如果里面含有升级内容,则进入数据校验。校验通过后,主单片机将升级数据从外部设备复制到外存储器SPI FLASH中的数据缓存区,不影响SPI FLASH正常工作的应用数据。此时并不进行数据更新。
步骤S3的实施具体如下:升级数据复制完毕后,主单片机对SPI FLASH的升级标志进行标记,并重新启动系统,再次识别SPI FLASH的升级标志,此时的SPI FLASH的升级标志已经被标记,进入步骤S4。
步骤S4的升级过程包括以下步骤:
S41:主单片机将升级数据外存储器中的升级数据写入主单片机的FLASH应用区;
S42:主单片机将升级数据外存储器中的升级数据发送给各从单片机,各从单片机把接收的升级数据写入从单片机的FLASH应用区;
S43:主单片机将升级数据外存储器中的升级数据写入给各外存储器相应区域。
系统中的主单片机和所有从单片机、外存储器均完成升级数据的写入后,整个系统的升级工作完成,主单片机和所有从单片机、外存储器的版本统一。
在步骤S5中当整个系统中的所有单片机和外存储器升级完成后,主单片机将SPI FLASH的升级标志清零,保存版本信息并提示用户升级完成。SPI FLASH处于未被标记状态,系统重启后,不会因为SPI FLASH的升级标志未被清除而重复升级。
完成升级后的系统进入正常工作应用程序,此时的系统已经升级完成,使用全新的数据与程序工作。
如图4所示,在上述步骤S23的数据复制过程中通讯中断,主单片机提示用户复制失败并进入正常工作状态;继续升级的方法包括如下步骤:
主单片机判断升级数据外存储器的升级标志未被标记;
主单片机将外部设备中的升级数据复制到升级标志未被标记的升级数据外存储器,覆盖步骤S23已复制的数据;
复制完成后,主单片机将升级数据外存储器的升级标志进行标记并重启系统;
主单片机判断升级数据外存储器的升级标志被标记,主单片机写入升级数据外存储器中缓存的升级数据,主单片机完成升级数据写入后,从单片机和外存储器接收并写入主单片机发送的升级数据,完成升级;
升级完成后,主单片机将升级数据外存储器的升级标志清零,进入正常工作状态。
具体如下,由于S23的数据复制中断,所以主单片机没有对SPI FLASH的升级标志进行标记操作。系统重新启动时,主单片机识别SPI FLASH的升级标志未被标记后,将数据重新复制到SPI FLASH中,覆盖之前复制中断的数据,复制完成后对其升级标志进行标记,即进入步骤S1~S5,完成升级。
如图4所示,在上述步骤S41的升级过程中通讯中断,系统重启后的升级方法包括如下步骤:
主单片机判断升级数据外存储器的升级标志被标记;
主单片机判断升级数据外存储器的升级标志被标记后,升级主单片机、从单片机和外存储器,覆盖S41已经写入的升级数据;
升级完成后,主单片机将升级数据外存储器的升级标志清零,进入正常工作状态。
如图4所示,在上述步骤S42的升级过程中,通讯中断的升级方法包括如下步骤:
主单片机判断升级数据外存储器的升级标志被标记;
主单片机判断升级数据外存储器的升级标志被标记后,升级主单片机、从单片机和外存储器,覆盖步骤S41、S42已写入的升级数据。
升级完成后,主单片机将升级数据外存储器的升级标志清零,进入正常工作状态。
如图4所示,在上述步骤S43的升级过程中,通讯中断的升级方法包括如下步骤:
主单片机判断升级数据外存储器的升级标志被标记;
主单片机判断升级数据外存储器的升级标志被标记后,升级主单片机、从单片机和外存储器;覆盖步骤S41、S42、S43已写入的数据。
升级完成后,主单片机将升级数据外存储器的升级标志清零,进入正常工作状态。
具体如下:由于升级数据已经复制在SPI FLASH中,主单片机、从单片机或其它外存储器在升级过程中,通讯中断,升级失败。系统重新启动后,主单片机识别SPI FLASH升级标志位已被标记,即升级数据已经存储在SPI FLASH中。主单片机开始依次升级自身、从单片机和其他存储外设数据,即进入步骤S1、S4、S5,覆盖之前升级未完成的数据,保证主单片机、从单片机和其他外存储器重新升级后版本统一。
本发明提供的升级方法中,主单片机可直接读取各种移动设备的数据,摆脱依赖外部计算机升级的单一、被动模式;不占用主单片机内部空间,同时又有效利用了廉价的外存空间,最终实现一种安全、方便的升级方式。在升级过程中,如果发生断电或失去连接等情况时,系统重启后,主单片机依据升级标志是否被标记判断重新升级或是进入正常工作程序,保证所有单片机程序及外存储器数据版本统一。此外,本升级方法不仅适用于采用I2C总线通讯的系统,还适用使用多种总路线的复杂系统。
可以理解的,以上实施例仅表达了本发明的优选实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制;应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,可以对上述技术特点进行自由组合,还可以做出若干变形和改进,这些都属于本发明的保护范围;因此,凡跟本发明权利要求范围所做的等同变换与修饰,均应属于本发明权利要求的涵盖范围。