本申請實施例涉及計算機,特別涉及一種程序更新方法及逆變器。
背景技術:
1、微型逆變器作為光伏發電系統中的關鍵設備,通常指的是功率小于等于1000瓦、具備組件級mppt(maximum?power?point?tracking,最大功率點跟蹤)功能的逆變器,其核心組件之一便是dsp(digital?signal?processing,數字信號處理器),它負責全面控制和監測逆變器的運行狀態。
2、相關技術中,通過dsp中的固件程序控制逆變器,固件程序是內嵌在dsp中的軟件代碼,可以通過在線更新的方式進行更新。在線更新通常需要將固件更新文件發送到dsp中,dsp接收到固件更新文件后對固件程序進行更新。
3、然而,在dsp更新過程中,若固件更新文件錯誤會導致固件程序升級失敗,進而導致dsp出現宕機(停止運行)等故障,dsp的宕機會使逆變器有設備損傷的風險,降低了逆變器的工作效率。
技術實現思路
1、本申請實施例提供了一種程序更新方法及逆變器,所述技術方案如下:
2、一方面,提供了一種程序更新方法,由第一處理器執行,所述方法包括:
3、接收程序更新請求,所述程序更新請求用于請求通過程序更新文件更新所述第一處理器中存儲的固件程序,所述程序更新文件被劃分為至少兩個數據包;
4、基于所述程序更新請求接收所述程序更新文件對應的文件元信息;
5、在所述文件元信息符合第一校驗要求的情況下,接收所述程序更新文件對應的第i個數據包,所述第一校驗要求用于校驗所述文件元信息的準確性,i為正整數;
6、在所述第i個數據包符合第二校驗要求的情況下,存儲所述第i個數據包以及接收所述程序更新文件對應的第i+1個數據包,所述第二校驗要求用于校驗所述第i個數據包的包完整性;
7、在所述程序更新文件對應的所述至少兩個數據包存儲成功,且所述至少兩個數據包組成的所述程序更新文件符合第三校驗要求的情況下,基于所述程序更新文件更新所述第一處理器中存儲的所述固件程序,所述第三校驗要求用于校驗所述程序更新文件的文件完整性。
8、另一方面,提供了一種程序更新裝置,所述裝置包括:
9、接收模塊,用于接收程序更新請求,所述程序更新請求用于請求通過程序更新文件更新第一處理器中存儲的固件程序,所述程序更新文件被劃分為至少兩個數據包;基于所述程序更新請求接收所述程序更新文件對應的文件元信息;在所述文件元信息符合第一校驗要求的情況下,接收所述程序更新文件對應的第i個數據包,所述第一校驗要求用于校驗所述文件元信息的準確性,i為正整數;
10、存儲模塊,用于在所述第i個數據包符合第二校驗要求的情況下,存儲所述第i個數據包以及接收所述程序更新文件對應的第i+1個數據包,所述第二校驗要求用于校驗所述第i個數據包的包完整性;
11、更新模塊,用于在所述程序更新文件對應的所述至少兩個數據包存儲成功,且所述至少兩個數據包組成的所述程序更新文件符合第三校驗要求的情況下,基于所述程序更新文件更新所述第一處理器中存儲的所述固件程序,所述第三校驗要求用于校驗所述程序更新文件的文件完整性。
12、另一方面,提供了一種計算機設備,所述計算機設備包括處理器和存儲器,所述存儲器中存儲有至少一條指令、至少一段程序、代碼集或指令集,所述至少一條指令、所述至少一段程序、所述代碼集或指令集由所述處理器加載并執行以實現上述任一所述程序更新方法。
13、另一方面,提供了一種計算機可讀存儲介質,所述存儲介質中存儲有至少一條指令、至少一段程序、代碼集或指令集,所述至少一條指令、所述至少一段程序、所述代碼集或指令集由處理器加載并執行以實現上述任一所述的程序更新方法。
14、另一方面,提供了一種計算機程序產品或計算機程序,該計算機程序產品或計算機程序包括計算機指令,該計算機指令存儲在計算機可讀存儲介質中。計算機設備的處理器從計算機可讀存儲介質讀取該計算機指令,處理器執行該計算機指令,使得該計算機設備執行上述任一所述的程序更新方法。
15、本申請實施例提供的技術方案帶來的有益效果至少包括:
16、當第一處理器中的固件程序需要更新時,首先對程序更新文件對應的文件元信息進行準確性校驗,在文件元信息準確的情況下才接收程序更新文件,確保要接收的程序更新文件的基本信息是準確無誤的。在接收程序更新文件的過程中,一方面,將程序更新文件劃分為多個數據包并依次傳輸至第一處理器進行包完整性校驗,確保數據包完整時才會存儲該數據包并繼續接收下一個數據包,在確定某個數據包不符合完整性要求時,就不會繼續使用這個程序更新文件進行更新操作,有效防止因數據包在傳輸過程中出現丟失、損壞等情況而導致的固件程序更新失敗;另一方面,當程序更新文件對應的所有數據包都存儲成功后,會對這些數據包組成的程序更新文件進行文件完整性校驗,確定程序更新文件的完整性。通過對程序更新文件進行多輪校驗,確保最終用于更新固件程序的文件是完整且準確的,降低了在更新過程中因程序更新文件錯誤而引發的諸多故障風險,從而保障了第一處理器控制的逆變器的正常運行和工作效率。
1.一種程序更新方法,其特征在于,由第一處理器執行,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述在所述第i個數據包符合第二校驗要求的情況下,存儲所述第i個數據包,包括:
3.根據權利要求2所述的方法,其特征在于,所述第一處理器中包括應用區,所述應用區用于存儲所述固件程序;所述程序更新文件是在所述應用區上接收的文件,所述外部存儲器中包括程序備份文件;
4.根據權利要求3所述的方法,其特征在于,所述第一處理器還包括引導區,所述引導區用于存儲引導程序,所述引導程序用于初始化所述第一處理器;
5.根據權利要求4所述的方法,其特征在于,所述方法還包括:
6.根據權利要求3所述的方法,其特征在于,所述程序更新文件不符合校驗要求的情況包括以下情況中的至少一種:
7.根據權利要求2所述的方法,其特征在于,所述至少兩個數據包分別對應有數據包優先級,所述第一處理器連接有多個外部存儲器,所述多個外部存儲器分別對應有存儲器優先級;
8.根據權利要求1至7任一所述的方法,其特征在于,所述方法還包括:
9.根據權利要求1至7任一所述的方法,其特征在于,所述程序更新文件對應有多個第一校驗要求,不同的第一校驗要求用于檢驗所述文件元信息中的不同部分的準確性;
10.一種逆變器,其特征在于,包括計算機程序,所述計算機程序被處理器執行時實現如權利要求1至9任一所述的程序更新方法。