高速大容量數(shù)據(jù)采集板卡的SDRAM控制器設(shè)計
發(fā)布時間:2007/8/15 0:00:00 訪問次數(shù):857
引言
高速數(shù)據(jù)采集具有系統(tǒng)數(shù)據(jù)吞吐率高的特點,要求系統(tǒng)在短時間內(nèi)能夠傳輸并存儲采集結(jié)果。因此,采集數(shù)據(jù)的快速存儲能力和容量是制約加快系統(tǒng)速度和容許采集時間的主要因素之一。通常用于數(shù)據(jù)采集系統(tǒng)的存儲器有先進先出存儲器(FIFO)、雙端口RAM以及靜態(tài)RAM等,但是容量小,已經(jīng)不能滿足高速數(shù)據(jù)采集系統(tǒng)的需求。目前市場上的SDRAM和DDR SDRAM具有工作頻率高、容量大、功耗低的特點,數(shù)據(jù)線位寬可以達到64bit,完全適用于高速數(shù)據(jù)采集系統(tǒng)。但是SDRAM控制相對復(fù)雜,而且需要定時刷新,是系統(tǒng)設(shè)計的一個技術(shù)難點。
本文設(shè)計的100MHz單通道AD9432高速大容量數(shù)據(jù)采集板卡,選擇大容量SDRAM作為采集數(shù)據(jù)存儲器。其中,自行設(shè)計的SDRAM控制器,采用了猝發(fā)讀寫操作模式,充分發(fā)揮猝發(fā)讀寫的高速高效率特性,實現(xiàn)對采集數(shù)據(jù)的高速存儲。
SDRAM控制器設(shè)計與仿真
SDRAM控制器的設(shè)計
SDRAM控制器的設(shè)計有多種方案,一種是采用市場上的專用SDRAM接口芯片,這種控制器接口固定,訪問容量有限,與A/D采樣電路連接時,需要設(shè)計一個接口轉(zhuǎn)換電路,滿足專用芯片的接口時序;另一種是采用帶有SDRAM接口的DSP,例如TMS320C6000系列,但是容量有限,不易擴展,而且這種方式通常要求對采集數(shù)據(jù)進行預(yù)處理;還有一種是基于FPGA的SDRAM控制器,目前FPGA的技術(shù)比較成熟,編程方便,設(shè)計靈活,便于構(gòu)造大容量的SDRAM存儲器,但是控制器需要根據(jù)系統(tǒng)技術(shù)要求進行設(shè)計。在本文的高速數(shù)據(jù)采集卡設(shè)計中,采用大容量FPGA設(shè)計SDRAM控制器。
基于FPGA的SDRAM控制器工作原理
SDRAM控制器是高速數(shù)據(jù)采集卡存儲單元的核心,控制板卡數(shù)據(jù)流。工作原理參見圖1。采集數(shù)據(jù)先送入A/D數(shù)據(jù)緩存器,由SDRAM控制器讀出并寫入大容量SDRAM存儲器。當(dāng)A/D轉(zhuǎn)換結(jié)束后,板卡修改狀態(tài)標(biāo)志或者發(fā)出中斷請求,主機發(fā)出讀取命令,SDRAM控制器切換工作狀態(tài),把數(shù)據(jù)從SDRAM中取出,寫入輸出緩存器,由主機通過總線接口將結(jié)果讀到系統(tǒng)中。其中,SDRAM控制器負責(zé)對SDRAM的定時刷新。SDRAM控制器根據(jù)設(shè)計,可以對SDRAM執(zhí)行猝發(fā)讀寫、刷新等12種命令,完成對數(shù)據(jù)的訪問。
SDRAM的控制命令組合
SDRAM的控制是根據(jù)時鐘上升沿時刻控制信號的不同組合實現(xiàn)的。控制SDRAM的基本操作包括:初始化、刷新、塊激活、讀寫訪問、預(yù)充電等。
基于FPGA的SDRAM控制器設(shè)計
整個SDRAM電路包括一片F(xiàn)PGA和多片SDRAM。FPGA內(nèi)部集成了SDRAM控制器、ADC接口、總線控制接口和3個FIFO。其中,2個FIFO組成乒乓A/D數(shù)據(jù)緩存器,另一個FIFO作為輸出緩存器,F(xiàn)IFO的深度和SDRAM頁長度一致。在板卡設(shè)計中,根據(jù)需求對SDRAM控制操作進行了簡化,設(shè)計了初始化、自動刷新、塊激活、猝發(fā)讀寫、預(yù)充電等六種操作,具體狀態(tài)機設(shè)計如圖2所示。系統(tǒng)上電初始化并發(fā)出復(fù)位信號,SDRAM控制器進入初始化狀態(tài),對SDRAM進行刷新和模式設(shè)置,其中猝發(fā)長度設(shè)為“full page”,然后進入空閑狀態(tài),等待命令。當(dāng)主機啟動A/D轉(zhuǎn)換,ADC接口將采集數(shù)據(jù)依次寫入A/D數(shù)據(jù)緩存器,當(dāng)其中一個FIFO滿,SDRAM控制器進入猝發(fā)寫狀態(tài),發(fā)出塊激活和猝發(fā)寫命令,將A/D數(shù)據(jù)緩存器中的數(shù)據(jù)讀出并寫入SDRAM當(dāng)前頁,一頁數(shù)據(jù)寫操作后,發(fā)出塊預(yù)充電命令,關(guān)閉所有數(shù)據(jù)塊,退出猝發(fā)寫狀態(tài)。當(dāng)SDRAM控制器接到主機的讀數(shù)命令時,轉(zhuǎn)入猝發(fā)讀狀態(tài),先后發(fā)出塊激活和猝發(fā)讀命令,把SDRAM一頁的數(shù)據(jù)讀出并寫入輸出緩存器,并用滿信號作為中斷信號向PCI總線發(fā)出申請,通知主機讀取數(shù)據(jù)。每當(dāng)刷新計時器計數(shù)滿,狀態(tài)機轉(zhuǎn)到刷新狀態(tài),完成對SDRAM的刷新。
在編程實現(xiàn)SDRAM控制器中,應(yīng)該根據(jù)設(shè)計需求,選擇合適的控制命令組合,保證工程實現(xiàn)方案簡單、可靠,并方便調(diào)試。在設(shè)計中應(yīng)該注意:
1. 每啟動一次SDRAM的讀/寫操作,都需要經(jīng)過激活一個塊(鎖行地址)、鎖列地址(讀寫命令)等幾個過程,所以從發(fā)出地址到真正訪問一個地址空間需要4~6個時鐘周期。因此,SDRAM在非猝發(fā)模式時訪問效率非常低,不適合高速電路應(yīng)用。在本電路設(shè)計中,SDRAM的設(shè)置工作模式為猝發(fā)訪問,充分發(fā)揮了SDRAM高速高效特點。
2. 復(fù)位之后,SDRAM控制器自動進入初始化狀態(tài)。根據(jù)SDRAM初始化的要求,設(shè)置一個計數(shù)器,首先等待至少200ms,不做任何操作,然后產(chǎn)生一個Precharge All Banks命令,接著是兩個刷新命令,最后設(shè)置工作模式寄存器。完成這些初始化操作之后,SDRAM控制器進入空閑狀態(tài),這時才可以對SDRAM進行正常的操作。否則,SDRAM將處于一種不確定狀態(tài),無法保證操作的正確性。
3. SDRAM有多種刷新模式,Self Refresh通常工作于所有數(shù)據(jù)塊處于空閑的狀態(tài),功耗低,但是會使內(nèi)部時鐘和所有輸入緩沖無效,且控制復(fù)雜。Auto Refresh由定時器產(chǎn)生,易于控制。因此一般選擇Auto Refresh模式。通常設(shè)計一個計數(shù)器以計算時間間隔,達到刷新周期時,產(chǎn)生刷新信號,實現(xiàn)刷新時序。SDRAM要求在刷新之前所有的塊都處于空閑狀態(tài),但實際應(yīng)用中,有可能從任意一個狀態(tài)進入刷新狀態(tài),因此不能保證所有的塊都處于
引言
高速數(shù)據(jù)采集具有系統(tǒng)數(shù)據(jù)吞吐率高的特點,要求系統(tǒng)在短時間內(nèi)能夠傳輸并存儲采集結(jié)果。因此,采集數(shù)據(jù)的快速存儲能力和容量是制約加快系統(tǒng)速度和容許采集時間的主要因素之一。通常用于數(shù)據(jù)采集系統(tǒng)的存儲器有先進先出存儲器(FIFO)、雙端口RAM以及靜態(tài)RAM等,但是容量小,已經(jīng)不能滿足高速數(shù)據(jù)采集系統(tǒng)的需求。目前市場上的SDRAM和DDR SDRAM具有工作頻率高、容量大、功耗低的特點,數(shù)據(jù)線位寬可以達到64bit,完全適用于高速數(shù)據(jù)采集系統(tǒng)。但是SDRAM控制相對復(fù)雜,而且需要定時刷新,是系統(tǒng)設(shè)計的一個技術(shù)難點。
本文設(shè)計的100MHz單通道AD9432高速大容量數(shù)據(jù)采集板卡,選擇大容量SDRAM作為采集數(shù)據(jù)存儲器。其中,自行設(shè)計的SDRAM控制器,采用了猝發(fā)讀寫操作模式,充分發(fā)揮猝發(fā)讀寫的高速高效率特性,實現(xiàn)對采集數(shù)據(jù)的高速存儲。
SDRAM控制器設(shè)計與仿真
SDRAM控制器的設(shè)計
SDRAM控制器的設(shè)計有多種方案,一種是采用市場上的專用SDRAM接口芯片,這種控制器接口固定,訪問容量有限,與A/D采樣電路連接時,需要設(shè)計一個接口轉(zhuǎn)換電路,滿足專用芯片的接口時序;另一種是采用帶有SDRAM接口的DSP,例如TMS320C6000系列,但是容量有限,不易擴展,而且這種方式通常要求對采集數(shù)據(jù)進行預(yù)處理;還有一種是基于FPGA的SDRAM控制器,目前FPGA的技術(shù)比較成熟,編程方便,設(shè)計靈活,便于構(gòu)造大容量的SDRAM存儲器,但是控制器需要根據(jù)系統(tǒng)技術(shù)要求進行設(shè)計。在本文的高速數(shù)據(jù)采集卡設(shè)計中,采用大容量FPGA設(shè)計SDRAM控制器。
基于FPGA的SDRAM控制器工作原理
SDRAM控制器是高速數(shù)據(jù)采集卡存儲單元的核心,控制板卡數(shù)據(jù)流。工作原理參見圖1。采集數(shù)據(jù)先送入A/D數(shù)據(jù)緩存器,由SDRAM控制器讀出并寫入大容量SDRAM存儲器。當(dāng)A/D轉(zhuǎn)換結(jié)束后,板卡修改狀態(tài)標(biāo)志或者發(fā)出中斷請求,主機發(fā)出讀取命令,SDRAM控制器切換工作狀態(tài),把數(shù)據(jù)從SDRAM中取出,寫入輸出緩存器,由主機通過總線接口將結(jié)果讀到系統(tǒng)中。其中,SDRAM控制器負責(zé)對SDRAM的定時刷新。SDRAM控制器根據(jù)設(shè)計,可以對SDRAM執(zhí)行猝發(fā)讀寫、刷新等12種命令,完成對數(shù)據(jù)的訪問。
SDRAM的控制命令組合
SDRAM的控制是根據(jù)時鐘上升沿時刻控制信號的不同組合實現(xiàn)的?刂芐DRAM的基本操作包括:初始化、刷新、塊激活、讀寫訪問、預(yù)充電等。
基于FPGA的SDRAM控制器設(shè)計
整個SDRAM電路包括一片F(xiàn)PGA和多片SDRAM。FPGA內(nèi)部集成了SDRAM控制器、ADC接口、總線控制接口和3個FIFO。其中,2個FIFO組成乒乓A/D數(shù)據(jù)緩存器,另一個FIFO作為輸出緩存器,F(xiàn)IFO的深度和SDRAM頁長度一致。在板卡設(shè)計中,根據(jù)需求對SDRAM控制操作進行了簡化,設(shè)計了初始化、自動刷新、塊激活、猝發(fā)讀寫、預(yù)充電等六種操作,具體狀態(tài)機設(shè)計如圖2所示。系統(tǒng)上電初始化并發(fā)出復(fù)位信號,SDRAM控制器進入初始化狀態(tài),對SDRAM進行刷新和模式設(shè)置,其中猝發(fā)長度設(shè)為“full page”,然后進入空閑狀態(tài),等待命令。當(dāng)主機啟動A/D轉(zhuǎn)換,ADC接口將采集數(shù)據(jù)依次寫入A/D數(shù)據(jù)緩存器,當(dāng)其中一個FIFO滿,SDRAM控制器進入猝發(fā)寫狀態(tài),發(fā)出塊激活和猝發(fā)寫命令,將A/D數(shù)據(jù)緩存器中的數(shù)據(jù)讀出并寫入SDRAM當(dāng)前頁,一頁數(shù)據(jù)寫操作后,發(fā)出塊預(yù)充電命令,關(guān)閉所有數(shù)據(jù)塊,退出猝發(fā)寫狀態(tài)。當(dāng)SDRAM控制器接到主機的讀數(shù)命令時,轉(zhuǎn)入猝發(fā)讀狀態(tài),先后發(fā)出塊激活和猝發(fā)讀命令,把SDRAM一頁的數(shù)據(jù)讀出并寫入輸出緩存器,并用滿信號作為中斷信號向PCI總線發(fā)出申請,通知主機讀取數(shù)據(jù)。每當(dāng)刷新計時器計數(shù)滿,狀態(tài)機轉(zhuǎn)到刷新狀態(tài),完成對SDRAM的刷新。
在編程實現(xiàn)SDRAM控制器中,應(yīng)該根據(jù)設(shè)計需求,選擇合適的控制命令組合,保證工程實現(xiàn)方案簡單、可靠,并方便調(diào)試。在設(shè)計中應(yīng)該注意:
1. 每啟動一次SDRAM的讀/寫操作,都需要經(jīng)過激活一個塊(鎖行地址)、鎖列地址(讀寫命令)等幾個過程,所以從發(fā)出地址到真正訪問一個地址空間需要4~6個時鐘周期。因此,SDRAM在非猝發(fā)模式時訪問效率非常低,不適合高速電路應(yīng)用。在本電路設(shè)計中,SDRAM的設(shè)置工作模式為猝發(fā)訪問,充分發(fā)揮了SDRAM高速高效特點。
2. 復(fù)位之后,SDRAM控制器自動進入初始化狀態(tài)。根據(jù)SDRAM初始化的要求,設(shè)置一個計數(shù)器,首先等待至少200ms,不做任何操作,然后產(chǎn)生一個Precharge All Banks命令,接著是兩個刷新命令,最后設(shè)置工作模式寄存器。完成這些初始化操作之后,SDRAM控制器進入空閑狀態(tài),這時才可以對SDRAM進行正常的操作。否則,SDRAM將處于一種不確定狀態(tài),無法保證操作的正確性。
3. SDRAM有多種刷新模式,Self Refresh通常工作于所有數(shù)據(jù)塊處于空閑的狀態(tài),功耗低,但是會使內(nèi)部時鐘和所有輸入緩沖無效,且控制復(fù)雜。Auto Refresh由定時器產(chǎn)生,易于控制。因此一般選擇Auto Refresh模式。通常設(shè)計一個計數(shù)器以計算時間間隔,達到刷新周期時,產(chǎn)生刷新信號,實現(xiàn)刷新時序。SDRAM要求在刷新之前所有的塊都處于空閑狀態(tài),但實際應(yīng)用中,有可能從任意一個狀態(tài)進入刷新狀態(tài),因此不能保證所有的塊都處于
上一篇:硬盤常見故障的處理(3)
熱門點擊
- Mac(物理、硬件)地址詳解
- 電腦經(jīng)常死機,緣起三大件過熱
- HRT硬盤維修工具
- 誤拔移動硬盤導(dǎo)致系統(tǒng)無法啟動故障分析解決
- 企業(yè)中無線局域網(wǎng)WLAN的安全防護
- 常見硬盤自舉失敗的分析
- 智能型LED鍵盤顯示技術(shù)及其在儀器儀表中的應(yīng)
- 打印機故障檢測以及故障問題解決
- 基于USB總線的隨機信源設(shè)計與實現(xiàn)
- 基于LM9627的JPEG2000壓縮與傳輸
推薦技術(shù)資料
- AMOLED顯示驅(qū)動芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計
- GB300 超級芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究