日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]為配合某電力測量儀表的開發(fā),對(duì)Xilinx公司的SpartanII系列FPGA的配置方案進(jìn)行了探索。該方案采用大容量串行e-Flash存儲(chǔ)器MM36SBO10存放FPGA配置文件,MCU讀取該配置文件并在被動(dòng)串行模式下完成對(duì)XC2S30 的在線配置。該方案具有接口簡單、成本低廉、便于移植的優(yōu)點(diǎn)。

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

1 Spartanll配置簡介 
    Xilinx公司的SpartanII系列FPGA產(chǎn)品成熟。該系列是采用0.18 μ m工藝的2.5V低電壓FPGA芯片,功耗低,可無限次編程。XC2S30是該系列FPGA中的一款,總門數(shù)達(dá)3萬門,可以實(shí)現(xiàn)電力測量儀表中采樣數(shù)據(jù)的串行編碼和多CPU間的數(shù)據(jù)交換的功能。
    XC2S30采用CMOS SRAM工藝。由于SRAM的易失性,斷電后配置信息消失,因此上電時(shí)必須對(duì)該芯片重新配置才能使其正常工作。本節(jié)將詳細(xì)介紹XC2S30的配置方式。該配置方式對(duì)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)用場合,用戶可以選擇不同的配置方式。在XC2S30內(nèi)部邏輯設(shè)計(jì)階段,可采用邊界掃描模式進(jìn)行配置。配置文件可通過Xilinx公司的下載電纜(如Xilinx并行下載電纜)下載到芯片,便于在線調(diào)試。但是在產(chǎn)品成品階段,已經(jīng)設(shè)計(jì)好的配置文件必須存儲(chǔ)于EEPROM或者Flash等非易失的存儲(chǔ)器中。在系統(tǒng)上電時(shí),外圍器件通過FPGA配置引腳將配置文件傳送至FPGA中,從而使其正常工作。根據(jù)用戶的需要,可以選擇主動(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á)到高電平或者用戶將PROGRAM引腳置低時(shí),芯片便進(jìn)入初始化狀態(tài)。此后芯片將INIT引腳置低,代表芯片正在清空配置存儲(chǔ)器,清空完成后INIT引腳將被置高,代表清空完畢。在INIT的上升沿,模式選擇引腳M[2:0]被采樣,以決定配置模式,若為11x則采用被動(dòng)串行模式。此后配置文件信息可以通過CCLK和DIN兩個(gè)配置引腳輸入至XC2S30中。配置數(shù)據(jù)在CCLK的上升沿采樣。在配置期間芯片會(huì)自動(dòng)進(jìn)行CRC錯(cuò)誤檢驗(yàn)。若發(fā)生了CRC校驗(yàn)錯(cuò)誤,INIT引腳將被置低,用戶可以檢測該引腳判斷配置過程中是否出現(xiàn)錯(cuò)誤。當(dāng)配置文件成功輸入至芯片中,芯片置DONE引腳為高,用戶可檢測該引腳判斷配置是否成功。此后芯片進(jìn)入正常工作狀態(tài)。配置流程如圖1所示。




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



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


    MCU可通過SCLK和SDIO引腳向MM36SB010發(fā)送控制命令,實(shí)現(xiàn)MM36SB010的軟件復(fù)位、Flash存儲(chǔ)器或緩沖區(qū)數(shù)據(jù)的讀寫和狀態(tài)查詢等功能。常用的命令有軟件復(fù)位(SRC)、讀狀態(tài)寄存器(RSE)、讀F1ash存儲(chǔ)器數(shù)據(jù)(RME、RMEC)、寫緩沖區(qū)(WEB、WEBC)、帶預(yù)擦除功能的寫緩沖區(qū)數(shù)據(jù)至Flash存儲(chǔ)器(WBMEP)。所有的命令、地址和數(shù)據(jù)都從最低位(LSB)開始發(fā)送。
在MM36SB010上電后需執(zhí)行一次軟件復(fù)位指令,等待20ms后芯片即可正常工作。數(shù)據(jù)可從Flash存儲(chǔ)器中用RME和RMEC:指令直接讀取,但寫數(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讀寫一個(gè)字節(jié)數(shù)據(jù)前必須先送入控制命令,因此實(shí)際的讀寫速度小于4MHz。

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

 


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



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



    配置部分程序代碼如下:
//函數(shù)定義
//從e-Flash中讀取配置文件數(shù)據(jù)void ReadFlashData(unsigned int p_addr,unsigned char b_addr,unsigned char count,unsigned char*buf)
//p_addr為頁地址,b_addr為頁內(nèi)地址,buf為MCU內(nèi)部存儲(chǔ)        //器指針{ 
unsigned int i,temp=0: 
send_one_byte(0x9C);                                       //送RME指令 
send_one byte(b_addr);                                     //送頁內(nèi)地址 
send_one_byte((unsigned char)(P_addr & 0x00FF));           //送頁低字節(jié)地址 
send_one_byte((unsigned char)p_addr&0xFF00));              //送頁高字節(jié)地址 
buf[0]=read one byte();                                    //讀取數(shù)據(jù) 
for(i=1;i<count;i++){                                       //連續(xù)讀取數(shù)據(jù) 
send_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; 
CCLK=0; 
}
}                                                        //主程序…… 
……                                                     //程序初始化部分
length=FILESIZE;                                        //配置文件長度
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é)語 
    本方案提出了一種基于大容量串行e-Flash的XilinxSpartanlI系列FPGA在線配置的方法。該方案適用于采用MCU的嵌入式系統(tǒng)中,占用MCU的I/O口資源少,且可以實(shí)現(xiàn)ROM的共享。MCU程序采用C語言編寫,便于在單片機(jī)、ARM等MCU間的移植。經(jīng)過實(shí)際測試,配置XC2S30僅需數(shù)秒,可以應(yīng)用在對(duì)設(shè)備開機(jī)時(shí)間要求不高的場合。本方案已經(jīng)應(yīng)用在某電力測量設(shè)備中,效果理想,運(yùn)行可靠。

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

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉