本實(shí)用新型涉及固件程序配置系統(tǒng),尤其涉及一種基于CPLD控制的FPGA程序配置及固件加密系統(tǒng)。
背景技術(shù):
為提高用戶體驗(yàn),降低產(chǎn)品售后維護(hù)難度及成本,遠(yuǎn)程硬件程序升級(jí)是必不可少的,同時(shí)需要對(duì)固件程序進(jìn)行加密,以防止其余廠家對(duì)產(chǎn)品的破解,傳統(tǒng)的維護(hù)升級(jí)數(shù)據(jù)均是采用JATG/AS接口作為調(diào)試及固件程序下載接口,直接對(duì)FPGA配置芯片下載程序固件,在系統(tǒng)上電后FPGA采用主動(dòng)配置方式,由FPGA器件引導(dǎo)配置操作過(guò)程,它控制著外部存儲(chǔ)器和初始化過(guò)程,從配置器件EPCS主動(dòng)發(fā)出讀取數(shù)據(jù)信號(hào),從而把EPCS的數(shù)據(jù)讀入FPGA中,實(shí)現(xiàn)對(duì)FPGA的編程配置;但是現(xiàn)階段的升級(jí)維護(hù)方式無(wú)法進(jìn)行遠(yuǎn)程在線升級(jí),且對(duì)固件的數(shù)據(jù)加密成都較低,產(chǎn)品售后維護(hù)困難。
技術(shù)實(shí)現(xiàn)要素:
本實(shí)用新型的目的就在于為了解決上述問(wèn)題而提供一種基于CPLD控制的FPGA程序配置及固件加密系統(tǒng)。
本實(shí)用新型通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)上述目的:
一種基于CPLD控制的FPGA程序配置及固件加密系統(tǒng),包括通訊模塊、CPLD芯片、FLASH和FPGA,所述通訊模塊的輸出端與所述CPLD芯片的通信接口電連接,所述CPLD芯片的存儲(chǔ)端與所述FLASH端電連接,所述CPLD芯片的配置端與所述FPGA電連接。
具體地,所述通訊模塊通過(guò)無(wú)線網(wǎng)絡(luò)接口/串行接口/SPI接口與上位機(jī)連接。
優(yōu)選地,所述CPLD芯片的型號(hào)為EPM570T100,所述FLASH的型號(hào)為S25FL256SAGMFI001,所述FPGA為被動(dòng)串行配置模式。
本實(shí)用新型的有益效果在于:
本實(shí)用新型基于CPLD控制的FPGA程序配置及固件加密系統(tǒng)通過(guò)通訊模塊接收了上位機(jī)發(fā)送的固件程序數(shù)據(jù),經(jīng)CPLD芯片進(jìn)行加密后存儲(chǔ)到FLASH,系統(tǒng)上電后,CPLD芯片從FLASH中將加密數(shù)據(jù)讀出,并進(jìn)行解密后對(duì)FPGA進(jìn)行配置。
附圖說(shuō)明
圖1是本實(shí)用新型所述基于CPLD控制的FPGA程序配置及固件加密系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本實(shí)用新型作進(jìn)一步說(shuō)明:
如圖1所示,本實(shí)用新型一種基于CPLD控制的FPGA程序配置及固件加密系統(tǒng),包括通訊模塊、CPLD芯片、FLASH和FPGA,通訊模塊的輸出端與CPLD芯片的通信接口電連接,CPLD芯片的存儲(chǔ)端與FLASH端電連接,CPLD芯片的配置端與FPGA電連接,通訊模塊通過(guò)無(wú)線網(wǎng)絡(luò)接口/串行接口/SPI接口與上位機(jī)連接,CPLD芯片的型號(hào)為EPM570T100,F(xiàn)LASH的型號(hào)為S25FL256SAGMFI001,F(xiàn)PGA為被動(dòng)串行配置模式。
本實(shí)用新型基于CPLD控制的FPGA程序配置及固件加密系統(tǒng)的工作原理如下:
將CPLD芯片作為主控芯片,通過(guò)無(wú)線網(wǎng)絡(luò)接口/串行接口/SPI接口等接收上位機(jī)的固件程序數(shù)據(jù),通過(guò)無(wú)線網(wǎng)絡(luò)接口可以遠(yuǎn)程接收數(shù)據(jù),實(shí)現(xiàn)遠(yuǎn)程固件升級(jí),通過(guò)串行接口和SPI接口等有線接口可以實(shí)現(xiàn)近程接收數(shù)據(jù),并經(jīng)CPLD芯片內(nèi)部的硬件算法加密后存儲(chǔ)到FLASH中,每次系統(tǒng)上電后,CPLD芯片從FLASH中將加密數(shù)據(jù)讀出,并經(jīng)CPLD芯片的內(nèi)部硬件算法解密后,通過(guò)FPGA的PS模式(被動(dòng)串行配置模式)對(duì)FPGA進(jìn)行配置。
CPLD芯片的型號(hào)為EPM570T100,為非易失性存儲(chǔ)芯片,具有多種優(yōu)點(diǎn),低成本,低功耗,待機(jī)電流低至29uA;瞬時(shí)上電,高達(dá)8Kbits的非易失存儲(chǔ),保密性強(qiáng);多點(diǎn)壓I/O接口,支持3.3v,2.5v,1.8v,和1.5v邏輯電平;總線型架構(gòu),包括可編程轉(zhuǎn)換速率,驅(qū)動(dòng)強(qiáng)度和可編程上拉電阻,且在本系統(tǒng)中將CPLD的程序固化進(jìn)CPLD芯片,CPLD中的固件程序是不能讀出的,利用這點(diǎn)將加密算法及解密算法在CPLD中實(shí)現(xiàn)是可行的。
FLASH的型號(hào)為S25FL256SAGMFI001,為256兆位閃存非易失性存儲(chǔ)器,編程速率達(dá)1.5Mbytes/s,256或512字節(jié)的頁(yè)編程緩沖,擦除速率達(dá)0.65Mbytes/s,在FLASH中存儲(chǔ)了兩個(gè)FPGA程序,一個(gè)為備份程序、一個(gè)為系統(tǒng)工作程序,備份程序只有在工作程序加載失敗的情況下才啟用,為了防止遠(yuǎn)程在線程序存儲(chǔ)失敗的情況下,產(chǎn)品也能正常啟動(dòng),能繼續(xù)操作。
FPGA的PS模式為被動(dòng)串行配置模式,由外部計(jì)算機(jī)或控制器控制配置過(guò)程。通過(guò)外部控制器及存儲(chǔ)器來(lái)完成,CPLD芯片作為控制器件,把FPGA當(dāng)作存儲(chǔ)器,把數(shù)據(jù)寫入到FPGA中,實(shí)現(xiàn)對(duì)FPGA的編程。該模式可以實(shí)現(xiàn)對(duì)FPGA在線可編程。
本實(shí)用新型的技術(shù)方案不限于上述具體實(shí)施例的限制,凡是根據(jù)本實(shí)用新型的技術(shù)方案做出的技術(shù)變形,均落入本實(shí)用新型的保護(hù)范圍之內(nèi)。