本發(fā)明涉及fpga程序升級(jí),具體的說,是一種新型soc芯片遠(yuǎn)程升級(jí)fpga程序的系統(tǒng)及方法。
背景技術(shù):
1、在電子設(shè)備和系統(tǒng)中,現(xiàn)場可編程門陣列(fpga)因其高度的靈活性和可重配置性而被廣泛應(yīng)用。fpga允許用戶在設(shè)備部署后,根據(jù)實(shí)際需求對(duì)硬件邏輯進(jìn)行編程和修改,從而滿足了不斷變化的應(yīng)用需求。然而,隨著fpga應(yīng)用的不斷深入和擴(kuò)展,如何對(duì)其程序進(jìn)行高效、可靠的升級(jí)成為了一個(gè)亟待解決的問題。
2、在傳統(tǒng)的fpga程序升級(jí)方法中,通常需要使用特定的升級(jí)接口或外部設(shè)備來完成升級(jí)過程。這種方法不僅增加了系統(tǒng)的復(fù)雜性和成本,而且在升級(jí)過程中可能會(huì)出現(xiàn)各種不穩(wěn)定因素,如通信中斷、數(shù)據(jù)丟失等,從而導(dǎo)致升級(jí)失敗或系統(tǒng)崩潰。特別是在一些關(guān)鍵的應(yīng)用場景中,如路由器連通檢測系統(tǒng),任何升級(jí)過程中的錯(cuò)誤都可能導(dǎo)致整個(gè)系統(tǒng)的失效,進(jìn)而影響網(wǎng)絡(luò)的正常運(yùn)行和用戶的體驗(yàn)。此外,傳統(tǒng)的fpga程序升級(jí)方法往往缺乏有效的狀態(tài)監(jiān)測和錯(cuò)誤處理機(jī)制。在升級(jí)過程中,用戶無法實(shí)時(shí)了解升級(jí)的狀態(tài)和進(jìn)度,也無法在出現(xiàn)錯(cuò)誤時(shí)及時(shí)進(jìn)行處理和恢復(fù)。這不僅降低了升級(jí)的可靠性和效率,也給用戶帶來了不便和額外的維護(hù)成本。
3、因此,需要提供一種新型soc芯片遠(yuǎn)程升級(jí)fpga程序的系統(tǒng)及方法,以解決現(xiàn)有技術(shù)中fpga程序升級(jí)過程中升級(jí)操作復(fù)雜、缺乏狀態(tài)監(jiān)測和錯(cuò)誤處理機(jī)制以及中斷恢復(fù)不足的問題。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于提供一種新型soc芯片遠(yuǎn)程升級(jí)fpga程序的系統(tǒng)及方法,用于解決現(xiàn)有技術(shù)中fpga程序升級(jí)過程中升級(jí)操作復(fù)雜、缺乏狀態(tài)監(jiān)測和錯(cuò)誤處理機(jī)制以及中斷恢復(fù)不足的問題。
2、本發(fā)明通過下述技術(shù)方案解決上述問題:
3、一種新型soc芯片遠(yuǎn)程升級(jí)fpga程序的系統(tǒng)及方法,包括soc主控芯片和fpga芯片,其中,所述soc主控芯片包括多個(gè)通用端口;所述soc主控芯片和所述fpga芯片通過所述多個(gè)通用端口通信連接,所述多個(gè)通用端口包括狀態(tài)指示端口和多個(gè)通信協(xié)議端口;
4、在進(jìn)行fpga程序升級(jí)時(shí),所述soc主控芯片通過所述多個(gè)通信協(xié)議端口向所述fpga芯片發(fā)送寫位流使能命令,并監(jiān)測所述狀態(tài)指示端口的命令準(zhǔn)備狀態(tài),當(dāng)監(jiān)測到所述命令準(zhǔn)備狀態(tài)為第一狀態(tài)時(shí),讀取fpga芯片返回的擦除完成標(biāo)志,獲取預(yù)設(shè)的fpga程序升級(jí)包文件,并將所述fpga程序升級(jí)包文件發(fā)送至所述fpga芯片;所述soc主控芯片監(jiān)測所述狀態(tài)指示端口的寫位流完成狀態(tài),當(dāng)監(jiān)測到所述寫位流完成狀態(tài)為第一狀態(tài)時(shí),讀取fpga芯片返回的寫位流完成標(biāo)志,所述soc主控芯片向所述fpga芯片發(fā)送讀位流使能命令,以使所述fpga芯片基于所述讀位流使能命令進(jìn)行校驗(yàn);所述soc主控芯片監(jiān)測所述狀態(tài)指示端口的校驗(yàn)狀態(tài),當(dāng)監(jiān)測到所述校驗(yàn)狀態(tài)為第一狀態(tài)時(shí),讀取fpga芯片返回的校驗(yàn)完成標(biāo)志,向所述fpga芯片發(fā)送打開開關(guān)使能命令,并監(jiān)測所述所述狀態(tài)指示端口的打開開關(guān)完成狀態(tài),當(dāng)所述打開開關(guān)完成狀態(tài)為第一狀態(tài)時(shí),讀取fpga芯片返回的打開開關(guān)完成標(biāo)志,發(fā)送熱啟動(dòng)使能命令,以使所述soc主控芯片進(jìn)行重啟以完成fpga程序升級(jí)。
5、進(jìn)一步地,若fpga程序升級(jí)過程中斷,在新型soc芯片遠(yuǎn)程升級(jí)fpga程序的系統(tǒng)重新啟動(dòng)時(shí),所述fpga芯片加載恢復(fù)位流,所述soc主控芯片檢測到所述恢復(fù)位流的版本號(hào)后,再次觸發(fā)fpga程序升級(jí)。
6、進(jìn)一步地,當(dāng)所述fpga程序升級(jí)包文件發(fā)送完成后,soc主控芯片向所述fpga芯片發(fā)送位流結(jié)束標(biāo)志,所述fpga芯片根據(jù)所述位流結(jié)束標(biāo)志進(jìn)行fpga程序升級(jí)包文件的存儲(chǔ)。
7、進(jìn)一步地,還包括:在進(jìn)行fpga程序升級(jí)前,所述soc主控芯片獲取當(dāng)前fpga程序版本號(hào),并判斷所述當(dāng)前fpga程序版本號(hào)是否與預(yù)設(shè)的fpga程序升級(jí)包文件版本號(hào)存在差異,若所述當(dāng)前fpga程序版本號(hào)低于所述預(yù)設(shè)的fpga程序升級(jí)包文件版本號(hào)則進(jìn)行fpga程序升級(jí)。
8、一種fpga程序升級(jí)方法,應(yīng)用于soc主控芯片,包括:
9、向fpga芯片發(fā)送寫位流使能命令,并監(jiān)測狀態(tài)指示端口的命令準(zhǔn)備狀態(tài);
10、當(dāng)監(jiān)測到所述命令準(zhǔn)備狀態(tài)為第一狀態(tài)時(shí),讀取所述fpga芯片返回的擦除完成標(biāo)志,向所述fpga芯片發(fā)送預(yù)設(shè)的fpga程序升級(jí)包文件,并監(jiān)測所述狀態(tài)指示端口的寫位流完成狀態(tài);
11、當(dāng)監(jiān)測到所述寫位流完成狀態(tài)為第一狀態(tài)時(shí),讀取fpga寫位流完成標(biāo)志,向所述fpga芯片發(fā)送讀位流使能命令,以使所述fpga芯片基于所述讀位流使能命令進(jìn)行校驗(yàn),并監(jiān)測所述狀態(tài)指示端口的校驗(yàn)狀態(tài);
12、當(dāng)監(jiān)測到所述校驗(yàn)狀態(tài)為第一狀態(tài)時(shí),讀取fpga校驗(yàn)完成標(biāo)志,向所述fpga芯片發(fā)送打開開關(guān)使能命令,并監(jiān)測所述狀態(tài)指示端口的打開開關(guān)完成狀態(tài);
13、當(dāng)所述打開開關(guān)完成狀態(tài)為第一狀態(tài)時(shí),讀取打開開關(guān)完成標(biāo)志,基于發(fā)送的熱啟動(dòng)使能命令進(jìn)行重啟以完成fpga程序升級(jí)。
14、進(jìn)一步地,其特征在于,若fpga程序升級(jí)過程中斷,在所述soc主控芯片重新啟動(dòng)時(shí),所述fpga芯片加載恢復(fù)位流,所述方法還包括:當(dāng)檢測到所述恢復(fù)位流的版本號(hào)后,再次觸發(fā)fpga程序升級(jí)。
15、進(jìn)一步地,還包括:當(dāng)所述fpga程序升級(jí)包文件發(fā)送完成后,向所述fpga芯片發(fā)送位流結(jié)束標(biāo)志,以使所述fpga芯片根據(jù)所述位流結(jié)束標(biāo)志進(jìn)行fpga程序升級(jí)包文件的存儲(chǔ)。
16、進(jìn)一步地,在進(jìn)行fpga程序升級(jí)前,所述方法還包括:獲取當(dāng)前fpga程序版本號(hào),并判斷所述當(dāng)前fpga程序版本號(hào)是否與預(yù)設(shè)的fpga程序升級(jí)包文件版本號(hào)存在差異,若所述當(dāng)前fpga程序版本號(hào)低于所述預(yù)設(shè)的fpga程序升級(jí)包文件版本號(hào)則進(jìn)行fpga程序升級(jí)。
17、本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn)及有益效果:本發(fā)明利用soc主控芯片的多個(gè)通用端口(gpio端口)與fpga芯片建立穩(wěn)定的通信連接,通過精確的狀態(tài)指示和錯(cuò)誤處理機(jī)制,實(shí)現(xiàn)了fpga程序的高效、可靠升級(jí),這種方法不僅簡化了升級(jí)過程,提高了升級(jí)的可靠性和效率,還為用戶提供了更好的使用體驗(yàn)和維護(hù)便利性。
1.一種新型soc芯片遠(yuǎn)程升級(jí)fpga程序的系統(tǒng),其特征在于,包括soc主控芯片和fpga芯片,其中,所述soc主控芯片包括多個(gè)通用端口;所述soc主控芯片和所述fpga芯片通過所述多個(gè)通用端口通信連接,所述多個(gè)通用端口包括狀態(tài)指示端口和多個(gè)通信協(xié)議端口;
2.根據(jù)權(quán)利要求1所述的新型soc芯片遠(yuǎn)程升級(jí)fpga程序的系統(tǒng),其特征在于,若fpga程序升級(jí)過程中斷,在新型soc芯片遠(yuǎn)程升級(jí)fpga程序的系統(tǒng)重新啟動(dòng)時(shí),所述fpga芯片加載恢復(fù)位流,所述soc主控芯片檢測到所述恢復(fù)位流的版本號(hào)后,再次觸發(fā)fpga程序升級(jí)。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,當(dāng)所述fpga程序升級(jí)包文件發(fā)送完成后,soc主控芯片向所述fpga芯片發(fā)送位流結(jié)束標(biāo)志,所述fpga芯片根據(jù)所述位流結(jié)束標(biāo)志進(jìn)行fpga程序升級(jí)包文件的存儲(chǔ)。
4.根據(jù)權(quán)利要求1所述的新型soc芯片遠(yuǎn)程升級(jí)fpga程序的系統(tǒng),其特征在于,還包括:在進(jìn)行fpga程序升級(jí)前,所述soc主控芯片獲取當(dāng)前fpga程序版本號(hào),并判斷所述當(dāng)前fpga程序版本號(hào)是否與預(yù)設(shè)的fpga程序升級(jí)包文件版本號(hào)存在差異,若所述當(dāng)前fpga程序版本號(hào)低于所述預(yù)設(shè)的fpga程序升級(jí)包文件版本號(hào)則進(jìn)行fpga程序升級(jí)。
5.一種新型soc芯片遠(yuǎn)程升級(jí)fpga程序的方法,其特征在于,應(yīng)用于soc主控芯片,包括:
6.根據(jù)權(quán)利要求5所述的新型soc芯片遠(yuǎn)程升級(jí)fpga程序的方法,其特征在于,若fpga程序升級(jí)過程中斷,在所述soc主控芯片重新啟動(dòng)時(shí),所述fpga芯片加載恢復(fù)位流,所述方法還包括:當(dāng)檢測到所述恢復(fù)位流的版本號(hào)后,再次觸發(fā)fpga程序升級(jí)。
7.根據(jù)權(quán)利要求5所述的新型soc芯片遠(yuǎn)程升級(jí)fpga程序的方法,其特征在于,還包括:當(dāng)所述fpga程序升級(jí)包文件發(fā)送完成后,向所述fpga芯片發(fā)送位流結(jié)束標(biāo)志,以使所述fpga芯片根據(jù)所述位流結(jié)束標(biāo)志進(jìn)行fpga程序升級(jí)包文件的存儲(chǔ)。
8.根據(jù)權(quán)利要求5所述的新型soc芯片遠(yuǎn)程升級(jí)fpga程序的方法,其特征在于,在進(jìn)行fpga程序升級(jí)前,所述方法還包括:獲取當(dāng)前fpga程序版本號(hào),并判斷所述當(dāng)前fpga程序版本號(hào)是否與預(yù)設(shè)的fpga程序升級(jí)包文件版本號(hào)存在差異,若所述當(dāng)前fpga程序版本號(hào)低于所述預(yù)設(shè)的fpga程序升級(jí)包文件版本號(hào)則進(jìn)行fpga程序升級(jí)。