www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]FPGA的在應用編程技術研究

引 言
   
在FPG人中實現(xiàn)在應用編程(In Application Pro—gramming,IAP)有兩種方法:一種是,在電路板上加外電路。例如用MCU或CPLD來接收配置數(shù)據(jù),在被動串行(PS)模式下由外電路編程FPGA或是編程Flash器件(包括EPCS和Flash),然后控制FPGA的配置復位引腳來復位整個FPGA,最后FPGA采用主串方式進行自我配置。另一種是,通過FPGA中的Nios CPU或是專用IP來接收編程數(shù)據(jù),并編程Flash芯片,然后通過外部簡單電路將FPGA復位啟動,以主動串行(AS)模式進行配置。
    為了減小電路板面積,節(jié)約成本,提高可靠性,本設計采用第二種方法。本設計的要求是:硬件電路須配置為主動串行模式,即選擇MSEL[1:O]為l:O;具備EPCS,或同時具備EPCS和Flash;具有與PC機通信的功能。FPGA接收更新數(shù)據(jù),并將其存入Flash器件,然后復位Nios或FPGA對軟硬件進行更新。 

1 系統(tǒng)的硬件設計
    系統(tǒng)主要由Cyclone FPGA、EPCS、Flash和串行通信等組成,硬件結構如圖1所示。

    EPCS采用Altera公司的EPCS4,容量達到4 Mb,引腳較少,成本低,支持3.3 V低電壓操作。Flash芯片采用AMD公司的Am29LV640MH/L,支持3.O V低電壓操作,具有低功耗特性,芯片容量為64 Mb,滿足大容量數(shù)據(jù)的存儲;并口操作,與Cyclone FPGA完全兼容,而且在SOPC中有與之對應的CFI_FLASH核,便于硬件電路的設計。

2 工作原理
2.1 幾個概念

    FPGA配置數(shù)據(jù):是sof文件,將sof文件編程到Flash中,上電后FPGA可以從Flash中配置。sof文件是其他配置文件的基礎,其他文件均可由sof文件轉換得到。
    軟件數(shù)據(jù):通過NiosII IDE創(chuàng)建elf文件,將用戶程序編程到Flash中,允許復位后從F1ash中加載軟件程序,從而啟動NiosII CPU。
2.2 編程文件
    編程文件為Flash格式的文件,即S—reeorld(簡稱“SREC”)格式。SREC格式是Motorola公司制定的一種燒寫格式標準。SREC格式文件是由一組ASCII碼組成,所有的十六進制數(shù)據(jù)均為大寫形式,結構說明如下:
    ①起始代碼。以S作為一個數(shù)據(jù)行的開始。
    ②記錄類型。1個十進制數(shù)字(O~9),定義數(shù)據(jù)域的類型。
    ③字節(jié)數(shù)。1個字節(jié),定義字節(jié)數(shù)之后除地址字節(jié)、校驗字節(jié)之外其他字節(jié)的個數(shù)。
    ④地址。由4(或6、8)個字節(jié)組成,定義了第一個數(shù)據(jù)字節(jié)存儲的位置。
    ⑤數(shù)據(jù)字節(jié)。由n個字節(jié)組成,數(shù)據(jù)字節(jié)為實際有效的編程信息。
    ⑥校驗字節(jié)。1個字節(jié),作校驗使用,所有十六進制字節(jié)相加后取8位,為0xFF。
2.3 AS配置模式
   
FPGA的配置數(shù)據(jù)存儲在內(nèi)部SRAM單元中。由于SRAM掉電后數(shù)據(jù)會丟失,因此每次上電時必須重新將配置數(shù)據(jù)寫入SRAM中。這個過程稱為“FPGA的配置”。由此可見,F(xiàn)PGA的配置信息是存儲在FPGA內(nèi)部RAM當中的??芍谥鲃哟心J较?,F(xiàn)PGA將配置數(shù)據(jù)從EPGS中讀取,然后存入內(nèi)部RAM中。
    AS配置模式支持StratixII和Cyclone系列的FPGA,通過配置MSEL[1:O]為1:0,選擇主動配置模式(除JTAG模式不受MSEL控制外,其他配置方式均由MSEL決定)。AS配置模式使用串行配置器件(EPCS1/EPCS4/EPCSl6/EPCS64)。在AS配置過程中,StratixlI和Cy—clone系列的FPGA是主設備,串行配置器件為從設備。如圖2所示,在AS配置模式下,F(xiàn)PGA通過DATA0接收配置數(shù)據(jù),配置數(shù)據(jù)和DCLK是同步的。每個時鐘周期傳輸1位配置數(shù)據(jù)。通過控制nCONFIG、nSTATUS、CONF_DONE來表示配置過程。串行配置芯片在DCLK上升沿時鎖存輸入信號和控制信號,在下降沿時輸出配置數(shù)據(jù)。Cyclone芯片在DCLK下降沿時輸出控制信號,并鎖存配置數(shù)據(jù)。

3 工作流程
3.1 硬件配置的更新

    如圖3所示,F(xiàn)PGA的配置過程分為:復位、配置和初始化。

[!--empirenews.page--]

    (1)復位FPGA

    上電復位:在用戶模式下,當nCONFIG引腳持續(xù)低電平40μs時,F(xiàn)PGA將進入復位狀態(tài)。復位時,F(xiàn)P—GA采樣MSEL引腳的電平值,以確定采用的配置方式;同時,nSTATUS和CONF_DONE引腳由FPGA置為低電平,所有I/0引腳為三態(tài)且FPGA內(nèi)部配置寄存器被清空。
    FPGA復位的2種方法:
    ①外加RC復位電路或者復位芯片,自動產(chǎn)生上電復位脈沖。
    ②參考芯片手冊。如果芯片提供了上電復位脈沖(一般是全局復位信號),則使用它作為復位信號;若沒有提供,則查找芯片是否給出了寄存單元上電默認值(一般是O),利用該特性復位或者產(chǎn)生復位脈沖。
    (2)配置FPGA
    復位后,nCONFIG被外部上拉電阻拉高,進入配置階段。此時,nSTATUS被FPGA釋放并由外部上拉電阻拉為高電平后進入配置狀態(tài)。Cyclone芯片通過將nCSO輸出的信號置低來使能串行配置芯片,nCS0引腳連接配置芯片的片選段(nCS),用串行時鐘(DCLK)和串行數(shù)據(jù)輸出(ASDO)引腳來發(fā)送操作指令,及/或?qū)⒌刂沸盘栕x到串行配置芯片中。接著配置芯片將數(shù)據(jù)送到串行數(shù)據(jù)輸出(DATA)引腳,DATA引腳連接Cyclone芯片的DATA0輸入腳。配置數(shù)據(jù)在DCLK時鐘的上升沿載入FPGA。當接收完所有的配置位后(CRC校驗無誤),Cyclone芯片懸空CONF_DONE引腳,該引腳由外部10 kΩ電阻拉高;同時,停止驅(qū)動DCLK信號。只有當CONF_DONE到達一定的邏輯高電平后,初始化才開始。
    (3)初始化階段
    在Cyclone芯片中,初始時鐘源是Cyclone芯片的lOMHz(典型的)內(nèi)部晶振,或者是可供選擇的CLKUSR引腳。內(nèi)部晶振是默認的初始化時鐘源。如果用了內(nèi)部時鐘,則Cyclone芯片為正確的初始化提供足夠的時鐘。使用內(nèi)部時鐘的好處在于,初始化時不需要從外部發(fā)送其他的時鐘到CLKUSR引腳,而且可以把CLKUSR引腳當作I/O引腳。
    (4)用戶模式
    初始化結束后,F(xiàn)PGA進入用戶模式。在用戶模式下,用戶I/O引腳不再有弱上拉電阻,而是執(zhí)行設計中分配的功能。Cyclone芯片可以通過將nCONFIG拉低而開始重新配置。nCONFIG低信號應該至少持續(xù)40μs。當nCONFIG被拉低時,Cyclone芯片被復位并進入復位階段。Cyclone芯片也會把nSTATUS和CONF_DONE拉低,所有的I/O引腳處于三態(tài)。一旦nCONFIG回到邏輯高電平,Cyclone芯片將釋放nSTATUS,重新開始配置。
    (5)配置時出現(xiàn)的錯誤
    如果在配置時出現(xiàn)錯誤,則Cyclone芯片將nSTA—TUS信號置低來表明一個數(shù)據(jù)幀錯誤,CONF_DONE信號為低。如果在Quartus軟件的Device&Pin Options窗口的General項中,選中Auto—restart configuration aftererror選項,則Cyclone芯片通過激活nCSO來實現(xiàn)復位,在復位失效時間(40μs)后釋放nSTATUS,并再次嘗試配置。如果該選項未被選中,則外部系統(tǒng)必須監(jiān)視nSTA—TUS信號以防出錯,然后將nCONFIG信號拉低并持續(xù)至少40μs來重新配置。
    計算機與目標板上的Nios程序建立連接,通過通信接口將Flash文件傳輸給FPGA;Nios程序判斷出傳輸文件的針對目標后,將編程數(shù)據(jù)存放在EPCS或Flash中。接收到的數(shù)據(jù)首先暫存入SDRAM,而不是直接對EPCS和Flash進行操作。這樣做的好處是,一旦傳輸失敗或中止,不會破壞原有EPCS和Flash中的數(shù)據(jù)。
    通過sof2Flash命令來生成Flash文件時,可以通過SOPC Builder打開NioslI command shell,使用“sof2 Flash—epcs-input=<輸入文件名.sof>一output=<輸出文件名.Flash>”命令,生成的Flash文件存在于工程目錄下。也可以將sof文件復制到“〈quartus安裝目錄〉\kits\nios2_60\examples”下,直接打開NiosII command shell,使用“sof2Flash-epcs—input=<輸入文件名.sof>一output=<輸出文件名.Flash>”,生成的Flash文件存在于“〈quartus安裝目錄〉\kits\nios2_60\examples”下。
3.2 軟件程序的更新
   
如前所述,軟件程序既可以存放在Flash中,也可以存放在EPCS中。生成軟件Flash文件的最簡單的方式是,在NiosII IDE環(huán)境下對系統(tǒng)進行編譯,生成的Flash文件存在于“<目標工程>\software\debug\<軟件工程>\Debug\obj\”目錄下。
    Nios程序可以存放在Flash中,在SDRAM或On—chip RAM(以下統(tǒng)稱“RAM”)中運行。這種情況需要有一個專門的Bootloader,該文件存在于“ quartus安裝目錄>\kits\nios2_60\components\altera_nios2”目錄下,名稱為“boot_loader_cfi.srec”。它把存放在Flash中的各個程序段搬到程序執(zhí)行時各個段真正的位置。
    如圖4所示,Bootloader代碼位于Flash的低地址處,NiosII就被邏輯中的復位電路復位,從reset地址處開始執(zhí)行代碼。如果reset地址設置在Flash中,那么復位后首先運行Flash前面的Bootloader代碼,由Bootloader代碼將后面的用戶程序引導到指定位置。執(zhí)行elf2Flash應用程序在elf文件前會插入一個引導復制(Boot—copier)程序,前提是,elf將被鏈接到RAM中運行。

[!--empirenews.page--]

    Bootloader的工作流程如圖5所示。

    NiosII C程序在運行之前需要做一些初始化工作。如果程序直接從Flash中運行,則Crt0.S是最先執(zhí)行的代碼;如果程序不是直接從Flash中運行,則Crt0.S是執(zhí)行完Bootloader后最開始執(zhí)行的代碼。
    運行完Bootloader后仍然要執(zhí)行CrtO.s,但此時Crt0.s的流程和程序在Flash中直接運行的情況有一些區(qū)別:它沒有初始化指令Cache,也不會企圖去裝載別的段,這些步驟已經(jīng)在Boot—loader中完成。程序映像已經(jīng)包含這些段,在搬移程序映像的同時也裝載了相應的段(.rodata段,.rwdata段和.exceptions段)。程序映像中不包含.bss段和棧,所以仍然需要清.bss段,以及設置棧指針sp和全局指針gp。Bootloader沒有讀寫存儲器數(shù)據(jù),因此沒有初始化數(shù)據(jù)Cache,所以Crt0.S仍然要初始化數(shù)據(jù)Cache。如圖6所示,當Bootloader讀取到L時,L=0表示前面所有的程序記錄已經(jīng)處理完畢,這是最后的程序記錄,所以就直接跳到地址A的地方執(zhí)行。顯然A必須是程序的入口地址。如果L=Oxffffffff(即一1),那么就忽略A并停機,這樣,即使是一個只有FPGA配置數(shù)據(jù)而沒有程序的EPCS也是安全的。當一個EPCS只有配置數(shù)據(jù)而沒有程序時,sof2Flash會在配置數(shù)據(jù)的末尾增加4個字節(jié)的Oxff,使Bootloader不會有誤動作。Bootloader的工作流程與Flash中相同,如圖5所示。

4 軟件編程
    Altera公司提供給客戶兩種類型的函數(shù):SimpleFlash Access(簡單的Flash訪問),以及Fine—GrainedFlash Access(細粒度Flash訪問)。本文使用Fine—Grained Flash Access函數(shù),雖然比Simple Flash Access復雜一些,但可以避免通常的跨塊擦除問題。因為Flash是按照塊(Block)組織起來的,通常一次擦除一整個塊。如果寫Flash的地址與Flash塊的組織結構不吻合,比如跨越了Flash塊的邊緣,那么可能會擦除掉其余的數(shù)據(jù)。在使用Flash的讀寫函數(shù)時,頭文件中要包含“sys/alt_Flash.h”和“sys/alt_Flash_dev.h”,這兩個頭文件提供了訪問Flash器件的驅(qū)動接口。
    使用之前要打開Flash。打開Flash,就像C程序打開硬盤中的數(shù)據(jù)文件一樣。這里使用alt_Flash_open_dev()打開Flash,它返回一個句柄。例如:


其中,fd是alt_Flash_open_dev()返回的句柄;offset是相對Flash基地址的偏移量,是讀操作中要讀出數(shù)據(jù)第一個字節(jié)的地址;length是本次操作的數(shù)據(jù)長度,單位是字節(jié)。當返回值為時,表示讀操作成功。

其中,fd是a1t_Flash_open_dev()返回的句柄;offset是相對Flash基地址的偏移量,是寫操作中要寫入的數(shù)據(jù)第一個字節(jié)的地址;length是本次操作的數(shù)據(jù)長度,單位是字節(jié)。當返回值為O時,表示寫操作成功。
    使用完后別忘記關閉該Flash,就像讀寫完硬盤中的數(shù)據(jù)文件后要關閉一樣。其原型如下:
void alt_Flash_close_dev(alt_Flash_fd*fd);
其中,fd是alt_Flash_open_dev()返回的句柄。
    編者注:Flash器件讀寫程序略。


結 語
    目前,在FPGA的開發(fā)過程中,每次進行程序的調(diào)試和更新時都需要將產(chǎn)品與計算機直連,進行在線操作,這樣就限制了程序調(diào)試和更新的空間范圍。而基于FPGA的在應用編程技術就是為了打破這種限制而設計的。在應用編程技術對硬件要求極低,只要滿足FPGA是Cy—clone系列,具有Flash器件,具有上下位機的通信能力,無需增加太多的硬件資源,都可以實現(xiàn)在應用編程。如果產(chǎn)品具有網(wǎng)絡功能或無線功能,那么在惡劣的工業(yè)現(xiàn)場和野外可以免除到現(xiàn)場反復拆卸、調(diào)試的麻煩。對于保密產(chǎn)品,該項技術可以保護知識產(chǎn)權,通過網(wǎng)絡更新產(chǎn)品的軟硬件,增加了更新過程中被破解的難度。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險積極籌備個人養(yǎng)老金的產(chǎn)品設計和系統(tǒng)開發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動商業(yè)養(yǎng)老保險、個人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險等產(chǎn)品供給。 搭養(yǎng)老政策東風 ...

關鍵字: 溫度 BSP 東風 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎單元,承載著生存與活動的最基本功能。而對于理想空間的解構意義卻在物理性容器之外,體現(xiàn)出人們對于空間和生活深層關系的思考,同時也塑造著人與空間的新型連接...

關鍵字: 溫度 BSP 智能化 進程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績預告。今年前三季度,公司預計實現(xiàn)營業(yè)收入7.54億元至8.33億元,同比增長60.24%至77.03%;歸母凈利潤預計為1.73億...

關鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟和信息化局發(fā)布2022年度第一批北京市市級企業(yè)技術中心創(chuàng)建名單的通知,諾誠健華正式獲得"北京市企業(yè)技術中心"認定。 北京市企業(yè)技...

關鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲及超融合市場研究報告》,報告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...

關鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團成立60周年的紀念日。趁著首都銀行集團成立60周年與首都銀行(中國)在華深耕經(jīng)營12年的“大日子”,圍繞作為外資金融機構對在華戰(zhàn)略的構想和業(yè)...

關鍵字: 數(shù)字化 BSP 供應鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團公司上海通運國際物流有限公司(Nipp...

關鍵字: 溫控 精密儀器 半導體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國進出口商品交易會("廣交會")于"云端"開幕。本屆廣交會上高新技術企業(yè)云集,展出的智能產(chǎn)品超過140,...

關鍵字: 中國智造 BSP 手機 CAN

要問機器人公司哪家強,波士頓動力絕對是其中的佼佼者。近來年該公司在機器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開發(fā)的機器人會后空翻,自主爬樓梯等。這不,波士頓動力又發(fā)布了其機器人組團跳男團舞的新視頻,表演的機器人包括...

關鍵字: 機器人 BSP 工業(yè)機器人 現(xiàn)代汽車

南京2022年10月17日 /美通社/ -- 日前《2022第三屆中國高端家電品牌G50峰會》于浙江寧波落幕,來自兩百余名行業(yè)大咖、專家學者共同探討了在形勢依然嚴峻的當下,如何以科技創(chuàng)新、高端化轉型等手段,幫助...

關鍵字: LINK AI BSP 智能家電

嵌入式軟件

15715 篇文章

關注

發(fā)布文章

編輯精選

技術子站

關閉