895191538用FPGA實現(xiàn)NiosII嵌入式系統(tǒng)配置技術(shù)_第1頁
895191538用FPGA實現(xiàn)NiosII嵌入式系統(tǒng)配置技術(shù)_第2頁
895191538用FPGA實現(xiàn)NiosII嵌入式系統(tǒng)配置技術(shù)_第3頁
895191538用FPGA實現(xiàn)NiosII嵌入式系統(tǒng)配置技術(shù)_第4頁
895191538用FPGA實現(xiàn)NiosII嵌入式系統(tǒng)配置技術(shù)_第5頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、現(xiàn)場可編程門陣列(fpga,field programmable gate array)是一種高密度可編程邏輯器件,其邏輯功能是通過把設(shè)計生成的數(shù)據(jù)文件配置進芯片內(nèi)部的靜態(tài)配置數(shù)據(jù)存儲器(sram )來實現(xiàn)的,具有可重復(fù)編程性,可以靈活實現(xiàn)各種邏輯功能。由于fpga器件采用的是sram 工藝,在斷電的情況下fpga內(nèi)的配置數(shù)據(jù)將丟失。所以,在典型的采用fpga器件的電子系統(tǒng)中通常將fpga 的配置數(shù)據(jù)存放于其兼容的sprom 中,上電時由控制電路將sprom中的配置數(shù)據(jù)裝入fpga器件中。但是通常的sprom價格昂貴,且是一次性,不利于fpga程序的更新,所以有必要分析fpga 的配置原理,采

2、用廉價、能重復(fù)使用的方式配置fpga。本文主要根據(jù)altera公司手冊及以前的經(jīng)驗,設(shè)計和完成了一種新的fpga配置文件下載更新的方法。其主要原理是在每次啟動系統(tǒng)時,由配置控制器從flash中讀出fpga配置文件,再下載到fpga中以完成器件的配置功能。當(dāng)系統(tǒng)需要升級更新fpga配置文件時,可通過網(wǎng)絡(luò)或者由主機通過jtag(joint test action group)接口(未聯(lián)網(wǎng)時)將配置文件發(fā)送給基于niosii處理器的嵌入式系中,由nios ii處理器更新系統(tǒng)中的flash。當(dāng)flash內(nèi)容更新后,系統(tǒng)就可實現(xiàn)在加電時由配置控制器自動將配置文件下載到fpga中。而配置控制器是采用復(fù)雜可

3、編程邏輯器件(cpld,complex programmable logic device),主要功能是實現(xiàn)并串轉(zhuǎn)換。這樣在不需要任何硬件動作和專業(yè)軟件的情況下,只需要進行常規(guī)軟件操作就可以更新fpga的配置文件。不僅節(jié)約了成本,還有效地縮小了系統(tǒng)體積,有利于以后系統(tǒng)工程的升級更新。1 基于nios ii的嵌入式系統(tǒng)簡介nios ii是altera公司在第一代軟核處理器nios的基礎(chǔ)上于2004年5月為其fpga產(chǎn)品配套開發(fā)的軟核cpu。nios ii是一種采用流水線技術(shù)、單指令流的基于risc技術(shù)的通用嵌入式軟核處理器、哈佛體系結(jié)構(gòu),地址、數(shù)據(jù)、指令均為32位,最高性能可達(dá)到200dmips

4、 (dhrystones mips)。nios ii系統(tǒng)中的外設(shè)具有可配置性,用戶可根據(jù)實際應(yīng)用來裁剪,并且nios ii處理器有很好的自定義指令支持,大部分指令均可以在一個時鐘周期內(nèi)完成,這也是可配置處理器的優(yōu)勢所在。nios ii在邏輯功能上是32位的精簡指令集cpu;而在實現(xiàn)方式上,它是在fpga上通過編程方式實現(xiàn)的,這也是與傳統(tǒng)的cpu一個根本差別。nios ii的總線方式也采用了一種簡單的總線體系結(jié)構(gòu)avalon總線。該軟核cpu為可編程片上系統(tǒng)sopc給用戶提供了一套綜合解決方案,它可以與用戶自定義邏輯結(jié)合構(gòu)成soc系統(tǒng),并下載到altera的fpga 芯片中,使得fpga在嵌入式

5、系統(tǒng)領(lǐng)域的地位越來越重要?;趎ios ii的嵌入式系統(tǒng)主要實現(xiàn)了絞線式列車總線(wtb,wire train bus) 網(wǎng)絡(luò)節(jié)點機的功能,該系統(tǒng)是基于sopc技術(shù),首先定制nios ii的嵌入式cpu、必要的外部和相關(guān)配置的芯片,然后按照wtb標(biāo)準(zhǔn)和nios ii特有的avalon總線接口設(shè)計并通過vhdl實現(xiàn)mau的功能,由nios ii來控制wtb網(wǎng)絡(luò)通信功能。基于nios ii嵌入式軟核wtb網(wǎng)絡(luò)節(jié)點機硬件體系結(jié)構(gòu)主要由fpga、flash nemory、ssram memory、max7000配置控制器等硬件組成。fpga 采用altera公司的cyclone系列的ep1c6q240

6、c8,使用altera公司的max7000系列的epm7256配置控制器完成對ep1c6q240c8的配置,基于nios ii的嵌入式系統(tǒng)的原理圖如圖1所示。其中圖中的jtag2表明有2個jtag接口,一個用來在線配置調(diào)試,一個用來下載更新配置文件。2 fpga 器件的配置方式fpga的配置方式分為主動方式(as,active serial)、被動方式(ps,passive serial)和jtag方式,數(shù)據(jù)寬度有8位并行方式和串行方式兩種。在主動模式下,fpga在上電后,由pld器件引導(dǎo)配置操作過程,它控制著外部存儲器和初始化過程,自動將配置數(shù)據(jù)從相應(yīng)的外存儲器讀入到sram 中,實現(xiàn)內(nèi)部結(jié)

7、構(gòu)映射;而在被動模式下,fpga則作為從屬器件,由相應(yīng)的控制電路或微處理器提供配置所需的時序,實現(xiàn)配置數(shù)據(jù)的下載。下面對基于icr(in-circuit reconfigurability)fpga器件的配置方式進行詳細(xì)分析:(1) 主動串行方式(as,active serial):主要使用epc配置器件,適應(yīng)用低速設(shè)備的配置; (2) 被動串行方式(ps,passive seria1):使用配置控制器的串行接口;(3) 被動并行同步方式(pps,passive parallel synchronous):使用配置控制器的并行同步接口;(4) 被動并行異步方式(ppa,passive para

8、llel asynchronous):使用配置控制器的并行異步接口;(5) 邊界掃描方式(jtag,joint test action group):使用jtag下載電纜?;赼s方式配置使用epc配置器件進行配置時,首先將配置文件從計算機下載到epc配置器件中去,然后由epc配置器件控制配置時序?qū)pga進行配置。epc配置器件有一次可編程和可擦寫編程型兩種:一次可編程型芯片只能寫入一次,不適于開發(fā)階段反復(fù)調(diào)試、修改及產(chǎn)品的方便升級;可擦除編程型價格昂貴,且容量有限,對于容量較大的可編程邏輯器件,需要多片配置芯片組成菊花鏈進行配置,增加了系統(tǒng)設(shè)計的難度。使用ps、pps、ppa方式配置時,配

9、置文件事先是以二進制形式保存在系統(tǒng)rom 中,然后通過配置控制器將配置數(shù)據(jù)送進fpga中。ps是通過串行方式送到fpga中,pps是以并行方式送給fpga。fpga在其內(nèi)部將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù),該數(shù)據(jù)轉(zhuǎn)換時需要外部配置時鐘的驅(qū)動。比較ps和pps,所用的配置時間幾乎相同,而ps的接口方式比較簡單,所以嵌入式系統(tǒng)中通常選擇ps方式配置fpga。使用ppa方式配置數(shù)據(jù)時,配置控制器將配置數(shù)據(jù)以并行方式送給fpga,然后在fpga內(nèi)部進行數(shù)據(jù)串行化處理。與pps不一樣的地方是串行化處理時不需要配置外部時鐘的驅(qū)動,但接口更復(fù)雜,工程中很少使用。邊界掃描方式需要連接計算機,無法在現(xiàn)場使用,嵌入式系統(tǒng)

10、中很少采用這種方式。通過上述的分析,在嵌入式系統(tǒng)中要使用fpga時,可以采用專用epc配置器件、ps、pps、ppa和cpld配置器件,但是ps、pps、ppa比專用epc配置更具成本和體積優(yōu)勢。在ps、pps、ppa中,ps又是最優(yōu)的通信方式。所以在嵌入式系統(tǒng)中,選擇利用cpld配置器件的ps被動串行方式來配置fpga最為合適。而本文正是利用cpld配置控制器基于ps方式進行fpga配置的新方法,在每次啟動系統(tǒng)時,由配置控制器從flash中讀出fpga配置文件的數(shù)據(jù)信息,再下載到fpga中以完成器件的配置功能。當(dāng)系統(tǒng)需要升級更新fpga配置文件時,可通過網(wǎng)絡(luò)或者由主機通過jtag接口(未聯(lián)網(wǎng)

11、時)將配置文件發(fā)送給基于niosii處理器的嵌入式系統(tǒng)中,由nios ii處理器更新系統(tǒng)中的flash。當(dāng)flash內(nèi)容更新后,系統(tǒng)就可實現(xiàn)在加電時由cpld配置控制器自動將配置文件下載到fpga中。這樣在不需要任何硬件動作和專業(yè)軟件的情況下,只需要進行常規(guī)軟件操作就可以更新fpga的配置文件。cpld配置控制器主要是在配置fpga時將flash存放的配置文件中的并行數(shù)據(jù)轉(zhuǎn)化為串行數(shù)據(jù),實現(xiàn)系統(tǒng)的加電自運行。3 嵌入式系統(tǒng)中fpga 的配置電路設(shè)計 3.1 ps方式配置時序在嵌入式系統(tǒng)中,配置控制器可以產(chǎn)生配置時序,能夠和fpga直接通信,將flash 中的配置文件傳輸?shù)絝pga 的sram

12、中去。通常使用ps被動串行方式進行配置fpga,下面就通信中使用到的5根信號線的配置時序進行說明。5根信號線分別為nconfig、nstatus、conf_done、dclk、data,連接配置控制器的5個i/o 口和對應(yīng)的fpga的引腳,配置時序圖如圖2所示。圖2 ps方式配置信號時序圖配置控制器上的5個i/o端口連接上述5個信號線。其中連接nconfig、dclk、data端口設(shè)置成輸出態(tài),nstatus、conf_done端口設(shè)置成輸入態(tài)。當(dāng)配置控制器開始與fpga通信時,配置控制器首先在nconfig上送出一個大于8 um的負(fù)脈沖,并且檢測nstatus 上的信號。當(dāng)fpga 接收到n

13、config上的下降沿時,迅速將nstatus和conf_done拉低,并且保持低電平信號一直到nconfig抬高電平。當(dāng)nconfig上抬高電平后過1 um,nstatus也將電平抬高,配置控制器檢測到nstatus上的變化后認(rèn)為fpga 已經(jīng)做好了接收數(shù)據(jù)的準(zhǔn)備。下一步配置控制器將產(chǎn)生配置時鐘脈沖,配置時鐘的第一個上升沿至少要比nstatus上升沿晚1 um。又由于配置數(shù)據(jù)和配置時鐘上升沿同步,所以在配置時鐘上升沿發(fā)生之前,數(shù)據(jù)線必須已經(jīng)有了配置數(shù)據(jù)信號。配置數(shù)據(jù)是按照低位在前高位在后的順序把數(shù)據(jù)送上數(shù)據(jù)線。當(dāng)所有數(shù)據(jù)都傳輸完畢后,conf_done線上電平被抬高以示配置完畢。如果傳輸中出

14、現(xiàn)了異常,fpga迫使nstatus拉低電平,配置控制器一旦檢測到了這種現(xiàn)象將重新開始配置。由于配置文件中已經(jīng)包含了fpga初始化的一些代碼,所以傳輸完配置文件后,fpga就可以正常工作了。 3.2 基于cpld配置控制器的配置電路設(shè)計cpld是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計方法是借助quartus ii開發(fā)軟件平臺,通過jtag下載電纜將代碼傳送到目標(biāo)芯片中,實現(xiàn)系統(tǒng)配置所需的時序要求和功能需求。而更重要的是cpld配置控制器可以進行上萬次的燒寫操作。嵌入式系統(tǒng)中fpga 的ps方式配置方式電路設(shè)計如圖3所示。fpga和flash、ssram組成了一個最基本

15、的嵌入式系統(tǒng),其中將nios ii軟核處理器嵌入到fpga中。flash 作為程序的存儲器,其中存儲著系統(tǒng)的整個軟件應(yīng)用程序和配置文件。ssam作為系統(tǒng)程序運行空間,可以有效地解決配置控制器自身sram容量小的問題。圖3 ps方式配置方式電路設(shè)計在圖3所示的設(shè)計中,msel0和msel1是配置專用線,如果msel0接高電平(vcc),msel1接地(gnd),則此時的配置模式為ps模式; 如果mselo 和msel1都接地(gnd),則配置模式為as模式。cpld控制器的控制信號max_control_signal主要包括flash_cs_n (片選)、flash_oe_n (輸出使能)、fl

16、ash_rw_n (讀寫使能)、flash_reset_n(重置)、flash_byte_n (字節(jié)傳輸)等信號線。配置文件通過altera的quartus ii軟件以.pof(programmer object files)文件格式下載到epm7256配置控制器內(nèi),如果配置有錯誤,該配置控制器可以進行多次下載,直至最終完成配置功能。flash中存儲的程序包括系統(tǒng)配置程序文件、軟件程序,其格式為.flash。系統(tǒng)加電后,配置控制器從flash 的0地址開始將配置文件進行并/串轉(zhuǎn)換后(即將圖3中的flash_data7.0轉(zhuǎn)換為data0)加載到fpga中,完成系統(tǒng)加電時的自動配置功能;同時ni

17、os ii處理器將flash 中的應(yīng)用程序移至到ssram 中運行,從而實現(xiàn)嵌入式系統(tǒng)的初運行。通過nios ii ide工具可以將配置文件fpga 的.sof文件格式轉(zhuǎn)換為flash存儲器所需要的. flash文件格式。4 配置文件的設(shè)計與實現(xiàn)為了確保配置過程的正確,提高系統(tǒng)的配置性能,在配置文件設(shè)計時應(yīng)嚴(yán)格按照fpga的ps配置流程進行,并在配置過程中始終監(jiān)控配置工作狀態(tài),在完善的配置程序配合下可以糾正如上電次序?qū)е屡渲貌徽5儒e誤。該配置程序是采用vhdl語言編寫的,編寫完成后,將配置文通過jtag接口下載到epm7256配置控制器內(nèi),根據(jù)圖2的ps配置時序,其配置流程如下:(1)配置信

18、號的初始化:datao=0,dclk=0,nconfig=0,conf_done=1和nstatus=1,并保持2 us以上。(2)檢測nstatus,如果為“0”,表明fpga 已響應(yīng)配置,可開始進行配置,否則報錯,并返回1。正常情況下,nconfig=0后1 us內(nèi)nstatus為“0”。(3)置nconfig=1,并延時5 us。(4)datao上放置數(shù)據(jù)(低位在前),dclk=1,延時。(5)dclk=0,并檢測nstatus,若為“0”,則報錯,重返1。(6)準(zhǔn)備下一位數(shù)據(jù),并重新執(zhí)行(4)、(5),直到數(shù)據(jù)發(fā)送完為止。(7)此時conf_done應(yīng)變成“1”,表明fpga已完成配置,如果數(shù)據(jù)發(fā)送完后,conf_done為“0”,必須重新配置返回1。(8)配置完成后,再送出299個周期(cyclone要求的)的dclk,以便fpga完成初始化。5 結(jié)束語本文介紹了通

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論