CN110362321B - 应用程序的更新方法 - Google Patents
应用程序的更新方法 Download PDFInfo
- Publication number
- CN110362321B CN110362321B CN201810316409.2A CN201810316409A CN110362321B CN 110362321 B CN110362321 B CN 110362321B CN 201810316409 A CN201810316409 A CN 201810316409A CN 110362321 B CN110362321 B CN 110362321B
- Authority
- CN
- China
- Prior art keywords
- controller
- update
- area
- update data
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/66—Updates of program code stored in read-only memory [ROM]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开一种应用程序的更新方法,其将更新数据先储存于备份储存区,原始应用程序数据依然存放于控制器的应用程序区中,换言之,即原始应用程序数据并未被擦除,故应用本申请的更新方法的电源模块在重新上电或是因更新不完全而须重新进行更新时,由于控制器依然可以使用原始应用程序数据运行,故电源模块仍可顺利运行而且可以再次进行更新,使得整体的效能提升。
Description
技术领域
本公开涉及一种应用程序的更新方法,尤指一种应用于电源模块的应用程序的更新方法。
背景技术
随着电源模块技术的发展,越来越多电源模块应用在各种工业领域上,例如大型服务器、网络交换机、存储设备、通信基站及数据中心等,与此同时,用户对电源模块的要求也越来越高。电源模块中通常会嵌入多个电源控制器,用于对电源模块内的功率转换电路等进行控制、故障保护以及监控其输入输出状态信息。电源控制器还需要与各种工业领域内的上位机系统进行通信,其中上位机系统与电源控制器通常利用电源管理总线(PowerManagement Bus、PMBus)接口来进行通信,使得上位机系统可监控电源模块的工作状态和控制电源模块的输出。
在实际应用当中,用户经常需要对电源控制器中的应用程序进行更新,以修复应用程序的缺陷(bug)及优化应用程序。通过上述对应用程序的更新可以节省电源模块的维护成本和缩短电源模块的维护周期。用户在定义电源管理总线(PMBus)的命令时通常会定义一组与应用程序更新相关的命令,上位机系统可以通过这些电源管理总线(PMBus)的命令来控制和监控整个应用程序的更新过程。为此,电源模块在出厂时需要带有引导加载(Boot Loader)功能,亦即在电源控制器中具有更新加载区,当需要更新电源控制器的应用程序时,该更新加载区可以接收电源管理总线的更新命令,并将位于电源控制器的应用程序区里的应用程序更新到新的版本。
在现有的技术中,由于电源控制器中应用程序的更新由更新命令进行控制,且不同的更新命令之间有一定的次序及延时要求,如果上位机系统与电源模块之间时序配合有误,易导致更新出现问题。此外,假设电源控制器的应用程序在更新过程中出现掉电的问题,也会导致更新中断。当电源控制器中应用程序的更新出现问题时,由于电源控制器中的应用程序的原始数据已被擦除,而新写入的更新数据又不完整,将会使得电源控制器一直停留在更新加载区,导致电源模块无法正常运行,这对上位机系统的开发或运行产生很大的不良影响。用户只能通过再次更新电源控制器的应用程序,并在花费一定的调试时间确保应用程序更新完成后,才能使电源模块恢复正常运行。
因此,如何发展一种克服上述缺失的应用程序的更新方法,实为目前迫切的需求。
发明内容
本案的主要目的在于提供一种应用程序的更新方法,解决已有更新方法在电源控制器的应用程序的更新过程中出现问题而导致电源模块不能正常运行的缺陷。
为达上述目的,本案的一较广义实施样态为提供一种应用程序的更新方法,适用于电源模块,其中电源模块包含第一控制器以及第二控制器,第一控制器分别与第二控制器以及上位机系统相互通信,且第一控制器以及第二控制器更各自包含更新加载区、应用程序区及备份储存区,第一控制器的应用程序区用以存放第一应用程序数据,第二控制器的应用程序区用以存放第二应用程序数据,更新方法包含步骤:(a)当电源模块正常工作或重新上电时,第一控制器使用第一应用程序数据进行运作,第二控制器使用第二应用程序数据进行运作;(b)当第一控制器接收到上位机系统传送的更新命令时,便解析更新命令,并从更新命令判断出更新第一控制器或第二控制器需,且依据判断结果产生标志,而后第一控制器再从应用程序区跳转至更新加载区;(c)第一控制器的更新加载区在接收到上位机系统传送的更新数据后,读取标志来确认更新数据提供给第一控制器或第二控制器;(d)当确认更新数据提供给第一控制器时,第一控制器的更新加载区将更新数据写入第一控制器的备份储存区;(e)在更新数据接收完毕后第一控制器再接收上位机系统传送的验证校验值,第一控制器的更新加载区读取储存于备份储存区的更新数据并计算出实际校验值;(f)当确认更新数据提供给第二控制器时,第一控制器发送跳转命令至第二控制器,使得第二控制器从应用程序区跳转至更新加载区,且第一控制器的更新加载区将更新数据传送至第二控制器的更新加载区,而第二控制器的更新加载区将所接收到的更新数据写入第二控制器的备份储存区;(g)在该更新数据接收完毕后,第一控制器再接收该上位机系统传送的该验证校验值且在更新数据发送完成后,第一控制器的更新加载区将验证校验值传送至第二控制器的更新加载区,第二控制器的更新加载区读取储存在备份储存区的更新数据并计算出实际校验值;(h)比较实际校验值与验证校验值是否相同;以及(i)当实际校验值与验证校验值相同时,擦除需更新的第一控制器或第二控制器所对应的应用程序区内的第一应用程序数据或第二应用程序数据,并将储存于对应的备份储存区的更新数据移动至已擦除的应用程序区,且于更新完成后,已进行更新的第一控制器或第二控制器使用对应的应用程序区的更新数据进行运作;其中,当步骤(a)执行完后执行步骤(b),当步骤(b)执行完后执行步骤(c),当步骤(c)确认更新数据提供给第一控制器时执行步骤(d),当步骤(d)执行完后执行步骤(e),当步骤(e)执行完后执行步骤(h),而当步骤(c)确认更新数据提供给第二控制器则执行步骤(f),当步骤(f)执行完后执行步骤(g),当步骤(g)执行完后执行步骤(h),而当执行步骤(h)且判断结果为是时,执行步骤(i),当步骤(h)判断结果为否时,执行步骤(a)。
在一实施例中,电源模块包含副边电路及原边电路,且第一控制器为副边控制器,用以控制副边电路,第二控制器为原边控制器,用以控制原边电路。
在一实施例中,电源模块包含原边电路,且第一控制器为通信控制器,用以分别与上位机系统及第二控制器相互通信,第二控制器为原边控制器,用以控制原边电路。
为达上述目的,本案的另一较广义实施样态为提供一种应用程序的更新方法,适用于电源模块,其中电源模块包含多个第一控制器以及多个第二控制器,多个第一控制器中的一个第一控制器分别与其它第一控制器、多个第二控制器中的一个第二控制器以及上位机系统相互通信,未与上位机系统相互通信的第一控制器与相对应的第二控制器相互通信,且每一第一控制器以及每一第二控制器更各自包含更新加载区、应用程序区及备份储存区,每一第一控制器的应用程序区用以存放第一应用程序数据,每一第二控制器的应用程序区用以存放第二应用程序数据,更新方法包含步骤:(a)当电源模块正常工作或重新上电时,每一第一控制器使用对应的第一应用程序数据进行运作,每一第二控制器使用对应的第二应用程序数据进行运作;(b)当与上位机系统相互通信的第一控制器接收到上位机系统传送的更新命令时,便解析更新命令,并从更新命令判断出更新接收更新命令的第一控制器或非接收该更新命令的第一控制器或多个第二控制器,且依据判断结果产生一标志,而后接收更新命令的第一控制器再由应用程序区跳转至更新加载区;(c)接收更新命令的第一控制器的更新加载区在接收到上位机系统传送的一更新数据后,读取标志来确认更新数据提供给接收更新命令的第一控制器或非接收该更新命令的第一控制器或第二控制器;(d)当确认更新数据提供给接收更新命令的第一控制器时,接收更新命令的第一控制器的更新加载区将更新数据写入接收更新命令的第一控制器的备份储存区;(e)在更新数据接收完毕后接收更新命令的第一控制器接收到上位机系统传送的验证校验值,接收更新命令的第一控制器的更新加载区读取储存于备份储存区的更新数据并计算出实际校验值;(f1)当确认更新数据提供给非接收更新命令的第一控制器时,接收更新命令的第一控制器发送一第一跳转命令至需接收更新数据的第一控制器,使得需接收更新数据的第一控制器从应用程序区跳转至更新加载区,且接收更新命令的第一控制器的更新加载区将更新数据传送至需接收更新数据的第一控制器的更新加载区,使需接收更新数据的第一控制器的更新加载区将所接收到的更新数据写入需接收更新数据的第一控制器的备份储存区;(g1)在更新数据接收完毕后,接收更新命令的第一控制器再接收上位系统传送的验证校验值,且在该更新数据发送完成后接收该更新命令的该第一控制器的该更新加载区将验证校验值传送至需接收更新数据的第一控制器的更新加载区,需接收更新数据的第一控制器的更新加载区读取储存在备份储存区的更新数据并计算出实际校验值;(f2)当确认更新数据提供给与接收更新命令的第一控制器相互通信的第二控制器时,接收更新命令的第一控制器发送跳转命令至需接收更新数据之的第二控制器,使得需接收更新数据的第二控制器从应用程序区跳转至更新加载区,且需接收更新数据的第二控制器的更新加载区接收来自接收更新命令的第一控制器的更新加载区的更新数据,而需接收更新数据的第二控制器的更新加载区将所接收到的更新数据写入需接收更新数据的第二控制器的备份储存区;(g2)在更新数据接收完毕后,接收更新命令的第一控制器再接收上位机系统传送的验证校验值,且在更新数据发送完成后,接收该更新命令的该第一控制器的该更新加载区将验证校验值传送至需接收更新数据的第二控制器的该更新加载区,需接收更新数据的第二控制器的更新加载区读取储存在备份储存区的更新数据并计算出实际校验值;(f3)当确认更新数据提供给与非接收更新命令的第一控制器所相互通信的第二控制器时,接收更新命令的第一控制器经由与需接收更新数据的第二控制器相互通信的第一控制器将跳转命令传送至需接收更新数据的第二控制器,使得需接收更新数据的第二控制器从应用程序区跳转至更新加载区,且需接收更新数据的第二控制器的更新加载区经由非接收更新命令的第一控制器接收来自接收更新命令的第一控制器的更新加载区的更新数据,而需接收更新数据的第二控制器的更新加载区将所接收到的更新数据写入需接收更新数据的第二控制器的备份储存区;(g3)在更新数据接收完毕后,接收更新命令的第一控制器再接收上位机系统传送的验证校验值,且在更新数据发送完成后,接收该更新命令的该第一控制器的该更新加载区将该验证校验值经由与需接收该更新数据的该第二控制器相互通信的该第一控制器传送至需接收该更新数据的该第二控制器的该更新加载区,需接收更新数据的第二控制器的更新加载区读取储存在备份储存区的更新数据并计算出实际校验值;(h)比较实际校验值与验证校验值是否相同;以及(i)当实际校验值与验证校验值相同时,擦除需更新的第一控制器或第二控制器所对应的应用程序区内的第一应用程序数据或第二应用程序数据,并将储存于对应的备份储存区的更新数据移动至已擦除的应用程序区,且于更新完成后,已进行更新的第一控制器、或第二控制器使用对应的应用程序区的更新数据进行运作;其中,当步骤(a)执行完后执行步骤(b),当步骤(b)执行完后执行步骤(c),当步骤(c)确认更新数据提供给接收更新命令的第一控制器时执行步骤(d),当步骤(d)执行完后执行步骤(e),当步骤(e)执行完后执行步骤(h),而当步骤(c)确认更新数据提供给非接收更新命令的其它第一控制器时则执行步骤(f1),当步骤(f1)执行完后执行步骤(g1),当步骤(g1)执行完后执行步骤(h),而当步骤(c)确认更新数据提供给与接收更新命令的第一控制器相互通信的第二控制器时则执行步骤(f2),当步骤(f2)执行完后执行步骤(g2),当步骤(g2)执行完后执行步骤(h),而当步骤(c)确认更新数据提供给非接收更新命令的第一控制器所相互通信的第二控制器时则执行步骤(f3),当步骤(f3)执行完后执行步骤(g3),当步骤(g3)执行完后执行步骤(h),而当执行步骤(h)且判断结果为是时,执行步骤(i),当步骤(h)判断结果为否时,执行步骤(a)。
在一实施例中,电源模块包含多个副边电路及多个原边电路,且多个第一控制器皆分别为副边控制器,用以分别控制对应的副边电路,多个第二控制器皆分别为原边控制器,用以分别控制对应的原边电路。
在一实施例中,多个第一控制器的个数及多个第二控制器的个数相同,且每一第一控制器对应于多个第二控制器中的其中之一。
在一实施例中,标志存入接收更新命令的第一控制器的更新加载区、应用程序区或备份储存区的特定地址。
在一实施例中,第一控制器包含第一存储器,第一存储器包含第一控制器的更新加载区及应用程序区。
在一实施例中,第一存储器还包含第一控制器的备份储存区。
在一实施例中,第一控制器的第一存储器为闪存。
在一实施例中,第一控制器包含外接的第二存储器,第二存储器包含第一控制器的备份储存区。
在一实施例中,第二存储器为电可擦写只读存储器、铁电随机存取内存、随机存取内存或闪存。
在一实施例中,第二控制器包含一第一存储器,该第一存储器包含该第二控制器的该更新加载区及该应用程序区。
在一实施例中,第一存储器还包含第二控制器的备份储存区。
在一实施例中,第二控制器的第一存储器为闪存。
在一实施例中,第二控制器系包含外接的第二存储器,第二存储器包含第二控制器的备份储存区。
在一实施例中,第二存储器为电可擦写只读存储器、铁电随机存取内存、随机存取内存或闪存。
在一实施例中,实际校验值以及验证校验值皆为循环冗余校验值。
在一实施例中,第一控制器及第二控制器之间的相互通信利用UART自定义协议或SPI自定义协议。
在一实施例中,多个第一控制器的间相互通信,以相互传送更新数据和验证校验值。
为达上述目的,本案的另一较广义实施样态为提供一种应用程序的更新方法,适用于电源模块,其中电源模块包含通信控制器、至少一第一控制器及至少一第二控制器,通信控制器分别与每一第一控制器及每一第二控制器以及上位机系统相互通信,且通信控制器、每一第一控制器以及每一第二控制器更各自包含更新加载区、应用程序区及备份储存区,通信控制器的应用程序区用以存放通信应用程序数据,每一第一控制器的应用程序区用以存放第一应用程序数据,每一第二控制器的应用程序区用以存放第二应用程序数据,更新方法包含步骤:(a)当电源模块正常工作或重新上电时,每一第一控制器使用对应的第一应用程序数据进行运作,每一第二控制器使用对应的第二应用程序数据进行运作,通信控制器使用通信应用程序数据进行运作;(b)当通信控制器接收到上位机系统传送的更新命令时,通信控制器解析更新命令,并从更新命令判断出更新通信控制器、至少一第一控制器或至少一第二控制器,且依据判断结果产生标志,而后通信控制器再从应用程序区跳转至更新加载区;(c)通信控制器的更新加载区在接收到上位机系统传送的更新数据时,读取标志来确认更新数据提供给通信控制器、至少一第一控制器或至少一第二控制器;(d)当确认更新数据提供给通信控制器时,通信控制器的更新加载区将更新数据写入通信控制器的备份储存区;(e)在更新数据接收完毕后,通信控制器再接收上位机系统传送的验证校验值,通信控制器的更新加载区读取储存于备份储存区的更新数据并计算出实际校验值;(f)当确认更新数据提供给至少一第一控制器或至少一第二控制器时,通信控制器发送一跳转命令至需接收更新数据的第一控制器或第二控制器,使得需接收更新数据的第一控制器或第二控制器从应用程序区跳转至更新加载区,且通信控制器的更新加载区将更新数据传送至需接收更新数据的第一控制器或第二控制器的更新加载区,而需接收更新数据的第一控制器或第二控制器的更新加载区将所接收到的更新数据写入需接收更新数据的第一控制器或第二控制器的备份储存区;(g)在更新数据接收完毕后,通信控制器再接收上位机系统传送的验证校验值,且在更新数据发送完成后,通信控制器的更新加载区将将验证校验值传送至需接收更新数据的第一控制器或第二控制器的更新加载区,需接收更新数据的第一控制器或第二控制器的更新加载区读取储存在需接收更新数据的第一控制器或第二控制器的备份储存区的更新数据并计算出实际校验值;(h)比较实际校验值与验证校验值是否相同;以及(i)当实际校验值与验证校验值相同时,擦除需更新的通信控制器、需更新的第一控制器或需更新的第二控制器所对应的应用程序区内的通信应用程序数据、第一应用程序数据或第二应用程序数据,并将储存于对应的备份储存区的更新数据移动至已擦除的应用程序区,且于更新完成后,已进行更新的通信控制器、第一控制器或或第二控制器使用对应的应用程序区的更新数据进行运作;其中,当步骤(a)执行完后执行步骤(b),当步骤(b)执行完后执行步骤(c),当步骤(c)确认更新数据提供给通信控制器时执行步骤(d),当步骤(d)执行完后执行步骤(e),当步骤(e)执行完后执行步骤(h),而当步骤(c)确认更新数据提供给至少一第一控制器或至少一第二控制器时则执行步骤(f),当步骤(f)执行完后执行步骤(g),当步骤(g)执行完后执行步骤(h),而当执行步骤(h)且判断结果为是时,执行步骤(i),当步骤(h)判断结果为否时,执行步骤(a)。
在一实施例中,第一控制器的个数和第二控制器的个数相等且均为多个时,通信控制器同时更新多个第一控制器或同时更新多个第二控制器。
为达上述目的,本案的另一较广义实施样态为提供一种应用程序的更新方法,适用于电源模块,其中电源模块包含通信控制器、至少一第一控制器及至少一第二控制器,通信控制器分别与每一第一控制器以及上位机系统相互通信,而每一第一控制器分别与对应的至少一第二控制器相互通信,且通信控制器、每一第一控制器以及每一第二控制器更各自包含更新加载区、应用程序区及备份储存区,通信控制器的应用程序区用以存放通信应用程序数据,每一第一控制器的应用程序区用以存放第一应用程序数据,每一第二控制器的应用程序区用以存放第二应用程序数据,更新方法包含步骤:(a)当电源模块正常工作或重新上电时,每一第一控制器使用对应的第一应用程序数据进行运作,每一第二控制器使用对应的第二应用程序数据进行运作,通信控制器使用通信应用程序数据进行运作;(b)当通信控制器接收到上位机系统传送的更新命令时,通信控制器解析更新命令,并从更新命令判断出更新通信控制器、至少一第一控制器或至少一第二控制器,且依据判断结果产生标志,而后通信控制器再从应用程序区跳转至更新加载区;(c)通信控制器的更新加载区在接收到上位机系统传送的更新数据后,读取标志来确认更新数据提供给通信控制器、至少一第一控制器或至少一第二控制器;(d)当确认更新数据提供给通信控制器时,通信控制器的更新加载区将更新数据写入通信控制器的备份储存区;(e)在更新数据接收完毕后通信控制器再接收到上位机系统传送的验证校验值时,通信控制器的更新加载区读取储存于备份储存区的更新数据并计算出实际校验值;(f1)当确认更新数据提供给至少一第一控制器时,通信控制器发送一跳转命令至接收需更新数据的第一控制器,使得需接收更新数据的第一控制器从应用程序区跳转至更新加载区,且通信控制器的更新加载区将更新数据传送至需接收更新数据的第一控制器的更新加载区,使需接收更新数据的第一控制器的更新加载区将所接收到的更新数据写入需接收更新数据的第一控制器的备份储存区;(g1)在更新数据接收完毕后,通信控制器再接收上位系统传送的验证校验值,且在该更新数据发送完成后,通信控制器的更新加载区将验证校验值传送至需接收更新数据的第一控制器的更新加载区,需接收更新数据的第一控制器的更新加载区读取储存在需接收更新数据的第一控制器的备份储存区的更新数据并计算出实际校验值;(f2)当确认更新数据提供给至少一第二控制器时,通信控制器经由对应的第一控制器发送一跳转命令至需接收更新数据的第二控制器,使得需接收更新数据的第二控制器从应用程序区跳转至更新加载区,且通信控制器的更新加载区将更新数据经由与需接收更新数据的第二控制器相互通信的第一控制器的更新加载区传送至需接收更新数据的第二控制器的更新加载区,需接收更新数据的第二控制器的更新加载区将所接收到的更新数据写入需接收更新数据的第二控制器的备份储存区;(g2)在更新数据接收完毕后,通信控制器再接收上位系统传送的验证校验值,且在该更新数据发送完成后,通信控制器的更新加载区将验证校验值经由与需接收更新数据的第二控制器相互通信的第一控制器的更新加载区传送至需接收更新数据的第二控制器的更新加载区,需接收更新数据的第二控制器的更新加载区读取储存在需接收更新数据的第二控制器的备份储存区的更新数据并计算出实际校验值;(h)比较实际校验值与验证校验值是否相同;以及(i)当实际校验值与验证校验值相同时,擦除需更新的通信控制器、第一控制器或第二控制器所对应的应用程序区内的通信应用程序数据、第一应用程序数据或第二应用程序数据,并将储存于对应的备份储存区的更新数据移动至已擦除的应用程序区,且于更新完成后,已进行更新的通信控制器、第一控制器或第二控制器使用对应的应用程序区的更新数据进行运作;其中,当步骤(a)执行完后执行步骤(b),当步骤(b)执行完后执行步骤(c),当步骤(c)确认更新数据提供给通信控制器时执行步骤(d),当步骤(d)执行完后执行步骤(e),当步骤(e)执行完后执行步骤(h),而当步骤(c)确认更新数据提供给至少一第一控制器时则执行步骤(f1),当步骤(f1)执行完后执行步骤(g1),当步骤(g1)执行完后执行步骤(h),而当步骤(c)确认更新数据提供给至少一第二控制器时则执行步骤(f2),当步骤(f2)执行完后执行步骤(g2),当步骤(g2)执行完后执行步骤(h),而当执行步骤(h)且判断结果为是时,执行步骤(i),当步骤(h)判断结果为否时,执行步骤(a)。
在一实施例中,标志存入通信控制器的更新加载区、应用程序区或备份储存区的特定地址。
在一实施例中,电源模块包含至少一副边电路及至少一原边电路,且至少一第一控制器皆分别为副边控制器,用以分别控制对应的副边电路,至少一第二控制器皆分别为原边控制器,用以分别控制对应的原边电路。
在一实施例中,通信控制器包含第一存储器,第一控制器包含通信控制器的更新加载区及应用程序区。
在一实施例中,第一存储器还包含第二控制器的备份储存区。
在一实施例中,通信控制器的第一存储器为闪存。
在一实施例中,通信控制器系包含外接的第二存储器,第二存储器包含第二控制器的备份储存区。
在一实施例中,至少一第一控制器的个数与至少一第二控制器的个数相同且分别为多个,而每一第一控制器对应于多个第二控制器中的其中之一。
附图说明
图1A及图1B为本申请第一较佳实施例的应用程序的更新方法的流程示意图。
图2为图1A及图1B所示的更新方法所应用的电源模块的电路方块示意图。
图3A、图3B、图3C以及图3D为本申请第二较佳实施例的应用程序的更新方法的流程示意图。
图4为图3A、图3B、图3C以及图3D所示的更新方法所应用的电源模块的电路方块示意图。
图5A及图5B为本申请第三较佳实施例的应用程序的更新方法的流程示意图。
图6为图5A及图5B所示的更新方法所应用的电源模块的电路方块示意图。
图7为图6所示的电源模块的另一变化例的电路方块示意图。
图8A、图8B及图8C为本申请第四较佳实施例的应用程序的更新方法的流程示意图。
图9为图8A、图8B及图8C所示的更新方法所应用的电源模块的电路方块示意图。
图10为图9所示的电源模块的另一变化例的电路方块示意图。
具体实施方式
现体现本申请特征与优点的一些典型实施例将在后段的说明中详细叙述。应理解的是本申请能够在不同的状态上具有各种的变化,其皆不脱离本申请的范围,且其中的说明及图示在本质上当作说明之用,而非架构于限制本申请。
请参阅图1A、图1B及图2,其中图1A及1B为本申请第一较佳实施例的应用程序的更新方法的流程示意图,图2为图1A及1B所示的更新方法所应用的电源模块的电路方块示意图。如图所示,本实施例的电源模块12可与上位机系统11相互通信。上位机系统11可以对电源模块12进行监控,例如监控电源模块12的输入输出状态信息,上位机系统11也可以对电源模块12进行控制,例如传送更新命令、控制命令、更新数据或验证校验数据等至电源模块12。于本实施例中,上位机系统11与电源模块12更可为但不限为利用电源管理总线(PMbus)彼此相互通信。
电源模块12包含副边电路130、原边电路140、第一控制器13及第二控制器14。副边电路130及原边电路140分别用以进行功率变换,其中副边电路130及原边电路140为电源模块中的常规电路,故于此不再赘述其内部结构。第一控制器13可为但不限为副边控制器,用以控制副边电路130的运行,且第一控制器13更可与上位机系统11相互通信,此外,第一控制器13包含更新加载区131、应用程序区132及备份储存区133。更新加载区131用以接收上位机系统11传送的更新命令以及更新数据。应用程序区132用以存放第一应用程序数据,其中当电源模块12正常工作或从掉电状态变成重新上电时,第一控制器13依据第一应用程序数据而进行对应的运行。备份储存区133则用以储存第一控制器13所接收到的更新数据。
第二控制器14可为但不限为原边控制器,用以控制原边电路140的运行,且第二控制器14更可与第一控制器13相互通信,此外,第二控制器14包含更新加载区141、应用程序区142及备份储存区143。更新加载区141用以接收第一控制器13传送的跳转命令以及更新数据。应用程序区142用以存放第二应用程序数据,其中当电源模块12正常工作或重新上电时,第二控制器14依据第二应用程序数据而进行对应的运行。备份储存区143则用以储存第二控制器14所接收到的更新数据。
请继续参阅图1A、1B,本申请第一较佳实施例的应用程序的更新方法系包括以下步骤:首先,如步骤S11所示,当电源模块12正常工作或从掉电状态变成重新上电时,第一控制器13使用第一控制器13的应用程序区132中的第一应用程序数据进行运行,第二控制器14则使用第二控制器14的应用程序区142中的第二应用程序数据进行运行。接着,执行步骤S12,在上位机系统11传送更新命令而欲使电源模块12更新时,第一控制器13在接收到上位机系统11传送的更新命令时便解析更新命令,以从更新命令判断出更新第一控制器13或第二控制器14,且依据判断结果产生可反应出第一控制器13或第二控制器14需进行更新的标志,而第一控制器13再从应用程序区132跳转至更新加载区131。其中在步骤S12中,标志可为但不限为存入第一控制器13的更新加载区131、应用程序区132或备份储存区133的特定地址。然后执行步骤S13,第一控制器13的更新加载区131在接收到上位机系统11传送的更新数据后,读取标志来确认更新数据提供给第一控制器13或第二控制器14。当步骤S13的确认结果为更新数据提供给第一控制器13时,则执行步骤S14,第一控制器13的更新加载区131将更新数据写入第一控制器13的备份储存区133,其中更新数据可以将备份储存区内的原先存储的数据覆盖。当步骤S14执行完后,再执行步骤S15,在上位机系统11所传送的更新数据发送完成后,亦即,第一控制器13的更新加载区131接收更新数据完毕后,再让第一控制器13的更新加载区131接收到上位机系统11传送的验证校验值,然后第一控制器13的更新加载区131再读取储存于备份储存区133的更新数据,并依据备份储存区133的更新数据计算出实际校验值。当步骤S15执行完后,再执行步骤S18,比较实际校验值与验证校验值是否相同。其中实际校验值与验证校验值分别皆可为但不限为循环冗余校验值。
另外,当步骤S13的确认结果为更新数据提供给第二控制器14时,则执行步骤S16,第一控制器13发送跳转命令至第二控制器14,使得第二控制器14由应用程序区142跳转至更新加载区141,且第一控制器13的更新加载区131将从上位机系统11所接收到的更新数据传送至第二控制器14的更新加载区141,使更新加载区141将所接收到的更新数据写入第二控制器14的备份储存区143,其中更新数据可以覆盖备份储存区143的原始数据。当步骤S16执行后,再执行步骤S17,在上位机系统11所传送的更新数据发送完成后,亦即,第一控制器13的更新加载区131接收更新数据完毕后,第一控制器13的更新加载区131再接收到上位机系统11传送的验证校验值,且在第一控制器13传输送更新数据至第二控制器14完毕后,第一控制器13的更新加载区131再将验证校验值传送至第二控制器14的更新加载区141,然后第二控制器14的更新加载区141再读取储存在备份储存区143的更新数据,并依据备份储存区143的更新数据计算出实际校验值。当步骤S17执行完后,再执行步骤S18。
另外,不论是从步骤S13依序执行步骤S14、S15至步骤S18或是从步骤S13依序执行步骤S16、S17至步骤S18,只要步骤S18判断结果为是时,则执行步骤S19,当实际校验值与验证校验值相同时,擦除需更新的第一控制器13的应用程序区132内的第一应用程序数据,并将对应的备份储存区133的更新数据移动至已擦除的应用程序区132,或擦除需更新的第二控制器14的应用程序区142内的第二应用程序数据,并将对应的备份储存区143的更新数据移动至已擦除的应用程序区142,且于更新完成后,已进行更新的第一控制器13或第二控制器14使用对应的应用程序区(132或142)的更新数据进行运行。其中,如从步骤S13依序执行步骤S14、S15、S18至步骤S19,则步骤S19中擦除第一控制器13的应用程序区132内的第一应用程序数据,并将备份储存区133的更新数据移动至应用程序区132,且于更新完成后,第一控制器13使用应用程序区132的更新数据进行运行。然而,如从步骤S13依序执行步骤S16、S17、S18至步骤S19,则步骤S19中擦除第二控制器14的应用程序区142内的第二应用程序数据,并将备份储存区143的更新数据移动至应用程序区142,且于更新完成后,第二控制器14使用应用程序区142的更新数据进行运行。另外,当步骤S18判断结果为否时,则重新执行步骤S11,第一控制器13使用应用程序区132的原先的第一应用程序数据进行运行,而第二控制器14使用应用程序区142的原先的第二应用程序数据进行运行。
由上可知,本申请的应用程序的更新方法如果在更新过程中发生问题,例如上位机系统与电源模块之间配合有误或掉电的情况,而使得写入的更新数据不完整时,由于本申请的更新方法将更新数据先储存于备份储存区(133或143),原始的第一应用程序数据依然存放于第一控制器13的应用程序区132中,或原始的第二应用程序数据依然存放于第二控制器14的应用程序区142中,换言之,即原始的第一应用程序数据或第二应用程序数据并未被擦除,并不像习知更新方法须先将电源控制器中的应用程序的原始数据进行擦除才进行更新,故应用本申请的更新方法的电源模块12在重新上电或是因更新不完全而须重新进行更新时,由于第一控制器13及第二控制器14依然可以分别使用原始的第一应用程序数据及第二应用程序数据运行,故电源模块12仍可顺利运行,也可以再次进行更新,使得整体的效能提升。
当然,图2所示的电源模块12可仅包含原边电路140而不具有副边电路130,故第二控制器14便对应为原边控制器,然由于电源模块12不具有副边电路130,换言之,即无需对副边电路130进行控制,因此第一控制器13则改为由通信控制器构成,故第一控制器13便仅用以分别与上位机系统11及第二控制器14相互通信,进而接收上位机系统11传送的更新命令、更新数据以及验证校验值,用以将更新数据移动到通信控制器13的应用程序区132,亦即,更新应用程序区132内的第一应用程序数据,或者将更新数据以及验证校验值传送给第二控制器14,用以将更新数据移动到第二控制器14的应用程序区142,亦即,更新应用程序区142内的第二应用程序数据。
另外,于一些实施例中,第一控制器13可包含第一存储器,第一存储器包含第一控制器13的更新加载区131及应用程序区132,其中第一存储器可以是第一控制器13内置的存储器或者第一控制器13外接的存储器。当然,第一控制器13的第一存储器还可包括第一控制器13的备份储存区133。其中第一控制器13的第一存储器可为但不限于闪存(Flashmemory)。
又于一些实施例中,第一控制器13除了包含第一存储器外,更可包含外接的第二存储器,第一控制器13的第一存储器包含第一控制器13的更新加载区131及应用程序区132,其中第一存储器可以是第一控制器13内置的存储器或者是第一控制器13外接的存储器。第二存储器包含第一控制器13的备份储存区133,其中第一控制器13的第二存储器可为但不限为电可擦写只读存储器(Electrically-Erasable Programmable Read-OnlyMemory)、铁电随机存取内存(Ferroelectric Random Access Memory)、随机存取内存(Random Access Memory)或闪存。
同样地,第二控制器14可包含第一存储器,第一存储器包含第二控制器14的更新加载区141及应用程序区142,其中第一存储器可以是第二控制器14内置的存储器或者是外接的存储器。当然,亦可藉由第二控制器14的第一存储器还包含第二控制器14的备份储存区143。其中第二控制器14的第一存储器可为但不限于闪存。
又于一些实施例中,第二控制器14除了包含第一存储器外,更可包含外接的第二存储器,第一存储器包含第二控制器14的更新加载区141及应用程序区142,其中第一存储器可以是第一控制器13内置的存储器或者是第一控制器13外接的存储器。第二存储器包含第二控制器14的备份储存区143。其中第二控制器14的第二存储器可为但不限为电可擦写只读存储器、铁电随机存取内存、随机存取内存或闪存。
于其它实施例中,第一控制器13与第二控制器14之间的相互通信可为但不限于利用UART自定义协议或SPI自定义协议。
请参阅图3A、图3B、图3C、图3D及图4,其中图3A、3B、3C及3D为本申请第二较佳实施例的应用程序的更新方法的流程示意图,图4为图3A、3B、3C及3D所示的更新方法所应用的电源模块的电路方块示意图。如图所示,本实施例的电源模块12包含多个副边电路130及多个原边电路140、多个第一控制器13及多个第二控制器14,其中多个第一控制器13可为但不限为副边控制器,每一第一控制器13用以控制对应的副边电路130,且多个第一控制器13中的一个第一控制器13分别与其它第一控制器13、对应的第二控制器14及上位机系统11相互通信,且未与上位机系统11相互通信的第一控制器13与相对应的第二控制器14相互通信,多个第二控制器14可为但不限为原边控制器,每一第二控制器14用以控制对应的原边电路140。而由于此实施例的每一副边电路130、每一原边电路140、每一第一控制器13及每一第二控制器14的结构与作动皆分别相似于第2图所示的副边电路130、原边电路140、第一控制器13及第二控制器14,故于此仅以相同的标号代表结构及功能相似而不再赘述。另外,如图4所述,电源模块12具有两个副边电路130、两个原边电路140、两个第一控制器13及两个第二控制器14,但电源模块12亦可具有三个以上的副边电路130、三个以上的原边电路140、三个以上的第一控制器13及三个以上的第二控制器14,其中当第一控制器13具有三个以上时,三个以上的第一控制器13的其中一个第一控制器13系与上位机系统11相互通信,其它两个第一控制器13与和上位机系统11相互通信的第一控制器13相互通信。更甚者,多个第一控制器13的个数与多个第二控制器14的个数相同,且由于任一原边电路140与对应的副边电路130之间可以通过变压器进行连接,且原边电路140与对应的副边电路130相互隔离,故在多个第一控制器13的个数与多个第二控制器14的个数相同的情况下,每一第一控制器13与对应的第二控制器14也是彼此隔离的。
请继续参阅图3A、3B及3C,本申请第二较佳实施例的应用程序的更新方法包括以下步骤:首先,如步骤S21所示,当电源模块12正常工作或从掉电状态变成重新上电时,每一第一控制器13执行对应的第一控制器13的应用程序区132,以使用对应的第一应用程序数据进行运行,每一第二控制器14则执行对应的第二控制器14的应用程序区142,以使用对应的第二应用程序数据进行运行。接着,执行步骤S22,当与上位机系统11相互通信的第一控制器13在接收到上位机系统11传送的更新命令时便解析更新命令,以从更新命令判断出更新接收更新命令的第一控制器13或非接收更新命令的第一控制器13或多个第二控制器14,且依据判断结果产生可反应出接收更新命令的第一控制器13或非接收更新命令的第一控制器13或多个第二控制器14需进行更新的标志,而接收更新命令的第一控制器13再从应用程序区132跳转至更新加载区131。其中在步骤S22中,标志可为但不限为存入接收更新命令的第一控制器13的更新加载区131、应用程序区132或备份储存区133的特定地址。然后执行步骤S23,接收更新命令的第一控制器13的更新加载区131在接收到上位机系统11传送的更新数据后,读取标志来确认更新数据提供给接收更新命令的第一控制器13或非接收更新命令的其它第一控制器13或第二控制器14。当步骤S23的确认结果为更新数据提供给接收更新命令的第一控制器13时,则执行步骤S24,接收更新命令的第一控制器13的更新加载区131将更新数据写入接收更新命令的第一控制器131的备份储存区133,并且将备份储存区133中原始数据覆盖。当步骤S24执行完后,再执行步骤S25,在更新数据接收完毕后接收更新命令的第一控制器13的更新加载区131接收上位机系统11传送的验证校验值,接收更新命令的第一控制器13的更新加载区131读取储存于备份储存区133的更新数据,并依据备份储存区133的更新数据计算出实际校验值。当步骤S25执行完后,再执行步骤S28,比较实际校验值与验证校验值是否相同。其中实际校验值与验证校验值分别皆可为但不限为循环冗余校验值。
另外,当步骤S23的确认结果为更新数据提供给非接收更新命令的第一控制器13时,则执行步骤S261,接收更新命令的第一控制器13发送跳转命令至非接收更新命令且需接收更新数据的第一控制器13,使得非接收更新命令且需接收更新数据的第一控制器13由应用程序区132跳转至更新加载区131,且接收更新命令的第一控制器13的更新加载区131将从上位机系统11所接收到的更新数据传送至非接收更新命令且需接收更新数据的第一控制器13的更新加载区131,使非接收更新命令且需接收更新数据的第一控制器13的更新加载区131将所接收到的更新数据写入需接收更新数据的第一控制器13的备份储存区133,并将备份储存区133内原始数据覆盖。当步骤S261执行后,再执行步骤S271,在该更新数据接收完毕后,接收更新命令的第一控制器13再接收上位机系统11传送的验证校验值且在更新数据发送完成后,接收更新命令的第一控制器13的更新加载区131将验证校验值传送至非接收更新命令且需接收更新数据的第一控制器13的更新加载区131,非接收更新命令且需接收更新数据的第一控制器13的更新加载区131读取储存于需接收更新数据的第一控制器13的备份储存区133的更新数据,并依据备份储存区133的更新数据计算出实际校验值。当步骤S271执行完后,再执行步骤S28。
在其它实施例中,第一控制器13和第二控制器14都在3个以上时,可以同时更新多个第一控制器13的应用程序区132中的原始数据(亦即,第一应用程序数据),当步骤S23的确认结果为更新数据提供给非接收更新命令的第一控制器13时,多个非接收更新命令的第一控制器13与接收更新命令的第一控制器13之间可以相互通信,以传送更新数据。接收更新命令的第一控制器13发送跳转命令至每一个需接收更新数据的第一控制器13。每一个需要接收更新数据的第一控制器13的更新方法的步骤与前述内容相同,在此不再赘述。在其他实施例中,也可以仅更新一个第一控制器13的应用程序区132的原始数据(亦即,第一应用程序数据),当步骤S23的确认结果为更新数据提供给非接收更新命令的第一控制器13时,一个非接收更新命令的第一控制器13与接收更新命令的第一控制器13之间可以相互通信,以传送更新数据。接收更新命令的第一控制器13发送跳转命令至需接收更新数据的第一控制器13。
此外,当步骤S23的确认结果为更新数据提供给与接收更新命令的第一控制器13相互通信的第二控制器14时,则执行步骤S262,接收更新命令的第一控制器13发送跳转命令至需接收更新数据的第二控制器14,需要的说明的是需要接收更新数据的第二控制器14与接收更新命令的第一控制器13是一一对应的,使得需接收更新数据的第二控制器14从应用程序区142跳转至更新加载区141,且接收更新命令的第一控制器13的更新加载区131将从上位机系统11所接收到的更新数据传送至需接收更新数据的第二控制器14的更新加载区141,使需接收更新数据的第二控制器14的更新加载区141将所接收到的更新数据写入接收更新数据的第二控制器14的备份储存区143,并且将备份储存区143的原始数据覆盖。当步骤S262执行后,再执行步骤S272,在更新数据接收完毕后,接收更新命令的第一控制器13的更新加载区131再接收上位系统11传输的验证校验值,且在更新数据发送完成后,接收更新命令的第一控制器13的更新加载区131将验证校验值传送至需接收更新数据的第二控制器14的更新加载区141,需接收更新数据的第二控制器14的更新加载区141读取储存于需接收更新数据的第二控制器14的备份储存区143的更新数据,并依据备份储存区143的更新数据计算出实际校验值。当步骤S272执行完后,再执行步骤S28。
作为一个实施例,当步骤S23的确认结果为更新数据提供给非接收更新命令的第一控制器13所相互通信的第二控制器14时,接收更新命令的第一控制器13与非接收更新命令的第一控制器13之间可以相互通信,以传送更新数据,接收更新命令的第一控制器13不能直接将上位机系统11所传送的更新数据传送给需要更新的第二控制器14,此时更新非接收更新命令的第一控制器13所相互通信的第二控制器14的具体步骤如下:执行步骤S262’,接收更新命令的第一控制器13经由与需接收更新数据的第二控制器14相互通信的第一控制器13将跳转命令传送至需接收更新数据的第二控制器14,使得与需接收更新数据的第二控制器14相互通信的第一控制器13从应用程序加载区132跳转至更新加载区131,且接收更新命令的第一控制器13传送的更新数据至与需接收更新数据的第二控制器14相互通信的第一控制器13的更新加载区131,然后与需接收更新数据的第二控制器14相互通信的第一控制器13与需要接收更新数据的第二控制器14内部通信,发送跳转命令给需要接收更新数据的第二控制器14,使得需接收更新数据的第二控制器14由应用程序区142跳转至更新加载区141,与需接收更新数据的第二控制器14相互通信的第一控制器13的更新加载区131将更新数据传送至需要接收更新数据的第二控制器14的更新加载区141,需接收更新数据的第二控制器14的更新加载区141将所接收到的更新数据写入接收更新数据的第二控制器14的备份储存区143,并且将备份储存区143的原始数据覆盖。当步骤S262’执行后,再执行步骤S272’,在更新数据接收完毕后,接收更新命令的第一控制器13的更新加载区131再接收上位系统11传输的验证校验值,且在更新数据发送完成后,接收更新命令的第一控制器13的更新加载区131将验证校验值传送至与需接收更新数据的第二控制器14相互通信的第一控制器13的更新加载区131,与需接收更新数据的第二控制器14相互通信的第一控制器131再将验证校验值传送至需接收更新数据的第二控制器14的更新加载区141,需接收更新数据的第二控制器14的更新加载区141读取储存于需接收更新数据的第二控制器14的备份储存区143的更新数据,并依据备份储存区143的更新数据计算出实际校验值。当步骤S272’执行完后,再执行步骤S28。
在其它实施例中,第一控制器13和第二控制器14都在3个以上时,可以同时更新多个第二控制器14中应用程序区中的原始数据(亦即,第二应用程序数据)。当步骤S23的确认结果为更新数据提供给多个第二控制器14且多个第二控制器14与非接收更新命令的第一控制器13所相互通信时,多个非接收更新命令的第一控制器13与接收更新命令的第一控制器13之间可以相互通信,接收更新命令的第一控制器13的更新加载区131的更新数据通过多个非接收更新命令的第一控制器13传送到对应的第二控制器14的更新加载区141中。与接收更新命令的第一控制器13相通信的第二控制器14以及与非接收更新命令的第一控制器13所对应的第二控制器14的更新方法的步骤分别与前述内容相同,在此不再赘述。在其他实施例中,可以更新一个第二控制器14中应用程序区中的原始数据。
另外,不论是从步骤S23依序执行步骤S24、S25至步骤S28,或是从步骤S23依序执行步骤S261、S271至步骤S28,或是从步骤S23依序执行步骤S262、S272至步骤S28,亦或者是从步骤S23依序执行步骤S262’、S272’至步骤S28,只要步骤S28判断结果为是时,则执行步骤S29,当实际校验值与验证校验值相同时,擦除需更新的第一控制器13的应用程序区132内的第一应用程序数据,并将对应的备份储存区133的更新数据移动至已擦除的应用程序区132,或擦除需更新的第二控制器14的应用程序区142内的第二应用程序数据,并将对应的备份储存区143的更新数据移动至已擦除的应用程序区142,且于更新完成后,已进行更新的第一控制器13或第二控制器14使用对应的应用程序区(132或142)的更新数据进行运行。其中,如从步骤S23依序执行步骤S24、S25、S28至步骤S29,则步骤S29中,擦除接收更新命令的第一控制器13的应用程序区132内的第一应用程序数据,并将备份储存区133的更新数据移动至应用程序区132,且于更新完成后,接收更新命令的第一控制器13使用应用程序区132的更新数据进行运行。此外,如从步骤S23依序执行步骤S261、S271、S28至步骤S29,则步骤S29中,擦除非接收更新命令但接收更新数据的第一控制器13的应用程序区132内的第一应用程序数据,并将接收更新数据的第一控制器13的备份储存区133的更新数据移动至应用程序区132,且于更新完成后,接收更新数据的第一控制器13使用应用程序区132的更新数据进行运行。更甚者,如从步骤S23依序执行步骤S262、S272、S28至步骤S29,或从步骤S23依序执行步骤S262’、S272’、S28至步骤S29,则步骤S29中,擦除需接收更新数据的第二控制器14的应用程序区142内的第二应用程序数据,并将备份储存区143的更新数据移动至应用程序区142,且在更新完成后,需接收更新数据的第二控制器14使用应用程序区142的更新数据进行运行。当步骤S28判断结果为否时,则重新执行步骤S21。
请参阅图5A、5B及图6,其中图5A及5B为本申请第三较佳实施例的应用程序的更新方法流程图,图6为应用于图5A及5B所示的更新方法的电源模块的电路方块示意图。如图所示,本实施例的电源模块12可与上位机系统11相互通信,而上位机系统11亦可对电源模块12进行控制,例如传送更新命令、控制命令、更新数据或校验验证值等至电源模块12。于本实施例中,上位机系统11与电源模块12更可为但不限为利用电源管理总线(PMbus)而彼此相互通信。
电源模块12包含副边电路130、原边电路140、通信控制器15、第一控制器13以及第二控制器14。通信控制器15用以与上位机系统11相互通信,此外通信控制器15包含更新加载区151、应用程序区152以及备份储存区153。更新加载区151用以接收上位机系统11传送的更新命令以及更新数据。应用程序区152用以存放通信应用程序数据,其中当电源模块12正常工作或从掉电状态变成重新上电时,通信控制器15使用通信应用程序数据进行运行。
第一控制器13可为但不限为副边控制器,用以控制副边电路130的运行,且与通信控制器15相互通信,此外,第一控制器13包含更新加载区131、应用程序区132及备份储存区133。更新加载区131用以接收通信控制器15的更新加载区151传送的更新数据。应用程序区132用以存放第一应用程序数据,其中当电源模块12正常工作或从掉电状态变成重新上电时,第一控制器13依据第一应用程序数据而进行对应的运行。第二控制器14可为但不限为原边控制器,用以控制原边电路140的运行,且第二控制器14更可与通信控制器15相互通信,此外,第二控制器14包含更新加载区141、应用程序区142及备份储存区143。更新加载区141用以接收通信控制器15传送的更新数据。应用程序区142用以存放第二应用程序数据,其中当电源模块12正常工作或重新上电时,第二控制器14依据第二应用程序数据而进行对应的运行。
请继续参阅图5A及5B,本申请第三较佳实施例的应用程序的更新方法系包括以下步骤:首先,如步骤S31所示,当电源模块12正常工作或从掉电状态变成重新上电时,第一控制器13执行第一控制器13的应用程序区132,以使用对应的第一应用程序数据进行运行,第二控制器14则执行第二控制器14的应用程序区142,以使用对应的第二应用程序数据进行运行,通信控制器15则执行通信控制器15的应用程序区152,以使用通信应用程序数据进行运行。接着,执行步骤S32,当通信控制器15接收到上位机系统11传送的更新命令时便解析更新命令,以从更新命令判断出更新通信控制器15、第一控制器13或第二控制器14,且依据判断结果产生可反应出通信控制器15、第一控制器13或第二控制器14需进行更新的标志,而通信控制器15由应用程序区152跳转至更新加载区151。其中在步骤S32中,标志可为但不限为存入通信控制器15的更新加载区151、应用程序区152或备份储存区153的特定地址。然后执行步骤S33,通信控制器15的更新加载区151在接收到上位机系统11传送的更新数据时,读取标志来确认更新数据提供给通信控制器15、第一控制器13或第二控制器14。当步骤S33的确认结果为更新数据提供给通信控制器15时,则执行步骤S34,通信控制器15的更新加载区151将更新数据写入通信控制器15的备份储存区153,并将备份储存区153的原始数据覆盖。当步骤S34执行完后,再执行步骤S35,在更新数据接收完毕后,通信控制器15的更新加载区151接收上位机系统11传送的验证校验值,通信控制器15的更新加载区151读取储存于备份储存区153的更新数据,并依据备份储存区153的更新数据计算出实际校验值。当步骤S35执行完后,再执行步骤S38,比较实际校验值与验证校验值是否相同。其中实际校验值与验证校验值分别皆可为但不限为循环冗余校验值。
另外,当步骤S33的确认结果为更新数据提供给第一控制器13或第二控制器14时,执行步骤S36,通信控制器15发送跳转命令至需接收更新数据的第一控制器13或第二控制器14,使得需接收更新数据的第一控制器13或第二控制器14从应用程序区(132或142)跳转至更新加载区(131或141),且通信控制器15的更新加载区151将从上位机系统11所接收到的更新数据传送至需接收更新数据的第一控制器13或需接收更新数据的第二控制器14的更新加载区(131或141),使需接收更新数据的第一控制器13或第二控制器14的更新加载区(131或141)将所接收到的更新数据写入需接收更新数据的第一控制器13或第二控制器14的备份储存区(133或143),并将备份储存区(133或143)的原始数据覆盖。当步骤S36执行后,再执行步骤S37,在该更新数据接收完毕后,通信控制器15的更新加载区151接收上位机系统11传送的验证校验值,且在更新数据发送完成后,通信控制器15的更新加载区151将验证校验值传送至需接收更新数据的第一控制器13或接收更新数据的第二控制器14的更新加载区(131或141),且需接收更新数据的第一控制器13或接收更新数据的第二控制器14的更新加载区(131或141)读取储存于接收更新数据的第一控制器13或接收更新数据的第二控制器14的备份储存区(133或143)的更新数据,并依据接收更新数据的备份储存区(133或143)的更新数据计算出实际校验值。当步骤S37执行完后,再执行步骤S38。
另外,不论是从步骤S33依序执行步骤S34、S35至步骤S38或是从步骤S33依序执行步骤S36、S37至步骤S38,只要步骤S38判断结果为是时,则执行步骤S39,当实际校验值与验证校验值相同时,擦除需更新的通信控制器15的应用程序区152内的通信应用程序数据,并将对应的备份储存区153的更新数据移动至已擦除的应用程序区152,或擦除需更新的第一控制器13的应用程序区132内的第一应用程序数据,并将对应的备份储存区133的更新数据移动至已擦除的应用程序区132,或擦除需更新的第二控制器14的应用程序区142内的第二应用程序数据,并将对应的备份储存区143的更新数据移动至已擦除的应用程序区142,且于更新完成后,已进行更新的通信控制器15、第一控制器13或第二控制器14使用对应的应用程序区(152、132或142)的更新数据进行运行。其中,如从步骤S33依序执行步骤S34、S35、S38至步骤S39,则步骤S39中,擦除通信控制器15的应用程序区152内的通信应用程序数据,并将备份储存区153的更新数据移动至应用程序区152,且在更新完成后,通信控制器15使用应用程序区152的更新数据进行运行。此外,如从步骤S33依序执行步骤S36、S37、S38至步骤S39,则步骤S39中,擦除接收更新数据的第一控制器13或第二控制器14所对应的应用程序区(132或142)内的第一应用程序数据或第二应用程序数据,并将接收更新数据的第一控制器13或第二控制器14所对应的备份储存区(133或143)的更新数据移动至对应的应用程序区(132或142),且在更新完成后,接收更新数据的第一控制器13或第二控制器14使用对应的应用程序区(132或142)的更新数据进行运行。当步骤S38判断结果为否时,则重新执行步骤S31。
在上述实施例中,电源模块12的第一控制器13的数目以及第二控制器14的数目不仅限于如图6所示为一个,当副边电路130及原边电路140的个数分别为多个时,第一控制器13的数目以及第二控制器14的数目亦分别为多个,可以同时更新多个第一控制器13中应用程序区的原始数据,或者同时更新多个第二控制器14中应用程序区中的原始数据,例如图7所例示,当副边电路130及原边电路140的个数分别为两个时,电源模块12改为包含两个第一控制器13及两个第二控制器14,然电源模块12亦可具有三个以上的第一控制器13及三个以上的第二控制器14。当然,本申请图5A及5B所示的更新方法亦可应用于图7所示的电源模块12,故于此不再赘述。
于上述实施例中,通信控制器15可包含第一存储器,第一存储器包含通信控制器15的更新加载区151及应用程序区152。当然,于其它实施例中,通信控制器15的第一存储器还可包含通信控制器15的备份储存区153。另外,第一存储器可为但不限于闪存。
又于一些实施例中,通信控制器15除了包含第一存储器外,更可包含外接的第二存储器,以利用第二存储器作为通信控制器15的备份储存区153。其中第二存储器可为但不限为电可擦写只读存储器、铁电随机存取内存、随机存取内存或闪存。
请参阅图8A、8B、8C及图9,其中图8A、8B及8C为本申请第四较佳实施例的应用程序的更新方法流程图,图9为应用于图8A、8B及8C所示的更新方法的电源模块的电路方块示意图。如图所示,本实施例的电源模块12包含副边电路130、原边电路140、第一控制器13、第二控制器14以及通信控制器15,其中第一控制器13、第二控制器14及通信控制器15的结构与作动皆分别相似于第6图所示的第一控制器13、第二控制器14及通信控制器15,故于此仅以相同的标号代表结构及功能相似而不再赘述。惟相较于第6图所示的实施例,本实施例的通信控制器15改为仅分别与第一控制器13及上位机系统11相互通信,而第一控制器13则除了与通信控制器15相互通信外,更与第二控制器14相互通信。
请继续参阅图8A、8B及8C,本申请第四较佳实施例的应用程序的更新方法系包括以下步骤:首先,如步骤S41所示,当电源模块12正常工作或从掉电状态变成重新上电时,第一控制器13使用第一控制器13的应用程序区132中对应的第一应用程序数据进行运行,第二控制器14则使用第二控制器14的应用程序区142中对应的第二应用程序数据进行运行,通信控制器15则使用通信控制器15的应用程序区152中的通信应用程序数据进行运行。接着,执行步骤S42,于上位机系统11传送更新命令而欲使电源模块12更新时,通信控制器15于接收到上位机系统11传送的更新命令时便解析更新命令,以从更新命令判断出更新通信控制器15、第一控制器13或第二控制器14,且依据判断结果产生可反应出通信控制器15、第一控制器13或第二控制器14需进行更新的标志,而通信控制器15再从应用程序区152跳转至更新加载区151。其中在步骤S42中,标志可为但不限为存入通信控制器15的更新加载区151、应用程序区152或备份储存区153的特定地址。然后执行步骤S43,通信控制器15的更新加载区151在接收到上位机系统11传送的更新数据后,读取标志来确认更新数据提供给通信控制器15、第一控制器13或第二控制器14。当步骤S43的确认结果为更新数据提供给通信控制器15时,则执行步骤S44,通信控制器15的更新加载区151将更新数据写入通信控制器15的备份储存区153并将备份储存区153中的原始数据覆盖。当步骤S44执行完后,再执行步骤S45,在上位机系统11所传送的更新数据发送完成后,亦即,通信控制器15接收更新数据完毕后,上位机系统11再传送验证校验值给通信控制器15的更新加载区151,通信控制器15的更新加载区151读取储存于备份储存区153的更新数据,并依据备份储存区153的更新数据计算出实际校验值。当步骤S45执行完后,再执行步骤S48,比较实际校验值与验证校验值是否相同。其中实际校验值与验证校验值分别皆可为但不限为循环冗余校验值。
另外,当步骤S43的确认结果为更新数据提供给第一控制器13时,执行步骤S461,通信控制器15发送跳转命令至第一控制器13,使得第一控制器13从应用程序区132跳转至更新加载区131,且通信控制器15的更新加载区151将从上位机系统11所接收到的更新数据传送至第一控制器13的更新加载区131,使更新加载区131将所接收到的更新数据写入第一控制器13的备份储存区133并将备份储存区133中的原始数据覆盖。当步骤S461执行完后,再执行步骤S471,在上位机系统11所传送的更新数据发送完成后,亦即,通信控制器15接收更新数据完毕后,上位机系统11再传送验证校验值给使通信控制器15的更新加载区151,通信控制器15将验证校验值传送至第一控制器13的更新加载区131,且第一控制器13的更新加载区131读取储存于备份储存区133的更新数据,并依据备份储存区133的更新数据计算出实际校验值。当步骤S471执行完后,再执行步骤S48。
此外,当步骤S43的确认结果为更新数据系提供给第二控制器14时,执行步骤S462,通信控制器15经由第一控制器13发送跳转命令至第二控制器14,使得第二控制器14从应用程序区142跳转至更新加载区141,其中第一控制器13与第二控制器14是对应的,且通信控制器15的更新加载区151从上位机系统11所接收到的更新数据经由与需接收该更新数据的该第二控制器相互通信的第一控制器13的更新加载区131传送至第二控制器14的更新加载区141,使第二控制器14的更新加载区141将所接收到的更新数据写入第二控制器14的备份储存区143并将备份储存区143中的原始数据覆盖。当步骤S462执行完后,再执行步骤S472,在上位机系统11所传送的更新数据发送完成后,上位机系统11再传送验证校验值给使通信控制器15的更新加载区151,通信控制器15将验证校验值经由与需接收该更新数据的该第二控制器相互通信的第一控制器13的更新加载区131传送至第二控制器14的更新加载区141,且第二控制器14的更新加载区141读取储存于第二控制器14的备份储存区143的更新数据,并依据备份储存区143的更新数据计算出实际校验值。当步骤S472执行完后,再执行步骤S48。
另外,不论是从步骤S43依序执行步骤S44、S45至步骤S48,或是从步骤S43依序执行步骤S461、S471至步骤S48或是从步骤S43依序执行步骤S462、S472至步骤S48,只要步骤S48判断结果为是时,则执行步骤S49,当实际校验值与验证校验值相同时,擦除需更新的通信控制器15的应用程序区152内的通信应用程序数据,并将对应的备份储存区153的更新数据移动至已擦除的应用程序区152,或擦除需更新的第一控制器13的应用程序区132内的第一应用程序数据,并将对应的备份储存区133的更新数据移动至已擦除的应用程序区132,或擦除需更新的第二控制器14的应用程序区142内的第二应用程序数据,并将对应的备份储存区143的更新数据移动至已擦除的应用程序区142,且于更新完成后,已进行更新的通信控制器15、第一控制器13或第二控制器14使用对应的应用程序区(152、132或142)的更新数据进行运行。其中,如从步骤S43依序执行步骤S44、S45、S48至步骤S49,则步骤S49中,擦除通信控制器15的应用程序区152内的通信应用程序数据,并将备份储存区153的更新数据移动至应用程序区152,且于更新完成后,通信控制器15使用应用程序区152的更新数据进行运行。此外,如从步骤S43依序执行步骤S461、S471、S48至步骤S49,则步骤S49中,擦除第一控制器13的应用程序区132内的第一应用程序数据,并将备份储存区133的更新数据移动至应用程序区132,且于更新完成后,第一控制器13使用应用程序区132的更新数据进行运行。另外,如从步骤S43依序执行步骤S462、S472、S48至步骤S49,则步骤S49中,擦除第二控制器14的应用程序区142内的第二应用程序数据,并将备份储存区143的更新数据移动至应用程序区142,且于更新完成后,第二控制器14使用应用程序区142的更新数据进行运行。当步骤S48判断结果为否时,则重新执行步骤S41。
于上述实施例中,电源模块12的第一控制器13的数目以及第二控制器14的数目不仅限于仅包含一个,更可包含多个第一控制器13及多个第二控制器14,如图10所例示的电源模块12具有两个第一控制器13及两个第二控制器14,但并非用以限制本申请,电源模块12亦可具有三个以上的第一控制器13及三个以上的第二控制器14。其中,第一控制器13的个数和第二控制器14的个数可为但不限为相等,且每一第一控制器13与通信控制器15相互通信,每一第二控制器14与对应的第一控制器13相互通信。此外,本申请的应用程序的更新方法可以同时更新多个第二控制器14中应用程序区中的原始数据。当然,本申请图8A、8B及8C所示的更新方法亦可应用于图10所示的电源模块12,故于此不再赘述。
综上所述,本申请的应用程序的更新方法如果于更新过程中发生问题,例如用户系统与电源模块的间配合有误或掉电的情况,而使得写入的更新数据不完整时,由于本申请的更新方法系先将更新数据储存于备份储存区,原始的第一应用程序数据依然存放于第一控制器的应用程序区中,原始的第二应用程序数据依然存放于第二控制器的应用程序区中,换言的,即原始的第一应用程序数据及第二应用程序数据并未被擦除,并不像习知更新方法须先将电源控制器中的应用程序的原始数据进行擦除才进行更新,故应用本申请的更新方法的电源模块在重新上电或是因更新不完全而须重新进行更新时,由于第一控制器及第二控制器依然可以分别使用原始的第一应用程序数据及第二应用程序数据运行,故电源模块仍可顺利运行或者再次进行更新,使得整体的效能提升。
Claims (30)
1.一种应用程序的更新方法,适用于一电源模块,其中该电源模块包含一第一控制器以及一第二控制器,该第一控制器分别与该第二控制器以及一上位机系统相互通信,且该第一控制器以及该第二控制器更各自包含一更新加载区、一应用程序区及一备份储存区,该第一控制器的该应用程序区用以存放一第一应用程序数据,该第二控制器的该应用程序区用以存放一第二应用程序数据,该更新方法包含步骤:
(a)当该电源模块正常工作或重新上电时,该第一控制器使用该第一应用程序数据进行运作,该第二控制器使用该第二应用程序数据进行运作;
(b)当该第一控制器接收到该上位机系统传送的一更新命令时,便解析该更新命令,并从该更新命令判断出更新该第一控制器或该第二控制器,且依据判断结果产生一标志,而后该第一控制器再从该应用程序区跳转至该更新加载区;
(c)该第一控制器的该更新加载区在接收到该上位机系统传送的一更新数据后,读取该标志来确认该更新数据提供给该第一控制器或该第二控制器;
(d)当确认该更新数据提供给该第一控制器时,该第一控制器的该更新加载区将该更新数据写入该第一控制器的该备份储存区;
(e)在该更新数据接收完毕后,该第一控制器再接收该上位机系统传送的一验证校验值,该第一控制器的该更新加载区读取储存于该备份储存区的该更新数据并计算出一实际校验值;
(f)当确认该更新数据提供给该第二控制器时,该第一控制器发送一跳转命令至该第二控制器,使得该第二控制器从该应用程序区跳转至该更新加载区,且该第一控制器的该更新加载区将该更新数据传送至该第二控制器的该更新加载区,而该第二控制器的该更新加载区将所接收到的该更新数据写入该第二控制器的该备份储存区;
(g)在该更新数据接收完毕后,该第一控制器再接收该上位机系统传送的该验证校验值且在该更新数据发送完成后,该第一控制器的该更新加载区将该验证校验值传送至该第二控制器的该更新加载区,该第二控制器的该更新加载区读取储存在该备份储存区的该更新数据并计算出该实际校验值;
(h)比较该实际校验值与该验证校验值是否相同;以及
(i)当该实际校验值与该验证校验值相同时,擦除需更新的该第一控制器或该第二控制器所对应的该应用程序区内的该第一应用程序数据或该第二应用程序数据,并将储存于对应的该备份储存区的该更新数据移动至已擦除的该应用程序区,且在更新完成后,已进行更新的该第一控制器或该第二控制器使用对应的该应用程序区的该更新数据进行运作;
其中,当步骤(a)执行完后执行步骤(b),当步骤(b)执行完后执行步骤(c),当步骤(c)确认该更新数据提供给该第一控制器时执行步骤(d),当步骤(d)执行完后执行步骤(e),当步骤(e)执行完后执行步骤(h),而当步骤(c)确认该更新数据提供给该第二控制器则执行步骤(f),当步骤(f)执行完后执行步骤(g),当步骤(g)执行完后执行步骤(h),而当执行步骤(h)且判断结果为是时,执行步骤(i),当步骤(h)判断结果为否时,执行步骤(a)。
2.如权利要求1所述的应用程序的更新方法,其中该电源模块包含一副边电路及一原边电路,且该第一控制器为一副边控制器,用以控制该副边电路,该第二控制器为一原边控制器,用以控制该原边电路。
3.如权利要求1所述的应用程序的更新方法,其中该电源模块包含一原边电路,且该第一控制器为一通信控制器,用以分别与该上位机系统及该第二控制器相互通信,该第二控制器为一原边控制器,用以控制该原边电路。
4.一种应用程序的更新方法,适用于一电源模块,其中该电源模块包含多个第一控制器以及多个第二控制器,该多个第一控制器中的一个该第一控制器分别与其它该第一控制器、该多个第二控制器中的一个该第二控制器以及一上位机系统相互通信,未与该上位机系统相互通信的该第一控制器与相对应的该第二控制器相互通信,且每一该第一控制器以及每一该第二控制器更各自包含一更新加载区、一应用程序区及一备份储存区,每一该第一控制器的该应用程序区用以存放一第一应用程序数据,每一该第二控制器的该应用程序区用以存放一第二应用程序数据,该更新方法包含步骤:
(a)当该电源模块正常工作或重新上电时,每一该第一控制器使用对应的该第一应用程序数据进行运作,每一该第二控制器使用对应的该第二应用程序数据进行运作;
(b)当与该上位机系统相互通信的该第一控制器接收到该上位机系统传送的一更新命令时,便解析该更新命令,并从该更新命令判断出更新接收该更新命令的该第一控制器或非接收该更新命令的该第一控制器或多个该第二控制器,且依据判断结果产生一标志,而后接收该更新命令的该第一控制器再从该应用程序区跳转至该更新加载区;
(c)接收该更新命令的该第一控制器的该更新加载区在接收到该上位机系统传送的一更新数据后,读取该标志来确认该更新数据提供给接收该更新命令的该第一控制器或非接收该更新命令的该第一控制器或该第二控制器;
(d)当确认该更新数据提供给接收该更新命令的该第一控制器时,接收该更新命令的该第一控制器的更新加载区将该更新数据写入接收该更新命令的该第一控制器的该备份储存区;
(e)在更新数据接收完毕后接收该更新命令的该第一控制器再接收该上位机系统传送的一验证校验值,接收该更新命令的该第一控制器的该更新加载区读取储存于该备份储存区的该更新数据并计算出一实际校验值;
(f1)当确认该更新数据提供给非接收该更新命令的该第一控制器时,接收该更新命令的该第一控制器发送一跳转命令至需接收该更新数据的该第一控制器,使得需接收该更新数据的该第一控制器从该应用程序区跳转至该更新加载区,且接收该更新命令的该第一控制器的该更新加载区将该更新数据传送至需接收该更新数据的该第一控制器的该更新加载区,使需接收该更新数据的该第一控制器的该更新加载区将所接收到的该更新数据写入需接收该更新数据的该第一控制器的该备份储存区;
(g1)在该更新数据接收完毕后,接收该更新命令的该第一控制器再接收该上位机 系统传送的该验证校验值,且在该更新数据发送完成后接收该更新命令的该第一控制器的该更新加载区将该验证校验值传送至需接收该更新数据的该第一控制器的该更新加载区,需接收该更新数据的该第一控制器的该更新加载区读取储存在该备份储存区的该更新数据并计算出该实际校验值;
(f2)当确认该更新数据提供给与接收该更新命令的该第一控制器相互通信的该第二控制器时,接收该更新命令的该第一控制器发送该跳转命令至需接收该更新数据的该第二控制器,使得需接收该更新数据的该第二控制器从该应用程序区跳转至该更新加载区,且需接收该更新数据的该第二控制器的该更新加载区接收来自接收该更新命令的该第一控制器的该更新加载区的该更新数据,而需接收该更新数据的该第二控制器的该更新加载区将所接收到的该更新数据写入需接收该更新数据的该第二控制器的该备份储存区;
(g2)在该更新数据接收完毕后,接收该更新命令的该第一控制器再接收该上位机系统传送的该验证校验值,且在更新数据发送完成后,接收该更新命令的该第一控制器的该更新加载区将该验证校验值传送至需要接收更新数据的该第二控制器的该更新加载区,需接收该更新数据的该第二控制器的该更新加载区读取储存在该备份储存区的该更新数据并计算出该实际校验值;
(f3)当确认该更新数据提供给与非接收该更新命令的该第一控制器所相互通信的该第二控制器时,接收该更新命令的该第一控制器经由与需接收该更新数据的该第二控制器相互通信的该第一控制器将该跳转命令传送至需接收该更新数据的该第二控制器,使得需接收该更新数据的该第二控制器从该应用程序区跳转至该更新加载区,且需接收该更新数据的该第二控制器的该更新加载区经由非接收该更新命令的该第一控制器接收来自接收该更新命令的该第一控制器的该更新加载区的该更新数据,而需接收该更新数据的该第二控制器的该更新加载区将所接收到的该更新数据写入需接收该更新数据的该第二控制器的该备份储存区;
(g3)在该更新数据接收完毕后,接收该更新命令的该第一控制器再接收该上位机系统传送的该验证校验值,且在更新数据发送完成后,接收该更新命令的该第一控制器的该更新加载区将该验证校验值经由与需接收该更新数据的该第二控制器相互通信的该第一控制器传送至需接收该更新数据的该第二控制器的该更新加载区,需接收该更新数据的该第二控制器的该更新加载区读取储存在该备份储存区的该更新数据并计算出该实际校验值;
(h)比较该实际校验值与该验证校验值是否相同;以及
(i)当该实际校验值与该验证校验值相同时,擦除需更新的该第一控制器或该第二控制器所对应的该应用程序区内的该第一应用程序数据或该第二应用程序数据,并将储存于对应的该备份储存区的该更新数据移动至已擦除的该应用程序区,且在更新完成后,已进行更新的该第一控制器、或该第二控制器使用对应的该应用程序区的该更新数据进行运作;
其中,当步骤(a)执行完后执行步骤(b),当步骤(b)执行完后执行步骤(c),当步骤(c)确认该更新数据提供给接收该更新命令的该第一控制器时执行步骤(d),当步骤(d)执行完后执行步骤(e),当步骤(e)执行完后执行步骤(h),而当步骤(c)确认该更新数据提供给非接收该更新命令的该第一控制器时则执行步骤(f1),当步骤(f1)执行完后执行步骤(g1),当步骤(g1)执行完后执行步骤(h),而当步骤(c)确认该更新数据提供给与接收该更新命令的该第一控制器相互通信的该第二控制器时则执行步骤(f2),当步骤(f2)执行完后执行步骤(g2),当步骤(g2)执行完后执行步骤(h),而当步骤(c)确认该更新数据提供给非接收该更新命令的该第一控制器所相互通信的该第二控制器时则执行步骤(f3),当步骤(f3)执行完后执行步骤(g3),当步骤(g3)执行完后执行步骤(h),而当执行步骤(h)且判断结果为是时,执行步骤(i),当步骤(h)判断结果为否时,执行步骤(a)。
5.如权利要求4所述的应用程序的更新方法,其中该电源模块包含多个副边电路及多个原边电路,且多个该第一控制器皆分别为一副边控制器,用以分别控制对应的该副边电路,多个该第二控制器皆分别为一原边控制器,用以分别控制对应的该原边电路。
6.如权利要求4所述的应用程序的更新方法,其中多个该第一控制器的个数及多个该第二控制器的个数相同,且每一该第一控制器对应于多个该第二控制器中的其中之一。
7.如权利要求4所述的应用程序的更新方法,其中该标志存入接收该更新命令的该第一控制器的该更新加载区、该应用程序区或该备份储存区的特定地址。
8.如权利要求4所述的应用程序的更新方法,其中该第一控制器包含一第一存储器,该第一存储器包含该第一控制器的该更新加载区及该应用程序区。
9.如权利要求8所述的应用程序的更新方法,其中该第一存储器还包含该第一控制器的该备份储存区。
10.如权利要求8所述的应用程序的更新方法,其中该第一控制器的该第一存储器为一闪存。
11.如权利要求8所述的应用程序的更新方法,其中该第一控制器包含外接的一第二存储器,该第二存储器包含该第一控制器的该备份储存区。
12.如权利要求11所述的应用程序的更新方法,其中该第二存储器为电可擦写只读存储器、铁电随机存取内存、随机存取内存或闪存。
13.如权利要求4所述的应用程序的更新方法,其中该第二控制器包含一第一存储器,该第一存储器包含该第二控制器的该更新加载区及该应用程序区。
14.如权利要求13所述的应用程序的更新方法,其中该第一存储器还包含该第二控制器的该备份储存区。
15.如权利要求13所述的应用程序的更新方法,其中该第二控制器的该第一存储器为一闪存。
16.如权利要求13所述的应用程序的更新方法,其中该第二控制器系包含外接的一第二存储器,该第二存储器包含该第二控制器的该备份储存区。
17.如权利要求16所述的应用程序的更新方法,其中该第二存储器为电可擦写只读存储器、铁电随机存取内存、随机存取内存或闪存。
18.如权利要求4所述的应用程序的更新方法,其中该实际校验值以及该验证校验值皆为一循环冗余校验值。
19.如权利要求4所述的应用程序的更新方法,其中该第一控制器及该第二控制器之间的相互通信利用UART自定义协议或SPI自定义协议。
20.如权利要求4所述的应用程序的更新方法,其中多个该第一控制器的间相互通信,以相互传送该更新数据和该验证校验值。
21.一种应用程序的更新方法,适用于一电源模块,其中该电源模块包含一通信控制器、至少一第一控制器及至少一第二控制器,该通信控制器分别与每一该第一控制器及每一该第二控制器以及一上位机系统相互通信,且该通信控制器、每一该第一控制器以及每一该第二控制器更各自包含一更新加载区、一应用程序区及一备份储存区,该通信控制器的该应用程序区用以存放一通信应用程序数据,每一该第一控制器的该应用程序区用以存放一第一应用程序数据,每一该第二控制器的该应用程序区用以存放一第二应用程序数据,该更新方法包含步骤:
(a)当该电源模块正常工作或重新上电时,每一该第一控制器使用对应的该第一应用程序数据进行运作,每一该第二控制器使用对应的该第二应用程序数据进行运作,该通信控制器使用该通信应用程序数据进行运作;
(b)当该通信控制器接收到该上位机系统传送的一更新命令时,该通信控制器解析该更新命令,并从该更新命令判断出更新该通信控制器、至少一该第一控制器或至少一该第二控制器,且依据判断结果产生一标志,而后该通信控制器再从该应用程序区跳转至该更新加载区;
(c)该通信控制器的该更新加载区在接收到该上位机系统传送的一更新数据时,读取该标志来确认该更新数据提供给该通信控制器、至少一该第一控制器或至少一该第二控制器;
(d)当确认该更新数据提供给该通信控制器时,该通信控制器的该更新加载区将该更新数据写入该通信控制器的该备份储存区;
(e)在该更新数据接收完毕后,该通信控制器再接收该上位机系统传送的一验证校验值,该通信控制器的该更新加载区读取储存于该备份储存区的该更新数据并计算出一实际校验值;
(f)当确认该更新数据提供给至少一该第一控制器或至少一该第二控制器时,该通信控制器发送一跳转命令至需接收该更新数据的该第一控制器或该第二控制器,使得需接收该更新数据的该第一控制器或该第二控制器从该应用程序区跳转至该更新加载区,且该通信控制器的该更新加载区将该更新数据传送至需接收该更新数据的该第一控制器或该第二控制器的该更新加载区,而需接收该更新数据的该第一控制器或该第二控制器的该更新加载区将所接收到的该更新数据写入需接收该更新数据的该第一控制器或该第二控制器的该备份储存区;
(g)在该更新数据接收完毕后,该通信控制器再接收该上位机系统传送的该验证校验值,且在该更新数据发送完成后,该通信控制器的该更新加载区将该验证校验值传送至需接收该更新数据的该第一控制器或该第二控制器的该更新加载区,需接收该更新数据的该第一控制器或该第二控制器的该更新加载区读取储存在需接收该更新数据的该第一控制器或该第二控制器的该备份储存区的该更新数据并计算出该实际校验值;
(h)比较该实际校验值与该验证校验值是否相同;以及
(i)当该实际校验值与该验证校验值相同时,擦除需更新的该通信控制器、需更新的该第一控制器或需更新的该第二控制器所对应的该应用程序区内的该通信应用程序数据、该第一应用程序数据或该第二应用程序数据,并将储存于对应的该备份储存区的该更新数据移动至已擦除的该应用程序区,且于更新完成后,已进行更新的该通信控制器、该第一控制器或该第二控制器使用对应的该应用程序区的该更新数据进行运作;
其中,当步骤(a)执行完后执行步骤(b),当步骤(b)执行完后执行步骤(c),当步骤(c)确认该更新数据提供给该通信控制器时执行步骤(d),当步骤(d)执行完后执行步骤(e),当步骤(e)执行完后执行步骤(h),而当步骤(c)确认该更新数据提供给至少一该第一控制器或至少一该第二控制器时则执行步骤(f),当步骤(f)执行完后执行步骤(g),当步骤(g)执行完后执行步骤(h),而当执行步骤(h)且判断结果为是时,执行步骤(i),当步骤(h)判断结果为否时,执行步骤(a)。
22.如权利要求21所述的应用程序的更新方法,其中该第一控制器的个数和该第二控制器的个数相等且均为多个时,该通信控制器同时更新多个该第一控制器或同时更新多个该第二控制器。
23.一种应用程序的更新方法,适用于一电源模块,其中该电源模块包含一通信控制器、至少一第一控制器及至少一第二控制器,该通信控制器分别与每一该第一控制器以及一上位机系统相互通信,而每一该第一控制器分别与对应的该至少一第二控制器相互通信,且该通信控制器、每一该第一控制器以及每一该第二控制器更各自包含一更新加载区、一应用程序区及一备份储存区,该通信控制器的该应用程序区用以存放一通信应用程序数据,每一该第一控制器的该应用程序区用以存放一第一应用程序数据,每一该第二控制器的该应用程序区用以存放一第二应用程序数据,该更新方法包含步骤:
(a)当该电源模块正常工作或重新上电时,每一该第一控制器使用对应的该第一应用程序数据进行运作,每一该第二控制器使用对应的该第二应用程序数据进行运作,该通信控制器使用该通信应用程序数据进行运作;
(b)当该通信控制器接收到该上位机系统传送的一更新命令时,该通信控制器解析该更新命令,并从该更新命令判断出更新该通信控制器、至少一该第一控制器或至少一该第二控制器,且依据判断结果产生一标志,而后该通信控制器再从该应用程序区跳转至该更新加载区;
(c)该通信控制器的该更新加载区在接收到该上位机系统传送的一更新数据后,读取该标志来确认该更新数据提供给该通信控制器、至少一该第一控制器或至少一该第二控制器;
(d)当确认该更新数据提供给该通信控制器时,该通信控制器的该更新加载区将该更新数据写入该通信控制器的该备份储存区;
(e)在该更新数据接收完毕后,该通信控制器再接收到该上位机系统传送的一验证校验值时,该通信控制器的该更新加载区读取储存于该备份储存区的该更新数据并计算出一实际校验值;
(f1)当确认该更新数据提供给至少一该第一控制器时,该通信控制器发送一跳转命令至需接收该更新数据的该第一控制器,使得需接收该更新数据的该第一控制器从该应用程序区跳转至该更新加载区,且该通信控制器的该更新加载区将该更新数据传送至需接收该更新数据的该第一控制器的该更新加载区,使需接收该更新数据的该第一控制器的该更新加载区将所接收到的该更新数据写入需接收该更新数据的该第一控制器的该备份储存区;
(g1)在该更新数据接收完毕后,该通信控制器再接收该上位机 系统传送的该验证校验值,且在该更新数据发送完成后,该通信控制器的该更新加载区将该验证校验值传送至需接收该更新数据的该第一控制器的该更新加载区,需接收该更新数据的该第一控制器的该更新加载区读取储存在需接收该更新数据的该第一控制器的该备份储存区的该更新数据并计算出该实际校验值;
(f2)当确认该更新数据提供给至少一该第二控制器时,该通信控制器经由对应的该第一控制器发送一跳转命令至需接收该更新数据的该第二控制器,使得需接收该更新数据的该第二控制器从该应用程序区跳转至该更新加载区,且该通信控制器的该更新加载区将该更新数据经由与需接收该更新数据的该第二控制器相互通信的该第一控制器的该更新加载区传送至需接收该更新数据的该第二控制器的该更新加载区,需接收该更新数据的该第二控制器的该更新加载区将所接收到的该更新数据写入需接收该更新数据的该第二控制器的该备份储存区;
(g2)在该更新数据接收完毕后,该通信控制器再接收该上位系统传送的该验证校验值,且在该更新数据发送完成后,该通信控制器的该更新加载区将该验证校验值经由与需接收该更新数据的该第二控制器相互通信的该第一控制器的该更新加载区传送至需接收该更新数据的该第二控制器的该更新加载区,需接收该更新数据的该第二控制器的该更新加载区读取储存在需接收该更新数据的该第二控制器的该备份储存区的该更新数据并计算出该实际校验值;
(h)比较该实际校验值与该验证校验值是否相同;以及
(i)当该实际校验值与该验证校验值相同时,擦除需更新的该通信控制器、该第一控制器或该第二控制器所对应的该应用程序区内的该通信应用程序数据、该第一应用程序数据或该第二应用程序数据,并将储存于对应的该备份储存区的该更新数据移动至已擦除的该应用程序区,且于更新完成后,已进行更新的该通信控制器、该第一控制器或该第二控制器使用对应的该应用程序区的该更新数据进行运作;
其中,当步骤(a)执行完后执行步骤(b),当步骤(b)执行完后执行步骤(c),当步骤(c)确认该更新数据提供给该通信控制器时执行步骤(d),当步骤(d)执行完后执行步骤(e),当步骤(e)执行完后执行步骤(h),而当步骤(c)确认该更新数据提供给至少一该第一控制器时则执行步骤(f1),当步骤(f1)执行完后执行步骤(g1),当步骤(g1)执行完后执行步骤(h),而当步骤(c)确认该更新数据提供给至少一该第二控制器时则执行步骤(f2),当步骤(f2)执行完后执行步骤(g2),当步骤(g2)执行完后执行步骤(h),而当执行步骤(h)且判断结果为是时,执行步骤(i),当步骤(h)判断结果为否时,执行步骤(a)。
24.如权利要求23所述的应用程序的更新方法,其中该标志存入该通信控制器的该更新加载区、该应用程序区或该备份储存区的特定地址。
25.如权利要求23所述的应用程序的更新方法,其中该电源模块包含至少一副边电路及至少一原边电路,且至少一该第一控制器皆分别为一副边控制器,用以分别控制对应的该副边电路,至少一该第二控制器皆分别为一原边控制器,用以分别控制对应的该原边电路。
26.如权利要求23所述的应用程序的更新方法,其中该通信控制器包含一第一存储器,该第一控制器包含该通信控制器的该更新加载区及该应用程序区。
27.如权利要求26所述的应用程序的更新方法,其中该第一存储器还包含该第二控制器的该备份储存区。
28.如权利要求26所述的应用程序的更新方法,其中该通信控制器的该第一存储器为一闪存。
29.如权利要求23所述的应用程序的更新方法,其中该通信控制器系包含外接的一第二存储器,该第二存储器包含该第二控制器的该备份储存区。
30.如权利要求23所述的应用程序的更新方法,其中至少一该第一控制器的个数与至少一该第二控制器的个数相同且分别为多个,而每一该第一控制器对应于多个该第二控制器中的其中之一。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810316409.2A CN110362321B (zh) | 2018-04-10 | 2018-04-10 | 应用程序的更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810316409.2A CN110362321B (zh) | 2018-04-10 | 2018-04-10 | 应用程序的更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110362321A CN110362321A (zh) | 2019-10-22 |
CN110362321B true CN110362321B (zh) | 2022-10-11 |
Family
ID=68214060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810316409.2A Active CN110362321B (zh) | 2018-04-10 | 2018-04-10 | 应用程序的更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110362321B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104007996A (zh) * | 2014-06-16 | 2014-08-27 | 南京融教科技有限公司 | 一种分布式控制系统的可靠固件升级实现方法 |
CN104572141A (zh) * | 2013-10-10 | 2015-04-29 | 上海信耀电子有限公司 | 车用电控单元ecu的引导程序的在线更新方法 |
CN104572206A (zh) * | 2015-01-14 | 2015-04-29 | 厦门为那通信科技有限公司 | 应用程序自更新和备份恢复的方法 |
CN106874018A (zh) * | 2017-03-16 | 2017-06-20 | 武汉理工大学 | 一种电动汽车电动空调控制器软件刷新系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140282477A1 (en) * | 2013-03-15 | 2014-09-18 | 7Layer Technologies | Automatic updating of data in application programs |
-
2018
- 2018-04-10 CN CN201810316409.2A patent/CN110362321B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572141A (zh) * | 2013-10-10 | 2015-04-29 | 上海信耀电子有限公司 | 车用电控单元ecu的引导程序的在线更新方法 |
CN104007996A (zh) * | 2014-06-16 | 2014-08-27 | 南京融教科技有限公司 | 一种分布式控制系统的可靠固件升级实现方法 |
CN104572206A (zh) * | 2015-01-14 | 2015-04-29 | 厦门为那通信科技有限公司 | 应用程序自更新和备份恢复的方法 |
CN106874018A (zh) * | 2017-03-16 | 2017-06-20 | 武汉理工大学 | 一种电动汽车电动空调控制器软件刷新系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110362321A (zh) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111562933B (zh) | 一种空调升级方法以及空调系统 | |
CN103324495A (zh) | 数据中心服务器开机管理方法及系统 | |
CN111176702B (zh) | 固件升级方法、装置、计算机设备和存储介质 | |
JP2021002172A (ja) | デイジーチェーン接続システム及びシステム制御方法 | |
CN110750309B (zh) | 可远程控制电子设备的系统及方法 | |
CN112988204B (zh) | 一种无人机软件远程升级及回滚的方法 | |
CN101894054A (zh) | 具有修复毁损bios数据功能的电脑系统及其修复方法 | |
JP2007257473A (ja) | 車載制御装置 | |
US20160210136A1 (en) | Network switch system and operating method thereof | |
KR101533813B1 (ko) | 파워 릴레이 어셈블리 제어 장치 및 방법 | |
CN110362321B (zh) | 应用程序的更新方法 | |
CN113407465B (zh) | 基板管理控制器的开关配置方法、装置、计算机设备 | |
US10803001B2 (en) | Electronic device and operating method thereof | |
JP5204432B2 (ja) | 電気機器、電気機器のサービス方法 | |
CN110389871B (zh) | 一种具备系统完整性确认功能的安全计算机平台 | |
CN102520676B (zh) | 一种操作票生成方法以及相关装置 | |
KR101919670B1 (ko) | 분산형 제어 시스템용 제어 기기 | |
CN110609695A (zh) | 一种光模块的固件升级方法,系统及光模块 | |
CN111966385B (zh) | 平板探测器在线升级方法、平板探测器以及上位机 | |
CN110377332B (zh) | 安全计算机平台软件程序在线换装方法 | |
CN105426273A (zh) | 恢复物理存储单元数据的方法和服务器 | |
CN112994902A (zh) | 智能网卡及智能网卡的fpga固件更新管理方法 | |
CN102760064A (zh) | 网卡更新装置及方法 | |
KR20090065904A (ko) | 공기조화기 및 그 제어방법 | |
KR20200112137A (ko) | Plc 시스템의 펌웨어 관리 장치 및 방법과, 그 plc 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |