0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

采用FPGA器件實現(xiàn)數(shù)據(jù)采集系統(tǒng)中高速大容量存儲板的設(shè)計

電子設(shè)計 ? 來源:郭婷 ? 作者:電子設(shè)計 ? 2019-08-26 08:03 ? 次閱讀

1 引言

高速數(shù)據(jù)采集系統(tǒng)目前已在雷達、聲納、圖像處理、語音識別、通信、瞬態(tài)信號測試等領(lǐng)域得到廣泛應(yīng)用。它的關(guān)鍵技術(shù)是高速ADC技術(shù)、數(shù)據(jù)存儲與傳輸技術(shù)和抗干擾技術(shù)。當(dāng)大量的高速實時數(shù)據(jù)經(jīng)過模數(shù)轉(zhuǎn)換后,必須高速存儲,多通道高采樣率的數(shù)據(jù)采集系統(tǒng)會產(chǎn)生巨大的數(shù)據(jù)流。這樣就需要高速大容量的存儲板將數(shù)據(jù)存儲起來,然后再讀回計算機進行處理?;谝陨显?,本文設(shè)計了可以同時存儲兩通道采樣數(shù)據(jù)的大容量存儲板,板中采用了64片Samsung公司的高速大容量存儲器K9F2G08UOM,使整塊板卡的存儲容量達到128Gbit。采用FPGA作為控制器,通過標(biāo)準(zhǔn)的CPCI工控機箱操作存儲板,并通過CPCI總線將存儲板上的數(shù)據(jù)高速讀回計算機,提高了讀取數(shù)據(jù)的速度。

2 K9F2G08UOM簡介

NOR Flash和NAND Flash是目前市場上的兩種主要的非易失性閃存技術(shù),本設(shè)計的目的是為了高速存儲大容量的數(shù)據(jù),因此,選擇NAND型K9F2G08U0M存儲器。它的存儲容量是2 Gbit,8位位寬,頁大小為2 048×8 bit,每塊由64頁組成,共有2 048塊。每頁帶有64×8 bit的空閑存儲區(qū),共有8 192 K×8 bit的空閑存儲區(qū)。頁編程的典型時間為300μs,最大頁編程時間為700μ8。頁內(nèi)連續(xù)最小訪問時間為30 ns/Byte,即數(shù)據(jù)寫入Flash數(shù)據(jù)寄存器的速度可達33 MB/s。但是單頁數(shù)據(jù)的典型編程速度為2 048/300μs=6.8 MB/s,最慢的編程速度為2 048/700μs=2.9 MB/s。塊擦除的典型時間為2 ms。K9F2G08U0M具有硬件數(shù)據(jù)保護功能,即在電源上電、掉電期間關(guān)閉編程/擦除操作。K9F2G08U0M內(nèi)部寫控制器使得所有的編程和擦除操作自動進行,片內(nèi)包含一個頁(2 048+64字節(jié))的數(shù)據(jù)寄存器,讀寫過程中始終是將存儲單元數(shù)據(jù)或外部數(shù)據(jù)先緩存到數(shù)據(jù)寄存器,然后再讀出數(shù)據(jù)或?qū)懭氪鎯卧R虼?,它是基于頁讀寫,基于塊擦除的。當(dāng)然,它也支持隨機讀寫。但本設(shè)計目的是高速存儲數(shù)據(jù),因此對它的讀寫操作完全是基于頁的。K9F2G08U0M的主要引腳有CLE(命令鎖存允許)、ALE(地址鎖存允許)、CE(片選)、WE(寫允許)、RE(讀允許)、WP(寫保護)、R/B(準(zhǔn)備好/忙)、PRE(上電讀使能)、I/O0~I/O7(輸入,輸出)。其中I/O0~I/O7既可作為數(shù)據(jù)輸入輸出引腳,又可作為命令地址的輸入引腳,命令、地址、數(shù)據(jù)分時復(fù)用,根據(jù)不同的命令區(qū)分地址和數(shù)據(jù)。一般的操作流程為:

1) 寫入命令,通知器件所要完成的操作(讀、寫、擦除等);

2) 寫入地址,即寫入要讀寫數(shù)據(jù)的起始地址,包括列地址和頁地址;

3) 如果是讀或者擦除,寫入一個確認命令。如果是寫操作,輸人待編程的數(shù)據(jù),完成后輸入編程確認命令。

因為K9F2G08U0M共有128 K頁,每頁的大小為(2 048+64)×8 bit,所以在寫入地址時列地址需要12根地址線,頁地址需要17根地址線。這樣就需要5個時鐘周期來寫入地址。前兩個時鐘寫入列地址,后三個時鐘寫人頁地址。

3 系統(tǒng)設(shè)計

3.1 總體硬件設(shè)計

外部數(shù)據(jù)采集系統(tǒng)是2個40 MHz采樣的16位A/D通道,所以設(shè)計時分成兩個通道獨立設(shè)計。雖然K9F2G08U0M的數(shù)據(jù)寄存器寫入速度可達33MB/s,但在FPGA設(shè)計時,為了在時序上更加可靠,選擇使用25 MHz的時鐘設(shè)計,則K9F2G08U0M的寫入速度為50 MB/s(把兩個K9F2G08U0M并成16bit,寫入速度即為25 M×l6 b/s)。這樣,在FPGA內(nèi)部開辟3個頁大小的雙口RAM作為緩存區(qū)就能滿足40 M×16 b/s的寫入速度,即在寫第2、3個RAM的時間(25 ns×2 048×2=102.4μs)內(nèi),啟動第1個RAM把數(shù)據(jù)寫入Flash的數(shù)據(jù)寄存器,所需時間為40 ns×2 048=81.92μs,小于102.4μs。

在讀回數(shù)據(jù)時,如以20 MHz讀取Flash,以40MHz讀出緩沖區(qū)中的數(shù)據(jù),3個雙口RAM就能剛好滿足要求,如圖1。讀取K9F2G08U0M一頁數(shù)據(jù)能達到33 MHz的速度,為了讓讀寫Flash使用同一時鐘,讀Flash也采用25 MHz的速度。同時為了增加系統(tǒng)設(shè)計的冗余,采用4頁的雙口RAM作為緩沖區(qū)。所以每片F(xiàn)PGA內(nèi)部至少需要4×2 048×16 bit=131 072 bit的存儲空間。

采用FPGA器件實現(xiàn)數(shù)據(jù)采集系統(tǒng)中高速大容量存儲板的設(shè)計

由于數(shù)據(jù)在寫入Flash后還有較長的編程時間,一頁的編程時間典型值為300μs,最大值為700μs。數(shù)據(jù)在存儲上不能有任何的停頓,否則就會丟失數(shù)據(jù),所以不能使用R/B信號進行設(shè)計。為了系統(tǒng)更加可靠,選擇最大編程時間700μs。兩次對同一組Flash進行寫操作的時間間隔為700μs+81.92μs=781.92μs,一頁的數(shù)據(jù)寫到雙口RAM要用25ns×2 048=51.2μs??倳r間除以寫一頁數(shù)據(jù)的時間:781.92/51.2=15.3μs,說明一個循環(huán)內(nèi)至少需要16組Flash才能滿足要求。所以在設(shè)計中,對于每路A/D采樣通道都用一片F(xiàn)PGA作為緩沖和控制系統(tǒng),在每片F(xiàn)PGA內(nèi)部都采用4個緩沖區(qū),每個緩沖區(qū)對應(yīng)一條外部總線,每條總線上掛有4組K9F2G08U0M×2(將兩片F(xiàn)lash并成16位操作,即把I/O并成16位,共用控制信號線)。系統(tǒng)整體框圖如圖2所示。

采用FPGA器件實現(xiàn)數(shù)據(jù)采集系統(tǒng)中高速大容量存儲板的設(shè)計

圖2中2個外部接口連接2個A/D通道,采用兩片F(xiàn)PGA作為控制和緩沖區(qū),每片控制16組Flash。存儲板通過PCI9054與CPCI總線相連,通過CPCI總線可以將存儲板數(shù)據(jù)高速讀回計算機。

3.2 系統(tǒng)設(shè)計思想

為了解決高速的數(shù)據(jù)采集和低速的Flash訪問速度之間的矛盾,采取將數(shù)據(jù)流串并轉(zhuǎn)換,復(fù)制多個操作模塊并行處理的設(shè)計方法。通過利用FPGA內(nèi)部的存儲區(qū)實現(xiàn)4個雙口RAM作為緩沖區(qū)。每條外部Flash總線用一個雙口RAM,采集到的數(shù)據(jù)分時加載到4個RAM中,然后再寫入Flash。寫入Flash的操作以流水方式進行,具體方式如圖3所示。首先,外部A/D采樣通道寫數(shù)據(jù)到RAM1。當(dāng)RAM1寫滿時,加載數(shù)據(jù)到第一組Flash數(shù)據(jù)寄存器,加載完成后第一組Flash進入自動編程階段;當(dāng)RAM2寫滿時,第2組Flash加載開始,數(shù)據(jù)加載完成后,進入自動編程階段。依次加載RAM3,當(dāng)RAM4寫滿,第4組Flash開始加載后,F(xiàn)PGA內(nèi)部控制重新寫RAM1,開始對第5組Flash操作,然后依此循環(huán)方式對第6~16組Flash進行操作;當(dāng)?shù)?6組數(shù)據(jù)加載完成后,第1組Flash已經(jīng)編程結(jié)束,接著從第1組Flash開始加載和編程??煽闯鱿?6組Flash寫入數(shù)據(jù)是并行的,通過并行寫操作,可存儲高速采集的數(shù)據(jù)。

采用FPGA器件實現(xiàn)數(shù)據(jù)采集系統(tǒng)中高速大容量存儲板的設(shè)計

FPGA內(nèi)部設(shè)計大體可劃分為PCI9054操控部分和數(shù)據(jù)錄放部分。PCI9054操控部分一方面跟PCI9054接口,一方面要完成對Flash的操作。數(shù)據(jù)錄放部分主要完成外部數(shù)據(jù)寫入、讀出以及擦除、建立無產(chǎn)塊信息列表等功能。由于對4組Flash的操作都是一樣的,所以數(shù)據(jù)錄放部分可以分為數(shù)據(jù)流控制部分和Flash操控部分。數(shù)據(jù)流控制部分控制數(shù)據(jù)寫入或讀取哪組Flash;Flash操控部分用于對Flash的具體操作。圖4為數(shù)據(jù)錄放部分FPGA功能結(jié)構(gòu)。為了節(jié)省內(nèi)部存儲單元的數(shù)量,寫入和讀取數(shù)據(jù)要使用同樣的緩存區(qū)。

采用FPGA器件實現(xiàn)數(shù)據(jù)采集系統(tǒng)中高速大容量存儲板的設(shè)計

3.3 無效塊的建立和操作

當(dāng)一個塊中有一位或更多位不能正確操作時,就定義此塊為無效塊。無效塊并不影響其他塊的正常工作,各個塊之間是相互獨立的。所選的K9F2G08U0M在出廠時可能存在無效塊,在使用中也可能產(chǎn)生新的無效塊,但是器件的第一個塊一定不是無效塊。NAND Flash在出廠時就標(biāo)記本身的無效塊,每個塊的第一頁或第二頁的空閑區(qū)的第一個數(shù)據(jù)不是FFh,則表示此塊為無效塊。為了保證Flash的正確操作,必須在操作之前建立無效塊信息表。在每片F(xiàn)PGA中設(shè)計了4個2 048×1 bit的RAM用于存儲無效塊的信息。RAM的每一個存儲單元存儲相應(yīng)總線上的4組Flash的無效塊信息。其中某一塊的無效塊信息是4組Flash的無效塊信息相“與”后的結(jié)果(1表示正常,0表示無效塊)。在對Flash進行讀、寫或擦除操作之前,應(yīng)先從RAM中讀取無效塊信息,然后根據(jù)無效塊信息決定是否對當(dāng)前塊操作。

3.4 讀寫Flash操作

對Flash的讀寫操作都是基于頁的,讀寫操作的時序分別如圖5和圖6所示。計算機通過CPCI總線發(fā)送出讀或?qū)懨詈?,F(xiàn)PGA內(nèi)部根據(jù)接收到的命令執(zhí)行相應(yīng)操作。寫Flash時,外部采集的數(shù)據(jù)輸入RAM1,RAM1滿后,開始向RAM2寫入數(shù)據(jù),同時選通第一條總線上第一組Flash的寫模塊,在寫模塊中通過計數(shù)器產(chǎn)生ALE、CLE、WE、RE等控制寫Flash的相應(yīng)時序,將數(shù)據(jù)從RAM中編程到Flash內(nèi)存,并令頁地址加1,依次循環(huán)(循環(huán)流程見圖3)。當(dāng)總線上的第4組Flash的頁地址為64時,塊地址加1,并讀取無效塊信息,如果為無效塊,則屏蔽此塊,重新讀取下一塊信息,直至讀取到正常塊為止。如果是正常塊,則向此塊中寫入數(shù)據(jù),同時將頁地址清零。讀操作與寫操作類似,只不過是將Flash中的數(shù)據(jù)讀出先送到RAM,然后依循環(huán)次序讀取RAM即可。

采用FPGA器件實現(xiàn)數(shù)據(jù)采集系統(tǒng)中高速大容量存儲板的設(shè)計

3.5 PCI9054操控部分的設(shè)計

通過編寫PCI9054專用的驅(qū)動和應(yīng)用軟件,實現(xiàn)由計算機通過CPCI總線操控存儲板卡。在應(yīng)用軟件中,對Flash讀寫或者擦除等命令自定義為對CPCI總線發(fā)送特定的數(shù)據(jù)。而在FPGA內(nèi)部根據(jù)PCI9054發(fā)送的局部端數(shù)據(jù)線上的特定數(shù)據(jù)判斷是何種操作,并執(zhí)行相應(yīng)操作。FPGA和PCI9054通信的主要信號線有LHOLD、LHOLDA、READY、ADS、ADDR、DATA,利用這些信號線可以實現(xiàn)PCI9054局部端和FPGA握手。將數(shù)據(jù)寫到計算機中。在PCI9054專用的驅(qū)動和應(yīng)用軟件中,利用DMA方式讀取Flash,讀取速度可提高至1.3 MHz×16 bit。

4 結(jié)束語

本設(shè)計采用流水、并行處理技術(shù),利用FPGA內(nèi)部嵌入的存儲塊設(shè)計一組高速數(shù)據(jù)緩沖區(qū),使得多個慢速的存儲器件并行工作,令系統(tǒng)內(nèi)外部數(shù)據(jù)的速率匹配,避免了外置高速緩存,簡化了硬件電路,且極大地提高了存儲數(shù)據(jù)的速率。大容量高密度閃存器件可使單片存儲板容量高達128 Gbit。在FP-GA內(nèi)部設(shè)計中,建立Flash無效塊信息列表,并在此基礎(chǔ)上對Flash進行讀、寫、擦除及重建無效塊信息等操作。使系統(tǒng)具有集成度高、靈活性好、可移植性強、速度快等特點。通過CPCI總線采取DMA方式讀取,極大地提高了讀取速度。當(dāng)接收到的數(shù)據(jù)帶寬很大,速度很高時,可將存儲板并聯(lián)起來,多個存儲板級聯(lián)可滿足更大的存儲容量需求,也可將級聯(lián)并聯(lián)二者結(jié)合起來以滿足不同系統(tǒng)的要求。整個系統(tǒng)基于CPCI工控機箱,更適合于野外的工作環(huán)境,并能及時保存、分析數(shù)據(jù)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21573

    瀏覽量

    600665
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16039

    瀏覽量

    176735
  • 數(shù)據(jù)采集
    +關(guān)注

    關(guān)注

    38

    文章

    5720

    瀏覽量

    113332
收藏 人收藏

    評論

    相關(guān)推薦

    基于ARM+FPGA高速同步數(shù)據(jù)采集

    ,FPGA邏輯電路控制A/D采集和FIFO緩存模塊,實現(xiàn)長時間不間斷的數(shù)據(jù)采集數(shù)據(jù)轉(zhuǎn)換;同時系統(tǒng)
    發(fā)表于 08-31 09:14

    高速容量數(shù)據(jù)存儲技術(shù)

    數(shù)據(jù)采集中所用的ADC最高采樣率已達到幾百MSPS甚至幾十GSPS的水平,這就要求采樣數(shù)據(jù)存儲器的速度也要與之匹配,也就是采用高速緩存:二是
    發(fā)表于 04-16 08:42

    常見的幾種不同的高速數(shù)據(jù)采集存儲系統(tǒng)介紹

    、衛(wèi)星、無線電、光電、激光等高頻物理信號),因試驗、監(jiān)測及裝備的需要,對于原始信號的長時間捕捉與存儲需求也日益增強。做為實現(xiàn)這些需求的手段,一般搭建一套高速數(shù)據(jù)采集
    發(fā)表于 07-04 06:08

    基于FPGA高速數(shù)據(jù)采集系統(tǒng)該怎么設(shè)計?

    目前,在數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計方案中,有采用通用單片機和USB相結(jié)合的方案,也有采用DSP和USB相結(jié)合的方案,前者雖然硬件成本低,但是時鐘頻率較低,難以滿足
    發(fā)表于 09-05 07:22

    如何利用FPGA實現(xiàn)高速連續(xù)數(shù)據(jù)采集系統(tǒng)設(shè)計?

    高速連續(xù)數(shù)據(jù)采集系統(tǒng)的背景及功能是什么?如何利用FPGA實現(xiàn)高速連續(xù)
    發(fā)表于 04-08 06:19

    高速數(shù)據(jù)采集系統(tǒng)中高速緩存與海量緩存的實現(xiàn)

    探討了高速數(shù)據(jù)采集系統(tǒng)中高速采樣緩存的重要性和實現(xiàn)途徑,闡述了基于ADSP-21065L的并行多通道數(shù)據(jù)
    發(fā)表于 04-23 17:08 ?23次下載

    容量固態(tài)存儲設(shè)備的FPGA實現(xiàn)

    采用容量的固態(tài)Flash作為存儲介質(zhì),用FPGA作為存儲陣列的控制器,設(shè)計了高速
    發(fā)表于 12-08 17:25 ?29次下載

    采用FPGA高速數(shù)據(jù)采集系統(tǒng)

    采用FPGA高速數(shù)據(jù)采集系統(tǒng) 隨著科學(xué)技術(shù)的發(fā)展,數(shù)據(jù)采集技術(shù)進入到越來越多的領(lǐng)域。目前,已
    發(fā)表于 04-20 11:03 ?2193次閱讀
    <b class='flag-5'>采用</b><b class='flag-5'>FPGA</b>的<b class='flag-5'>高速</b><b class='flag-5'>數(shù)據(jù)采集</b><b class='flag-5'>系統(tǒng)</b>

    單片機系統(tǒng)中高速數(shù)據(jù)采集實現(xiàn)

    介紹一種單片機系統(tǒng)高速數(shù)據(jù)采集實現(xiàn)方法,在單片機與高速A/D轉(zhuǎn)換器之間以靜態(tài)存儲器作緩沖
    發(fā)表于 07-18 16:59 ?193次下載
    單片機<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>中高速</b><b class='flag-5'>數(shù)據(jù)采集</b>的<b class='flag-5'>實現(xiàn)</b>

    基于SATA硬盤和FPGA高速數(shù)據(jù)采集存儲系統(tǒng)

    為解決現(xiàn)有采集存儲系統(tǒng)不能同時滿足高速采集,大容量脫機且長時間持續(xù)存儲的問題,設(shè)計了一種基于S
    發(fā)表于 11-15 11:35 ?169次下載
    基于SATA硬盤和<b class='flag-5'>FPGA</b>的<b class='flag-5'>高速</b><b class='flag-5'>數(shù)據(jù)采集</b><b class='flag-5'>存儲系統(tǒng)</b>

    高速容量數(shù)據(jù)采集系統(tǒng)設(shè)計與實現(xiàn)

    高速容量數(shù)據(jù)采集系統(tǒng)設(shè)計與實現(xiàn),下來看看
    發(fā)表于 05-10 11:24 ?14次下載

    基于FPGA高速數(shù)據(jù)采集硬件系統(tǒng)設(shè)計

    基于FPGA高速數(shù)據(jù)采集硬件系統(tǒng)設(shè)計.
    發(fā)表于 05-10 17:06 ?45次下載

    基于FPGA高速數(shù)據(jù)采集系統(tǒng)接口設(shè)計

    基于FPGA高速數(shù)據(jù)采集系統(tǒng)接口設(shè)計.
    發(fā)表于 05-10 17:06 ?27次下載

    如何使用FPGA和DSP進行高速數(shù)據(jù)采集系統(tǒng)設(shè)計

    介紹了1種基于FPGA和DSP的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計和實現(xiàn),其FPGA
    發(fā)表于 11-07 17:18 ?20次下載
    如何使用<b class='flag-5'>FPGA</b>和DSP進行<b class='flag-5'>高速</b><b class='flag-5'>數(shù)據(jù)采集</b><b class='flag-5'>系統(tǒng)</b>設(shè)計

    如何使用FPGA設(shè)計高速實時數(shù)據(jù)采集存儲系統(tǒng)的資料概述

    設(shè)計了以FPGA器件XCSVIXS0為核心處理芯片的高速數(shù)據(jù)采集存儲系統(tǒng)。在XCSVLXS0內(nèi)部實現(xiàn)
    發(fā)表于 12-10 16:47 ?22次下載
    如何使用<b class='flag-5'>FPGA</b>設(shè)計<b class='flag-5'>高速</b>實時<b class='flag-5'>數(shù)據(jù)采集</b><b class='flag-5'>存儲系統(tǒng)</b>的資料概述