《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于μClinux的FPGA遠程更新系統的實現
基于μClinux的FPGA遠程更新系統的實現
來源:電子技術應用2014年第3期
丁 丁1,湯曉斌1,陳立德2,殷樹根2
(1.南京航空航天大學 材料科學與技術學院,江蘇 南京211106; 2.上海風格信息技術有限公司,
摘要: 針對Altera公司的Cyclone系列FPGA在特殊環境中無法使用下載電纜來重新配置芯片的問題,設計并實現了一個基于μClinux的FPGA遠程更新系統。該系統利用Altera的片上可編程系統(SoPC)技術,嵌入Nios II軟核處理器,移植μClinux系統,通過UART串口接收升級數據,通過MTD驅動將升級數據寫入配置芯片EPCS4和CFI存儲芯片。該方法利用FPGA的軟硬件可編程的特點,實現了系統軟硬件同時在線升級,完成了FPGA的遠程更新。
中圖分類號: TN47
文獻標識碼: B
文章編號: 0258-7998(2014)03-0006-03
Implementation of FPGA remote update system based on μClinux
Ding Ding1,Tang Xiaobin1,Chen Lide2,Yin Shugen2
1.College of Material Science and Technology, Nanjing University of Aeronautics and Astronautics, Nanjing 211106,China;2.Shanghai Figure IT Company, Shanghai 200120,China
Abstract: Aimed at the problena of Altera′s Cyclone series FPGA which can′t be used in a special environment using the download cable to reconfigure the chip, we designed and implemented a μClinux-based FPGA remote update system. The system using Altera SoPC technology, which is embedded in a Nios II soft-core processor,to run a μClinux system and transport the data via the UART serial port. The configuration data is written to the memory chip, EPCS4 and CFI, with MTD driver. The method utilizes the hardware and software programmable features of FPGA to complete the online upgrade of FPGA.
Key words : μClinux;FPGA;remote update;UART

    隨著集成電路技術的進一步發展,FPGA因具備功能靈活、開發成本低和上市速度快等特點,而廣泛應用于數字產品設計的各個領域。目前FPGA配置數據一般使用基于靜態隨機存儲器SRAM(Static Random Access Memory)的存儲方式,掉電后數據消失。因此在實用中需要為FPGA芯片外加專用配置芯片,在上電時,由這個專用配置芯片把配置數據加載到FPGA中,之后FPGA就可以正常工作。配置芯片通常是基于Flash存儲器的器件。FPGA配置數據更新的常用做法是:通過專用的下載電纜把配置數據從PC下載到FPGA配置芯片中[1]。這種方法在早期的開發調試中顯得非常便利,然而在系統組裝并形成產品后,由于下載電纜接口通常不會作為系統的一個外部接口,此時若想更新FPGA配置數據將會很麻煩,需要把系統重新拆開才能進行[2]。因此,在越來越多的系統中希望通過以配置數據的遠程更新來提高系統的可擴展性和升級的靈活性。
    本文針對Altera公司Cyclone IV系列的一款低功耗、高性能的FPGA芯片EP4CE15F23C8,結合Altera公司提供的SoPC開發工具,嵌入Nios II軟核處理器技術,移植μClinux系統,通過UART(Universal Asynchronous Receiver/Transmitter)串口獲取升級數據(包括FPGA配置文件和μClinux系統鏡像),并在μClinux系統中添加MTD驅動以完成升級數據寫入Flash存儲器的任務。該方法利用FPGA的軟硬件可編程的特點,實現了系統軟硬件同時在線升級,完成了FPGA的遠程更新。
1 FPGA遠程更新系統的結構與更新流程
1.1 遠程更新系統的系統結構

    FPGA遠程更新系統的結構如圖1所示,該系統主要包括本地系統和遠程系統。本地系統包括目標板和交換板。

    目標板的FPGA采用Altera公司Cyclone IV系列的EP4CE15F23C8芯片。該芯片采用65 nm工藝,內部包含了15 408個邏輯單元LE(Logic Elements)、504 KB片內隨機存儲器、56個嵌入式乘法器、20個全局時鐘網絡,具有低功耗、高性能的特點[3]。通過Altera Quartus II軟件中的SoPC Builder工具,在FPGA芯片上構建了Nios II軟核處理器、外設和外設接口,包括EPCS控制器、SDRAM控制器、三態橋、UART、通用I/O等[4]。EPCS是Altera提供的專用串行配置芯片,本系統使用EPCS4芯片,它支持多種可配置的時鐘源,最高支持100 MHz的外部時鐘源,并且具有4 MB的存儲空間,完全滿足此款FPGA配置數據的存儲需要。在本系統中,以Altera Wiki社區發布的nios2-linux-20090929.tar內核開發包為基礎,在Nios II上移植了μClinux系統[5]。FPGA上還外接了一個NOR型Flash芯片,用于存儲μClinux系統鏡像。
    交換板采用PowerPC的微處理器,運行嵌入式Linux系統,交換板與FPGA目標板間采用UART串口通信方式。
    遠程系統通過網絡接口與交換板相連,是整個升級系統的控制中心。
1.2 遠程更新流程
    FPGA上電啟動時,自動產生時序從EPCS中讀取配置文件并進行配置。配置完成后,NiosII處理器硬件就已經在FPGA內部生成,這時FPGA進入主復位狀態,在內部的復位邏輯作用下,NiosII從其設定的復位地址開始執行程序。在本系統中設計NiosII 處理器上電后從外部Flash開始啟動、解壓并加載μClinux的文件系統,運行相應的應用程序。因此,FPGA的遠程更新主要涉及到兩個文件,分別為FPGA的配置文件和μClinux的系統鏡像。對于Nios II處理器,完成FPGA的遠程更新主要需要解決兩個問題:(1)遠程更新數據的獲??;(2)將配置文件寫入EPCS配置芯片。為了不影響原有系統的運行,這兩個任務均需在μClinux系統下完成。為此設計如下的更新流程。
     (1)升級文件的處理:FPGA的配置文件需在Quartus II軟件的配置文件輸出選項中添加*.rbf (Raw Binary File,原始二進制文件)格式輸出,并作MSB到LSB的字節變換得到*.img文件。在Linux下構建μClinux的開發環境,通過make交叉編譯生成elf格式的內核鏡像文件zImage,并在Nios II Command Shell中運行“nios2-elf-objcopy-O binaryzImagezImage.bin”,得到二進制格式的μClinux系統鏡像。
    (2)升級文件的傳輸:遠程控制系統完成升級文件處理后,通過LAN或Internet發送給PowerPC交換板,最后由交換板通過UART串口發送給FPGA目標板。
    (3)升級文件的寫入:目標板接收升級文件,完成數據校驗后將升級文件寫入相應的配置芯片,并在寫入完成后重啟系統。
2 串口文件傳輸的實現
2.1 串口文件傳輸協議

    如前所述,FPGA升級數據在交換板與目標板之間通過UART串口傳輸,為了順利完成升級數據的傳輸,定義了一種串口文件傳輸協議。該協議采用基于幀傳輸的方式,將升級數據進行分幀發送,并在傳輸過程中對單幀進行和校驗而對整個升級數據進行CRC校驗。相關的幀包括:控制幀、信息幀和數據幀[6]。
2.1.1 控制幀
    控制幀由交換板在開始傳輸前發送給目標板,幀內容包括控制字(升級命令)、升級文件的參數等信息,其構成如圖2所示。其中,文件參數由升級文件號、相應的總分幀數、單幀大小、最后一幀大小及文件的CRC校驗碼構成。文件1對應為FPGA的配置文件,文件2對應為μClinux的系統鏡像。

2.1.2 信息幀
    信息幀由目標板反饋給交換板,用于請求分幀數據、返回FPGA升級狀態等,幀內容如圖3所示。

2.1.3 數據幀
    數據幀由交換板發送給目標板,用于完成升級數據的傳輸,幀內容包括分幀號、分幀數據等。
    在升級數據的傳輸過程中,首先由交換板向目標板發送控制幀,用于通知目標板進入升級程序,同時發送所需升級的數據類型、分幀幀數及升級數據的CRC校驗碼。目標板在接收到升級控制幀后,啟動相應的接收程序,并向交換板返回信息幀,用于請求分幀數據。目標板在接收到幀號請求信息幀后,開始向目標板發送數據幀。在傳輸中如有錯幀或漏幀,目標板均可重發請求信息幀,這樣不斷重復即可完成整個升級數據的傳輸。
2.2 串口傳輸過程中的數據丟失現象

 


    在完成了上述串口傳輸協議相關代碼的編寫后,在實際測試中卻發現,傳輸過程中會頻繁發生數據丟失的現象。在分析各種可能原因后,確定為目標板的UART串口FIFO深度過低所導致。FIFO緩沖區的深度直接影響通過UART傳輸數據所需的CPU開銷,是影響UART性能的關鍵因素。FIFO的深度越低,在傳輸過程中就需要越多的CPU中斷,尤其在短時大數據量的傳輸過程中就可能出現CPU無法響應中斷而發生數據丟失的現象。
    然而Altera的SoPC Builder工具默認所添加的UART設備沒有配帶FIFO,僅有1 B的深度,為此參考Altera Wiki社區所發布了帶FIFO的UART組件。這里為FPGA重新配置了FIFOed Uart設備[7],并將其接收FIFO的深度設為256 B。
    在使用FIFOed Uart設備并配置相關的驅動后,串口傳輸過程中的數據丟失的問題得以解決。
3 μClinux下Flash的寫入操作
    在接收完升級數據后,需要完成升級數據寫入相應配置芯片的操作。由于配置芯片是基于Flash的設備,在μClinux下可以通過調用內存技術設備MTD(Memory Technology Device)驅動完成相應的寫入操作。MTD驅動是Linux下標準的Flash驅動器,它支持大多數Flash存儲設備,兼有功能強大的分區定義和映像工具。MTD在硬件與內核之間提供一個抽象的接口,可理解為 Flash的設備驅動程序。通過該接口,可像讀寫普通文件一樣對Flash設備進行讀寫操作。
    Altera Wiki社區發布的μClinux基礎開發包中MTD驅動的分區配置文件為linux-2.6/arch/nios2/kernel/config.c,根據相應的硬件芯片修改此文件并運行“make menuconfig”修改內核編譯設置后,完成MTD驅動的添加[8]。添加驅動成功后,會在μClinux的dev目錄下生成字符設備mtd0或塊設備mtdblock0,通過系統調用dd命令,“dd if=/tmp/zImage.bin of=/dev/mtdblock0”,即可完成Flash的寫入操作。
    在完成升級數據寫入Flash的操作后,還需要對寫入的數據進行CRC校驗,校驗完成后即可重啟系統,從而完成了整個FPGA升級的任務。
    本文介紹了一種基于μClinux的FPGA遠程更新系統的實現方法,使用該方法不用打開機箱即可隨時更新FPCA配置程序,方便了產品在客戶端維護升級,具有靈活方便、配置時間短、易于操作的特點。通過長期的實際運行驗證了這種升級方式的正確性和穩定性。另外,雖然本文是針對Altera公司Cyclone系列的FPGA器件而設計,但也可適用于Altera其他系列的FPGA器件,故其有一定的通用性,并為其他廠商的FPGA器件的遠程升級提供參考。
參考文獻
[1] 李蘭英.Nios II嵌入式軟核SOPC設計原理及應用[M].北京:北京航空航天大學出版社,2006.
[2] 李鵬,蘭正龍.用CPLD和Flash實現FPGA配置[J].電子技術應用,2006,32(6):101-3.
[3] Altera Conproation.Cyclone IV device data sheet[EB/OL]. (2013-05-01)[2013-10-20].http://www.altera.com.cn/literature/hb/cyclone-iv/cyiv53001.pdf,2012.
[4] Altera Conproation.Cyclone IV device handbook[EB/OL]. (2013-05-01)[2013-10-20].http://www.altera.com.cn/lit erature/hb/cyclone-iv/cyclone4handbook.pdf,2012.
[5] Altera Wiki.Install Nios II Linux[EB/OL].(2013-01-14)[2013-10-20].http://www.alterawiki.com/wiki/Install_Nios_II_Linux,2013.
[6] 王媛媛,劉樹林.基于FPGA的串行通信控制系統的設計[J].微型機與應用,2011,30(5):57-59.
[7] Altera Wiki.FIFOed Avalon Uart[EB/OL].(2013-06-11)[2013-10-20].http://www.alterawiki.com/wiki/FIFOed_Avalon_Uart,2012.
[8] Altera Wiki.Memory technology device[EB/OL].(2011-11-07)[2013-10-20].http://www.alterawiki.com/wiki/MTD,2013.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久久噜噜噜久噜久久| 99精品国产在热久久下载| 精品88久久久久88久久久| 午夜视频久久久| 国模精品一区二区三区| 国产精品手机视频| 国产在线拍揄自揄视频不卡99| 久久久久国色av免费看影院| 亚洲欧美日韩一区在线| 国产精品色在线| 狼狼综合久久久久综合网| 国产精品视频免费| 久久本道综合色狠狠五月| 久久夜色精品一区| 一区二区三区欧美亚洲| 91久久黄色| 国产午夜精品一区理论片飘花| 亚洲伦理一区| 欧美亚洲在线播放| 欧美影院久久久| 欧美午夜在线观看| 欧美第一黄网免费网站| 欧美视频一区二区在线观看| 亚洲一区免费在线观看| 欧美涩涩网站| 国产精品视频成人| 韩日精品中文字幕| 久久精品欧美日韩| 麻豆国产精品va在线观看不卡| 亚洲黄色在线| 国产在线乱码一区二区三区| 久久综合福利| 欧美人成在线| 欧美日韩中文在线| 国产一区二区三区四区老人| 欧美日本一区二区三区| 午夜欧美电影在线观看| 亚洲图片欧美午夜| 美女诱惑黄网站一区| 西西裸体人体做爰大胆久久久| 亚洲一区二区精品在线| 一区二区三区日韩欧美精品| 国产一区二区三区久久悠悠色av| 欧美日韩高清不卡| 精品不卡一区二区三区| 一本久久知道综合久久| 亚洲第一在线综合网站| 久久久国产精彩视频美女艺术照福利| 午夜一级久久| 亚洲视频999| 国产精品综合色区在线观看| 亚洲国产精品一区二区第四页av| 欧美三级欧美一级| 一本一本久久a久久精品综合麻豆| 国产美女扒开尿口久久久| 欧美日韩ab片| 国产精品美女久久久浪潮软件| 久久综合中文字幕| 欧美日在线观看| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美资源在线| 91久久精品美女高潮| 国语对白精品一区二区| 黑人巨大精品欧美黑白配亚洲| 欧美理论电影在线播放| 亚洲二区视频在线| 欧美一区在线看| 欧美大成色www永久网站婷| 欧美va天堂| 狠狠色综合一区二区| 亚洲视频网站在线观看| 亚洲视频在线观看免费| 在线日韩av永久免费观看| 另类图片国产| 激情视频一区二区| 国产精品一区二区在线观看| 亚洲欧美激情视频在线观看一区二区三区| 激情综合久久| 亚洲视频你懂的| 麻豆成人av| 欧美精品日韩综合在线| 这里只有视频精品| 国产精品一区二区三区四区五区| 欧美性猛交视频| 亚洲国产高清视频| 洋洋av久久久久久久一区| 在线一区二区日韩| 亚洲欧美99| 久久丁香综合五月国产三级网站| 欧美成人一区二区| 韩日精品视频一区| 亚洲国产精品一区制服丝袜| 亚洲国产精品一区二区久| 美日韩免费视频| 国产女同一区二区| 亚洲色图综合久久| 欧美福利一区二区| 六十路精品视频| 久久精品成人| 亚洲影院免费| 亚洲丝袜av一区| 久久婷婷国产麻豆91天堂| 亚洲欧美日韩精品久久久久| 欧美大片一区| 国产精品第一区| 精品91视频| 亚洲一区二区影院| 欧美精品日韩综合在线| 欧美在线网址| 一区二区三区欧美亚洲| 国产一区二区丝袜高跟鞋图片| 日韩视频免费观看| 一区二区三区四区五区视频| 日韩午夜在线视频| 国产精品国产自产拍高清av| 一区二区三区精品视频在线观看| 亚洲一区二区三区四区五区午夜| 欧美日韩小视频| 久久综合色播五月| 激情五月综合色婷婷一区二区| 影音先锋在线一区| 在线电影一区| 国产精品免费网站在线观看| 久久精品国产91精品亚洲| 欧美激情网站在线观看| 91久久久精品| 欧美日韩一区二区三区免费看| 国产亚洲福利社区一区| 欧美日本韩国| 欧美精品九九99久久| 亚洲一区二区三区影院| 午夜视频在线观看一区二区| 伊人狠狠色丁香综合尤物| 在线综合亚洲欧美在线视频| 国产精品v一区二区三区| 99国产一区二区三精品乱码| 一本色道精品久久一区二区三区| 国产精品国产三级国产专区53| 宅男噜噜噜66国产日韩在线观看| 久久久久高清| 久久九九久久九九| 国内精品久久久久影院色| 国产午夜亚洲精品理论片色戒| 国产精品亚洲片夜色在线| 欧美亚洲视频一区二区| 欧美成人精品一区二区| 国产视频精品免费播放| 欧美日韩国产精品成人| 亚洲精品国产精品乱码不99按摩| 亚洲一区二区成人| 国产欧美精品一区二区色综合| 性色一区二区三区| 亚洲人成网站色ww在线| 亚洲人成在线观看| 亚洲欧美日韩在线播放| 美女久久一区| 蜜臀av一级做a爰片久久| 国产午夜久久久久| 久久一区二区精品| 午夜精品免费| 欧美大学生性色视频| 午夜免费日韩视频| 这里只有精品丝袜| 一区二区三区视频在线| 亚洲一二三区在线观看| 麻豆精品视频在线观看视频| 亚洲乱码国产乱码精品精可以看| 黄色资源网久久资源365| 鲁鲁狠狠狠7777一区二区| 欧美一区二区女人| 国产精品午夜春色av| 香蕉乱码成人久久天堂爱免费| 久久av红桃一区二区小说| 欧美日韩一二三四五区| 国产综合18久久久久久| 亚洲精品少妇| 蜜桃视频一区| 开元免费观看欧美电视剧网站| 欧美色欧美亚洲高清在线视频| 国内精品模特av私拍在线观看| 最新国产の精品合集bt伙计| 免费在线观看日韩欧美| 欧美日本韩国一区二区三区| 国产亚洲成人一区| 国产亚洲欧美另类一区二区三区| 久久久亚洲国产天美传媒修理工| 一本色道久久99精品综合| 亚洲精品免费在线观看| 亚洲一本视频| 亚洲天堂免费观看| 欧美视频专区一二在线观看| 亚洲经典自拍| 欧美日韩中文字幕综合视频| 久久综合一区二区| 欧美日韩国产一区二区三区| 亚洲午夜高清视频| 国产欧美二区| 亚洲欧美日韩国产成人精品影院| 亚洲第一页自拍| 在线观看视频一区二区欧美日韩| 久久久精品国产免大香伊| 国产精品国产三级国产aⅴ9色| 国产一区二区在线观看免费| 欧美一区中文字幕| 欧美日韩视频在线观看一区二区三区| 先锋影音网一区二区| 韩国视频理论视频久久| 欧美成人按摩| 国产偷国产偷亚洲高清97cao| 欧美日韩在线视频一区二区| 一区二区三区日韩欧美精品| 欧美日本不卡| 久久精品男女| 一区二区三区四区五区精品视频| 亚洲激情网站| 国产精品性做久久久久久| 亚洲午夜电影| 久久精品电影| 蜜桃av综合| 欧美日韩成人在线观看| 欧美精品成人| 日韩一级片网址| 亚洲三级国产| 亚洲视频一起| 欧美乱大交xxxxx| 欧美日韩免费| 欧美日韩国产欧美日美国产精品| 国产亚洲一级| 欧美在线观看日本一区| 欧美久久一级| 欧美一区二区视频免费观看| 妖精成人www高清在线观看| 最新69国产成人精品视频免费| 欧美色播在线播放| 久久久久国产一区二区三区四区| 国产精品扒开腿做爽爽爽软件| 国内精品久久久久影院色| 亚洲欧美一区二区三区极速播放| 亚洲午夜一二三区视频| 国模叶桐国产精品一区| 久久精品91| 国产一区二区成人| 国产精品av一区二区| 久久人人超碰| 狠狠色伊人亚洲综合网站色| 国产精品视频一| 欧美久久电影| 国产精品一区免费观看| 影音先锋亚洲精品| 国产欧美一区二区三区在线老狼| 欧美一区二区三区免费大片| 国产一区二区久久| 欧美不卡激情三级在线观看| 久久激情五月激情| 欧美freesex交免费视频| 伊人狠狠色丁香综合尤物| 国产精品色网| 欧美精品videossex性护士| 国产喷白浆一区二区三区| 国产欧美日韩另类视频免费观看| 欧美日韩一区国产| 欧美在线观看一区二区| 国产一区欧美| 久久超碰97中文字幕| 国产精品亚洲综合色区韩国| 亚洲在线成人| 一区二区三区国产| 亚洲激情中文1区| 亚洲国产精品嫩草影院| 亚洲另类一区二区| 国产亚洲精品一区二555| 国产自产女人91一区在线观看| 日韩午夜电影在线观看| 欧美日本韩国| 国产精品一区视频网站| 亚欧美中日韩视频| 欧美电影免费观看高清完整版| 久久久久久久网站| 欧美激情视频在线免费观看 欧美视频免费一| 欧美中文字幕在线| 亚洲影院在线观看| 欧美日韩国产精品一卡| 日韩亚洲一区二区| 久久人人爽爽爽人久久久| 欧美日韩成人在线播放| 狠狠狠色丁香婷婷综合久久五月| 久久狠狠一本精品综合网| 欧美精品网站| 国内精品模特av私拍在线观看| 亚洲大片精品永久免费| 国产日韩欧美在线看| 国产精品欧美风情| 欧美天天视频| 一本色道久久88精品综合| 欧美国产日韩精品| 国内成+人亚洲+欧美+综合在线| 欧美在线你懂的| 国产精品高潮呻吟视频| 蜜桃久久av| 亚洲一区二区三区国产| 国产亚洲精品自拍| 国产一区二区三区日韩欧美| 欧美激情区在线播放| 一本色道久久99精品综合| 国产美女精品视频免费观看| 亚洲狼人精品一区二区三区| 国产午夜亚洲精品羞羞网站| 在线免费一区三区| 欧美日韩国产三区| 欧美亚洲一区二区三区| 欧美一区二区视频观看视频| 狠狠爱www人成狠狠爱综合网| 国产一区二区在线观看免费播放| 一区二区三区|亚洲午夜| 亚洲精品久久嫩草网站秘色| 一区二区三区视频在线看| 欧美少妇一区| 亚洲看片网站| 亚洲一区3d动漫同人无遮挡| 最新69国产成人精品视频免费| 亚洲一区二区三区中文字幕在线| 亚洲小视频在线观看| 国产精品成人aaaaa网站| 一区二区三区四区五区精品| 一区二区三区视频在线观看| 国产精品亚洲综合色区韩国| 久久夜精品va视频免费观看| 欧美另类极品videosbest最新版本|