本發(fā)明屬于計(jì)算機(jī),具體涉及一種基于bpi接口邏輯實(shí)現(xiàn)fpga在線升級(jí)的系統(tǒng)及方法。
背景技術(shù):
1、隨著電子技術(shù)的不斷發(fā)展,cpld、fpga等邏輯器件在計(jì)算機(jī)領(lǐng)域有了更廣泛的應(yīng)用。cpld不僅可以對(duì)計(jì)算機(jī)cpu的上電時(shí)序、外設(shè)復(fù)位等進(jìn)行控制,也可以擴(kuò)展計(jì)算機(jī)串口、iic接口、通用io口等低速接口。fpga實(shí)現(xiàn)pcie接口、srio接口等高速接口,進(jìn)而實(shí)現(xiàn)cpu與外部進(jìn)行高速數(shù)據(jù)通信。由于fpga的并行設(shè)計(jì),fpga在計(jì)算機(jī)領(lǐng)域也可以實(shí)現(xiàn)算法加速,提升算法性能。
2、cpld、fpga在計(jì)算機(jī)領(lǐng)域應(yīng)用得越廣泛,其應(yīng)用的場(chǎng)景也越來(lái)越豐富。存在一種應(yīng)用場(chǎng)景,在設(shè)備運(yùn)行過(guò)程中維護(hù)人員不能近距離接觸,或者不方便近距離接觸。在這種情況下,cpld和fpga的固件不能夠通過(guò)現(xiàn)場(chǎng)進(jìn)行升級(jí),需要進(jìn)行在線升級(jí)。固件的在線升級(jí)根據(jù)固件類型的選擇不同而不同,主要有spi接口和bpi接口兩種類型。
技術(shù)實(shí)現(xiàn)思路
1、(一)要解決的技術(shù)問(wèn)題
2、本發(fā)明要解決的技術(shù)問(wèn)題是:如何實(shí)現(xiàn)高效fpga在線升級(jí)。
3、(二)技術(shù)方案
4、為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種基于bpi接口邏輯實(shí)現(xiàn)fpga在線升級(jí)的方法,該方法基于本地控制器、遠(yuǎn)端控制器、fpga、bpi?flash四個(gè)部分實(shí)現(xiàn);本地控制器和遠(yuǎn)端控制器通過(guò)以太網(wǎng)接口進(jìn)行連接,實(shí)現(xiàn)兩者之間數(shù)據(jù)交互;遠(yuǎn)端控制器和fpga之間通過(guò)數(shù)據(jù)通信接口實(shí)現(xiàn)通信;fpga與bpi?flash之間為bpi接口,bpi接口能夠傳輸控制信號(hào)、數(shù)據(jù)信號(hào)和地址信號(hào);
5、在fpga中由bpi調(diào)度模塊、bpi讀控制模塊、bpi擦除控制模塊和bpi寫(xiě)控制模塊四部分實(shí)現(xiàn)bpi接口邏輯;其中,bpi調(diào)度模塊實(shí)現(xiàn)bpi接口邏輯調(diào)度功能,bpi讀控制模塊實(shí)現(xiàn)bpi?flash讀功能,bpi擦除控制模塊實(shí)現(xiàn)bpi?flash擦除功能,bpi寫(xiě)控制模塊實(shí)現(xiàn)bpiflash寫(xiě)功能;
6、bpi調(diào)度模塊解析數(shù)據(jù)通信接口發(fā)送的數(shù)據(jù)幀,數(shù)據(jù)幀包括兩種類型,分別為控制命令幀和數(shù)據(jù)幀,控制命令類型包括擦除控制命令、寫(xiě)數(shù)據(jù)控制命令和讀數(shù)據(jù)控制命令,數(shù)據(jù)幀的內(nèi)容為待寫(xiě)入bpi?flash的數(shù)據(jù);當(dāng)bpi調(diào)度模塊解析出控制命令幀為擦除控制命令后,調(diào)用bpi擦除控制模塊實(shí)現(xiàn)bpi?flash擦除功能,解析出控制命令幀為寫(xiě)數(shù)據(jù)控制命令后,調(diào)用bpi寫(xiě)控制模塊實(shí)現(xiàn)bpi?flash寫(xiě)功能,解析出控制命令幀為讀數(shù)據(jù)控制命令后,調(diào)用bpi讀控制模塊實(shí)現(xiàn)bpi?flash讀功能。
7、本發(fā)明還提供了一種用于實(shí)現(xiàn)所述方法的系統(tǒng)。
8、本發(fā)明還提供了一種所述方法在計(jì)算機(jī)技術(shù)領(lǐng)域中的應(yīng)用。
9、本發(fā)明還提供了一種所述系統(tǒng)在計(jì)算機(jī)技術(shù)領(lǐng)域中的應(yīng)用。
10、(三)有益效果
11、本發(fā)明針對(duì)fpga需要遠(yuǎn)程在線升級(jí)應(yīng)用場(chǎng)景,基于bpi接口的高并行性設(shè)計(jì)了fpga在線升級(jí)系統(tǒng)及方法,能夠?qū)崿F(xiàn)更優(yōu)性能的fpga在線升級(jí)系統(tǒng)。
1.一種基于bpi接口邏輯實(shí)現(xiàn)fpga在線升級(jí)的方法,其特征在于,該方法基于本地控制器、遠(yuǎn)端控制器、fpga、bpiflash四個(gè)部分實(shí)現(xiàn);本地控制器和遠(yuǎn)端控制器通過(guò)以太網(wǎng)接口進(jìn)行連接,實(shí)現(xiàn)兩者之間數(shù)據(jù)交互;遠(yuǎn)端控制器和fpga之間通過(guò)數(shù)據(jù)通信接口實(shí)現(xiàn)通信;fpga與bpiflash之間為bpi接口,bpi接口能夠傳輸控制信號(hào)、數(shù)據(jù)信號(hào)和地址信號(hào);
2.如權(quán)利要求1所述的方法,其特征在于,本地控制器和遠(yuǎn)端控制器均通過(guò)cpu、dsp、arm或mcu實(shí)現(xiàn)。
3.如權(quán)利要求2所述的方法,其特征在于,遠(yuǎn)端控制器和fpga之間的數(shù)據(jù)通信接口通過(guò)pcie接口、串口或iic接口實(shí)現(xiàn)。
4.如權(quán)利要求3所述的方法,其特征在于,設(shè)本地控制器、遠(yuǎn)端控制器均由cpu實(shí)現(xiàn),即本地控制器為本地cpu控制器,遠(yuǎn)端控制器為遠(yuǎn)端cpu控制器,所述數(shù)據(jù)通信接口為pcie接口,則fpga在線升級(jí)包含三個(gè)過(guò)程,分別為擦除、編程和驗(yàn)證,具體實(shí)現(xiàn)流程如下:
5.如權(quán)利要求4所述的方法,其特征在于,編程bpiflash的實(shí)現(xiàn)過(guò)程具體為:由本地cpu控制器發(fā)出寫(xiě)數(shù)據(jù)控制命令,通過(guò)以太網(wǎng)接口發(fā)送到遠(yuǎn)端cpu控制器;遠(yuǎn)端cpu控制器收到寫(xiě)數(shù)據(jù)控制命令后,通過(guò)pcie接口下發(fā)給fpga,fpga內(nèi)部將寫(xiě)數(shù)據(jù)控制命令轉(zhuǎn)發(fā)到bpi調(diào)度模塊;bpi調(diào)度模塊收到寫(xiě)數(shù)據(jù)控制命令后調(diào)用bpi寫(xiě)控制模塊,同時(shí)通過(guò)pcie接口反饋寫(xiě)等待信息給遠(yuǎn)端cpu控制器,遠(yuǎn)端cpu控制器接收到寫(xiě)等待信息后,將寫(xiě)等待信息通過(guò)以太網(wǎng)接口傳輸給本地cpu控制器,本地cpu控制器收到寫(xiě)等待信息后,通過(guò)以太網(wǎng)接口發(fā)送fpga加載文件的數(shù)據(jù)到遠(yuǎn)端cpu控制器,遠(yuǎn)端cpu控制器通過(guò)pcie接口將數(shù)據(jù)發(fā)送到fpga中的bpi調(diào)度模塊、bpi寫(xiě)控制模塊,bpi寫(xiě)控制模塊將數(shù)據(jù)寫(xiě)入到bpiflash中;等待所有數(shù)據(jù)寫(xiě)完成后,bpi調(diào)度模塊通過(guò)pcie接口反饋寫(xiě)完成信息給遠(yuǎn)端cpu控制器,遠(yuǎn)端cpu控制器通過(guò)以太網(wǎng)接口將寫(xiě)完成信息發(fā)送到本地cpu控制器,完成bpiflash寫(xiě)功能。
6.如權(quán)利要求5所述的方法,其特征在于,驗(yàn)證bpiflash的過(guò)程具體如下:由本地cpu控制器發(fā)出讀數(shù)據(jù)控制命令,通過(guò)以太網(wǎng)接口發(fā)送到遠(yuǎn)端cpu控制器;遠(yuǎn)端cpu控制器收到讀數(shù)據(jù)控制命令后,通過(guò)pcie接口下發(fā)給fpga中的bpi調(diào)度模塊;bpi調(diào)度模塊收到讀數(shù)據(jù)控制命令后調(diào)用bpi讀控制模塊,然后bpi讀控制模塊開(kāi)始讀取bpiflash中的數(shù)據(jù),fpga通過(guò)pcie接口將讀出的數(shù)據(jù)傳輸?shù)竭h(yuǎn)端cpu控制器,遠(yuǎn)端cpu控制器再通過(guò)以太網(wǎng)接口將數(shù)據(jù)傳輸給本地cpu控制器,本地cpu控制器收到數(shù)據(jù)后進(jìn)行存儲(chǔ);等待所有數(shù)據(jù)讀完后,bpi調(diào)度模塊經(jīng)fpga通過(guò)pcie接口發(fā)送讀完成信息給遠(yuǎn)端cpu控制器,遠(yuǎn)端cpu控制器再通過(guò)以太網(wǎng)接口將讀完成信息發(fā)送給本地cpu控制器;本地cpu控制器收到讀完成信息后,進(jìn)行數(shù)據(jù)比對(duì),若比對(duì)失敗則重新擦除bpiflash并編程bpiflash,直至比對(duì)成功,比對(duì)成功后則完成fpga在線升級(jí)。
7.一種用于實(shí)現(xiàn)如權(quán)利要求1至6中任一項(xiàng)所述方法的系統(tǒng)。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,該系統(tǒng)包括本地控制器、遠(yuǎn)端控制器、fpga、bpiflash。
9.一種如權(quán)利要求1至6中任一項(xiàng)所述方法在計(jì)算機(jī)技術(shù)領(lǐng)域中的應(yīng)用。
10.一種如權(quán)利要求8所述系統(tǒng)在計(jì)算機(jī)技術(shù)領(lǐng)域中的應(yīng)用。