<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于USB2.0和DDR2 SDRAM IP核的數據采集系統設計與實(shí)現

基于USB2.0和DDR2 SDRAM IP核的數據采集系統設計與實(shí)現

作者: 時(shí)間:2017-06-05 來(lái)源:網(wǎng)絡(luò ) 收藏

引言

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

1 數據采集系統架構

該數據采集系統的總體架構由硬件部分、固件部分和計算機上的USB驅動(dòng)及應用程序等幾大部分組成, 本文完成了硬件和固件部分的設計。

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

圖1 系統總體架構圖

本文引用地址:http://dyxdggzs.com/article/201706/349123.htm

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

DDR2 SDRAM控制器是基于Xilinx公司提供的, 工作頻率是125~266 MHz, 與SDRAM之間的接口是64 bit SODIMM筆記本內存條接口。作為數據存儲的SDRAM 是Samsung 公司的M470T5663QZ3-CE6 2GB 內存條。系統的控制核心MCU采用Mentor Graphics公司的增強型8051 M8051EW,該8051核采用兩個(gè)時(shí)鐘周期為一個(gè)機器周期的高性能架構, 同時(shí)支持MWAIT信號來(lái)控制程序總線(xiàn),從而能夠支持慢速的外部程序和數據存儲器。IF模塊是該系統設計的關(guān)鍵, 它相當于DMA的功能,主要負責USB與DDR2、外部數據接口與DDR2之間的數據傳輸。

2 數據采集系統設計

本文中的數據采集系統采用USB2.0和DDR2SDRAM相結合的設計思路,從而打破了傳統數據采集系統在實(shí)時(shí)數據采集中大容量和高速率不可兼得的瓶頸。在圖1所示的系統架構的四個(gè)部分中,由于USB2.0和DDR2控制器都是IP核, 因此, 該系統設計的關(guān)鍵在于MCU和IF模塊。

2.1 MCU的設計

MCU是數據采集系統的控制核心, 主要用于對USB2.0控制器進(jìn)行配置、查詢(xún)和處理USB事務(wù), 以及解析USB設備請求, 同時(shí),還需配置IF模塊, 處理與IF模塊之間的控制信號等, 因此,MCU的設計包括數據接口及控制信號的設計以及固件設計兩個(gè)部分。

MCU數據總線(xiàn)接口包括與USB2.0控制器和與IF模塊的接口,這里的USB2.0控制器和IF模塊相當于外部設備掛在MCU的外部存儲器總線(xiàn)和ESFR(外部特殊功能寄存器) 總線(xiàn)上??刂菩盘栔饕糜谟嬎銠C上的控制臺控制IF模塊數據傳輸的開(kāi)始與結束, 通常包含在USB的設備請求中。

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

2.2 IF模塊設計

IF模塊負責接口的轉換和數據傳輸的控制,其結構如圖2所示。其中, usb2ddr和eoc2ddr子模塊分別控制USB2.0與DDR2 SDRAM、外部采集接口與DDR2 SDRAM之間數據的上下行傳輸。

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

圖2 IF模塊結構框圖。

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

圖3 原理圖。

當下行發(fā)出數據時(shí), 從DDR2的125 M×128bit到50 M×8 bit所需要的最小深度為32×8 bit,因為從SDRAM中讀數據的最大延遲是26個(gè)DDR2時(shí)鐘周期(即208 ns), 而將DDR2讀出的128 bit發(fā)出則需要16個(gè)時(shí)鐘周期(即320 ns), 因此, 為了保證發(fā)出的數據可連續進(jìn)行乒乓操作, 需要2×128bit的深度。同理,在上行數據從DDR2的125 M×128 bit到USB的30 M×32 bit則需要4×128 bit深度,因為USB時(shí)鐘讀完128 bit數據需要133.2 ns, 小于SDRAM 讀數據延遲的208 ns, 因此, 每次從SDRAM中讀2×128 bit數據時(shí),其乒乓操作就至少需要4×128 bit深度。

3 系統的改進(jìn)

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

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

圖4 觸發(fā)實(shí)現機制原理圖。

4 FPGA實(shí)現

FPGA在系統設計中具有很好的靈活性和可擴展性, 因此, FPGA是一個(gè)非常好的系統實(shí)現平臺。通過(guò)對數據采集系統的資源*估,可得出如表1所列的資源占用結果。

表1 FPGA的資源占用情況。

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

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

5 結束語(yǔ)

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

須注意的是,時(shí)鐘速率與傳輸延時(shí)并沒(méi)有什么關(guān)系,甚至普通的100bps時(shí)鐘也會(huì )出現抖動(dòng)問(wèn)題。這意味著(zhù)雖然FPGA供應商宣稱(chēng)他們的芯片具有較短的傳輸時(shí)間和很高的時(shí)鐘速率,但抖動(dòng)問(wèn)題可能會(huì )嚴重,甚至那些沒(méi)有運行在最高速率上的設計也是如此。

好在FPGA供應商已經(jīng)認識到時(shí)鐘抖動(dòng)的影響,并在他們的芯片中提供低抖動(dòng)的布線(xiàn)資源。這些特殊的布線(xiàn)能夠在芯片中一個(gè)給定范圍內的任何兩個(gè)觸發(fā)器之間提供一個(gè)確定的最大抖動(dòng)。部分產(chǎn)品的低抖動(dòng)資源覆蓋了整個(gè)芯片,而其它的則可能只覆蓋了FPGA邏輯塊中的一個(gè)特定的行或列。對于一個(gè)需要很多不同時(shí)鐘源的設計,這些低抖動(dòng)FPGA是比較理想的選擇。

多時(shí)鐘設計的最嚴重問(wèn)題之一是用異步時(shí)鐘將兩級邏輯結合在一起。由于異步時(shí)鐘會(huì )產(chǎn)生亞穩態(tài),從而嚴重降低設計性能,或完全破壞設計所能實(shí)現的功能。在觸發(fā)器的時(shí)序要求產(chǎn)生沖突時(shí)(設置時(shí)間和保持時(shí)間)將產(chǎn)生亞穩態(tài),觸發(fā)器的最終輸出是未知的,并使整個(gè)設計處于不確定狀態(tài)。如果有一級邏輯要將數據異步地發(fā)送到另一級,圖3所示的情形將不能滿(mǎn)足觸發(fā)器的設置和保持時(shí)間要求。確切地說(shuō),如果設計中含有異步邏輯將有可能會(huì )產(chǎn)生亞穩態(tài)。在處置異步資源時(shí)必需非常小心,因為這可能產(chǎn)生一些很?chē)乐氐膯?wèn)題。

多時(shí)鐘設計

本文以電信應用中的E3多路復用/解復用設計為例。如圖4所示,多路復用器接收來(lái)自一組獨立線(xiàn)路接口芯片的16個(gè)獨立E1信道,每一個(gè)信道都工作于2.048MHz;經(jīng)復用后,這些E1流組合成4個(gè)E2流,分別工作在8.0448MHz;4個(gè)E2流最后組合成一個(gè)E3流,以34.368Mbps的速率串行發(fā)送出去。在接收端執行相反的操作:解復用器從E3流提取4個(gè)E2數據流,然后從E2流提取16個(gè)E1流,最終將E1流發(fā)送到接收端的線(xiàn)路接口芯片。

這些E1線(xiàn)路接口在發(fā)送和接收時(shí)都獨立工作,因此2.048MHz的時(shí)鐘速率可以有+/- 20ppm的偏差。同樣,因為大多數系統同時(shí)發(fā)送和接收數據,分立的多路復用器和多路解復用器將提供2個(gè)獨立的E3流(發(fā)送和接收)。因此,兩個(gè)34.368MHz的時(shí)鐘可以存在細微的差異。

由于E2流是在芯片上產(chǎn)生的,這些E2多路復用器可以共享同一個(gè)8.448MHz時(shí)鐘。然而,由于接收的數據速率與我們所設計的板無(wú)關(guān)(且不能假定所有E2多路復用器使用相同時(shí)鐘),所以E2解復用器時(shí)鐘必須能工作在略為不同的速率下。

此外,假定設計中需要一個(gè)由工作頻率為1MHz的處理器控制的獨立SPI(串行外圍接口)總線(xiàn)接口,該接口用于狀態(tài)和控制。這樣一來(lái),設計中總共用了32個(gè)2.048MHz時(shí)鐘,5個(gè)8.448MHz時(shí)鐘,2個(gè)34.368MHz時(shí)鐘和一個(gè)1MHz時(shí)鐘,總共多達40個(gè)時(shí)鐘。

本設計中最快時(shí)鐘是34.368MHz E3時(shí)鐘。FPGA的最大時(shí)鐘速率的確定很重要,因為設計的差異將影響到該最大值。然而,在芯片商的資料手冊中常??梢钥吹?ldquo;全局時(shí)鐘設置及保持時(shí)間”和“至CLB輸出的時(shí)鐘”兩個(gè)參數,將這兩個(gè)參數的最大值相加,再增加25%就能可以得到最小時(shí)鐘周期的初略值,在最大時(shí)鐘速率條件下允許10%的余量,以保證過(guò)熱條件下能正常工作。因此,我們設置的最小速率為40MHz,很多較新的FPGA都能夠很容易地支持該頻率。事實(shí)上,FPGA供應商已經(jīng)推出了超過(guò)300MHz的器件。

在確定了能滿(mǎn)足最大頻率要求的FPGA后,就需要保證有足夠的空間來(lái)實(shí)現你的設計。如果所選的FPGA沒(méi)有足夠的余量,就不能提供足夠的布線(xiàn)資源來(lái)滿(mǎn)足設計的時(shí)序約束。通常芯片供應商宣稱(chēng)的速率是最佳條件下的速率,FPGA供應商一般建議FPGA邏輯在布線(xiàn)功能開(kāi)始明顯變差以前可以用到80%。在選擇FPGA器件時(shí),建議在新的設計時(shí)最好使FPGA邏輯用到50%左右,這樣就允許計算起始設計大小出現超差,以及為在設計起動(dòng)后產(chǎn)生不可避免的設計變更留出空間。如果最終的設計只占用低于50%的資源,則可以使用同一系列中較小的FPGA以降低成本。

通過(guò)時(shí)序約束來(lái)規定慢時(shí)鐘速率,從而可以改進(jìn)設計中最快時(shí)鐘的布線(xiàn)。在多路復用器例子中,如果設置FPGA布線(xiàn)工具SPI總線(xiàn)時(shí)鐘為1MHz,而E3時(shí)鐘為40MHz,布線(xiàn)工具將盡量使E3時(shí)鐘的邏輯電路模塊相鄰布局。如果由于空間的限制而不能將全部電路布局在一起,則首先應將SPI邏輯另外布局,因為SPI邏輯可以處理更長(cháng)傳輸延遲。所有FPGA供應商的布線(xiàn)工具都能規定這些較慢時(shí)鐘速率。

減少時(shí)鐘數量

根據市場(chǎng)調查,目前還沒(méi)有哪個(gè)FPGA器件能夠支持這種多路復用器/解復用器設計所需的40個(gè)時(shí)鐘。所以,我們必須減少所需要的時(shí)鐘數。

首先了解E2和E3多路復用器的時(shí)鐘。前面已經(jīng)分析了4個(gè)E2多路復用器工作在相同時(shí)鐘下的可接受度,E3多路復用器運行于比E2時(shí)鐘高得多的速率,必需使用一個(gè)不同的時(shí)鐘。但是,如果我們從E3時(shí)鐘中引出E2時(shí)鐘是否可行呢?因為E3多路復用器要從每個(gè)E2支路得到數據,我們可以在需要E2多路復用器給我們數據時(shí),簡(jiǎn)單地將脈沖送給每個(gè)多路復用器。我們沒(méi)有去掉任何時(shí)鐘,但E2時(shí)鐘現在是基于E3時(shí)鐘。

如果在所有的多路復用器中也使用同樣的時(shí)鐘,并且只使用一個(gè)使能信號來(lái)告訴E2多路復用器什么時(shí)候工作,這時(shí)會(huì )產(chǎn)生什么問(wèn)題呢?如果E3多路復用器用34.368MHz時(shí)鐘產(chǎn)生使能信號,在這些使能信號上的抖動(dòng)不會(huì )比用在FPGA中任何其它同步邏輯更大。所以,使能信號可以使用正常(高抖動(dòng))布線(xiàn)資源,這樣就不需要單獨的8.448MHz多路復用器時(shí)鐘,讀取E1數據緩沖器的數據時(shí)也是一樣。換言之,如果E2多路復用器需要數據,它可以激活到特定緩沖器的使能信號。到緩沖器的時(shí)鐘本身能夠保持E3多路復用器所用的34.368MHz時(shí)鐘,如圖5所示。

最后,我們檢查16個(gè)從線(xiàn)路接口芯片輸入到FPGA的E1時(shí)鐘。這些時(shí)鐘有會(huì )產(chǎn)生下面幾個(gè)問(wèn)題:首先,16個(gè)時(shí)鐘將占用太多可用芯片時(shí)鐘布線(xiàn)資源;其次,在同一個(gè)FPGA中使用16個(gè)異步時(shí)鐘來(lái)驅動(dòng)相互鄰近的觸發(fā)器,由于地彈、串擾和其它效應將產(chǎn)生噪聲問(wèn)題。例如,由于噪聲的原因,一個(gè)正邊沿觸發(fā)器會(huì )在下降邊沿時(shí)改變輸出狀態(tài),此類(lèi)問(wèn)題將難以處理。



關(guān)鍵詞: 乒乓緩存 數據采集 IP核

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>