基于USB2_0和DDR2的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與FPGA實(shí)現(xiàn)
摘要: 采用DDR2 SDRAM作為被采集數(shù)據(jù)的緩存技術(shù), 給出了USB2.0與DDR2相結(jié)合的實(shí)時(shí)、高速數(shù)據(jù)采集系統(tǒng)的解決方案, 同時(shí)提出了對數(shù)據(jù)采集系統(tǒng)的改進(jìn)思路以及在Xilinx的Virtex5 LX30 FPGA上的實(shí)現(xiàn)方法。
0 引言
隨著計(jì)算機(jī)、微電子和嵌入式系統(tǒng)技術(shù)的發(fā)展, 數(shù)據(jù)采集技術(shù)已經(jīng)在生物醫(yī)學(xué)、圖像處理、雷達(dá)系統(tǒng)等眾多領(lǐng)域得到廣泛應(yīng)用。本文設(shè)計(jì)的高速數(shù)據(jù)采集系統(tǒng)是應(yīng)用于芯片現(xiàn)場測試的實(shí)時(shí)數(shù)據(jù)采集系統(tǒng), 由于被測試芯片為250 MHz 8 bit的高速AD輸出, 因此, 該數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)采集率是2 Gbps。為了達(dá)到實(shí)時(shí)、高速、海量的數(shù)據(jù)采集, 該系統(tǒng)利用DDR2 SDRAM的高速數(shù)據(jù)傳輸能力和海量存儲能力做為采集數(shù)據(jù)的緩存,然后通過具有即插即用、易擴(kuò)展、傳輸速率較高等特點(diǎn)的USB2.0接口來將DDR2 SDRAM中的數(shù)據(jù)傳輸?shù)接?jì)算機(jī)中進(jìn)行存儲和分析。
1 數(shù)據(jù)采集系統(tǒng)架構(gòu)
該數(shù)據(jù)采集系統(tǒng)的總體架構(gòu)由硬件部分、固件部分和計(jì)算機(jī)上的USB驅(qū)動及應(yīng)用程序等幾大部分組成, 本文完成了硬件和固件部分的設(shè)計(jì)。
該系統(tǒng)的硬件部分主要由USB2.0、DDR2SDRAM、MCU以及IF等核心模塊組成, 圖1所示是其系統(tǒng)架構(gòu)圖。
系統(tǒng)總體架構(gòu)圖
圖1 系統(tǒng)總體架構(gòu)圖
USB2.0由控制器和物理傳輸層組成, 其中控制器是在FPGA上實(shí)現(xiàn)的Faraday公司的IP核, 物理層可選用SMSC公司的GT3200芯片, 控制器與物理層芯片之間可通過標(biāo)準(zhǔn)的UTMI接口相連。
DDR2 SDRAM控制器是基于Xilinx公司提供的IP核, 工作頻率是125~266 MHz, 與SDRAM之間的接口是64 bit SODIMM筆記本內(nèi)存條接口。作為數(shù)據(jù)存儲的SDRAM 是Samsung 公司的M470T5663QZ3-CE6 2GB 內(nèi)存條。系統(tǒng)的控制核心MCU采用Mentor Graphics公司的增強(qiáng)型8051 IP核M8051EW, 該8051核采用兩個(gè)時(shí)鐘周期為一個(gè)機(jī)器周期的高性能架構(gòu), 同時(shí)支持MWAIT信號來控制程序總線, 從而能夠支持慢速的外部程序和數(shù)據(jù)存儲器。IF模塊是該系統(tǒng)設(shè)計(jì)的關(guān)鍵, 它相當(dāng)于DMA的功能, 主要負(fù)責(zé)USB與DDR2、外部數(shù)據(jù)接口與DDR2之間的數(shù)據(jù)傳輸。
2 數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
本文中的數(shù)據(jù)采集系統(tǒng)采用USB2.0和DDR2SDRAM相結(jié)合的設(shè)計(jì)思路, 從而打破了傳統(tǒng)數(shù)據(jù)采集系統(tǒng)在實(shí)時(shí)數(shù)據(jù)采集中大容量和高速率不可兼得的瓶頸。在圖1所示的系統(tǒng)架構(gòu)的四個(gè)部分中, 由于USB2.0和DDR2控制器都是IP核, 因此, 該系統(tǒng)設(shè)計(jì)的關(guān)鍵在于MCU和IF模塊。
2.1 MCU的設(shè)計(jì)
MCU是數(shù)據(jù)采集系統(tǒng)的控制核心, 主要用于對USB2.0控制器進(jìn)行配置、查詢和處理USB事務(wù), 以及解析USB設(shè)備請求, 同時(shí), 還需配置IF模塊, 處理與IF模塊之間的控制信號等, 因此,MCU的設(shè)計(jì)包括數(shù)據(jù)接口及控制信號的設(shè)計(jì)以及固件設(shè)計(jì)兩個(gè)部分。
MCU數(shù)據(jù)總線接口包括與USB2.0控制器和與IF模塊的接口, 這里的USB2.0控制器和IF模塊相當(dāng)于外部設(shè)備掛在MCU的外部存儲器總線和ESFR(外部特殊功能寄存器) 總線上??刂菩盘栔饕糜谟?jì)算機(jī)上的控制臺控制IF模塊數(shù)據(jù)傳輸?shù)拈_始與結(jié)束, 通常包含在USB的設(shè)備請求中。
整個(gè)固件的開發(fā)可在Keil C下完成, 并可通過JTAG進(jìn)行調(diào)試。開發(fā)一般包括三部分: 一是協(xié)助USB控制器完成總線列舉過程, 讓計(jì)算機(jī)識別USB設(shè)備; 二是通過解析自定義USB設(shè)備請求,來對采集模式、深度等進(jìn)行配置, 從而控制采集的開始與結(jié)束; 三是查詢和處理IN、OUT事務(wù)中斷, 并控制USB數(shù)據(jù)傳輸。
評論