高速大容量數(shù)據采集板卡的SDRAM控制器設計
出處:光仔 發(fā)布于:2007-04-29 11:49:36
關鍵詞:SDRAM;FPGA;AD9432
引言
高速數(shù)據采集具有系統(tǒng)數(shù)據吞吐率高的特點,要求系統(tǒng)在短時間內能夠傳輸并存儲采集結果。因此,采集數(shù)據的快速存儲能力和容量是制約加快系統(tǒng)速度和容許采集時間的主要因素之一。通常用于數(shù)據采集系統(tǒng)的存儲器有先進先出存儲器(FIFO)、雙端口RAM以及靜態(tài)RAM等,但是容量小,已經不能滿足高速數(shù)據采集系統(tǒng)的需求。目前市場上的SDRAM和DDR SDRAM具有工作頻率高、容量大、功耗低的特點,數(shù)據線位寬可以達到64bit,完全適用于高速數(shù)據采集系統(tǒng)。但是SDRAM控制相對復雜,而且需要定時刷新,是系統(tǒng)設計的一個技術難點。
本文設計的100MHz單通道AD9432高速大容量數(shù)據采集板卡,選擇大容量SDRAM作為采集數(shù)據存儲器。其中,自行設計的SDRAM控制器,采用了猝發(fā)讀寫操作模式,充分發(fā)揮猝發(fā)讀寫的高速高效率特性,實現(xiàn)對采集數(shù)據的高速存儲。
SDRAM控制器設計與仿真
SDRAM控制器的設計
SDRAM控制器的設計有多種方案,一種是采用市場上的專用SDRAM接口芯片,這種控制器接口固定,訪問容量有限,與A/D采樣電路連接時,需要設計一個接口轉換電路,滿足專用芯片的接口時序;另一種是采用帶有SDRAM接口的DSP,例如TMS320C6000系列,但是容量有限,不易擴展,而且這種方式通常要求對采集數(shù)據進行預處理;還有一種是基于FPGA的SDRAM控制器,目前FPGA的技術比較成熟,編程方便,設計靈活,便于構造大容量的SDRAM存儲器,但是控制器需要根據系統(tǒng)技術要求進行設計。在本文的高速數(shù)據采集卡設計中,采用大容量FPGA設計SDRAM控制器。
基于FPGA的SDRAM控制器工作原理
SDRAM控制器是高速數(shù)據采集卡存儲單元的,控制板卡數(shù)據流。工作原理參見圖1。采集數(shù)據先送入A/D數(shù)據緩存器,由SDRAM控制器讀出并寫入大容量SDRAM存儲器。當A/D轉換結束后,板卡修改狀態(tài)標志或者發(fā)出中斷請求,主機發(fā)出讀取命令,SDRAM控制器切換工作狀態(tài),把數(shù)據從SDRAM中取出,寫入輸出緩存器,由主機通過總線接口將結果讀到系統(tǒng)中。其中,SDRAM控制器負責對SDRAM的定時刷新。SDRAM控制器根據設計,可以對SDRAM執(zhí)行猝發(fā)讀寫、刷新等12種命令,完成對數(shù)據的訪問。
SDRAM的控制命令組合
SDRAM的控制是根據時鐘上升沿時刻控制信號的不同組合實現(xiàn)的。控制SDRAM的基本操作包括:初始化、刷新、塊激活、讀寫訪問、預充電等。
基于FPGA的SDRAM控制器設計
整個SDRAM電路包括一片F(xiàn)PGA和多片SDRAM。FPGA內部集成了SDRAM控制器、ADC接口、總線控制接口和3個FIFO。其中,2個FIFO組成乒乓A/D數(shù)據緩存器,另一個FIFO作為輸出緩存器,F(xiàn)IFO的深度和SDRAM頁長度一致。在板卡設計中,根據需求對SDRAM控制操作進行了簡化,設計了初始化、自動刷新、塊激活、猝發(fā)讀寫、預充電等六種操作,具體狀態(tài)機設計如圖2所示。系統(tǒng)上電初始化并發(fā)出復位信號,SDRAM控制器進入初始化狀態(tài),對SDRAM進行刷新和模式設置,其中猝發(fā)長度設為“full page”,然后進入空閑狀態(tài),等待命令。當主機啟動A/D轉換,ADC接口將采集數(shù)據依次寫入A/D數(shù)據緩存器,當其中一個FIFO滿,SDRAM控制器進入猝發(fā)寫狀態(tài),發(fā)出塊激活和猝發(fā)寫命令,將A/D數(shù)據緩存器中的數(shù)據讀出并寫入SDRAM當前頁,一頁數(shù)據寫操作后,發(fā)出塊預充電命令,關閉所有數(shù)據塊,退出猝發(fā)寫狀態(tài)。當SDRAM控制器接到主機的讀數(shù)命令時,轉入猝發(fā)讀狀態(tài),先后發(fā)出塊激活和猝發(fā)讀命令,把SDRAM一頁的數(shù)據讀出并寫入輸出緩存器,并用滿信號作為中斷信號向PCI總線發(fā)出申請,通知主機讀取數(shù)據。每當刷新計時器計數(shù)滿,狀態(tài)機轉到刷新狀態(tài),完成對SDRAM的刷新。
在編程實現(xiàn)SDRAM控制器中,應該根據設計需求,選擇合適的控制命令組合,保證工程實現(xiàn)方案簡單、可靠,并方便調試。在設計中應該注意:
1. 每啟動SDRAM的讀/寫操作,都需要經過激活一個塊(鎖行地址)、鎖列地址(讀寫命令)等幾個過程,所以從發(fā)出地址到真正訪問一個地址空間需要4~6個時鐘周期。因此,SDRAM在非猝發(fā)模式時訪問效率非常低,不適合高速電路應用。在本電路設計中,SDRAM的設置工作模式為猝發(fā)訪問,充分發(fā)揮了SDRAM高速高效特點。
2. 復位之后,SDRAM控制器自動進入初始化狀態(tài)。根據SDRAM初始化的要求,設置一個計數(shù)器,首先等待至少200ms,不做任何操作,然后產生一個Precharge All Banks命令,接著是兩個刷新命令,設置工作模式寄存器。完成這些初始化操作之后,SDRAM控制器進入空閑狀態(tài),這時才可以對SDRAM進行正常的操作。否則,SDRAM將處于一種不確定狀態(tài),無法保證操作的正確性。
3. SDRAM有多種刷新模式,Self Refresh通常工作于所有數(shù)據塊處于空閑的狀態(tài),功耗低,但是會使內部時鐘和所有輸入緩沖無效,且控制復雜。Auto Refresh由定時器產生,易于控制。因此一般選擇Auto Refresh模式。通常設計一個計數(shù)器以計算時間間隔,達到刷新周期時,產生刷新信號,實現(xiàn)刷新時序。SDRAM要求在刷新之前所有的塊都處于空閑狀態(tài),但實際應用中,有可能從任意一個狀態(tài)進入刷新狀態(tài),因此不能保證所有的塊都處于空閑狀態(tài),因此,在刷新之前,首先對所有的塊預充電,然后刷新。
4. 對SDRAM進行讀寫訪問操作時,必須順序完成鎖行地址、鎖列地址、讀/寫命令和Precharge All Banks命令。使用Precharge All Banks命令是由于SDRAM不允許對同一個塊中的兩個頁進行操作,為了防止誤操作,每完成操作都要關閉所有的塊,也可以在訪問之前先執(zhí)行該命令。
采用FPGA設計SDRAM控制器的優(yōu)勢在于設計實現(xiàn)的靈活性和高集成性,設計者可以根據需要選擇合適的控制命令組合,完成簡單、可靠的控制。此外,目前市場上的SDRAM容量從幾十MB到數(shù)百MB,器件類型從SDRAM到速度更高、容量更大的DDR SDRAM,在硬件修改不多的情況下,使用FPGA控制更靈活,更適合未來系統(tǒng)擴展的需要。
SDRAM控制器的仿真
在設計中,本文選擇了Altera公司的ACEX1K100實現(xiàn)SDRAM控制器。圖3顯示了SDRAM控制器典型的猝發(fā)寫控制時序,控制器依次鎖行地址、鎖列地址、寫操作,是預充電命令,關閉所有頁,退出操作。猝發(fā)讀控制時序與之類似。
SDRAM控制器在高速數(shù)據采集卡中的實現(xiàn)
100MHz AD9432高速數(shù)據采集卡的系統(tǒng)結構框圖如圖4所示。在數(shù)據采集卡設計中,SDRAM控制器是數(shù)據流控制,負責數(shù)據的高速猝發(fā)讀/寫和定時刷新。當主機啟動A/D轉換后,SDRAM控制器將采集結果存儲到SDRAM存儲器中,當采集結束后,主機通過PCI接口采用DMA傳輸方式將采集數(shù)據讀到主機系統(tǒng)中。SDRAM控制器的時鐘為60MHz,數(shù)據線32bit。設計的SDRAM存儲器為32MB,由兩片Samsung的256MB SDRAM構成,對于100MHz采樣率,可以存儲330ms的數(shù)據,解決了高速數(shù)據采集卡的海量數(shù)據存儲的技術瓶頸。同時,利用FPGA的編程靈活性,保留了繼續(xù)擴展SDRAM的能力,以滿足更大容量的需求。
結語
板卡設計完成后,對主要性能指標進行了測試,主要包括ADC的動態(tài)性能指標及DMA數(shù)據傳輸速率。測試中設定系統(tǒng)采樣率為100MSPS,輸入信號為12.5MHz正弦信號。測試頻譜圖見圖5??梢杂嬎愠鱿到y(tǒng)實際信噪比約為61.94dB;ADC對10MHz的正弦信號采樣的有效位數(shù)為9.99bit;諧波失真(THD)=-39.22dB, 無雜散動態(tài)范圍(SFDR)=40.71dB,指標滿足設計要求?!?/P>
參考文獻
1 沈蘭蓀.高速數(shù)據采集系統(tǒng)原理及應用[M].人民郵電出版社,1995
2 楊坤德,趙亞梅,馬遠良.高速大容量多通道數(shù)據采集系統(tǒng)設計,數(shù)據采集與處理J第17卷第4期2002,17(2):455
3 ACEX1K Programmable Logic Device Family Data Sheet.Altera,2001
4 K4S561632B CMOS SDRAM Data Sheet.Samsung,2000
5  PCI datasheet http://www.udpf.com.cn/datasheet/PCI_1201469.html.
6 AD9432 datasheet http://www.udpf.com.cn/datasheet/AD9432_251538.html.
7 TMS320C6000 datasheet http://www.udpf.com.cn/datasheet/TMS320C6000_891022.html.
8 Data Sheet datasheet http://www.udpf.com.cn/datasheet/Data+Sheet_2028512.html.
版權與免責聲明
凡本網注明“出處:維庫電子市場網”的所有作品,版權均屬于維庫電子市場網,轉載請必須注明維庫電子市場網,http://www.udpf.com.cn,違反者本網將追究相關法律責任。
本網轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品出處,并自負版權等法律責任。
如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網聯(lián)系,否則視為放棄相關權利。
- 什么是C51數(shù)據類型擴充定義2025/10/27 13:59:22
 - 51單片機電平特性是什么2025/9/26 13:11:43
 - 單片機檢測直流信號:常用電路全解析2025/8/21 15:49:26
 - 探秘三極管在單片機中的關鍵作用2025/8/18 16:24:42
 - 51單片機和52單片機有什么區(qū)別2025/8/8 16:52:42
 









