文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2012)07-0026-04
TD-LTE無線綜合測試儀平臺的主要功能是測試接收端與發(fā)射端信號的差異,即接收和發(fā)射端信號的誤碼率等性能的優(yōu)劣,其物理層采用通用的FPGA+DSP+ARM硬件架構(gòu),具有開發(fā)周期短、可擴(kuò)展性好等優(yōu)點(diǎn)。
現(xiàn)場可編程門陣列FPGA是基于門陣列方式為用戶提供可編程資源,其內(nèi)部邏輯結(jié)構(gòu)的形成是由配置數(shù)據(jù)決定的。由于SRAM的易失性,每次上電時(shí),都必須對FPGA重新進(jìn)行配置、完成下行鏈路OFDM信號以及底層交互相關(guān)信號的產(chǎn)生等功能。
對于FPGA配置,大多數(shù)是采用將配置數(shù)據(jù)存放在FPGA組成的系統(tǒng)上[1-2]或者將配置數(shù)據(jù)存放在使用者自己攜帶的外部存儲器中的實(shí)現(xiàn)方式,后者在系統(tǒng)上電時(shí)需由其他外部控制器讀出配置數(shù)據(jù)再傳送給FPGA進(jìn)行配置。本文提出在TD-LTE無線綜合測試儀平臺上,通過嵌入式微處理器ARM將配置數(shù)據(jù)存放于NAND Flash[3]中,由Flash上電啟動讀出配置數(shù)據(jù)再對FPGA進(jìn)行配置。這種方法不但修改、升級簡便,而且由于NAND Flash在寫入數(shù)據(jù)時(shí)都需要先擦除再寫入,所以具有很好的保密性[4],并且可以方便地存儲大容量配置數(shù)據(jù)或多個(gè)配置數(shù)據(jù)文件等。本文介紹了TD-LTE無線綜合測試儀平臺上電后自動加載對FPGA器件進(jìn)行配置的設(shè)計(jì)與實(shí)現(xiàn)的新方法,對無線TD-LTE系統(tǒng)的底層控制實(shí)現(xiàn)具有重要意義。
1 配置原理
1.1 配置模式
Xilinx公司為其FPGA系列產(chǎn)品提供了多種數(shù)據(jù)配置方式,在TD-LTE綜合測試儀的研究中選用的是Virtex-5系列芯片XC5VSX95T。Virtex-5提供了如表1所示的幾種不同的配置模式,其中的從SelectMAP模式最高可以支持32 bit總線寬度[5]。在每次芯片上電初始化完畢后,芯片將以采樣模式引腳M[2:0]決定配置模式。
1.2 配置方案
本文在FPGA+ARM+NAND的硬件環(huán)境下,將ARM作為主控制器,介紹從SelectMAP模式或者從串行模式的配置方案,其中串行模式需要的I/O資源較少,但速度較慢;從SelectMAP模式需要的I/O資源較多,但速度較快。
(1)在串行配置模式下,F(xiàn)PGA在每個(gè)CCLK周期載入一個(gè)比特的數(shù)據(jù),CCLK引腳由外部時(shí)鐘源來驅(qū)動,而且總是每個(gè)數(shù)據(jù)字節(jié)的最高位先被寫到DIN引腳。從串行配置模式需要用到的配置引腳為模式選擇M[2:0]設(shè)置為111、配置時(shí)鐘CCLK、配置復(fù)位PROGRAM_B、初始化狀態(tài)INIT_B、配置完成DONE和配置數(shù)據(jù)D_IN。其中,ARM除了控制PROGRAM_B、INIT_B外,還需要控制時(shí)鐘CCLK、配置數(shù)據(jù)在CCLK的上升沿采樣一個(gè)比特。通過ARM拉低再拉高相應(yīng)的GPIO產(chǎn)生CCLK上升沿時(shí)序,延時(shí)程序則由for循環(huán)實(shí)現(xiàn),由時(shí)鐘控制和比特文件的載入需要分別控制可以知道串行配置耗時(shí)是比較多的。
(2)SelectMAP模式提供了與 Virtex配置邏輯之間的一個(gè)8 bit雙向數(shù)據(jù)總線接口。從SelectMAP模式支持8、16、32 bit總線寬度。為了利于系統(tǒng)的調(diào)試及檢測方便,本文選擇8 bit總線寬度。該模式所用到的配置引腳為模式選擇M[2:0]、配置時(shí)鐘CCLK、配置復(fù)位PROGRAM_B、配置完成DONE、配置數(shù)據(jù)8 bit并行輸入DATA[0:7]和CRC[6]校驗(yàn)信號INIT_B、片選信號CS_B、回讀信號BUSY以及從SelectMAP模式使能信號PDWR_B,其中的時(shí)鐘控制信號可編程實(shí)現(xiàn)。在綜合測試儀中,F(xiàn)PGA的數(shù)據(jù)線與雙端口RAM的數(shù)據(jù)線共用,并且將雙端口RAM的寫使能作為CCLK。因此不需要單獨(dú)控制,直接向雙端口RAM中寫數(shù)據(jù)可同時(shí)實(shí)現(xiàn)時(shí)鐘的產(chǎn)生和數(shù)據(jù)的傳送。
在從SelectMAP模式中使用寫使能nWE作為時(shí)鐘線,在傳輸配置信息和時(shí)鐘控制上都節(jié)約了很多時(shí)間。因此,根據(jù)TD-LTE綜合測試儀的設(shè)計(jì)要求并考慮到測試的方便性,采用8 bit從SelectMAP模式對XC5VSX95T進(jìn)行配置是較好選擇。
2 總體實(shí)現(xiàn)及流程
2.1 配置流程
圖1給出了FPGA配置流程框圖。在上電時(shí),PROGRAM_B輸入上的邏輯低電平將會復(fù)位配置邏輯,并且使FPGA保持在清空配置存儲器的狀態(tài)。只要PROGRAM_B引腳保持低電平,則FPGA將繼續(xù)清空它的配置存儲器并使INIT_B信號保持為低電平以表明配置存儲器在被清空。當(dāng)PROGRAM_B被釋放時(shí),F(xiàn)PGA將繼續(xù)使INIT_B保持為低電平,直到完成清空所有的配置存儲器。只要INIT_B信號變?yōu)楦唠娖綍r(shí),表明清除動作完成,配置就可以開始了。在INIT_B的上升沿,模式選擇引腳M[2:0]被采樣,以決定配置模式,若為110,則采用從SelectMAP模式。此后配置文件信息在CCLK的控制下由D[0:7]共8個(gè)配置引腳并行輸入XC5VSX95T中。配置數(shù)據(jù)在CCLK的上升沿采樣一個(gè)字節(jié)。在配置期間芯片會自動進(jìn)行CRC錯誤檢驗(yàn),若發(fā)生了CRC校驗(yàn)錯誤,則INIT_B引腳將被置低。當(dāng)最后的CRC校驗(yàn)成功完成后,F(xiàn)PGA進(jìn)入啟動時(shí)序。這個(gè)時(shí)序期間將會釋放DONE引腳(變?yōu)楦唠娖?,F(xiàn)PGA釋放全局三態(tài)(GTS),激活I(lǐng)/O引腳,釋放全部置位復(fù)位(GSR) 和全局寫使能(GWE)有效,開始執(zhí)行配置區(qū)的邏輯。此后芯片進(jìn)入正常工作狀態(tài)。配置時(shí)序圖如圖2所示。
2.2 硬件設(shè)計(jì)
本系統(tǒng)采用的嵌入式微處理器為S3C6410[7],將FPGA配置文件下載到ARM的存儲器存放入Flash中,以ARM處理器作為主設(shè)備,F(xiàn)PGA作為從設(shè)備。系統(tǒng)上電后,ARM通過讀取相應(yīng)的配置文件對FPGA進(jìn)行配置,256 MB的DDR SDRAM作為程序運(yùn)行空間,將NAND Flash中代碼移至SDRAM中運(yùn)行。
2.2.1 外圍芯片
(1)S3C6410
S3C6410基于ARM1176JZF-S處理器核,是一類低功率、高性價(jià)比、高性能、用于手持和移動等終端設(shè)備的通用RISC處理器。其主頻芯片可達(dá)667 MHz,采用64/32 bit的內(nèi)部總線架構(gòu),擁有比S3C2440、S3C2410等更加豐富的接口。
在S3C6410中,由系統(tǒng)時(shí)鐘控制邏輯生成所需要的系統(tǒng)時(shí)鐘信號,用于CPU的ARMCLK、AXI/AHB總線外設(shè)的HCLK和APB總線外設(shè)的PCLK。本系統(tǒng)中,采用12 MHz的外部晶體作為S3C6410的外部時(shí)鐘,ARMCLK:HCLK×2:HCLK:PCLK分別設(shè)置為553 MHz:266 MHz:133 MHz:66 MHz。
(2)NAND Flash
系統(tǒng)采用K9F1G08U0C型的128 MB×8 bit的NAND Flash。該芯片總共有1024塊,每塊有64(頁)×2 GB的容量。額定電壓為3.3 V,支持隨機(jī)讀寫功能。
(3)雙端口RAM
采用IDT70V28L系列的雙端口RAM,其寫使能nWE作為配置文件加載控制時(shí)鐘CCLK。
2.2.2 硬件連接
S3C6410與XC5VSX95T以及雙端口RAM主要通過CCLK、PROGRAM_B、DONE、D[0:7]和INIT_B信號線相連接,如圖3所示。采用S3C6410的通用接口GPN10、GPN12、GPN13分別控制INIT_B、DONE、PRORAM_B,用ARM的外部存儲器雙端口RAM的寫使能信號nWE控制CCLK,同時(shí)其數(shù)據(jù)線DATA[0:7]作為信息輸入的D[0:7]。
2.3 軟件設(shè)計(jì)
根據(jù)圖2 FPGA配置時(shí)序圖,主設(shè)備ARM編程要實(shí)現(xiàn)各信號的時(shí)序要求。ARM軟件控制設(shè)計(jì)流程如圖4所示,其中應(yīng)用代碼包含F(xiàn)PGA 的配置驅(qū)動。
2.3.1 比特文件的下載
對所設(shè)計(jì)的FPGA在Xilinx公司的ISE10.1軟件平臺上運(yùn)用Verilog語言編譯運(yùn)行后產(chǎn)生4.25 MB的.bit文件。將此.bit文件通過ARM仿真器RVDS4.1的調(diào)試環(huán)境Realview Debugger加載到ARM的一段可用內(nèi)存中。主要方法:在Target選項(xiàng)中選擇Load Binary,內(nèi)存選擇為以DDR SDRAM的0x59 000 000作為暫時(shí)存放.bit文件起始地址的內(nèi)存區(qū)。這樣做的好處是不需要進(jìn)行額外的下載電纜連接操作,使芯片系統(tǒng)重構(gòu)時(shí)沒有對電纜的插拔要求,只需要通過相應(yīng)軟件操作即可。
2.3.2 從NAND啟動
將初始化代碼和應(yīng)用代碼燒寫到Flash后,ARM處理器以NAND Flash模式啟動時(shí),內(nèi)置的NAND Flash控制器將訪問控制接口,將其第0塊前8 KB的代碼自動加載到內(nèi)部SRAM中,而片內(nèi)SRAM被映射到地址0x0,上電后運(yùn)行實(shí)現(xiàn)初始化硬件等基本功能。利用片內(nèi)SRAM中的代碼把NAND Flash中的程序代碼復(fù)制到DDR SDRAM以0x51 000 000作為起始地址的內(nèi)存中去,通過MMU實(shí)現(xiàn)0x51 000 000到0x0的映射,采用PC指針實(shí)現(xiàn)跳轉(zhuǎn)至0x0執(zhí)行應(yīng)用代碼。
2.3.3 對FPGA發(fā)送配置數(shù)據(jù)
在S3C6410中,通用接口的大多數(shù)引腳都是多功能引腳,可以通過端口配置寄存器選擇相應(yīng)的引腳功能。對于端口N,控制寄存器GPNCON用于設(shè)定引腳的輸入、輸出或者特殊的功能。如圖3硬件連接框圖所示,數(shù)據(jù)寄存器GPNDAT[10]對應(yīng)GPN10引腳上的數(shù)據(jù),在時(shí)鐘產(chǎn)生的同時(shí)對其寫1、0、1實(shí)現(xiàn)INIT_B的初始時(shí)序控制。NAND Flash啟動完成初始化后,應(yīng)用代碼實(shí)現(xiàn)從Flash相應(yīng)存儲區(qū)域讀出FPGA配置信息到一段可用地址(如DDR SDRAM中以0x59 000 000開始的存儲區(qū)),然后從將其中的數(shù)據(jù)寫到雙端口RAM中,由FPGA與雙端口RAM的數(shù)據(jù)線復(fù)用,完成配置數(shù)據(jù)加載到FPGA,實(shí)現(xiàn)配置。
由于采用了寫使能信號nWE作為配置時(shí)鐘CCLK,向雙端口RAM的地址線中寫配置信息即產(chǎn)生時(shí)鐘,并且在nWE寫使能信號的上升沿來實(shí)現(xiàn)數(shù)據(jù)采集的功能。
3 實(shí)現(xiàn)結(jié)果及分析
實(shí)現(xiàn)結(jié)果如圖5、圖6所示,圖中解釋了FPGA的CCLK、INIT_B、PROGRAM_B幾個(gè)控制信號的變化以及部分配置數(shù)據(jù)。其中,橫縱坐標(biāo)分別表示時(shí)間變化和在相應(yīng)時(shí)間變化中的信號采樣值,縱坐標(biāo)D9、D10、D11分別表示CCLK、INIT_B、PROGRAM_B,D0:D7作為數(shù)據(jù)線D[0:7]。其中時(shí)鐘的產(chǎn)生可以通過向雙端口RAM某個(gè)可用地址中寫數(shù)據(jù)來實(shí)現(xiàn)(這里寫的是0x8)。圖5中,D10一段連續(xù)低電平是FPGA自動CRC校驗(yàn)過程,在CRC校驗(yàn)完畢,D10拉高后開始傳送配置信息。圖6為FPGA配置部分波形展開圖。
SelectMAP模式中總線寬度為8 bit的配置方案在TD-LTE綜合測試儀表中已經(jīng)成功實(shí)現(xiàn)。這種配置方式也可以用在其他具有相似硬件環(huán)境的情況,如果采用16 bit或者32 bit的傳輸,相應(yīng)地時(shí)速會成倍提高。
本文介紹的系統(tǒng)采用了ARM+NAND Flash的FPGA配置模式,外圍利用SDRAM和DP_RAM的硬件電路,實(shí)現(xiàn)FPGA自動加載配置。這種方法靈活且具有保密性,修改、升級簡便,可實(shí)現(xiàn)多任務(wù)電路結(jié)構(gòu)重構(gòu)和自動重載,滿足自動配置的要求,同時(shí)也有益于整個(gè)系統(tǒng)啟動,方便了整個(gè)系統(tǒng)啟動控制,對無線TD-LTE系統(tǒng)的底層控制實(shí)現(xiàn)具有重要意義,應(yīng)用范圍非常廣泛。
參考文獻(xiàn)
[1] 梅安華,田建生,劉歡,等.基于PCI總線的FPGA配置系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)測量與控制,2005,13(4):375-377.
[2] 王爾申,張淑芳,胡青.嵌入式GPS接收機(jī)系統(tǒng)的FPGA配置方法研究[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(4):86-88.
[3] 128 M×8 bit NAND flash memory REV 0.2[EB].Samsung Electronics.2008.
[4] 柔性材料.數(shù)據(jù)銷毀背后的16條法則[EB/OL].(2010-04-16)[2012-1-9].http://www.mcplive.cn/index.php/article/index/id/5347/page/4.htm.
[5] Xilinx, Inc.Virtex-5 FPGA Configuration User Guide[EB].UG191(v3.1) April 25,2008.
[6] Yang Wenlong,Wang Lingli,Zhou Xuegong.CRC circuit design for SRAM-Based FPGA configuration bit correction[J].IEEE,2010(11).
[7] S3C6410X RISC Microprocessor User's Manual[EB].Samsung Electronics.REV 1.10.2008.