本技術(shù)涉及儲(chǔ)能系統(tǒng),特別涉及一種bms程序遠(yuǎn)程升級(jí)方法及裝置。
背景技術(shù):
1、隨著能源需求的不斷增長和可再生能源的廣泛應(yīng)用,儲(chǔ)能系統(tǒng)在電力系統(tǒng)中扮演著越來越重要的角色。電池管理系統(tǒng)(bms)是儲(chǔ)能系統(tǒng)的核心組成部分,負(fù)責(zé)電池的監(jiān)控、保護(hù)、管理和優(yōu)化。在現(xiàn)有的儲(chǔ)能bms系統(tǒng)中,由于設(shè)備分布廣泛且環(huán)境復(fù)雜,傳統(tǒng)的固件更新方法往往需要人工干預(yù),費(fèi)時(shí)費(fèi)力成本高,且存在較大的安全風(fēng)險(xiǎn)。因此,開發(fā)一種能夠?qū)崿F(xiàn)遠(yuǎn)程升級(jí)的系統(tǒng)顯得尤為重要。現(xiàn)有技術(shù)中,雖然已有多種實(shí)現(xiàn)方案,但大多數(shù)方案僅支持應(yīng)用程序的遠(yuǎn)程升級(jí),缺乏對(duì)本身的遠(yuǎn)程升級(jí)能力。
2、在當(dāng)前儲(chǔ)能系統(tǒng)中,電池管理系統(tǒng)(bms)的程序升級(jí)通常需要現(xiàn)場操作,這不僅費(fèi)時(shí)費(fèi)力,而且成本較高。此外,現(xiàn)場升級(jí)還可能受到環(huán)境條件限制,導(dǎo)致升級(jí)過程復(fù)雜且風(fēng)險(xiǎn)較大。因此,現(xiàn)有技術(shù)中存在以下主要問題:
3、(1)升級(jí)效率低下:傳統(tǒng)的bms固件升級(jí)需要人工到現(xiàn)場進(jìn)行,操作復(fù)雜,耗時(shí)較長,難以滿足大規(guī)模儲(chǔ)能系統(tǒng)的快速維護(hù)需求。
4、(2)可靠性不足:現(xiàn)場升級(jí)過程中容易受到環(huán)境干擾,可能導(dǎo)致升級(jí)失敗或系統(tǒng)損壞。
5、(3)安全性問題:傳統(tǒng)的升級(jí)方式缺乏有效的安全機(jī)制,容易受到外部環(huán)境干擾,導(dǎo)致數(shù)據(jù)被篡改,從而導(dǎo)致程序異常。
6、(4)恢復(fù)困難:一旦升級(jí)過程中出現(xiàn)問題,現(xiàn)有技術(shù)缺乏有效的備份和恢復(fù)機(jī)制,導(dǎo)致系統(tǒng)恢復(fù)困難,影響系統(tǒng)正常運(yùn)行。
7、(5)不支持自身的升級(jí):現(xiàn)有的升級(jí)方案僅支持app程序的升級(jí),并不支持bootloader程序的遠(yuǎn)程升級(jí)。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本技術(shù)實(shí)施例提供了一種bms程序遠(yuǎn)程升級(jí)方法。本技術(shù)一個(gè)或者多個(gè)實(shí)施例同時(shí)涉及一種bms程序遠(yuǎn)程升級(jí)裝置,一種計(jì)算設(shè)備,一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以及一種計(jì)算機(jī)程序,以解決現(xiàn)有技術(shù)中存在的技術(shù)缺陷。
2、根據(jù)本技術(shù)實(shí)施例的第一方面,提供了一種bms程序遠(yuǎn)程升級(jí)方法,包括:
3、電池管理系統(tǒng)bms中的bootloader程序通過無線網(wǎng)絡(luò)接收到上位機(jī)發(fā)送的包含升級(jí)標(biāo)識(shí)的升級(jí)指令后,根據(jù)所述升級(jí)指令中的升級(jí)標(biāo)識(shí)判斷是升級(jí)app程序還是bootloader程序;
4、當(dāng)判斷是升級(jí)app程序時(shí),所述bootloader程序?qū)⑺錾衔粰C(jī)通過無線網(wǎng)絡(luò)發(fā)送的用于app程序升級(jí)的新app程序數(shù)據(jù)存入app備份區(qū),并在app區(qū)內(nèi)的原app程序數(shù)據(jù)擦除后,將所述app備份區(qū)內(nèi)的新app程序數(shù)據(jù)復(fù)制至所述app區(qū),以完成app程序遠(yuǎn)程升級(jí)操作;
5、當(dāng)判斷是升級(jí)bootloader程序時(shí),所述bootloader程序?qū)⑺錾衔粰C(jī)通過無線網(wǎng)絡(luò)發(fā)送的用于bootloader程序升級(jí)的新bootloader程序數(shù)據(jù)存入bootloader備份區(qū)后,跳轉(zhuǎn)至bms的app程序,使所述app程序擦除bootloader區(qū)內(nèi)的原bootloader程序數(shù)據(jù)后,將所述bootloader備份區(qū)內(nèi)的新bootloader程序數(shù)據(jù)復(fù)制至所述bootloader區(qū),以完成bootloader程序遠(yuǎn)程升級(jí)操作。
6、優(yōu)選地,還包括:
7、獲取bms中flash存儲(chǔ)器的存儲(chǔ)空間;
8、根據(jù)所述bms中flash存儲(chǔ)器的存儲(chǔ)空間、app程序的占用空間和bootloader程序的占用空間,將所述flash存儲(chǔ)器的存儲(chǔ)空間劃分為四個(gè)分區(qū);
9、其中,所述四個(gè)分區(qū)包括:
10、用于存儲(chǔ)bms?app程序數(shù)據(jù)的app區(qū);
11、用于存儲(chǔ)用于bms?app程序升級(jí)的新app程序數(shù)據(jù)的app備份區(qū);
12、用于存儲(chǔ)bms?bootloader程序數(shù)據(jù)的bootloader區(qū);以及
13、用于存儲(chǔ)用于bms?bootloader程序升級(jí)的新bootloader程序數(shù)據(jù)的bootloader備份區(qū)。
14、優(yōu)選地,還包括:
15、所述上位機(jī)獲取新app程序數(shù)據(jù)包,并通過對(duì)所述新app程序數(shù)據(jù)包進(jìn)行分割處理,得到多幀新app程序數(shù)據(jù),并為每幀新app程序數(shù)據(jù)配置用于標(biāo)識(shí)app程序升級(jí)數(shù)據(jù)幀的包頭;
16、所述上位機(jī)根據(jù)每幀新app程序數(shù)據(jù)在所述新app程序數(shù)據(jù)包中所處的位置信息,確定所述每幀新app程序數(shù)據(jù)的數(shù)據(jù)幀號(hào);
17、所述上位機(jī)按照加密協(xié)議對(duì)每幀新app程序數(shù)據(jù)進(jìn)行加密處理,得到加密后的新app程序數(shù)據(jù);
18、所述上位機(jī)計(jì)算所述每幀新app程序數(shù)據(jù)的crc校驗(yàn)值及程序數(shù)據(jù)長度;
19、所述上位機(jī)通過將所述每幀新app程序數(shù)據(jù)的包頭、數(shù)據(jù)幀號(hào)、加密后的新app程序數(shù)據(jù)、crc校驗(yàn)值及程序數(shù)據(jù)長度進(jìn)行打包處理,得到每幀完整的新app程序數(shù)據(jù)幀,并通過無線網(wǎng)絡(luò)依次將所述每幀完整的新app程序數(shù)據(jù)幀發(fā)送給所述bootloader程序。
20、優(yōu)選地,還包括:
21、所述上位機(jī)獲取新bootloader程序數(shù)據(jù)包,并通過對(duì)所述新bootloader程序數(shù)據(jù)包進(jìn)行分割處理,得到多幀新bootloader程序數(shù)據(jù),并為每幀新bootloader程序數(shù)據(jù)配置用于標(biāo)識(shí)bootloader程序升級(jí)數(shù)據(jù)幀的包頭;
22、所述上位機(jī)根據(jù)每幀新bootloader程序數(shù)據(jù)在所述新bootloader程序數(shù)據(jù)包中所處的位置信息,確定所述每幀新bootloader程序數(shù)據(jù)的數(shù)據(jù)幀號(hào);
23、所述上位機(jī)按照加密協(xié)議對(duì)每幀新bootloader程序數(shù)據(jù)進(jìn)行加密處理,得到加密后的新bootloader程序數(shù)據(jù);
24、所述上位機(jī)計(jì)算所述每幀新bootloader程序數(shù)據(jù)的crc校驗(yàn)值及程序數(shù)據(jù)長度;
25、所述上位機(jī)通過將所述每幀新bootloader程序數(shù)據(jù)的包頭、數(shù)據(jù)幀號(hào)、加密后的新bootloader程序數(shù)據(jù)、crc校驗(yàn)值及程序數(shù)據(jù)長度進(jìn)行打包處理,得到每幀完整的新bootloader程序數(shù)據(jù)幀,并通過無線網(wǎng)絡(luò)依次將所述每幀完整的新bootloader程序數(shù)據(jù)幀發(fā)送給所述bootloader程序。
26、優(yōu)選地,所述bootloader程序?qū)⑺錾衔粰C(jī)通過無線網(wǎng)絡(luò)發(fā)送的用于app程序升級(jí)的新app程序數(shù)據(jù)存入app備份區(qū),并在app區(qū)內(nèi)的原app程序數(shù)據(jù)擦除后,將所述app備份區(qū)內(nèi)的新app程序數(shù)據(jù)復(fù)制至所述app區(qū),以完成app程序遠(yuǎn)程升級(jí)操作包括:
27、所述bootloader程序通過無線網(wǎng)絡(luò)接收到所述上位機(jī)發(fā)送的每幀完整的新app程序數(shù)據(jù)幀后,對(duì)所述每幀完整的新app程序數(shù)據(jù)幀進(jìn)行解析及校驗(yàn)處理,并在所述每幀完整的新app程序數(shù)據(jù)幀校驗(yàn)通過后,按照一定的順序?qū)⑿r?yàn)通過后的新app程序數(shù)據(jù)幀存入app備份區(qū);
28、當(dāng)所述bootloader程序?qū)⑺行耡pp程序數(shù)據(jù)幀后存入app備份區(qū)后,對(duì)所述app備份區(qū)所有新app程序數(shù)據(jù)幀進(jìn)行校驗(yàn),并在校驗(yàn)通過后將所述app區(qū)內(nèi)的原app程序數(shù)據(jù)擦除后,將所述app備份區(qū)所有新app程序數(shù)據(jù)幀拷貝到所述app區(qū);
29、所述bootloader程序?qū)截惡骯pp區(qū)的所有新app程序數(shù)據(jù)幀再進(jìn)行校驗(yàn),并在校驗(yàn)通過后將所述app備份區(qū)數(shù)據(jù)全部擦除,進(jìn)入跳轉(zhuǎn)模式,以完成app程序遠(yuǎn)程升級(jí)操作。
30、優(yōu)選地,所述bootloader程序?qū)⑺錾衔粰C(jī)通過無線網(wǎng)絡(luò)發(fā)送的用于bootloader程序升級(jí)的新bootloader程序存入bootloader備份區(qū)后,跳轉(zhuǎn)至bms的app程序,使所述app程序擦除bootloader區(qū)內(nèi)的原bootloader程序后,將所述bootloader備份區(qū)內(nèi)的新bootloader程序復(fù)制至所述bootloader區(qū),以完成bootloader程序遠(yuǎn)程升級(jí)操作包括:
31、所述bootloader程序通過無線網(wǎng)絡(luò)接收到所述上位機(jī)發(fā)送的每幀完整的新bootloader程序數(shù)據(jù)幀后,對(duì)所述每幀完整的新bootloader程序數(shù)據(jù)幀進(jìn)行解析及校驗(yàn)處理,并在所述每幀完整的新bootloader程序數(shù)據(jù)幀校驗(yàn)通過后,按照一定的順序?qū)⑿r?yàn)通過后的新bootloader程序數(shù)據(jù)幀存入bootloader備份區(qū);
32、當(dāng)所述bootloader程序?qū)⑺行耣ootloader程序數(shù)據(jù)幀后存入bootloader備份區(qū)后,跳轉(zhuǎn)至bms的app程序;
33、所述app程序初始化成功之后,判斷bootloader程序是否需要升級(jí);
34、當(dāng)判斷所述bootloader程序需要升級(jí)時(shí),所述app程序擦除bootloader區(qū)內(nèi)的原bootloader程序后,將所述bootloader備份區(qū)內(nèi)的新bootloader程序復(fù)制至所述bootloader區(qū),以完成bootloader程序遠(yuǎn)程升級(jí)操作;
35、當(dāng)判斷所述bootloader程序不需要升級(jí)時(shí),所述app程序執(zhí)行app程序中的正常任務(wù)。
36、優(yōu)選地,所述app程序擦除bootloader區(qū)內(nèi)的原bootloader程序后,將所述bootloader備份區(qū)內(nèi)的新bootloader程序復(fù)制至所述bootloader區(qū),以完成bootloader程序遠(yuǎn)程升級(jí)操作包括:
37、所述app程序?qū)λ鯾ootloader備份區(qū)所有新bootloader程序數(shù)據(jù)幀進(jìn)行校驗(yàn),并在校驗(yàn)通過后將所述bootloader區(qū)內(nèi)的原bootloader程序數(shù)據(jù)擦除后,將所述bootloader備份區(qū)所有新bootloader程序數(shù)據(jù)幀拷貝到所述bootloader區(qū);
38、所述app程序?qū)截惡骲ootloader區(qū)的所有新bootloader程序數(shù)據(jù)幀再進(jìn)行校驗(yàn),并在校驗(yàn)通過后將所述bootloader備份區(qū)數(shù)據(jù)全部擦除,進(jìn)入跳轉(zhuǎn)模式,以完成bootloader程序遠(yuǎn)程升級(jí)操作。
39、根據(jù)本技術(shù)實(shí)施例的第二方面,提供了一種bms程序遠(yuǎn)程升級(jí)裝置,包括:
40、判斷模塊,被配置為通過無線網(wǎng)絡(luò)接收到上位機(jī)發(fā)送的包含升級(jí)標(biāo)識(shí)的升級(jí)指令后,根據(jù)所述升級(jí)指令中的升級(jí)標(biāo)識(shí)判斷是升級(jí)app程序還是bootloader程序;
41、升級(jí)app程序模塊,被配置為當(dāng)判斷是升級(jí)app程序時(shí),將所述上位機(jī)通過無線網(wǎng)絡(luò)發(fā)送的用于app程序升級(jí)的新app程序數(shù)據(jù)存入app備份區(qū),并在app區(qū)內(nèi)的原app程序數(shù)據(jù)擦除后,將所述app備份區(qū)內(nèi)的新app程序數(shù)據(jù)復(fù)制至所述app區(qū),以完成app程序遠(yuǎn)程升級(jí)操作;
42、升級(jí)bootloader程序模塊,被配置為當(dāng)判斷是升級(jí)bootloader程序時(shí),所述bootloader程序?qū)⑺錾衔粰C(jī)通過無線網(wǎng)絡(luò)發(fā)送的用于bootloader程序升級(jí)的新bootloader程序數(shù)據(jù)存入bootloader備份區(qū)后,跳轉(zhuǎn)至bms的app程序,使所述app程序擦除bootloader區(qū)內(nèi)的原bootloader程序數(shù)據(jù)后,將所述bootloader備份區(qū)內(nèi)的新bootloader程序數(shù)據(jù)復(fù)制至所述bootloader區(qū),以完成bootloader程序遠(yuǎn)程升級(jí)操作。
43、根據(jù)本技術(shù)實(shí)施例的第三方面,提供了一種計(jì)算設(shè)備,包括:
44、存儲(chǔ)器和處理器;
45、所述存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令,所述處理器用于執(zhí)行所述計(jì)算機(jī)可執(zhí)行指令實(shí)現(xiàn)任意一項(xiàng)所述bms程序遠(yuǎn)程升級(jí)方法的步驟。
46、根據(jù)本技術(shù)實(shí)施例的第四方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令,該指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)任意一項(xiàng)所述bms程序遠(yuǎn)程升級(jí)方法的步驟。
47、根據(jù)本技術(shù)實(shí)施例的第五方面,提供了一種計(jì)算機(jī)程序,其中,當(dāng)所述計(jì)算機(jī)程序在計(jì)算機(jī)中執(zhí)行時(shí),令計(jì)算機(jī)執(zhí)行上述bms程序遠(yuǎn)程升級(jí)方法的步驟。
48、本技術(shù)實(shí)施例提供的bms程序遠(yuǎn)程升級(jí)方案,系統(tǒng)上電后,bootloader首先運(yùn)行,等待上位機(jī)升級(jí)指令,如果是升級(jí)app程序,bootloader將升級(jí)包寫入app備份區(qū),并在寫入完成后進(jìn)行校驗(yàn)。確認(rèn)無誤后,將app區(qū)的數(shù)據(jù)擦除,并將app備份區(qū)的數(shù)據(jù)復(fù)制到app區(qū);如果是升級(jí)boot程序,bootloader將升級(jí)包寫入boot備份區(qū),并在寫入完成后進(jìn)行校驗(yàn)。確認(rèn)無誤后,跳轉(zhuǎn)到app程序,將bootloader區(qū)的數(shù)據(jù)擦除,并將bootloader備份區(qū)的數(shù)據(jù)復(fù)制到bootloader區(qū);升級(jí)完成后,bootloader重新啟動(dòng)系統(tǒng),確保升級(jí)后的程序能夠正常運(yùn)行。本技術(shù)實(shí)施例提供的bms程序遠(yuǎn)程升級(jí)方案,能夠?qū)崿F(xiàn)對(duì)bms的app程序和bootloader程序的遠(yuǎn)程升級(jí),提高系統(tǒng)的維護(hù)效率和可靠性。