摘 要:介紹了基于TMS320C6713和Altera EP2C20F256的高速實時數(shù)據(jù)采集" title="實時數(shù)據(jù)采集">實時數(shù)據(jù)采集處理系統(tǒng)的軟硬件設計方案。該方案以TMS320C6713為核心處理器,用EP2C20F256實現(xiàn)輸入輸出FIFO。實驗結果表明,在一定的算法復雜度的情況下,對信號的采樣頻率可達到6MHz,該方案完全可以滿足大多數(shù)場合對數(shù)據(jù)采集及處理的精確度和實時性" title="實時性">實時性的要求。
關鍵詞: TMS320C6713 EP2C20F256 高速實時采集
高速實時采集處理系統(tǒng)是現(xiàn)代以微處理器為核心的各種控制、實時監(jiān)控、實時信號處理系統(tǒng)的核心組成部分。由于在控制、實時監(jiān)控等領域對所監(jiān)控信號精確度的要求越來越高,所以這種系統(tǒng)必須可以提供高速的采樣速率" title="采樣速率">采樣速率,以滿足在一定的時間內(nèi)可以采集更多個采樣點的要求,使采樣系統(tǒng)更加精確。同時,又由于一些應用對于實時性的要求,系統(tǒng)必須在滿足高速采樣的條件下,還可以對信號進行快速、實時地處理。針對以上問題本文提出了一種既能滿足高速采樣要求,又能提供實時處理能力的數(shù)據(jù)采集處理系統(tǒng)的設計方案。
該方案根據(jù)實際要求,采用了美國德州儀器公司推出的TMS320C6713作為核心處理器。TMS320C6713是德州儀器公司推出的一款浮點型高性能DSP,主頻為167MHz,處理能力達到1200MFOLPS。其主要特點如下[1]:
?。?)采用了超長指令字(VLIW)體系結構,有8個獨立功能單元,32個32bit通用寄存器,一個時鐘周期同時執(zhí)行8條32bit指令,且所有指令都是條件指令。
?。?)硬件支持IEEE的單精度和雙精度指令,字節(jié)尋址(8、16、32bit 數(shù)據(jù))。
?。?)L1/L2存儲器結構,4KB一級程序緩存,4KB一級數(shù)據(jù)緩存,64KB二級緩存。
?。?)16個獨立通道的EDMA,每個通道對應一個專用同步觸發(fā)事件,使得EDMA可以被外設中斷、EDMA傳輸完成等事件觸發(fā)。
(5)32bit外部存儲器接口(EMIF),與異步器件(SRAM、EPROM)和同步器件(SDRAM、SBSRAM)無縫連接,一共有256M可尋址范圍。
Altera公司的EP2C20F256是低功耗Cyclone II FPGA家族成員之一[2],具有18K個邏輯單元,240KB的嵌入式RAM,26個18×18的嵌入式乘法器,4個系統(tǒng)時鐘管理鎖相環(huán),最大可達315個I/O口。本系統(tǒng)用此款FPGA設計了復雜的邏輯,充分利用了FPGA的優(yōu)勢,使盡可能多的工作軟件化,這樣無論調(diào)試還是修改都極為方便。利用EP2C20F256在本系統(tǒng)中設計兩個軟FIFO作為DSP接收數(shù)據(jù)的緩存,這樣可以減少外部對DSP的中斷次數(shù),提高DSP處理的效率。此外,還有與DSP接口的外圍電路,實現(xiàn)與DSP的無縫連接。
1 高速實時數(shù)據(jù)采集系統(tǒng)的硬件設計
系統(tǒng)由兩組A/D、D/A" title="D/A">D/A組成,一組為12bit,可配置:另一組是雙路10bit,可以通過軟件設置選擇哪一路A/D、D/A來工作。為了保證系統(tǒng)的高速實時性,用EP2C20F256(FPGA)設計了兩個軟FIFO,以減少對DSP的中斷次數(shù)。雖然總體會有延時,但避免了DSP中斷帶來的開銷。時鐘的同步設計對于系統(tǒng)的正常工作起到了至關重要的作用。DSP掛載了用兩片4M×16bit的SDRAM組成一個4M×32bit的SDRAM,以便與TMS320C6713的32位數(shù)據(jù)總線相匹配,充分利用6000系列DSP的性能優(yōu)勢。DSP還掛載了一個128KB的ROM,用于固化程序。因為DSP的EMIF接口外接了多個存儲器(利用FPGA設計的FIFO及控制線),所以必須設計總線隔離使各個存儲器工作都與其他存儲器互不影響。此外,系統(tǒng)外圍包含了電源模塊、下載接口、時鐘同步與系統(tǒng)復位電路。系統(tǒng)的硬件示意圖如圖1所示。
1.1 基于 FPGA的兩個4M、12bit FIFO的設計
FIFO在整個系統(tǒng)中被用作輸入數(shù)據(jù)和輸出數(shù)據(jù)的緩存,最主要的目的就是減少A/D對DSP的中斷次數(shù),將一個數(shù)據(jù)中斷一次變?yōu)? 048個數(shù)據(jù)中斷一次,這樣減少了中斷的斷點保護、現(xiàn)場保護等額外開銷,給處理數(shù)據(jù)爭取了盡可能大的時間,但是整體的時延將會增大,不過所引起的時延是在設計指標限定內(nèi)。采用quartus II設計的FIFO結構圖如圖2[2]所示,屬于異步FIFO,故與DSP的異步讀寫相匹配。
圖中,AOE、CE_wr_en_n、fifo1_rd_clk_ARE、fifo2_wr_clk_AWE、dspdata[11..0] 是與DSP的EMIF相接的信號,wruseword[11..0]再做些邏輯作為中斷信號給到DSP的INT4引腳,所有這些都按照標準異步時序[1~2]來完成與DSP的通信, Fifo1_wr_en、fifo1_wr_clk、AD2FPGA_data[11..0]用來與A/D完成數(shù)據(jù)的讀入。fifi2_read_clk、FPGA2DA_data[11..0]用來與D/A完成數(shù)據(jù)的寫出。
1.2 硬件系統(tǒng)中時鐘的提供與各設備間的同步
硬件系統(tǒng)中A/D、D/A、FIFO等設備的時鐘由DSP控制FPGA來產(chǎn)生,DSP通過EMIF接口把采樣速率通知FPGA,F(xiàn)PGA則根據(jù)這個信息用鎖相環(huán)將晶振的時鐘進行分頻,然后提供給A/D、D/A、FIFO。
本系統(tǒng)將A/D、D/A、FIFO由同一時鐘控制,這種同步關系保證了通信的穩(wěn)定性。由于入FIFO與出FIFO是同一時鐘,在入FIFO收到一個數(shù)的同時,出FIFO也輸出了一個數(shù)據(jù),從而避免了FIFO的上下溢出。
1.3 EMIF接口[3]、總線隔離與地址空間的分配
EMIF接口是6000系列DSP以并行總線方式訪問外部設備的唯一途徑,它支持的同步器件包括SBSRAM、SDRAM,異步器件包括SRAM、ROM以及FIFO等,本系統(tǒng)中SDRAM、Flash ROM、FIFO都是通過EMIF與DSP進行通信的。
因為這些器件都是通過同一數(shù)據(jù)總線和地址總線進行數(shù)據(jù)通信,所以需要進行總線隔離,本系統(tǒng)在每個器件前都加了三態(tài)門,通過EMIF的控制總線,如ARE、AWE、AOE、CE和地址總線進行控制,以使DSP在訪問一個器件時其他器件都為高阻狀態(tài)。
C6713的地址空間被分為四個部分:CE0、CE1、CE2、CE3。本系統(tǒng)將CE0作為SDRAM的尋址空間,CE1作為Flash ROM的尋址空間,CE2作為FIFO與DSP之間數(shù)據(jù)信息的尋址空間,CE3作為FIFO與DSP間控制信息的尋址空間。
1.4電源管理、JTAG接口和FPGA配置芯片[4]
本系統(tǒng)需要外部直接提供一個5V的電源,電源的輸出電流不能小于3A,這個數(shù)據(jù)是根據(jù)所有器件的功耗算得的。系統(tǒng)中需要的其他電壓,如3.3V、2.5V、1.8V、1.2V等由若干電源芯片如MAX660、MAX603、MAX604從5V變壓得到。
本系統(tǒng)對DSP和FPGA都提供了程序下載口,TMS320C6713(DSP)的七個JTAG仿真腳/TRST、TMS、TDI、TDO、TCK、EMU1和EMU0連接到一個14腳雙排插頭上,可與XDS510仿真器相連,系統(tǒng)調(diào)試時可通過PC機下載程序進行調(diào)試。EP2C20F256(FPGA)的TMS、TDI、TDO、TCK接到一個10腳雙排插頭上,作為JTAG模式的下載口。
此外,F(xiàn)PGA還需要加上一個配置芯片EPCS4SI8,作用類似于DSP的Flash ROM,把程序固化在里面,在每次上電時配置芯片的程序會加載到FPGA中。
2 高速實時數(shù)據(jù)采集系統(tǒng)的軟件設計
整個系統(tǒng)的工作流程如圖3所示,分為初始化DSP、初始化FPGA、等待中斷、中斷處理幾個過程。DSP程序由DSP BIOS和CSL相結合完成。
2.1 初始化DSP、FPGA
初始化DSP主要完成對DSP寄存器的初始化設置,根據(jù)選擇來決定是通過EDMA搬移數(shù)據(jù)還是由C程序編寫搬移數(shù)據(jù)來初始化不同的寄存器。如果選擇EDMA搬移數(shù)據(jù),那么需要初始化的內(nèi)容包括:使能全局中斷、使能EDMA完成中斷、對讀通道事件寄存器清0、對讀寫通道的CIPR清0、使能讀寫通道的通道中斷使能寄存器。如果選擇由C程序編寫搬移數(shù)據(jù),那么需要使能EINT4中斷[5]。
初始化FPGA是DSP通過EMIF告訴FPGA選擇哪路A/D、D/A,軟FIFO存滿多少給出中斷,以及FPGA產(chǎn)生多大的時鐘給A/D、D/A和軟FIFO。
2.2 數(shù)據(jù)的搬移與處理
數(shù)據(jù)搬移方式有兩種:EDMA搬移方式及通過C語言來實現(xiàn)數(shù)據(jù)搬移,本系統(tǒng)可以工作在兩種方式下,由軟件來決定。EDMA工作方式不需要由CPU參與,所以減輕了CPU的工作壓力,使其可以做其他的工作,同時EDMA方式可以用更少的機器周期來實現(xiàn)讀、寫操作。
當選擇EDMA方式時,EINT4的到來觸發(fā)一個EDMA事件,此事件根據(jù)BIOS中設置的源地址、目的地址、傳輸計數(shù)等來完成采樣數(shù)據(jù)從FIFO讀入到DSP的外部SDRAM中,傳輸完成后觸發(fā)EDMA控制器的中斷,進入中斷函數(shù)" title="中斷函數(shù)">中斷函數(shù)。因為DSP 6000系列為所有的EDMA通道只提供了一個EDMA中斷事件,所以進入中斷函數(shù)后由程序判斷此次中斷是由搬入EDMA引起的還是由搬出EDMA引起的,如果是搬入EDMA引起,則DSP首先需要對數(shù)據(jù)進行處理,然后對CIPR相應位清0(為使下次搬入EDMA可以進入中斷函數(shù))。觸發(fā)搬出的EDMA事件,它同樣根據(jù)BIOS的設置將處理后的數(shù)據(jù)從DSP外部SDRAM搬到輸出FIFO中,如果事件是由搬出EDMA引起的,則使能EDMA的事件使能寄存器(是對下一次搬入EDMA進行的使能)進入等待狀態(tài)。需要注意的是,下一次FIFO中斷信號的到來必須在此次過程進入等待狀態(tài)之后,這樣才能不丟失數(shù)據(jù)。所以要對DSP處理時間進行優(yōu)化控制,使其不能溢出。
當選擇通過C語言來實現(xiàn)數(shù)據(jù)搬移時,EINT4的到來觸發(fā)HWI_INT4的中斷函數(shù),在中斷函數(shù)中,通過C語言把數(shù)據(jù)從FIFO搬到DSP外部的SDRAM,DSP再對其處理,然后再搬出去,再次使能EINT4,進入等待狀態(tài)。這個過程也需要注意整個時間不能大于兩次中斷的間隔。
2.3 處理時間T與采樣速率Fs的數(shù)學關系
假定搬入時間為Tin,搬出時間為Tout, FIFO讀進m個數(shù)據(jù)產(chǎn)生中斷。則有:
m/Fs>=Tin+T+Tout
在硬件設計中,設定EMIF的讀、寫的Setup、Strobe、Hold分別為3、6、2,那么:
T<=m/Fs-2×(2+6+3)×m
在CCS如果測得處理時間T小于m/Fs-2×(2+6+3)×m,就能保證系統(tǒng)的實時性。此外,如果T一定, Fs一定有一個上界。
基于TMS320C6713和EP2C20F256設計的高速實時數(shù)據(jù)采集系統(tǒng)經(jīng)實驗證明,在保證一定復雜度的實時處理的前提下,采樣速率可以達到6MHz,這足以滿足大多數(shù)場合對數(shù)據(jù)采集處理的精確度以及實時性的需要。該方案具有硬件結構簡單、成本低的優(yōu)點。同時由于該系統(tǒng)具有DSP微處理器特性和FPGA的邏輯可編程特性相結合的特點,使該方案又具有設計、修改靈活的優(yōu)點。
參考文獻
1 TMS320C6713 data sheet. Texas Instrument, 2005:1~18
2 Cyclone II device handbook. Altera. 2005:17~19
3 TMS320C6000 EMIF overview of support. Texas Instrument,2005:12~15
4 Ludvig, J, McCarthy J, Neuendorffer S et al.Reprogrammable platforms for high-speed data acquisition, Design Automation for Embedded System, 2002:1~24
5 TMS320C6000 chip support library API reference guide.Texas Instrument, 2005:133~147
6 李方慧,王 飛,何佩琨. TMS320C6000系列DSPs原理與應用(第二版). 北京:電子工業(yè)出版社,2003:390~408