吳冬梅 何管清 邱 昊
(1.海軍司令部四部 北京 100841)(2.解放軍61541部隊(duì) 北京 100094)(3.海軍工程大學(xué)電子工程學(xué)院 武漢 430033)
近年來(lái),隨著數(shù)字信號(hào)處理器(DSP)和現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)等信號(hào)處理器件性能的不斷提高,通信系統(tǒng)向小型化高速化方向迅速發(fā)展。DSP適合完成結(jié)構(gòu)較復(fù)雜的信號(hào)處理算法和控制任務(wù),F(xiàn)PGA適于完成高實(shí)時(shí)性、大運(yùn)算量的信號(hào)處理任務(wù)[1]。DSP+FPGA系統(tǒng)使兩者優(yōu)勢(shì)互補(bǔ),既能滿(mǎn)足靈活的上層信號(hào)處理算法又兼顧了底層信號(hào)處理的速度。
DSP與FPGA的配置數(shù)據(jù)存儲(chǔ)在片內(nèi)SRAM單元中,這種存儲(chǔ)單元是易失的,系統(tǒng)掉電后數(shù)據(jù)不會(huì)被保存。因此上電后需要對(duì)芯片進(jìn)行配置。傳統(tǒng)的外部ROM配置方式將配置數(shù)據(jù)存儲(chǔ)在專(zhuān)用的存儲(chǔ)器中,上電后系統(tǒng)自動(dòng)加載。這種配置方式結(jié)構(gòu)簡(jiǎn)單,操作方便,不需要額外的軟件開(kāi)銷(xiāo),但需要配備專(zhuān)用的程序存儲(chǔ)器件,增加了成本,同時(shí)也制約了系統(tǒng)的靈活性。
在某通信系統(tǒng)設(shè)計(jì)中,使用ARM對(duì)DSP和FPGA進(jìn)行動(dòng)態(tài)加載。ARM選用了三星公司的S3C6410;FPGA選用了ALTERA公司StratixII系列的EP2SGX30D;DSP選用了TI公司的TMS320C6416。下面對(duì)系統(tǒng)實(shí)現(xiàn)進(jìn)行說(shuō)明。
ALTERA公司的FPGA芯片主要配置方式[2]有主動(dòng)串行(Active serial,AS)模式、被動(dòng)串行(Passive Serial,PS)模式、快速被動(dòng)并行(Fast passive parallel,F(xiàn)PP)模式和遠(yuǎn)程配置方式等。芯片上的 MSEL[3:0]管腳決定了具體配置方案。在AS配置模式,F(xiàn)PGA通過(guò)專(zhuān)用的串行配置芯片加載程序。在被動(dòng)配置模式下,微處理器、專(zhuān)用加載芯片或電纜線都可以作為配置數(shù)據(jù)發(fā)送方。由于管腳數(shù)目限制本設(shè)計(jì)不考慮并行模式。本文中ARM通過(guò)PS模式配置FPGA。

圖1 被動(dòng)串行配置時(shí)序
PS配置過(guò)程主要分三個(gè)階段:復(fù)位,引導(dǎo)配置,初始化。配置時(shí)序如圖1所示。
復(fù)位階段。系統(tǒng)上電后,F(xiàn)PGA進(jìn)入復(fù)位狀態(tài),復(fù)位信號(hào)釋放前,nSTATUS與CONF_DONE信號(hào)拉低,所有輸入輸出引腳處于三態(tài)狀態(tài)。
配置階段。微處理器將nCONFIG拉高,使其產(chǎn)生一個(gè)上升沿,結(jié)束復(fù)位狀態(tài)。nSTATUS信號(hào)由上拉電阻拉高,芯片進(jìn)入配置模式。微處理器向FPGA提供時(shí)鐘和配置數(shù)據(jù),數(shù)據(jù)在時(shí)鐘上升沿鎖存。在配置過(guò)程中,片選信號(hào)nCS為低。
初始化階段。FPGA正確接收所有配置數(shù)據(jù)后,CONF_DONE信號(hào)被上拉電阻拉高,此時(shí)表明配置過(guò)程完成,芯片進(jìn)入初始化階段。如果在配置過(guò)程中發(fā)生錯(cuò)誤,nSTATUS變?yōu)榈碗娖剑珻ONF_DONE保持為低。
接收到復(fù)位信號(hào)后,DSP芯片被初始化為預(yù)先設(shè)定的復(fù)位狀態(tài)。復(fù)位信號(hào)釋放后,處理器按照硬件配置方式進(jìn)行啟動(dòng)。DSP啟動(dòng)方式有:主機(jī)啟動(dòng)、ROM啟動(dòng)和不啟動(dòng)[3]。本設(shè)計(jì)中 ARM 通過(guò)主機(jī)接口(Host-Port Interface,HPI)加載DSP。
主機(jī)可以通過(guò)HPI接口直接訪問(wèn)DSP內(nèi)存空間。該接口為并行接口,C64x芯片主機(jī)接口數(shù)據(jù)寬度有16位和32位兩種模式,分別稱(chēng)為HPI16與HPI32。HPI接口通過(guò)EDMA控制器與內(nèi)存空間連接,因此主機(jī)訪問(wèn)DSP內(nèi)存空間時(shí)不需要DSP的CPU直接參與。主機(jī)通過(guò)操作3種HPI寄存器實(shí)現(xiàn)對(duì)DSP內(nèi)存訪問(wèn),分別是控制寄存器(HPIC)、地址寄存器(HPIA)、數(shù)據(jù)寄存器(HPID)。
當(dāng)DSP硬件配置為主機(jī)加載模式并且PCI使能禁止時(shí),主機(jī)可以通過(guò)HPI對(duì)DSP進(jìn)行加載。DSP復(fù)位后,CPU處于停轉(zhuǎn)狀態(tài),器件的其他部分則被釋放。將所有必要數(shù)據(jù)寫(xiě)到DSP內(nèi)存后,需要給DSP一個(gè)內(nèi)部硬件中斷以喚醒CPU。當(dāng)DSP從地址0開(kāi)始運(yùn)行后要將該中斷清除,否則后續(xù)主機(jī)中斷不能被正確接收。HPI加載流程[4]如圖2所示。

圖2 HPI啟動(dòng)流程
HPI16加載軟件流程可總結(jié)為:
2)初始化寄存器HPIC。
3)向DSP傳送配置數(shù)據(jù)。主要通過(guò)操作HPIC,HPIA和HPID三個(gè)寄存器來(lái)實(shí)現(xiàn)。當(dāng)前操作的寄存器通
4)將配置數(shù)據(jù)按順序?qū)懙紻SP內(nèi)存,然后將HPIC中DSPINT位置1。

圖3 系統(tǒng)硬件連接圖
ARM的通用輸入輸出腳作為FPGA加載的控制信號(hào)。PS模式用到的信號(hào)線只需五根,設(shè)計(jì)中將FPGA這些信號(hào)線連接至 ARM 的通用I/O管腳,其中nCONFIG、DCLK、DATA設(shè)置為輸出,用于配置FPGA;nSTATUS和CONF_DONE設(shè)置為輸入,用于檢測(cè)配置狀態(tài)。理論上配置時(shí)鐘越高加載速度越快,但配置時(shí)鐘過(guò)高使控制信號(hào)建立保持以及數(shù)據(jù)鎖存時(shí)間難以把握。EP2SGX30D配置時(shí)鐘允許的最高頻率為100MHz,本系統(tǒng)所采用的配置時(shí)鐘為5MHz。
系統(tǒng)的硬件連接如圖3所示。本設(shè)計(jì)中ARM的地址線AMR_A[4∶1]復(fù)用為HPI接口的控制信號(hào)。控制信號(hào)
本系統(tǒng)設(shè)計(jì)的動(dòng)態(tài)加載方案使主機(jī)可以根據(jù)用戶(hù)需要靈活切換不同的軟件波形,在一個(gè)通用硬件平臺(tái)上實(shí)現(xiàn)功能模塊化、軟件化。同時(shí),該方案也為后續(xù)軟件升級(jí)提供了便利,具有較高的使用價(jià)值。
[1]漢澤西,孫燕妮.DSP+FPGA技術(shù)[J].電子技術(shù),2007,2(4):18-20.
[2]Altera Corporation.Stratix II Device Handbook[EB/OL].(2001-10-09)[2011-04-09].http://www.altera.com.
[3]Texas Instruments Incorporated.TMS320C6414,TMS320C6415,TMS320-C6416Fixed-point Digital Signal Processors[EB/OL].(2006-01-10)[2011-06-19].http://www.ti.com.
[4]Texas Instruments.Implementing the TMS320C6201/C6701/C6211HPI Boot Process [EB/OL].(2002-12-22)[2011-11-01].http://www.ti.com.
[5]熊康碧,張偉.DSP+FPGA系統(tǒng)中FPGA的動(dòng)態(tài)重構(gòu)設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2010,38(10):190-192.
[6]胡修林,席向濤,張?zhí)N玉.嵌入式系統(tǒng)中FPGA的被動(dòng)串行配置方式[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2004,40(3):22-26.
[7]陳曦,沈佐峰.一種可靠的FPGA動(dòng)態(tài)配置方法及實(shí)現(xiàn)[J].通信技術(shù),2012,3(45):105-107.
[8]尹濤,潘麗輝,袁行船.網(wǎng)絡(luò)環(huán)境下ARM對(duì)DSP系統(tǒng)軟件加載的設(shè)計(jì)和實(shí)現(xiàn)[J].艦船電子工程,2007,27(5):138-139.
[9]吳海燕,張曉玲.一種基于TMS320C6000系列芯片的多DSP程序動(dòng)態(tài)加載方案[J].電子元器件應(yīng)用,2008,10(12):12-14.
[10]張力,夏勇,陳志勇.基于TMS3206416DSP/BIOS的FLASH引導(dǎo)方式的實(shí)現(xiàn)[J].艦船電子工程,2008,28(2):77-79.
[11]熊康碧,張偉.DSP+FPGA系統(tǒng)中FPGA的動(dòng)態(tài)重構(gòu)設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2010(10).
[12]劉靜,黃康.TMS320C641X系列DSP引導(dǎo)方法研究[J].現(xiàn)代電子技術(shù),2010,332(21):207-210.