嵌入式系統(tǒng)中FPGA的被動(dòng)串行配置方式_第1頁(yè)
嵌入式系統(tǒng)中FPGA的被動(dòng)串行配置方式_第2頁(yè)
嵌入式系統(tǒng)中FPGA的被動(dòng)串行配置方式_第3頁(yè)
嵌入式系統(tǒng)中FPGA的被動(dòng)串行配置方式_第4頁(yè)
嵌入式系統(tǒng)中FPGA的被動(dòng)串行配置方式_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

嵌入式系統(tǒng)中FPGA的被動(dòng)串行配置方式

摘要:介紹一種在嵌放式系統(tǒng)中使用微處理器被動(dòng)串行配置方式實(shí)現(xiàn)對(duì)FPGA配置的方案,將系統(tǒng)程序及配置文件存在系統(tǒng)Flash中,利用微處理器的I/O口產(chǎn)生配置時(shí)序,省去配置器件;討論FPGA的各種配置方式及各種配置文件的使用;詳述被動(dòng)串行配置的時(shí)序及在嵌入式系統(tǒng)中實(shí)現(xiàn)的軟硬件設(shè)計(jì);說(shuō)明本方案的優(yōu)越性及應(yīng)用前景。

關(guān)鍵詞:嵌入式系統(tǒng)ARM7TDMIS3C44B0XFPGA被動(dòng)串行配置

隨著信息時(shí)代的到來(lái),嵌入式系統(tǒng)成為繼IT網(wǎng)絡(luò)技術(shù)之后又一個(gè)新的技術(shù)發(fā)展方向。嵌入式系統(tǒng)以其功能強(qiáng)、體積小、功耗低、可靠性高以及面向行業(yè)應(yīng)用的突出特征,廣泛應(yīng)用于各個(gè)領(lǐng)域。

現(xiàn)場(chǎng)可編程門陣列FPGA是一種高密度可編程邏輯器件,其邏輯功能的實(shí)現(xiàn)是通過(guò)把設(shè)計(jì)生成的數(shù)據(jù)文件配置進(jìn)芯片內(nèi)部的靜態(tài)配置數(shù)據(jù)存儲(chǔ)器來(lái)完成的,具有可重復(fù)編程性,可以靈活實(shí)現(xiàn)各種邏輯功能。FPGA的這種特性使其在現(xiàn)代電子系統(tǒng)設(shè)計(jì)中得到了廣泛應(yīng)用?;赟RAM工藝的FPGA是易失性的,系統(tǒng)掉電以后其內(nèi)部配置數(shù)據(jù)將丟失,因此需要外接ROM保存其配置數(shù)據(jù)。FPGA的配置是有時(shí)序要求的,如果FPGA本身不能控制配置時(shí)序,就需要有外部配置器件來(lái)進(jìn)行時(shí)序控制。以Altera公司的系列FPGA為例,其本身不能控制配置時(shí)序,就有專用的EPC系列配置器件供其使用。在含有微處理器的系統(tǒng)中,可以使用微處理器產(chǎn)生配置時(shí)序,將保存在系統(tǒng)RO風(fēng)吹草動(dòng)的配置數(shù)據(jù)置入FPGA。與前面一種方案相比,該方案不僅節(jié)省了成本,更縮小了系統(tǒng)體積。在對(duì)成本和體積敏感的系統(tǒng)中,該方案非常適用。

在某手持式通信設(shè)備的設(shè)計(jì)中,使用了嵌入式系統(tǒng)和FPGA完成了系統(tǒng)功能。嵌入式微處理器采用Samsung公司的ARM7TDMI系列處理器S3C44B0X;FPGA采用Alrera公司的APEX20K系列EP20K200E,使用S3C44B0X完成了對(duì)EP20K200E的配置,取得了良好效果。本文對(duì)其實(shí)現(xiàn)方法予以介紹。

1ARM嵌入式處理器S3C4480X簡(jiǎn)介

S3C44B0X是Samsung公司專為手持設(shè)備和一般應(yīng)用而設(shè)計(jì)的高性價(jià)比和高性能的嵌入式處理器。其突出特點(diǎn)它的CPU核采用的16/32位ARM7TDMIRISC內(nèi)核,μmCMOS工藝制造,主頻最高可達(dá)66MHz,存儲(chǔ)器尋址空間達(dá)256MB。由于其成本和功耗低,特別適合對(duì)成本敏感和功能敏感的應(yīng)用場(chǎng)合,如PDA、GPS、LCDGame、E-Book等。

2APEX20K系列FPGA配置方式及配置文件

配置方式介紹

Altera公司的APEX20K系列FPGA可以使用以下方式進(jìn)行配;

①使用專用配置器件,如EPC16、EPC8、EPC2、EPC1、EPC1441;

②被動(dòng)串行方式,使用微處理器的串行步接口或ByteBlaster下載電纜;

③被動(dòng)并行同步方式,使用微處理器的并行同步接口;

④被動(dòng)并行異步方式,使用微處理器的并行異步接口;

⑤邊界掃描方式,使用JTAG下載電纜。

使用方式①時(shí),需要首先使用下載電纜將計(jì)算機(jī)生成的FPGA配置文件燒入EPC配置器件中,然后由EPC配置器件控制配置時(shí)序?qū)PGA進(jìn)行配置,一次燒寫即可重復(fù)使用。使用方式②、③、④時(shí),配置文件事先以二進(jìn)制形式保存在系統(tǒng)ROM中,可以脫離開計(jì)算機(jī)重復(fù)使用。若使用方②、③、④時(shí),配置文件事先以二進(jìn)制形式保存在系統(tǒng)ROM中,可以脫離開計(jì)算機(jī)重復(fù)使用。若使用方式②,微處理器將配置數(shù)據(jù)以串行方式送給FPGA,在配置時(shí)鐘驅(qū)動(dòng)下完成配置。若使用方式③,微處理器將配置數(shù)據(jù)以并行方式送給FPGA,由FPGA在其內(nèi)部將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù),該串行化的過(guò)程需要外部配置時(shí)鐘的驅(qū)動(dòng)。在配置時(shí)鐘速率相同的情況下,方式②、③所用的配置時(shí)間幾乎相同,但方式②的接口要比方式③簡(jiǎn)單,若使用方式④,微處理器仍將配置數(shù)據(jù)以并行方式送給FPGA,在FPGA內(nèi)部完成數(shù)據(jù)串行化;與方式③不同的是,該過(guò)程不需要外部配置時(shí)鐘的驅(qū)動(dòng),但其接口更復(fù)雜,并且需要進(jìn)行地址譯碼,增加了系統(tǒng)的復(fù)雜程度,一般很少采用。使用方式⑤時(shí)需要計(jì)算機(jī)的配合,無(wú)法在最終的實(shí)際系統(tǒng)中脫機(jī)使用,此處不予討論。

通過(guò)上述討論可以看出,在使用APEX20K系列FPGA開發(fā)實(shí)際應(yīng)用系統(tǒng),特別是要形成某種產(chǎn)品時(shí),如果系統(tǒng)中不含微處理器,只能使用方式①;若系統(tǒng)中含有微處理器,方式①、②、③、④都可以使用,但②、③、④可以發(fā)現(xiàn),方式②的接口最簡(jiǎn)單,實(shí)現(xiàn)起來(lái)比其它兩種方式都方便因而在含有微處理器的系統(tǒng)中得到了廣泛應(yīng)用,本通信系統(tǒng)的設(shè)計(jì)中即采用了該方式。

配置文件的使用

Altera公司的開發(fā)工具QuartusII及MAX+PLUSII可以生成多種格式的配置文件,針對(duì)不同的配置方式要使用不同格式的配置文件。設(shè)計(jì)項(xiàng)目編譯以后會(huì)自動(dòng)生成.sof文件和.pof文件。其中.pof文件在配置方式①使用專用配置器件時(shí)使用,.sof文件用于通過(guò)連接在計(jì)算機(jī)上的下載電纜直接對(duì)FPGA進(jìn)行配置的場(chǎng)合,配置方式可以是JTAG方式或PS方式中使用ByteBlaster下載電纜的情況?;?sof文件還可以生成.hex、.rbf和.ttf文件。.hex文件是IntelHex格式的ASCII碼文件,第三方的編程器可以使用這種格式的文件對(duì)Altera公司的配置器件進(jìn)行編程。.rbf文件是二進(jìn)制文件,1字節(jié)的rbf數(shù)據(jù)包含8bit的配置數(shù)據(jù),使用時(shí)將其存入ROM中。微處理

器人ROM使用這種格式的文件。.ttf文件是列表文本文件,.rbf文件的ASCII碼存儲(chǔ)形式,并且各個(gè)字節(jié)之間用逗號(hào)進(jìn)行了分隔。如果系統(tǒng)中有其它程序,可以將.ttf文件作為系統(tǒng)程序源代碼的一部分,和其它程序一起編譯。本系統(tǒng)中采用了.ttf文件作為系統(tǒng)程序的一個(gè)頭文件使用,其配置數(shù)據(jù)以數(shù)組形式被配置程序使用。對(duì)于某種特定型號(hào)的FPGA,無(wú)論其設(shè)計(jì)有多復(fù)雜,在相同版本的開發(fā)工具下生成的配置文件大小是一樣的。

3被動(dòng)串行方式配置時(shí)鐘

使用PS方式對(duì)FPGA進(jìn)行配置時(shí),只需要5根信號(hào)線,其配置時(shí)序如圖1所示。

配置時(shí)這五根信號(hào)線都接至微處理器的I/O上,其中nCONFIG、DCLK、DATA0設(shè)置成輸出態(tài),由微處理器對(duì)FPGA進(jìn)行操作;nSTATUS/CONF_DONE設(shè)置成輸入態(tài),由微處理器對(duì)FPGA的配置狀態(tài)進(jìn)行檢測(cè)。微處理器首先在nCONFIG信號(hào)線上產(chǎn)生一個(gè)寬度大于8μs的負(fù)脈沖,然后開始檢測(cè)nSTATUS信號(hào)的狀態(tài)。FPGA檢測(cè)到nCONFIG信號(hào)的下降沿后會(huì)迫使nSTATUS和CONF_DONC信號(hào)拉低,并且在nCONFIG信號(hào)重新抬高之間保持為低電平。NCONFIG信號(hào)抬高后,nSTATUS將在1μs之內(nèi)隨之抬高,微處理器檢測(cè)到此變化后就認(rèn)為FPGA已經(jīng)做好準(zhǔn)備可以開始配置。配置第一個(gè)上升沿與nSTATUS的上升沿之間要求至少有1μs的時(shí)間間隔。由于配置數(shù)據(jù)是與配置上升沿同步的,在配置時(shí)鐘的上升沿來(lái)之間應(yīng)當(dāng)將1bit的配置數(shù)據(jù)在數(shù)據(jù)線上準(zhǔn)備好,配置數(shù)據(jù)按低位在先高位在后的順序從數(shù)據(jù)線上送出。當(dāng)全部配置數(shù)據(jù)送出以后,CONF_DONE信號(hào)將被抬高,表明配置結(jié)束。微處理器檢測(cè)到CONF_DONE信號(hào)抬高,就結(jié)束配置過(guò)程。如果配置過(guò)程中出錯(cuò),F(xiàn)PGA將迫使nSTATUS信號(hào)拉低,微處理器檢測(cè)到此變化將重新開始配置。

配置結(jié)束以后,F(xiàn)PGA還需要個(gè)初始化的過(guò)程才能進(jìn)入正常工作狀態(tài)。在QuartusII或MAX+PLUSII生成的配置文件中已經(jīng)包含了額外的初始化比特,只需將配置文件數(shù)據(jù)在配置時(shí)鐘的同步下全部送出就已經(jīng)完成了初始化,用戶不必另外加以考慮。

4硬件電路設(shè)計(jì)

系統(tǒng)的硬件電路設(shè)計(jì)如圖2所示。

由于S3C44B0X內(nèi)部只有8KB的SRAM作CPU的Cache使用,無(wú)法滿足系統(tǒng)程序存儲(chǔ)及運(yùn)行的需要,因此需要外掛存儲(chǔ)器作為程序保存和運(yùn)行的空間。系統(tǒng)中使用1片2MB的Flash作為程序存儲(chǔ)器,系統(tǒng)的整個(gè)應(yīng)用程序,包括EP20K200E配置程序及配置文件都固化于其中保存。另外使用1片9MB的SDRAM作為系統(tǒng)程序運(yùn)行空間,S3C44B0X、Flash和SDRAM構(gòu)成了一個(gè)最小的嵌入式系統(tǒng)。Flash、SDRAM與S3C44B0X的連接方法可參考S3C44B0X用戶手岫。

使用PS配置地需要將EP20K200E的MSEL0、MSEL1、nCE三個(gè)引腳接地,然后將EP20K200E的nCONFIG、DATA0、DCLK、CONF_DONE、nSTATUS引腳分別接至S3C44B0X的GPC0、GPC1、GPC2、GPC3、GPC4引腳上。S3C44B0X的I/O口均為多功能口,可以根據(jù)應(yīng)用的需要通過(guò)內(nèi)部寄存器將其設(shè)置成輸入口、輸出口或特別功能口。此處將GPC0、GPC1和GPC2設(shè)置成輸出口,將GPC3和GPC4設(shè)置成輸入口。

5軟件設(shè)計(jì)

配置時(shí)根據(jù)配置時(shí)序要求,首先在GPC0引腳產(chǎn)生一個(gè)負(fù)脈沖,啟動(dòng)配置,然后檢測(cè)GPC4引腳的nSTATUS信號(hào)。NSTATUS信號(hào)正常后就在GPC2引腳上送配置時(shí)鐘,在GPC1引腳上同步送出配置數(shù)據(jù)。配置數(shù)據(jù)以字節(jié)為單位從SDRAM中讀出,通過(guò)移位操作以串行比特流方式從GPC1引腳送出。全部數(shù)據(jù)送出后,檢測(cè)GPC3引腳的狀態(tài),如為高電平說(shuō)明配置成功,否則配置失敗,需要重新進(jìn)行配置。配置程序流程如圖3所示。

程序?qū)崿F(xiàn)使用了C語(yǔ)言。在GPC0引腳產(chǎn)生負(fù)脈沖可以通過(guò)對(duì)其先寫0后寫1來(lái)實(shí)現(xiàn),延時(shí)使用簡(jiǎn)單的循環(huán)語(yǔ)句即可,其語(yǔ)句為

rPDATC=rPDATC&0xfffe;//*GPC0置低

for(i=0;i150;i++);//延時(shí)15μs

rPDATC=rPDATC|0x0001|;//GPC0置高

其中rPDATC為C端口的數(shù)據(jù)寄存器。

讀入某個(gè)引腳的狀態(tài)并判斷其高低可以使用一條語(yǔ)句實(shí)現(xiàn),如讀入GPC4的狀態(tài)并判斷其高低為

while(!rPDATC&0x0010));

如果GPC4為低電平,該語(yǔ)句就會(huì)一直此處循環(huán),直至其變?yōu)楦唠娖健?/p>

配置時(shí)鐘通過(guò)在GPC2引腳循環(huán)置0、置1來(lái)實(shí)現(xiàn),其實(shí)現(xiàn)語(yǔ)句為rPDATC=rPDATC|0x0004;//GPC2置高rPDATC=rPDATC&0xfffb;//GPC2置低

在GPC2由低變高之前,將1bit的配置數(shù)據(jù)在GPC1引腳上準(zhǔn)備好。

如果配置過(guò)程中出錯(cuò),EP20K200E將會(huì)迫使nSTATUS引腳拉低來(lái)通知S3C44B0X。在本程序中為了主加快配置速度,沒(méi)有對(duì)此進(jìn)行判斷,而是在程序最后通過(guò)CONF_DONE信號(hào)否抬高來(lái)判斷配置成功與否。如果配置出錯(cuò),該信號(hào)將不會(huì)抬高,從而可以重新開始配置。

本國(guó)程序、配置文件和系統(tǒng)的其它程序統(tǒng)一編譯成一個(gè)應(yīng)用程序存在Flash中,系統(tǒng)加電以后首先運(yùn)行位于Flash0地址的引導(dǎo)程序,引導(dǎo)程序完成CPU的初始化,然后將應(yīng)用程序從Flash復(fù)制到SDRAM中,從SDRAM中開始運(yùn)行。在本系統(tǒng)中使用了實(shí)時(shí)多任務(wù)操作系統(tǒng),在軟件設(shè)計(jì)時(shí)將配置程序放在第一個(gè)運(yùn)行的任務(wù)中,保證在開機(jī)手首先完成FPGA配置。配置所需要的時(shí)間與微處理器的運(yùn)行速度及配置文件的大小有關(guān)。在本系統(tǒng)中,微處理器運(yùn)行在64MHz,配置文件的二進(jìn)制形式有240KB,配置所需

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論