《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 大容量串行e-Flash的FPGA配置方案
大容量串行e-Flash的FPGA配置方案
摘要: 本方案提出了一種基于大容量串行e-Flash的XilinxSpartanlI系列FPGA在線(xiàn)配置的方法。該方案適用于采用MCU的嵌入式系統(tǒng)中,占用MCU的I/O口資源少,且可以實(shí)現(xiàn)ROM的共享。MCU程序采用C語(yǔ)言編寫(xiě),便于在單片機(jī)、ARM等MCU間的移植。經(jīng)過(guò)實(shí)際測(cè)試,配置XC2S30僅需數(shù)秒,可以應(yīng)用在對(duì)設(shè)備開(kāi)機(jī)時(shí)間要求不高的場(chǎng)合。本方案已經(jīng)應(yīng)用在某電力測(cè)量設(shè)備中,效果理想,運(yùn)行可靠。
關(guān)鍵詞: FPGA Flash XC2S30 SpartanlI
Abstract:
Key words :

      引 言

      現(xiàn)場(chǎng)可編程門(mén)陣列FPGA" title="FPGA">FPGA(Field Programmable Gate Array)是一種集通用性強(qiáng)、設(shè)計(jì)靈活、集成度高和編程方便等諸多優(yōu)點(diǎn)于一身的現(xiàn)場(chǎng)可編程ASIC。自1985年美國(guó)的Xilinx公司推出FPGA產(chǎn)品并取得成功以后,F(xiàn)PGA發(fā)展迅猛,門(mén)數(shù)不斷提升,達(dá)到數(shù)百萬(wàn)門(mén)的規(guī)模;產(chǎn)品種類(lèi)日益豐富,性能不斷完善,在軍事、通信、醫(yī)療、消費(fèi)類(lèi)電子等各領(lǐng)域發(fā)揮了巨大的作用。Xilinx公司的FPGA具有很高的性?xún)r(jià)比,其集成開(kāi)發(fā)環(huán)境ISE和Webpack效率高、界面友好,因此在業(yè)界有著廣泛的應(yīng)用。通常對(duì)Xilinx公司的FPGA配置采用專(zhuān)用的配置芯片,速度較快,其價(jià)格也正逐步降低。筆者為配合某電力測(cè)量?jī)x表的開(kāi)發(fā),對(duì)Xilinx公司的SpartanII系列FPGA的配置方案進(jìn)行了探索,總結(jié)出一套成本低廉、接口簡(jiǎn)單、便于移植的方法。該方法采用Megawin公司的1Mb大容量串行e-Flash" title="Flash">Flash存儲(chǔ)器MM36SB010存放FPGA配置文件,通過(guò)MCU在被動(dòng)串行模式下完成了對(duì)XC2S30" title="XC2S30">XC2S30的在線(xiàn)配置。   

      1 Spartanll配置簡(jiǎn)介 

      Xilinx公司的SpartanII系列FPGA產(chǎn)品成熟。該系列是采用0.18 μ m工藝的2.5V低電壓FPGA芯片,功耗低,可無(wú)限次編程。XC2S30是該系列FPGA中的一款,總門(mén)數(shù)達(dá)3萬(wàn)門(mén),可以實(shí)現(xiàn)電力測(cè)量?jī)x表中采樣數(shù)據(jù)的串行編碼和多CPU間的數(shù)據(jù)交換的功能。   

      XC2S30采用CMOS SRAM工藝。由于SRAM的易失性,斷電后配置信息消失,因此上電時(shí)必須對(duì)該芯片重新配置才能使其正常工作。本節(jié)將詳細(xì)介紹XC2S30的配置方式。該配置方式對(duì)SpartanlI" title="SpartanlI">SpartanlI系列的其它FPGA同樣適用。   

      1.1 配置模式 

      XC2S30支持4種配置模式:被動(dòng)串行模式(slave serialmode)、主動(dòng)串行模式(master serial mode)、被動(dòng)并行模式(slave parallel mode)和邊界掃描模式(boundary-scanmode)。在每次芯片上電初始化完畢后,芯片將采樣模式引腳M[2:0]以決定配置模式。配置引腳狀態(tài)和配置模式的關(guān)系如表1所列。(X代表任意狀態(tài)。)

配置模式

 

      根據(jù)不同的應(yīng)用場(chǎng)合,用戶(hù)可以選擇不同的配置方式。在XC2S30內(nèi)部邏輯設(shè)計(jì)階段,可采用邊界掃描模式進(jìn)行配置。配置文件可通過(guò)Xilinx公司的下載電纜(如Xilinx并行下載電纜)下載到芯片,便于在線(xiàn)調(diào)試。但是在產(chǎn)品成品階段,已經(jīng)設(shè)計(jì)好的配置文件必須存儲(chǔ)于EEPROM或者Flash等非易失的存儲(chǔ)器中。在系統(tǒng)上電時(shí),外圍器件通過(guò)FPGA配置引腳將配置文件傳送至FPGA中,從而使其正常工作。根據(jù)用戶(hù)的需要,可以選擇主動(dòng)串行模式、被動(dòng)串行模式和被動(dòng)并行模式。其中串行的兩種模式需要的I/O口資源較少,但速度較慢;被動(dòng)并行模式需要的I/O口資源較多,速度也較快。根據(jù)本系統(tǒng)的設(shè)計(jì)要求,選擇了占用I/0口資源較少的被動(dòng)串行模式對(duì)XC2$30進(jìn)行配置。    

      1.2 被動(dòng)串行模式下的配置引腳

      在被動(dòng)串行模式下,所用到的配置引腳為模式選擇M[2:0]、配置時(shí)鐘CCLK、配置復(fù)位PROGRAM、配置完成DONE、配置數(shù)據(jù)串行輸入DIN和初始化狀態(tài)INIT。 

      1.3 被動(dòng)串行模式下的配置步驟及時(shí)序 

      XC2S30上電后,當(dāng)內(nèi)核和I/O口電源引腳電壓達(dá)到高電平或者用戶(hù)將PROGRAM引腳置低時(shí),芯片便進(jìn)入初始化狀態(tài)。此后芯片將INIT引腳置低,代表芯片正在清空配置存儲(chǔ)器,清空完成后INIT引腳將被置高,代表清空完畢。在INIT的上升沿,模式選擇引腳M[2:0]被采樣,以決定配置模式,若為11x則采用被動(dòng)串行模式。此后配置文件信息可以通過(guò)CCLK和DIN兩個(gè)配置引腳輸入至XC2S30中。配置數(shù)據(jù)在CCLK的上升沿采樣。在配置期間芯片會(huì)自動(dòng)進(jìn)行CRC錯(cuò)誤檢驗(yàn)。若發(fā)生了CRC校驗(yàn)錯(cuò)誤,INIT引腳將被置低,用戶(hù)可以檢測(cè)該引腳判斷配置過(guò)程中是否出現(xiàn)錯(cuò)誤。當(dāng)配置文件成功輸入至芯片中,芯片置DONE引腳為高,用戶(hù)可檢測(cè)該引腳判斷配置是否成功。此后芯片進(jìn)入正常工作狀態(tài)。配置流程如圖1所示。

配置流程

      2 MM36SB010的讀寫(xiě)方式

 

      MM36SB010是Megawin公司生產(chǎn)的大容量SPI串行e-F1ash存儲(chǔ)器。該芯片具有低功耗(小于4mA)、寬電壓(2.4~5.5V)、高速(8MHz工作頻率)、大容量(1Mb)和小頁(yè)面(每頁(yè)128B)、低成本等諸多優(yōu)點(diǎn),特別適合于消費(fèi)電子、通信、工業(yè)控制等領(lǐng)域的應(yīng)用。該芯片可工作在2線(xiàn)或者3線(xiàn)串行總線(xiàn)方式。本方案使用該芯片存儲(chǔ)FPGA配置文件,讀寫(xiě)接口簡(jiǎn)單,速度快。 MM36SB010的容量為1Mb,共分1024頁(yè),每頁(yè)128B。芯片內(nèi)部有1個(gè)128B的緩沖區(qū),可以對(duì)讀寫(xiě)數(shù)據(jù)進(jìn)行暫存,內(nèi)部結(jié)構(gòu)如圖2所示。

內(nèi)部結(jié)構(gòu)

 

 

      MM36SB010可工作在2線(xiàn)或者3線(xiàn)串行總線(xiàn)方式,工作方式通過(guò)SMC(串行模式控制)引腳來(lái)選擇。當(dāng)SMC為高電平時(shí),為2線(xiàn)方式;當(dāng)SMC為低電平時(shí),為3線(xiàn)方式。本方案采用3線(xiàn)方式,串行數(shù)據(jù)輸入和輸出引腳分開(kāi),數(shù)據(jù)輸入引腳為SDl0,數(shù)據(jù)輸出引腳為SDO。MM36SB010的狀態(tài)可通過(guò)引腳BUSY來(lái)檢測(cè),也可以通過(guò)訪(fǎng)問(wèn)狀態(tài)寄存器進(jìn)行查詢(xún)。3線(xiàn)工作方式的電路示意如圖3所示。

3線(xiàn)工作方式的電路示意

 

 

 

      MCU可通過(guò)SCLK和SDIO引腳向MM36SB010發(fā)送控制命令,實(shí)現(xiàn)MM36SB010的軟件復(fù)位、Flash存儲(chǔ)器或緩沖區(qū)數(shù)據(jù)的讀寫(xiě)和狀態(tài)查詢(xún)等功能。常用的命令有軟件復(fù)位(SRC)、讀狀態(tài)寄存器(RSE)、讀F1ash存儲(chǔ)器數(shù)據(jù)(RME、RMEC)、寫(xiě)緩沖區(qū)(WEB、WEBC)、帶預(yù)擦除功能的寫(xiě)緩沖區(qū)數(shù)據(jù)至Flash存儲(chǔ)器(WBMEP)。所有的命令、地址和數(shù)據(jù)都從最低位(LSB)開(kāi)始發(fā)送。在MM36SB010上電后需執(zhí)行一次軟件復(fù)位指令,等待20ms后芯片即可正常工作。數(shù)據(jù)可從Flash存儲(chǔ)器中用RME和RMEC:指令直接讀取,但寫(xiě)數(shù)據(jù)至Flash存儲(chǔ)器前必須用WEB和WEBC命令將數(shù)據(jù)送入緩沖區(qū)內(nèi),再用WBMEP或者WBMP命令將緩沖區(qū)內(nèi)的數(shù)據(jù)送入Flash存儲(chǔ)器。    

      雖然MM36SB010的時(shí)鐘SCLK的頻率最高可達(dá)8MHz,但是由于每次從Flash讀寫(xiě)一個(gè)字節(jié)數(shù)據(jù)前必須先送入控制命令,因此實(shí)際的讀寫(xiě)速度小于4MHz。   

      3 配置方案 

      Xilinx公司針對(duì)各款FPGA都設(shè)計(jì)了專(zhuān)用的配置芯片,如在系統(tǒng)可編程18VXX系列和串行一次性可編程PROM-XCl7V00系列。目前18Vxx系列價(jià)格正逐步降低,但是由于其專(zhuān)用性,該ROM很難被系統(tǒng)中其它部分共享;XCl7V00系列雖然價(jià)格較低,但只能一次性燒寫(xiě),只適用于成品階段。本方案中XC2S30的配置文件存儲(chǔ)于MM36SB010,并由MCU完成其讀寫(xiě)功能,配置文件通過(guò)RS232串口下載。當(dāng)配置文件下載完畢后,由MCU從MM36SB010中讀取并對(duì)XC2S30進(jìn)行配置。MM36SB010中其余存儲(chǔ)空間可供其它程序模塊使用。    

      3.1 硬件框圖

      MCU通過(guò)SCLK、SDIO、SDO完成對(duì)MM36SB010的讀寫(xiě),同時(shí)MCU通過(guò)CCLK、DIN、INIT、PROGRAM、DONE引腳完成對(duì)XC2S30的配置。硬件框圖如圖4所示。

硬件框圖

 

      3.2 MCU程序 

 

      本方案的MCU內(nèi)部程序主要完成三部分功能:與PC機(jī)的串口通信、讀寫(xiě)MM36SB010和配置XC2S30。MCU工作在兩種狀態(tài),在上電時(shí)MCU從MM36SB010中讀取配置文件并對(duì)XC2S30進(jìn)行配置,完成配置后等待PC機(jī)從串口發(fā)出的下載命令。接收到該命令后,MCU開(kāi)始接收配置文件并寫(xiě)入MM36SB010。程序流程如圖5所示。 

程序流程

 

      對(duì)XC2S30配置的程序部分主要完成被動(dòng)串行模式的配置時(shí)序,配置時(shí)序如圖6所示。 

被動(dòng)串行模式的配置時(shí)序

 

      配置部分程序代碼如下:

//函數(shù)定義
//從e-Flash中讀取配置文件數(shù)據(jù)void ReadFlashData(unsigned int p_addr,unsigned char b_addr,unsigned char count,unsigned char*buf)
//p_addr為頁(yè)地址,b_addr為頁(yè)內(nèi)地址,buf為MCU內(nèi)部存儲(chǔ)        //器指針{ 
unsigned int i,

 

temp=0: send_one_byte(0x9C);                                       //送RME指令 
send_one byte(b_addr);                                     //送頁(yè)內(nèi)地址 
send_one_byte((unsigned char)(P_addr & 0x00FF));           //送頁(yè)低字節(jié)地址 
send_one_byte((unsigned char)p_addr&0xFF00));              //送頁(yè)高字節(jié)地址 
buf[0]=read one byte();                                    //讀取數(shù)據(jù) 
for(i=1;isend_one_byte(RMEC);                                       //送RMEC指令 
buf[i]=read_one_byte(); 
}
}
                                                  //向SpartanlI發(fā)送配置數(shù)據(jù)
void SendConfigData(unsigned char count,unsigned char*configdata)
{
unsigned chari,j,temp; 
CCLK=0;
for(i=count;i>0;i--){
temp=*configdata++; 
for(j=0;j<8;j++){ 
if((temp&0x80==0 
DIN=O; 
else 
DIN=1: 
tem0=temp<<1; 

CCLK=I; 
CCL

 

K=0; 
}
}                                                        //主程序
…… ……                                                     //程序初始化部分length=FILESIZE;                                        //配置文件長(zhǎng)度
INIT=1;
PROGRAM=0;                                             //清空配置存儲(chǔ)器
Delay();                                            ;   //延時(shí)
PROGRAM=1;while(INIT==0);                                        //等待存儲(chǔ)器清空
while(1){ ReadFlashData(page_addr,bit_addr,128,databuf);
                         

 

                               //從MM36SB010中讀取128字節(jié)配置文件數(shù)據(jù) 
SendConfigData(128,databuf);                          //發(fā)送配置文件數(shù)據(jù)至XC2S30 
length-=128; 
if(1ength<128) 
break;
}
void ReadFlashData(page_addr,bit_addr,length,databuf);
SendConfigData(Iength,databu);
if(DONE==1)……                                        //配置成功
else……                                               //配置失敗   

 

       結(jié)語(yǔ) 

       本方案提出了一種基于大容量串行e-Flash的XilinxSpartanlI系列FPGA在線(xiàn)配置的方法。該方案適用于采用MCU的嵌入式系統(tǒng)中,占用MCU的I/O口資源少,且可以實(shí)現(xiàn)ROM的共享。MCU程序采用C語(yǔ)言編寫(xiě),便于在單片機(jī)、ARM等MCU間的移植。經(jīng)過(guò)實(shí)際測(cè)試,配置XC2S30僅需數(shù)秒,可以應(yīng)用在對(duì)設(shè)備開(kāi)機(jī)時(shí)間要求不高的場(chǎng)合。本方案已經(jīng)應(yīng)用在某電力測(cè)量設(shè)備中,效果理想,運(yùn)行可靠。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲国产免费看| 久久综合九色欧美综合狠狠| 国产精品亚洲人在线观看| 亚洲欧美日韩在线播放| 亚洲视频成人| 国产欧美日韩三区| 久久亚洲精选| 亚洲九九精品| 在线视频你懂得一区二区三区| 国产精品麻豆成人av电影艾秋| 久久精品国产亚洲5555| 亚洲电影毛片| 亚洲精品在线观看视频| 国产精品视频久久久| 欧美日韩视频第一区| 欧美伊人影院| 亚洲国产欧美日韩| 日韩午夜三级在线| 国产视频亚洲精品| 欧美激情在线| 午夜精品区一区二区三| 亚洲一区二区三区色| 欧美在线免费观看| 日韩手机在线导航| 国产午夜精品一区二区三区欧美| 国产精品视频最多的网站| 欧美日韩一区二区欧美激情| 欧美日韩国产不卡| 久久国产精品色婷婷| 午夜一区二区三区在线观看| 香蕉免费一区二区三区在线观看| 亚洲高清免费| 亚洲经典三级| 99综合精品| 在线观看精品一区| 国产精品青草久久| 国产麻豆综合| 欧美日韩理论| 欧美日韩网站| 国产精品麻豆欧美日韩ww| 国产免费亚洲高清| 激情久久综合| 国产精品嫩草99av在线| 国产精品一区二区视频| 国产一区深夜福利| 国产精品欧美风情| 国产视频丨精品|在线观看| 狠狠88综合久久久久综合网| 欧美午夜欧美| 欧美大尺度在线观看| 久久精品99久久香蕉国产色戒| 久久久久.com| 午夜精品福利电影| 久久久.com| 欧美激情一区二区三区成人| 欧美偷拍一区二区| 欧美精品二区| 国产精品国产三级国产普通话蜜臀 | 亚洲国产日韩在线一区模特| 亚洲免费久久| 亚洲人成免费| 亚洲第一视频| 一本一本a久久| 亚洲国产成人久久综合| 一本久久综合亚洲鲁鲁五月天| 亚洲精品影院在线观看| 亚洲淫性视频| 久久夜色精品| 国产精品99免费看| 亚洲第一中文字幕| 亚洲第一精品影视| 一个色综合导航| 亚洲国产成人精品久久久国产成人一区 | 亚洲精品精选| 午夜精品国产精品大乳美女| 在线一区欧美| 亚洲国产高清自拍| 午夜精品久久久久久久久久久 | 久久亚洲综合色| 国产精品高潮呻吟视频| 亚洲成人自拍视频| 亚洲线精品一区二区三区八戒| 日韩一区二区久久| 久久精品国产77777蜜臀| 午夜国产精品视频| 日韩视频在线观看| 久久久另类综合| 久久视频在线看| 欧美调教视频| 91久久精品一区二区别| 亚洲国产精品一区在线观看不卡| 亚洲香蕉网站| 99视频在线观看一区三区| 久久久噜噜噜久久久| 国产精品久久久久永久免费观看| 亚洲狠狠婷婷| 亚洲狠狠丁香婷婷综合久久久| 欧美一区二区三区四区夜夜大片 | 午夜精品一区二区三区电影天堂| 欧美精品偷拍| 亚洲第一天堂av| 欧美伊久线香蕉线新在线| 亚洲欧美一区二区三区久久 | 亚洲人成网站在线观看播放| 久久精品国产综合| 久久成人精品无人区| 久久精品国产一区二区三区免费看| 欧美日韩一二三区| 亚洲人成小说网站色在线| 亚洲国产精品一区二区尤物区| 久久丁香综合五月国产三级网站| 国产精品乱人伦中文| 一本色道久久综合亚洲精品婷婷| av成人免费观看| 欧美精品aa| 亚洲黄页一区| 99精品免费| 欧美日本中文| 国产精品入口福利| 亚洲视频中文| 亚洲欧美精品在线| 久久天堂国产精品| 国产亚洲欧美激情| 欧美怡红院视频一区二区三区| 欧美一级大片在线免费观看| 国产精品久久久久毛片软件| 亚洲视频在线免费观看| 亚洲男人av电影| 国产精品美女久久久浪潮软件| 亚洲私人影院| 午夜精品久久久久久久久| 国产精品系列在线播放| 午夜久久黄色| 久久久久久一区| 精品9999| 亚洲日本中文字幕| 欧美精品一区在线| 夜夜嗨av一区二区三区中文字幕| 亚洲午夜激情网站| 麻豆成人综合网| 欧美先锋影音| 在线视频精品一| 午夜久久电影网| 国产欧美亚洲一区| 久久成人综合视频| 亚洲私人影院| 国产精品videossex久久发布| 亚洲午夜精品福利| 性亚洲最疯狂xxxx高清| 国产日韩成人精品| 亚洲第一搞黄网站| 亚洲欧美中文日韩在线| 国产乱码精品一区二区三| 欧美一区二区视频在线| 久久先锋影音av| 亚洲成色精品| 中文亚洲字幕| 免费欧美在线视频| 国产欧美日本一区二区三区| 香蕉久久a毛片| 免费精品视频| 日韩五码在线| 欧美在线999| 亚洲成色777777在线观看影院| 一本色道久久88精品综合| 国产精品久久看| 欧美伊人影院| 欧美日本一道本在线视频| 亚洲无人区一区| 久久精品卡一| 亚洲激情综合| 欧美一区二粉嫩精品国产一线天| 狠狠干狠狠久久| 一本色道**综合亚洲精品蜜桃冫 | 亚洲欧洲日本mm| 久久免费国产精品1| 在线观看一区| 亚洲免费视频在线观看| 国语自产精品视频在线看8查询8| 亚洲六月丁香色婷婷综合久久| 国产精品高清在线观看| 久久精品国产成人| 国产精品二区三区四区| 久久精品一区二区三区不卡牛牛| 欧美日韩三级在线| 欧美在线视频一区二区| 欧美日韩免费一区二区三区| 欧美亚洲午夜视频在线观看| 欧美激情综合色| 午夜欧美视频| 欧美日韩在线视频一区二区| 久久激情视频| 国产精品美女久久| 日韩视频专区| 黑人一区二区| 欧美一级专区免费大片| 日韩亚洲在线| 模特精品裸拍一区| 亚洲欧美日韩一区二区在线| 午夜视频在线观看一区|