新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 一種遠程在線更新FPGA程序的方法

        一種遠程在線更新FPGA程序的方法

        作者: 時間:2012-02-22 來源:網絡 收藏

        1 概述
        現場可編程門陣列(Field Programmable Gate Array,)器件具有高密度、低功耗、高速、高可靠性等優點,在航空航天、通信、工業控制等方面得到了大量應用。的處理器分為軟核和硬核,并且軟核處理器具有高度的靈活性和可配置性。
        由于器件采用的是SRAM工藝,在斷電的情況下FPGA內的配置數據將丟失,所以需要非易失的存儲器來結合FPGA完成嵌入式系統的設計。EPCS(Erasable Programmable Configurable Serial)Flash屬于串行接口Flash,具有接口簡單、體積小、配置方便的特點,通常用來存儲FPGA的配置文件和NiosII的軟件可執行代碼。在經過合理的配置后,系統在上電后就可以從EPCSFlash中讀取這些文件來啟動整個系統。
        為了能使系統得到更靈活的應用,充分發揮FPGA的靈活性、高效性,FPGA的軟硬件都需要方便的更新和升級功能;而當形成產品后,通過JTAG和NiosII IDE工具來聯合完成對EPCS Flash的更新燒寫很不方便。為此,本文結合Altera公司提供的工具,提出了一種在線更新FPGA配置文件和NiosII文件的。

        2 系統硬件結構
        系統硬件結構如圖1所示。系統主要有上位機系統、FPGA系統、EPCS Flash三個主體部分。上位機系統提供人機交互的部分,FPGA系統包括NiosII處理器、EPCS控制器、網絡及串行接口和其他外部接口,EPCSFlash主要用于存儲FPGA的配置文件和Nios映像文件。上位機系統通過FPGA集成的網絡及串行接口來完成通信工作。

        本文引用地址:http://www.104case.com/article/190734.htm

        a.jpg


        FPGA采用Altera公司的CycloneIII系統的EP3C40F48417N芯片。它具有低功耗、高集成度、易于使用的特性。EPCS Flash采用Altera公司的EPCS16SI16N芯片,它支持多種可配置的時鐘源,最高支持100 MHz的外部時鐘源,具有16 Mb的存儲空間,足夠滿足一般的FPGA配置文件和Nios程序文件的存儲需要。

        3 更新程序處理流程
        更新FPGA的配置文件和NiosII的應用程序的流程如圖2所示。

        b.jpg


        把由NiosII IDE生成的FPGA配置文件和NiosII程序文件合并,并編程為一個可以直接執行的、包含FPGA配置文件和NiosII程序文件的二進制BIN文件。然后把該文件通過X-modem協議由上位機系統傳輸給NiosII的應用程序。NiosII的應用程序接收到完整的BIN文件后,把該BIN文件寫入到EPCS Flash中。最后,Nios II的應用程序停止看門狗,程序重新啟動,即完成了FPGA的在線更新程序的過程。

        4 合并程序文件
        Nios II的啟動要經歷兩個過程:
        ①FPGA器件本身的配置過程。如果內部邏輯中使用了NiosII,則配置完成的FPGA中包含有NiosII軟核CPU。
        ②NiosII本身的應用過程。一旦FPGA配置成功后,NiosII就被邏輯中的復位電路復位,從reset地址開始執行代碼。
        Nios II IDE將FPGA的配置文件(.sof文件)和應用程序(.elf文件)轉成flash格式文件,轉換后的flash格式文件是一種S-Record格式數據,包含如下區域:type>length>address>data>checksum>。各字段的意思分別如下:type>表示記錄的類型;length>表示數據的長度;address>表示數據寫入的起始地址,該字段的長度取決于type>的取值;data>表示存儲的數據;checknum>表示校驗位。

        fpga相關文章:fpga是什么



        上一頁 1 2 3 下一頁

        關鍵詞: FPGA 遠程 程序 方法

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 和田县| 增城市| 织金县| 图们市| 张家港市| 东平县| 大荔县| 额尔古纳市| 策勒县| 红桥区| 漠河县| 青海省| 新安县| 璧山县| 乌兰县| 高雄市| 阳高县| 盐山县| 泽州县| 志丹县| 县级市| 成安县| 金塔县| 合山市| 汪清县| 古丈县| 始兴县| 禄劝| 美姑县| 锦州市| 军事| 铜陵市| 介休市| 阳山县| 德钦县| 黑龙江省| 安化县| 长沙县| 石棉县| 香格里拉县| 长丰县|