



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 用FPGA實(shí)現(xiàn)NiosII嵌入式系統(tǒng)配置技術(shù) 用FPGA實(shí)現(xiàn)NiosII嵌入式系統(tǒng)配置技術(shù) 類別:嵌入式系統(tǒng) 現(xiàn)場(chǎng)可編程門陣列(FPGA,F(xiàn)ieldProgrammableGateArray)是一種高密度可編程邏輯器件,其邏輯功能是通過(guò)把設(shè)計(jì)生成的數(shù)據(jù)文件配置進(jìn)芯片內(nèi)部的靜態(tài)配置數(shù)據(jù)存儲(chǔ)器(SRAM)來(lái)實(shí)現(xiàn)的,具有可重復(fù)編程性,可以靈活實(shí)現(xiàn)各種邏輯功能。由于FPGA器件采用的是SRAM工
2、藝,在斷電的情況下FPGA內(nèi)的配置數(shù)據(jù)將丟失。所以,在典型的采用FPGA器件的電子系統(tǒng)中通常將FPGA的配置數(shù)據(jù)存放于其兼容的SPROM中,上電時(shí)由控制電路將SPROM中的配置數(shù)據(jù)裝入FPGA器件中。但是通常的SPROM價(jià)格昂貴,且是一次性,不利于FPGA程序的更新,所以有必要分析FPGA的配置原理,采用廉價(jià)、能重復(fù)使用的方式配置FPGA。 本文主要根據(jù)Altera公司手冊(cè)及以前的經(jīng)驗(yàn),設(shè)計(jì)和完成了一種新的FPGA配置文件下載更新的方法。其主要原理是在每次啟動(dòng)系統(tǒng)時(shí),由配置控制器從Flash中讀出FPGA配置文件,再下載到FPGA中以完成器件的配置
3、功能。當(dāng)系統(tǒng)需要升級(jí)更新FPGA配置文件時(shí),可通過(guò)網(wǎng)絡(luò)或者由主機(jī)通過(guò)JTAG接口(未聯(lián)網(wǎng)時(shí))將配置文件發(fā)送給基于NiosII處理器的嵌入式系統(tǒng)中,由NiosII處理器更新系統(tǒng)中的Flash。當(dāng)Flash內(nèi)容更新后,系統(tǒng)就可實(shí)現(xiàn)在加電時(shí)由配置控制器自動(dòng)將配置文件下載到FPGA中。而配置控制器是采用復(fù)雜可編程邏輯器件(CPLD),主要功能是實(shí)現(xiàn)并串轉(zhuǎn)換。這樣在不需要任何硬件動(dòng)作和專業(yè)軟件的情況下,只需要進(jìn)行常規(guī)軟件操作就可以更新FPGA的配置文件。不僅節(jié)約了成本,還有效地縮小了系統(tǒng)體積,有利于以后系統(tǒng)工程的升級(jí)更新。 1基于NiosII的嵌入式系統(tǒng)簡(jiǎn)介 NiosII是Altera公司在第一代軟核處
4、理器Nios的基礎(chǔ)上于2004年5月為其FPGA產(chǎn)品配套開發(fā)的軟核CPU。NiosII是一種采用流水線技術(shù)、單指令流的基于RISC技術(shù)的通用嵌入式軟核處理器、哈佛體系結(jié)構(gòu),地址、數(shù)據(jù)、指令均為32位,最高性能可達(dá)到200DMIPS(DhrystonesMIPS)。NiosII系統(tǒng)中的外設(shè)具有可配置性,用戶可根據(jù)實(shí)際應(yīng)用來(lái)裁剪,并且NiosII處理器有很好的自定義指令支持,大部分指令均可以在一個(gè)時(shí)鐘周期內(nèi)完成,這也是可配置處理器的優(yōu)勢(shì)所在。NiosII在邏輯功能上是32位的精簡(jiǎn)指令集CPU;而在實(shí)現(xiàn)方式上,它是在FPGA上通過(guò)編程方式實(shí)現(xiàn)的,這也是與傳統(tǒng)的CPU一個(gè)根本差別。NiosII的總線方
5、式也采用了一種簡(jiǎn)單的總線體系結(jié)構(gòu)Avalon總線。該軟核CPU為可編程片上系統(tǒng)SOPC給用戶提供了一套綜合解決方案,它可以與用戶自定義邏輯結(jié)合構(gòu)成SOC系統(tǒng),并下載到Altera的FPGA芯片中,使得FPGA在嵌入式系統(tǒng)領(lǐng)域的地位越來(lái)越重要。 基于NiosII的嵌入式系統(tǒng)主要實(shí)現(xiàn)了絞線式列車總線(WTB,WireTrainBus)網(wǎng)絡(luò)節(jié)點(diǎn)機(jī)的功能,該系統(tǒng)是基于SOPC技術(shù),首先定制NiosII的嵌入式CPU、必要的外部和相關(guān)配置的芯片,然后按照WTB標(biāo)準(zhǔn)和NiosII特有的Avalon總線接口設(shè)計(jì)并通過(guò)VHDL實(shí)現(xiàn)MAU的功能,由NiosII來(lái)控制WTB網(wǎng)絡(luò)通信功能。基于NiosII嵌入式軟核
6、WTB網(wǎng)絡(luò)節(jié)點(diǎn)機(jī)硬件體系結(jié)構(gòu)主要由FPGA、Flashnemory、SSRAMMemory、MAX7000配置控制器等硬件組成。FPGA采用Altera公司的Cyclone系列的EP1C6Q240C8,使用Altera公司的MAX7000系列的EPM7256配置控制器完成對(duì)EP1C6Q240C8的配置,基于NiosII的嵌入式系統(tǒng)的原理圖如圖1所示。 其中圖中的JTAG2表明有2個(gè)JTAG接口,一個(gè)用來(lái)在線配置調(diào)試,一個(gè)用來(lái)下載更新配置文件。 2FPGA器件的配置方式 FPGA的配置方式分為主動(dòng)方式(AS,ActiveSerial)、被動(dòng)方式(PS
7、,PassiveSerial)和JTAG方式,數(shù)據(jù)寬度有8位并行方式和串行方式兩種。在主動(dòng)模式下,F(xiàn)PGA在上電后,由PLD器件引導(dǎo)配置操作過(guò)程,它控制著外部存儲(chǔ)器和初始化過(guò)程,自動(dòng)將配置數(shù)據(jù)從相應(yīng)的外存儲(chǔ)器讀入到SRAM中,實(shí)現(xiàn)內(nèi)部結(jié)構(gòu)映射;而在被動(dòng)模式下,F(xiàn)PGA則作為從屬器件,由相應(yīng)的控制電路或微處理器提供配置所需的時(shí)序,實(shí)現(xiàn)配置數(shù)據(jù)的下載。 下面對(duì)基于ICR(In-CircuitReconfigurability)FPGA器件的配置方式進(jìn)行詳細(xì)分析: (1)主動(dòng)串行方式(AS,ActiveSerial):主要使用EPC配置器件,適應(yīng)用低速設(shè)備的配置; (2)被動(dòng)串行方式(PS,Pass
8、iveSeria1):使用配置控制器的串行接口; (3)被動(dòng)并行同步方式(PPS,PassiveParallelSynchronous):使用配置控制器的并行同步接口; (4)被動(dòng)并行異步方式(PPA,PassiveParallelAsynchronous):使用配置控制器的并行異步接口; (5)邊界掃描方式(JTAG,JointTestActionGroup):使用JTAG下載電纜。 基于AS方式配置使用EPC配置器件進(jìn)行配置時(shí),首先將配置文件從計(jì)算機(jī)下載到EPC配置器件中去,然后由EPC配置器件控制配置時(shí)序?qū)PGA進(jìn)行配置。EPC配置器件有一次可編程和可擦寫編程型兩種:一次可編程型芯片只
9、能寫入一次,不適于開發(fā)階段反復(fù)調(diào)試、修改及產(chǎn)品的方便升級(jí);可擦除編程型價(jià)格昂貴,且容量有限,對(duì)于容量較大的可編程邏輯器件,需要多片配置芯片組成菊花鏈進(jìn)行配置,增加了系統(tǒng)設(shè)計(jì)的難度。 使用PS、PPS、PPA方式配置時(shí),配置文件事先是以二進(jìn)制形式保存在系統(tǒng)ROM中,然后通過(guò)配置控制器將配置數(shù)據(jù)送進(jìn)FPGA中。PS是通過(guò)串行方式送到FPGA中,PPS是以并行方式送給FPGA。FPGA在其內(nèi)部將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù),該數(shù)據(jù)轉(zhuǎn)換時(shí)需要外部配置時(shí)鐘的驅(qū)動(dòng)。比較PS和PPS,所用的配置時(shí)間幾乎相同,而PS的接口方式比較簡(jiǎn)單,所以嵌入式系統(tǒng)中通常選擇PS方式配置FPGA。使用PPA方式配置數(shù)據(jù)時(shí),配置控制
10、器將配置數(shù)據(jù)以并行方式送給FPGA,然后在FPGA內(nèi)部進(jìn)行數(shù)據(jù)串行化處理。與PPS不一樣的地方是串行化處理時(shí)不需要配置外部時(shí)鐘的驅(qū)動(dòng),但接口更復(fù)雜,工程中很少使用。 邊界掃描方式需要連接計(jì)算機(jī),無(wú)法在現(xiàn)場(chǎng)使用,嵌入式系統(tǒng)中很少采用這種方式。 通過(guò)上述的分析,在嵌入式系統(tǒng)中要使用FPGA時(shí),可以采用專用EPC配置器件、PS、PPS、PPA和CPLD配置器件,但是PS、PPS、PPA比專用EPC配置更具成本和體積優(yōu)勢(shì)。在PS、PPS、PPA中,PS又是最優(yōu)的通信方式。所以在嵌入式系統(tǒng)中,選擇利用CPLD配置器件的PS被動(dòng)串行方式來(lái)配置FPGA最為合適。 而本文正是利用CPLD配置控制器基于PS方式
11、進(jìn)行FPGA配置的新方法,在每次啟動(dòng)系統(tǒng)時(shí),由配置控制器從Flash中讀出FPGA配置文件的數(shù)據(jù)信息,再下載到FPGA中以完成器件的配置功能。當(dāng)系統(tǒng)需要升級(jí)更新FPGA配置文件時(shí),可通過(guò)網(wǎng)絡(luò)或者由主機(jī)通過(guò)JTAG接口(未聯(lián)網(wǎng)時(shí))將配置文件發(fā)送給基于NiosII處理器的嵌入式系統(tǒng)中,由NiosII處理器更新系統(tǒng)中的Flash。當(dāng)Flash內(nèi)容更新后,系統(tǒng)就可實(shí)現(xiàn)在加電時(shí)由CPLD配置控制器自動(dòng)將配置文件下載到FPGA中。這樣在不需要任何硬件動(dòng)作和專業(yè)軟件的情況下,只需要進(jìn)行常規(guī)軟件操作就可以更新FPGA的配置文件。CPLD配置控制器主要是在配置FPGA時(shí)將FLASH存放的配置文件中的并行數(shù)據(jù)轉(zhuǎn)化
12、為串行數(shù)據(jù),實(shí)現(xiàn)系統(tǒng)的加電自運(yùn)行。 3嵌入式系統(tǒng)中FPGA的配置電路設(shè)計(jì) 3.1PS方式配置時(shí)序 在嵌入式系統(tǒng)中,配置控制器可以產(chǎn)生配置時(shí)序,能夠和FPGA直接通信,將FLASH中的配置文件傳輸?shù)紽PGA的SRAM中去。通常使用PS被動(dòng)串行方式進(jìn)行配置FPGA,下面就通信中使用到的5根信號(hào)線的配置時(shí)序進(jìn)行說(shuō)明。 5根信號(hào)線分別為nCONFIG、nSTATUS、CONF_DONE、DCLK、DATA,連接配置控制器的5個(gè)I/O口和對(duì)應(yīng)的FPGA的引腳,配置時(shí)序圖如圖2所示。 圖2PS方式配置信號(hào)時(shí)序圖 配置控制器上的5個(gè)I/O端口連接上述5個(gè)信號(hào)線。
13、其中連接nCONFIG、DCLK、DATA端口設(shè)置成輸出態(tài),nSTATUS、CONF_DONE端口設(shè)置成輸入態(tài)。當(dāng)配置控制器開始與FPGA通信時(shí),配置控制器首先在nCONFIG上送出一個(gè)大于8um的負(fù)脈沖,并且檢測(cè)nSTATUS上的信號(hào)。當(dāng)FPGA接收到nCONFIG上的下降沿時(shí),迅速將nSTATUS和CONF_DONE拉低,并且保持低電平信號(hào)一直到nCONFIG抬高電平。當(dāng)nCONFIG上抬高電平后過(guò)1um,nSTATUS也將電平抬高,配置控制器檢測(cè)到nSTATUS上的變化后認(rèn)為FPGA已經(jīng)做好了接收數(shù)據(jù)的準(zhǔn)備。下一步配置控制器將產(chǎn)生配置時(shí)鐘脈沖,配置時(shí)鐘的第一個(gè)上升沿至少要比nSTATUS
14、上升沿晚1um。又由于配置數(shù)據(jù)和配置時(shí)鐘上升沿同步,所以在配置時(shí)鐘上升沿發(fā)生之前,數(shù)據(jù)線必須已經(jīng)有了配置數(shù)據(jù)信號(hào)。配置數(shù)據(jù)是按照低位在前高位在后的順序把數(shù)據(jù)送上數(shù)據(jù)線。當(dāng)所有數(shù)據(jù)都傳輸完畢后,CONF_DONE線上電平被抬高以示配置完畢。如果傳輸中出現(xiàn)了異常,F(xiàn)PGA迫使nSTATUS拉低電平,配置控制器一旦檢測(cè)到了這種現(xiàn)象將重新開始配置。由于配置文件中已經(jīng)包含了FPGA初始化的一些代碼,所以傳輸完配置文件后,F(xiàn)PGA就可以正常工作了。 3.2基于CPLD配置控制器的配置電路設(shè)計(jì) CPLD是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計(jì)方法是借助QuartusII開發(fā)軟件平臺(tái)
15、,通過(guò)JTAG下載電纜將代碼傳送到目標(biāo)芯片中,實(shí)現(xiàn)系統(tǒng)配置所需的時(shí)序要求和功能需求。而更重要的是CPLD配置控制器可以進(jìn)行上萬(wàn)次的燒寫操作。 嵌入式系統(tǒng)中FPGA的PS方式配置方式電路設(shè)計(jì)如圖3所示。FPGA和FLASH、SSRAM組成了一個(gè)最基本的嵌入式系統(tǒng),其中將NiosII軟核處理器嵌入到FPGA中。FLASH作為程序的存儲(chǔ)器,其中存儲(chǔ)著系統(tǒng)的整個(gè)軟件應(yīng)用程序和配置文件。SSAM作為系統(tǒng)程序運(yùn)行空間,可以有效地解決配置控制器自身SRAM容量小的問(wèn)題。 圖3PS方式配置方式電路設(shè)計(jì) 在圖3所示的設(shè)計(jì)中,MSEL0和MSEL1是配置專用線,如果M
16、SEL0接高電平(VCC),MSEL1接地(GND),則此時(shí)的配置模式為PS模式;如果MSELO和MSEL1都接地(GND),則配置模式為AS模式。CPLD控制器的控制信號(hào)MAX_control_signal主要包括flash_CS_n(片選)、flash_OE_n(輸出使能)、flash_RW_n(讀寫使能)、flash_RESET_n(重置)、flash_BYTE_n(字節(jié)傳輸)等信號(hào)線。 配置文件通過(guò)Altera的QuartusII軟件以.pof(ProgrammerObjectFiles)文件格式下載到EPM7256配置控制器內(nèi),如果配置有錯(cuò)誤,該配置控制器可以進(jìn)行多次下載,直至最終完
17、成配置功能。 FLASH中存儲(chǔ)的程序包括系統(tǒng)配置程序文件、軟件程序,其格式為.flash。系統(tǒng)加電后,配置控制器從FLASH的0地址開始將配置文件進(jìn)行并/串轉(zhuǎn)換后(即將圖3中的flash_DATA7.0轉(zhuǎn)換為DATA0)加載到FPGA中,完成系統(tǒng)加電時(shí)的自動(dòng)配置功能;同時(shí)NiosII處理器將FLASH中的應(yīng)用程序移至到SSRAM中運(yùn)行,從而實(shí)現(xiàn)嵌入式系統(tǒng)的初運(yùn)行。通過(guò)NiosIIIDE工具可以將配置文件FPGA的.sof文件格式轉(zhuǎn)換為Flash存儲(chǔ)器所需要的.flash文件格式。 4配置文件的設(shè)計(jì)與實(shí)現(xiàn) 為了確保配置過(guò)程的正確,提高系統(tǒng)的配置性能,在配置文件設(shè)計(jì)時(shí)應(yīng)嚴(yán)格按照FPGA的Ps配置流
18、程進(jìn)行,并在配置過(guò)程中始終監(jiān)控配置工作狀態(tài),在完善的配置程序配合下可以糾正如上電次序?qū)е屡渲貌徽5儒e(cuò)誤。該配置程序是采用VHDL語(yǔ)言編寫的,編寫完成后,將配置文通過(guò)JTAG接口下載到EPM7256配置控制器內(nèi),根據(jù)圖2的PS配置時(shí)序,其配置流程如下: (1)配置信號(hào)的初始化:DATAO=0,DCLK=0,nCONFIG=0,CONF_DONE=1和nSTATUS=1,并保持2us以上。 (2)檢測(cè)nSTATUS,如果為“0”,表明FPGA已響應(yīng)配置,可開始進(jìn)行配置,否則報(bào)錯(cuò),并返回1。正常情況下,nCONFIG=0后1us內(nèi)nSTATUS為“0”。 (3)置nCONFIG=1,并延時(shí)5us。 (4)DATAO上放置數(shù)據(jù)(低位在前),DCLK=1,延時(shí)。 (5)DCLK=0,并檢測(cè)nSTATUS,若為“0”,則報(bào)錯(cuò),重返1。 (6)準(zhǔn)備下一位數(shù)據(jù),并重新執(zhí)行(4)、(5),直到數(shù)據(jù)發(fā)送完為止。 (7)此時(shí)CONF_DONE應(yīng)變成“1”,表明FPGA已完成配置,如果數(shù)據(jù)發(fā)送完后,CONF_DONE為“0”,必須重新配置返回1。 (8)配置完成后,再送出299個(gè)周期(Cyclone要求的)的DCLK,以便FPGA完成初始化。 5
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 腫瘤患兒營(yíng)養(yǎng)測(cè)評(píng)指南
- 機(jī)關(guān)檔案管理工作培訓(xùn)
- 拆遷工程安全施工管理合同
- 車輛合伙經(jīng)營(yíng)汽車售后服務(wù)合同
- 成都科技園區(qū)研發(fā)樓租賃及科研服務(wù)平臺(tái)合同
- 房地產(chǎn)投資借款合同模板
- 房產(chǎn)繼承與財(cái)產(chǎn)分配協(xié)議
- 高端酒店特色食材直供及研發(fā)協(xié)議范本
- 果樹種植與水果代銷綜合服務(wù)合同
- 茶葉茶藝館與文化活動(dòng)策劃合作合同范本
- 鐵路施工安全培訓(xùn)
- 《造林綠化落地上圖操作技術(shù)規(guī)范》
- 國(guó)企基金公司招聘考試題
- 燒傷科普講座課件
- KALLER基本的氮?dú)鈴椈衫碚撝R(shí)
- 《狼性企業(yè)文化》課件
- 智慧能源管理平臺(tái)建設(shè)方案書
- 周轉(zhuǎn)材料管理制度范本
- 《線性代數(shù)》課程思政的案例及思考
- 免疫規(guī)劃媽媽課堂培訓(xùn)
- 江西管理職業(yè)學(xué)院教師招聘考試歷年真題
評(píng)論
0/150
提交評(píng)論