《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于USB2.0和DDR2的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
基于USB2.0和DDR2的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
摘要: 隨著計(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)場(chǎng)測(cè)試的實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),, 由于被測(cè)試芯片為250 MHz 8 bit的高速AD輸出, 因此,, 該數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)采集率是2 Gbps,。
Abstract:
Key words :

0 引言

隨著計(jì)算機(jī)、微電子和嵌入式系統(tǒng)技術(shù)的發(fā)展,, 數(shù)據(jù)采集" title="數(shù)據(jù)采集">數(shù)據(jù)采集技術(shù)已經(jīng)在生物醫(yī)學(xué),、圖像處理、雷達(dá)系統(tǒng)等眾多領(lǐng)域得到廣泛應(yīng)用,。本文設(shè)計(jì)的高速數(shù)據(jù)采集系統(tǒng)是應(yīng)用于芯片現(xiàn)場(chǎng)測(cè)試的實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),, 由于被測(cè)試芯片為250 MHz 8 bit的高速AD輸出, 因此,, 該數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)采集率是2 Gbps,。為了達(dá)到實(shí)時(shí),、高速、海量的數(shù)據(jù)采集,, 該系統(tǒng)利用DDR2" title="DDR2">DDR2 SDRAM的高速數(shù)據(jù)傳輸能力和海量存儲(chǔ)能力做為采集數(shù)據(jù)的緩存,,然后通過(guò)具有即插即用、易擴(kuò)展,、傳輸速率較高等特點(diǎn)的USB2.0" title="USB2.0">USB2.0接口來(lái)將DDR2 SDRAM中的數(shù)據(jù)傳輸?shù)接?jì)算機(jī)中進(jìn)行存儲(chǔ)和分析,。

1 數(shù)據(jù)采集系統(tǒng)架構(gòu)

該數(shù)據(jù)采集系統(tǒng)的總體架構(gòu)由硬件部分、固件部分和計(jì)算機(jī)上的USB驅(qū)動(dòng)及應(yīng)用程序等幾大部分組成,, 本文完成了硬件和固件部分的設(shè)計(jì),。

該系統(tǒng)的硬件部分主要由USB2.0、DDR2SDRAM,、MCU以及IF等核心模塊組成,, 圖1所示是其系統(tǒng)架構(gòu)圖。

系統(tǒng)總體架構(gòu)圖
系統(tǒng)總體架構(gòu)圖
圖1 系統(tǒng)總體架構(gòu)圖

USB2.0由控制器和物理傳輸層組成,, 其中控制器是在FPGA上實(shí)現(xiàn)的Faraday公司的IP核,, 物理層可選用SMSC公司的GT3200芯片, 控制器與物理層芯片之間可通過(guò)標(biāo)準(zhǔn)的UTMI接口相連,。

DDR2 SDRAM控制器是基于Xilinx公司提供的IP核,, 工作頻率是125~266 MHz, 與SDRAM之間的接口是64 bit SODIMM筆記本內(nèi)存條接口,。作為數(shù)據(jù)存儲(chǔ)的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信號(hào)來(lái)控制程序總線,, 從而能夠支持慢速的外部程序和數(shù)據(jù)存儲(chǔ)器。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)的控制核心,, 主要用于對(duì)USB2.0控制器進(jìn)行配置、查詢(xún)和處理USB事務(wù),, 以及解析USB設(shè)備請(qǐng)求,, 同時(shí),, 還需配置IF模塊, 處理與IF模塊之間的控制信號(hào)等,, 因此,,MCU的設(shè)計(jì)包括數(shù)據(jù)接口及控制信號(hào)的設(shè)計(jì)以及固件設(shè)計(jì)兩個(gè)部分。

MCU數(shù)據(jù)總線接口包括與USB2.0控制器和與IF模塊的接口,, 這里的USB2.0控制器和IF模塊相當(dāng)于外部設(shè)備掛在MCU的外部存儲(chǔ)器總線和ESFR(外部特殊功能寄存器) 總線上,??刂菩盘?hào)主要用于計(jì)算機(jī)上的控制臺(tái)控制IF模塊數(shù)據(jù)傳輸?shù)拈_(kāi)始與結(jié)束,, 通常包含在USB的設(shè)備請(qǐng)求中。

整個(gè)固件的開(kāi)發(fā)可在Keil C下完成,, 并可通過(guò)JTAG進(jìn)行調(diào)試,。開(kāi)發(fā)一般包括三部分: 一是協(xié)助USB控制器完成總線列舉過(guò)程, 讓計(jì)算機(jī)識(shí)別USB設(shè)備,; 二是通過(guò)解析自定義USB設(shè)備請(qǐng)求,,來(lái)對(duì)采集模式、深度等進(jìn)行配置,, 從而控制采集的開(kāi)始與結(jié)束,; 三是查詢(xún)和處理IN、OUT事務(wù)中斷,, 并控制USB數(shù)據(jù)傳輸,。[next]

2.2 IF模塊設(shè)計(jì)

IF模塊負(fù)責(zé)接口的轉(zhuǎn)換和數(shù)據(jù)傳輸?shù)目刂疲浣Y(jié)構(gòu)如圖2所示,。其中,, usb2ddr和eoc2ddr子模塊分別控制USB2.0與DDR2 SDRAM、外部采集接口與DDR2 SDRAM之間數(shù)據(jù)的上下行傳輸,。

上下行數(shù)據(jù)傳輸分別由usb2ddr_ctrl 和eoc2ddr_ctrl模塊中的狀態(tài)機(jī)進(jìn)行控制和管理,。其中采集模式和深度由MCU的ESFR總線配置, 而傳輸開(kāi)始信號(hào)則使用MCU的PORT0 [0],、PORT0[1],, 結(jié)束信號(hào)連接在MCU的外部中斷NINT0和NINT1上, 這樣可使MCU能夠及時(shí)響應(yīng),。上行采集開(kāi)始后,, 首先使eoc2ddr_ctrl中的控制狀態(tài)機(jī)處于寫(xiě)狀態(tài), 并不斷地比較DDR2的地址與配置深度,, 直到采集完成,。然后再使usb2ddr_ctrl中的控制狀態(tài)機(jī)處于讀狀態(tài), 同樣也比較地址與深度,,直到數(shù)據(jù)讀取完成,。下行傳輸過(guò)程則與之相反,。

IF模塊結(jié)構(gòu)框圖
IF模塊結(jié)構(gòu)框圖
圖2 IF模塊結(jié)構(gòu)框圖。

由于各個(gè)接口上數(shù)據(jù)傳輸?shù)乃俾什煌?因此,, 數(shù)據(jù)傳輸時(shí),, 要異步FIFO或者緩存。在本設(shè)計(jì)中,, 由于各接口速率固定,, 因此, 可采用雙端口RAM作乒乓緩存方式以提高效率并保證數(shù)據(jù)連續(xù),, 圖3所示是乒乓緩存原理圖,。

乒乓緩存原理圖
乒乓緩存原理圖
圖3 乒乓緩存原理圖。

當(dāng)下行發(fā)出數(shù)據(jù)時(shí),, 從DDR2的125 M×128bit到50 M×8 bit所需要的最小深度為32×8 bit,, 因?yàn)閺腟DRAM中讀數(shù)據(jù)的最大延遲是26個(gè)DDR2時(shí)鐘周期(即208 ns), 而將DDR2讀出的128 bit發(fā)出則需要16個(gè)時(shí)鐘周期(即320 ns),, 因此,, 為了保證發(fā)出的數(shù)據(jù)可連續(xù)進(jìn)行乒乓操作, 需要2×128bit的深度,。同理,, 在上行數(shù)據(jù)從DDR2的125 M×128 bit到關(guān)鍵字:USB2.0 DDR2 數(shù)據(jù)采集

 

y/keyad/silicon5.html" href="http://www.eeworld.com.cn" _cke_saved_href="http://www.eeworld.com.cn" target="_blank">USB的30 M×32 bit則需要4×128 bit深度,因?yàn)閁SB時(shí)鐘讀完128 bit數(shù)據(jù)需要133.2 ns,, 小于SDRAM 讀數(shù)據(jù)延遲的208 ns,, 因此, 每次從SDRAM中讀2×128 bit數(shù)據(jù)時(shí),, 其乒乓操作就至少需要4×128 bit深度,。

3 系統(tǒng)的改進(jìn)

本數(shù)據(jù)采集系統(tǒng)對(duì)傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)做了創(chuàng)新型改進(jìn)。改進(jìn)主要是三個(gè)方面: 一是對(duì)數(shù)據(jù)采集的深度實(shí)行可配置模式,; 二是在功能上不僅作為數(shù)據(jù)采集系統(tǒng),, 還能作為數(shù)據(jù)發(fā)生器, 即將采集到計(jì)算機(jī)上的數(shù)據(jù)通過(guò)數(shù)據(jù)采集系統(tǒng)發(fā)送出來(lái),; 三是該數(shù)據(jù)采集系統(tǒng)有兩種工作模式,, 即普通采集模式和觸發(fā)采集模式。

深度可配置增加了系統(tǒng)在使用過(guò)程中的靈活性,。該系統(tǒng)除了采集數(shù)據(jù)外,, 還能將數(shù)據(jù)發(fā)出來(lái)用于芯片的FPGA原型驗(yàn)證, 從而避免了緩慢的大數(shù)據(jù)量仿真,, 更增強(qiáng)了系統(tǒng)的實(shí)用性,。通過(guò)ESFR配置8 bit的深度寄存器可實(shí)現(xiàn)以16 MByte為單位的深度調(diào)節(jié)。觸發(fā)是數(shù)據(jù)采集系統(tǒng)不可缺少的功能,, 因此,, 該數(shù)據(jù)采集系統(tǒng)分為普通采集模式和觸發(fā)采集模式,。觸發(fā)采集模式的原理如圖4所示。在觸發(fā)模式中,, 可將SDRAM看做一個(gè)圓形的循環(huán)存儲(chǔ)器,, 觸發(fā)前后的采集深度同樣也可以通過(guò)ESFR配置, 從而實(shí)現(xiàn)觸發(fā)前后的采集深度比例可調(diào),。

觸發(fā)實(shí)現(xiàn)機(jī)制原理圖
 觸發(fā)實(shí)現(xiàn)機(jī)制原理圖
圖4 觸發(fā)實(shí)現(xiàn)機(jī)制原理圖,。[next]

 

4 FPGA實(shí)現(xiàn)

FPGA在系統(tǒng)設(shè)計(jì)中具有很好的靈活性和可擴(kuò)展性, 因此,, FPGA是一個(gè)非常好的系統(tǒng)實(shí)現(xiàn)平臺(tái),。通過(guò)對(duì)數(shù)據(jù)采集系統(tǒng)的資源*估, 可得出如表1所列的資源占用結(jié)果,。
FPGA的資源占用情況
表1 FPGA的資源占用情況,。

FPGA的資源占用情況

本系統(tǒng)最終選擇了Xilinx 公司的FPGA器件Virtex5 LX30,。由于DDR2 SDRAM控制器是Xilinx公司的IP核,, 故在系統(tǒng)的集成和實(shí)現(xiàn)過(guò)程中不可避免的要對(duì)原IP核進(jìn)行改動(dòng), 同時(shí),, 在ISE中布局布線時(shí),, 相應(yīng)地要對(duì)原有UCF文件中的約束進(jìn)行修改, 以滿(mǎn)足時(shí)序要求,。本系統(tǒng)除USB2.0的PHY和SDRAM外,, 其余部分均由FPGA實(shí)現(xiàn), 圖5所示是系統(tǒng)在計(jì)算機(jī)上的操作界面和實(shí)物圖,。

操作界面和FPGA實(shí)物圖
操作界面和FPGA實(shí)物圖
圖5 操作界面和FPGA實(shí)物圖,。

5 結(jié)束語(yǔ)

本文結(jié)合USB2.0與DDR2 SDRAM的特點(diǎn), 給出了可打破普通數(shù)據(jù)采集系統(tǒng)在實(shí)時(shí),、高速和大容量數(shù)據(jù)采集上的瓶頸的方法,, 并且在實(shí)用性方面進(jìn)行了改進(jìn)。該系統(tǒng)最終可在FPGA上實(shí)現(xiàn),,因?yàn)橛肍PGA實(shí)現(xiàn)具有極大的靈活性和可擴(kuò)展性,,并且在系統(tǒng)設(shè)計(jì)成本和快速實(shí)現(xiàn)上具有很好的競(jìng)爭(zhēng)優(yōu)勢(shì)。目前,, 該數(shù)據(jù)采集系統(tǒng)在實(shí)際運(yùn)用中效果良好,。實(shí)際上, 若對(duì)采集接口稍加改進(jìn),, 并將IF模塊中的乒乓緩存改為異步FIFO,, 就能廣泛地應(yīng)用于各類(lèi)高速系統(tǒng)的實(shí)時(shí)數(shù)據(jù)采集。

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。