1 引言
數據采集處理技術是現代信號處理的基礎,廣泛應用于雷達、通信、遙測遙感等領域。隨著信息科學的飛速發展,人們面臨的信號處理任務愈來愈繁重,對數據采集處理系統的要求也愈來愈高。特別是在圖像處理、瞬態信號檢測、軟件無線電等領域,更是要求高速度、高精度、高實時性的數據采集與處理技術。
在傳統高速信號處理中,數字信號處理算法一般是通過專門優化的數字信號處理器實現的,目前主要有TI公司的DSP和AD公司的ADSP用于高端信號處理器應用。當這些處理器仍無法滿足高速信號處理要求時,可以使用專用的信號處理ASIC芯片,然而使用ASIC在設計上受ASIC廠商設計思路限制,使電路設計變得困難和缺乏靈活性。而最近幾年具有乘法器及內存塊資源的大容量FPGA以及基于IP核嵌入的FPGA開發技術的出現,可以將嵌入式微處理器、專用數字器件和高速DSP算法以IP核的形式方便的嵌入FPGA,以硬件編程的方法實現高速信號處理算法,這種形式的嵌入為高端應用領域提供了超高性價比的解決方案。
2 高速數據采集處理卡工作原理及主要器件選用
該高速數據采集處理卡是基于DSP+FPGA架構來設計的。FPGA是整個系統的時序控制中心和數據交換橋梁,而且能夠實現對底層的信號快速預處理,在很多信號處理系統中,底層的信號預處理算法要處理的數據量很大,對處理速度要求很高,但算法結構相對比較簡單,適于用FPGA進行硬件編程實現。而高層處理算法的特點是速據量較低,但算法控制結構復雜,適于用運算速度快、尋址靈活、通信機制強大的DSP芯片來實現。
整個高速數據采集處理系統的主要硬件構成為:高速ADC、RAM、高性能DSP和PCI接口、大容量FPGA。模擬輸入經AD采樣進入FPGA,經過FPGA里的信號預處理模塊處理后進入DSP,由DSP軟件進行后續高級算法處理,DSP通過PCI接口與主機交換數據。系統的原理框圖如圖1所示。
圖1:數據采集處理卡總體結構框圖
DSP采用TI公司的TMS320C6000系列定點DSP中的TMS320C6416;ADC采用2片AD公司的AD9288,從而實現4路8位采樣,最高采樣頻率為100 MSPS;PCI接口采用TMS320C6416 芯片內集成的PCI2.2控制器,理論最大數據傳輸速率為132MBps; DSP程序存儲在Flash存儲器中,器件選用AM29LV160。下面逐一介紹各個主要器件的特性:
2.1 AD9288
AD9288是一款雙8bit 高速模數轉換器,兩個ADC可以獨立工作,最高采樣率100MSPS,內部集成了跟蹤保持電路和基準電路,單電源工作。平行輸出接口,兼容TTL/CMOS格式,工業標準溫度工作范圍, 48PIN LQFP封裝。適合應用與高速信號測量儀器,無線通訊設備。
2.2 XC2V1000
單片XILINX公司的XC2V1000芯片,芯片集成度達100萬門,具有40個18×18乘法器及40個18Kbit塊內存等資源,并有豐富的內部邏輯及路由資源,非常適合實現高速DSP算法,并具有8個DCM可實現復雜的時鐘管理,支持不同形式的I/O接口。
圖2:Virtex2 結構圖
2.3 TMS320C6416
本設計選用的TMS320C6416是TI公司近年推出的高性能定點DSP,其時鐘頻率達600MHz,最高處理能力4800MIPS,采用先進的甚長指令結構(VLIW)的DSP內核有8個運算功能單元,每個時鐘周期可以執行8條指令,所有指令可以條件執行。該DSP具有VITERBI譯碼協處理器(VCP)和turbo譯碼協處理器(TCP);采用二級緩存結構,一級緩存(L1)由128Kbit的程序緩存和128Kbit的數據緩存組成,二級緩存(L2)為8Mbit;有2個擴展存儲器接口EMIF,一個為64bit(EMIFA),一個為16bit(EMIFB),可以與異步(SRAM、EPROM)/同步存儲器的DMA通道;主機接口(HPI)總線寬度可由用戶配置(32/16bit),具有32bit/33MHz,3.3V的PCI主從接口,該接口符合PCI標準2.2版,有3個多通道串口(McBSPs),片內還有一個16針的通用輸入輸出接口(GPIO)。
3 高速數據采集處理系統的硬件連接
3.1 模擬信號輸入接口設計
AD9288的模擬信號輸入采用差分輸入方式。單端輸入方式連接比較簡單,但抗噪性能差,采取差分輸入方式可以盡量減少信號噪聲以及電磁的干擾。其AD芯片的單路AD輸入電路如圖2所示:
圖3:模擬信號輸入電路
3.2 AD9288與FPGA芯片的連接
AD采樣時鐘ENC、采樣輸出數據AD_DATA及輸出數據格式選擇DFS等控制信號均接入FPGA,由FPGA靈活編程控制AD采樣。
圖4:AD與FPGA連接結構圖
3.3 FPGA 與DSP芯片的連接
DSP 通過EMIFA口數據線、地址線、片選信號及其它接口控制信號與FPGA的IO連接,實現FPGA內部生成FIFO或RAM等緩存組件與DSP連接,該部分電路主要功能是可以將FPGA內存儲器映射到DSP地址空間,從而實現DSP對FPGA的直接高速數據交換。另將DSP 外部中斷IO信號、及定時器信號接入FPGA,以靈活的實現FPGA與DSP的控制通信。
圖5: FPGA與DSP連接結構圖
3.4 PCI硬件接口
TMS320C6416內部集成33MHz/32位支持PCI主/從接口的PCI2.2接口控制器,無需額外的PCI控制芯片即可方便的與具有PCI接口的主機直接互連。DSP通過內部的EDMA控制器實現集成的PCI接口控制器與DSP的接口。
圖6:PCI接口功能模塊圖
4 PCI接口軟件設計
PCI接口開發中有相當大的工作量是關于PCI軟件的開發,PCI軟件主要包括兩方面的工作:驅動程序設計和主機端應用程序的設計。本系統軟件的設計目標是實現數據采集卡與主機高速的DMA傳輸及對主機對DSP內存空間的讀寫。
4.1 驅動程序設計
驅動程序根據Windows 驅動程序模型(WDM)設計,運行在Win2000 平臺上。支持即插即用,采用基于數據包的DMA 傳輸方式,采用Numega公司的開發包Driver Works和Microsoft公司的2000DDK,并以VC++6.0作為輔助開發環境。
當應用程序請求從采集卡讀數據時,內核I/O 管理器將此請求打包成一個IRP(I/O 請求包),驅動程序調用相關例程把應用程序發來控制信息寫入DSP設置的控制寄存器,并調用驅動程序的讀例程。如果數據處理卡不忙,數據處理卡作為PCI主設備就啟動DMA傳輸;當本次DMA 傳輸完成時,處理卡產生中斷,I/O 管理器調用驅動程序的中斷服務例程和DpcForIsr完成此IRP,并從IRP 隊列中取出下一個IRP,啟動下一次DMA。下一次中斷發生時同樣處理。這樣不斷地進行DMA 傳輸,直到IRP 隊列空為止。
4.2 應用程序設計
主機應用程序是主要實現從高速數據采集處理板該取處理后的數據、存儲、顯示處理及結果以及向數據采集處理板發送控制命令。在Windows 2000下,我們使用的應用程序開發工具是VC++6.0。通過CreatFile()函數得到PCI句柄,用DeviceIoControl()函數來向設備驅動程序發送請求及命令,完成數據的讀取與寫入。用ReadFile()函數調用驅動啟動DMA傳輸實現高速數據傳輸。
5 結束語
本高速采集數據處理卡應用了大容量FPGA及高性能數字信號處理器DSP技術和PCI總線技術。DSP是為數字信號處理專門開發的芯片,其內部的總線結構和指令非常適合于數字信號處理,而FPGA高速硬件實現算法的特點使得大容量高速FPGA成為數據處理板級設計重要的選擇,PCI接口的高速可靠的傳輸速率滿足了與主機應用軟件數據傳輸的需求。本設計主要是為了軟件無線電接收機預研所設計的實驗平臺,經實際驗證,系統運行可靠,是一種比較好的高速數據采集與處理的解決方案,有著廣泛的應用前景,也可以用于圖像處理、雷達信號處理等數據采集處理領域。