吳冬梅 何管清 邱 昊
(1.海軍司令部四部 北京 100841)(2.解放軍61541部隊 北京 100094)(3.海軍工程大學電子工程學院 武漢 430033)
近年來,隨著數(shù)字信號處理器(DSP)和現(xiàn)場可編程門陣列(FPGA)等信號處理器件性能的不斷提高,通信系統(tǒng)向小型化高速化方向迅速發(fā)展。DSP適合完成結構較復雜的信號處理算法和控制任務,F(xiàn)PGA適于完成高實時性、大運算量的信號處理任務[1]。DSP+FPGA系統(tǒng)使兩者優(yōu)勢互補,既能滿足靈活的上層信號處理算法又兼顧了底層信號處理的速度。
DSP與FPGA的配置數(shù)據(jù)存儲在片內SRAM單元中,這種存儲單元是易失的,系統(tǒng)掉電后數(shù)據(jù)不會被保存。因此上電后需要對芯片進行配置。傳統(tǒng)的外部ROM配置方式將配置數(shù)據(jù)存儲在專用的存儲器中,上電后系統(tǒng)自動加載。這種配置方式結構簡單,操作方便,不需要額外的軟件開銷,但需要配備專用的程序存儲器件,增加了成本,同時也制約了系統(tǒng)的靈活性。
在某通信系統(tǒng)設計中,使用ARM對DSP和FPGA進行動態(tài)加載。ARM選用了三星公司的S3C6410;FPGA選用了ALTERA公司StratixII系列的EP2SGX30D;DSP選用了TI公司的TMS320C6416。下面對系統(tǒng)實現(xiàn)進行說明。
ALTERA公司的FPGA芯片主要配置方式[2]有主動串行(Active serial,AS)模式、被動串行(Passive Serial,PS)模式、快速被動并行(Fast passive parallel,F(xiàn)PP)模式和遠程配置方式等。芯片上的 MSEL[3:0]管腳決定了具體配置方案。在AS配置模式,F(xiàn)PGA通過專用的串行配置芯片加載程序。在被動配置模式下,微處理器、專用加載芯片或電纜線都可以作為配置數(shù)據(jù)發(fā)送方。由于管腳數(shù)目限制本設計不考慮并行模式。本文中ARM通過PS模式配置FPGA。
圖1 被動串行配置時序
PS配置過程主要分三個階段:復位,引導配置,初始化。配置時序如圖1所示。
復位階段。系統(tǒng)上電后,F(xiàn)PGA進入復位狀態(tài),復位信號釋放前,nSTATUS與CONF_DONE信號拉低,所有輸入輸出引腳處于三態(tài)狀態(tài)。
配置階段。微處理器將nCONFIG拉高,使其產生一個上升沿,結束復位狀態(tài)。nSTATUS信號由上拉電阻拉高,芯片進入配置模式。微處理器向FPGA提供時鐘和配置數(shù)據(jù),數(shù)據(jù)在時鐘上升沿鎖存。在配置過程中,片選信號nCS為低。
初始化階段。FPGA正確接收所有配置數(shù)據(jù)后,CONF_DONE信號被上拉電阻拉高,此時表明配置過程完成,芯片進入初始化階段。如果在配置過程中發(fā)生錯誤,nSTATUS變?yōu)榈碗娖?,CONF_DONE保持為低。
接收到復位信號后,DSP芯片被初始化為預先設定的復位狀態(tài)。復位信號釋放后,處理器按照硬件配置方式進行啟動。DSP啟動方式有:主機啟動、ROM啟動和不啟動[3]。本設計中 ARM 通過主機接口(Host-Port Interface,HPI)加載DSP。
主機可以通過HPI接口直接訪問DSP內存空間。該接口為并行接口,C64x芯片主機接口數(shù)據(jù)寬度有16位和32位兩種模式,分別稱為HPI16與HPI32。HPI接口通過EDMA控制器與內存空間連接,因此主機訪問DSP內存空間時不需要DSP的CPU直接參與。主機通過操作3種HPI寄存器實現(xiàn)對DSP內存訪問,分別是控制寄存器(HPIC)、地址寄存器(HPIA)、數(shù)據(jù)寄存器(HPID)。
當DSP硬件配置為主機加載模式并且PCI使能禁止時,主機可以通過HPI對DSP進行加載。DSP復位后,CPU處于停轉狀態(tài),器件的其他部分則被釋放。將所有必要數(shù)據(jù)寫到DSP內存后,需要給DSP一個內部硬件中斷以喚醒CPU。當DSP從地址0開始運行后要將該中斷清除,否則后續(xù)主機中斷不能被正確接收。HPI加載流程[4]如圖2所示。
圖2 HPI啟動流程
HPI16加載軟件流程可總結為:
2)初始化寄存器HPIC。
3)向DSP傳送配置數(shù)據(jù)。主要通過操作HPIC,HPIA和HPID三個寄存器來實現(xiàn)。當前操作的寄存器通
4)將配置數(shù)據(jù)按順序寫到DSP內存,然后將HPIC中DSPINT位置1。
圖3 系統(tǒng)硬件連接圖
ARM的通用輸入輸出腳作為FPGA加載的控制信號。PS模式用到的信號線只需五根,設計中將FPGA這些信號線連接至 ARM 的通用I/O管腳,其中nCONFIG、DCLK、DATA設置為輸出,用于配置FPGA;nSTATUS和CONF_DONE設置為輸入,用于檢測配置狀態(tài)。理論上配置時鐘越高加載速度越快,但配置時鐘過高使控制信號建立保持以及數(shù)據(jù)鎖存時間難以把握。EP2SGX30D配置時鐘允許的最高頻率為100MHz,本系統(tǒng)所采用的配置時鐘為5MHz。
系統(tǒng)的硬件連接如圖3所示。本設計中ARM的地址線AMR_A[4∶1]復用為HPI接口的控制信號??刂菩盘?/p>
本系統(tǒng)設計的動態(tài)加載方案使主機可以根據(jù)用戶需要靈活切換不同的軟件波形,在一個通用硬件平臺上實現(xiàn)功能模塊化、軟件化。同時,該方案也為后續(xù)軟件升級提供了便利,具有較高的使用價值。
[1]漢澤西,孫燕妮.DSP+FPGA技術[J].電子技術,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的動態(tài)重構設計[J].計算機與數(shù)字工程,2010,38(10):190-192.
[6]胡修林,席向濤,張?zhí)N玉.嵌入式系統(tǒng)中FPGA的被動串行配置方式[J].單片機與嵌入式系統(tǒng)應用,2004,40(3):22-26.
[7]陳曦,沈佐峰.一種可靠的FPGA動態(tài)配置方法及實現(xiàn)[J].通信技術,2012,3(45):105-107.
[8]尹濤,潘麗輝,袁行船.網(wǎng)絡環(huán)境下ARM對DSP系統(tǒng)軟件加載的設計和實現(xiàn)[J].艦船電子工程,2007,27(5):138-139.
[9]吳海燕,張曉玲.一種基于TMS320C6000系列芯片的多DSP程序動態(tài)加載方案[J].電子元器件應用,2008,10(12):12-14.
[10]張力,夏勇,陳志勇.基于TMS3206416DSP/BIOS的FLASH引導方式的實現(xiàn)[J].艦船電子工程,2008,28(2):77-79.
[11]熊康碧,張偉.DSP+FPGA系統(tǒng)中FPGA的動態(tài)重構設計[J].計算機與數(shù)字工程,2010(10).
[12]劉靜,黃康.TMS320C641X系列DSP引導方法研究[J].現(xiàn)代電子技術,2010,332(21):207-210.