FPGA程序遠程在線更新設(shè)計
1 概述
本文引用地址:http://www.ex-cimer.com/article/189689.htm現(xiàn)場可編程門陣列(Field Programmable Gate Array,FPGA)器件具有高密度、低功耗、高速、高可靠性等優(yōu)點,在航空航天、通信、工業(yè)控制等方面得到了大量應(yīng)用。FPGA的處理器分為軟核和硬核,并且軟核處理器具有高度的靈活性和可配置性。
由于FPGA器件采用的是SRAM工藝,在斷電的情況下FPGA內(nèi)的配置數(shù)據(jù)將丟失,所以需要非易失的存儲器來結(jié)合FPGA完成嵌入式系統(tǒng)的設(shè)計。EPCS(Erasable Programmable Configurable Serial)Flash屬于串行接口Flash,具有接口簡單、體積小、配置方便的特點,通常用來存儲FPGA的配置文件和Nios II的軟件可執(zhí)行代碼。在經(jīng)過合理的配置后,系統(tǒng)在上電后就可以從EPCS Flash中讀取這些文件來啟動整個系統(tǒng)。
為了能使系統(tǒng)得到更靈活的應(yīng)用,充分發(fā)揮FPGA的靈活性、高效性,F(xiàn)PGA的軟硬件程序都需要方便的更新和升級功能;而當形成產(chǎn)品后,通過JTAG和Nios II IDE工具來聯(lián)合完成對EPCS Flash的更新燒寫很不方便。為此,本文結(jié)合Altera公司提供的工具,提出了一種遠程在線更新FPGA配置文件和Nios II程序文件的方法。
2 系統(tǒng)硬件結(jié)構(gòu)
系統(tǒng)硬件結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)硬件結(jié)構(gòu)圖
系統(tǒng)主要有上位機系統(tǒng)、FPGA系統(tǒng)、EPCS Flash三個主體部分。上位機系統(tǒng)提供人機交互的部分,F(xiàn)PGA系統(tǒng)包括Nios II處理器、EPCS控制器、網(wǎng)絡(luò)及串行接口和其他外部接口,EPCS Flash主要用于存儲FPGA的配置文件和Nios程序映像文件。上位機系統(tǒng)通過FPGA集成的網(wǎng)絡(luò)及串行接口來完成通信工作。
FPGA采用Altera公司的Cyclone III系統(tǒng)的EP3C40F484I7N芯片。它具有低功耗、高集成度、易于使用的特性。EPCS Flash采用Altera公司的EPCS16SI16N芯片,它支持多種可配置的時鐘源,最高支持100 MHz的外部時鐘源,具有16 Mb的存儲空間,足夠滿足一般的FPGA配置文件和Nios程序文件的存儲需要。
3 更新程序處理流程
更新FPGA的配置文件和Nios II的應(yīng)用程序的流程如圖2所示。
圖2 更新程序處理流程
本方法把由Nios II IDE生成的FPGA配置文件和Nios II程序文件合并,并編程為一個可以直接執(zhí)行的、包含F(xiàn)PGA配置文件和Nios II程序文件的二進制BIN文件。然后把該文件通過Xmodem協(xié)議由上位機系統(tǒng)傳輸給Nios II的應(yīng)用程序。Nios II的應(yīng)用程序接收到完整的BIN文件后,把該BIN文件寫入到EPCS Flash中。最后,Nios II的應(yīng)用程序停止看門狗,程序重新啟動,即完成了FPGA的遠程在線更新程序的過程。
評論