摘 要:介紹所設(shè)計的高速數(shù)據(jù)采集高速、大容量存儲卡和系統(tǒng)實現(xiàn)方案。A/D采集采用8位的1 GHz A/D轉(zhuǎn)換芯片,高速大容量存儲采用固態(tài)存儲芯片F(xiàn)LASH(閃存)為存儲介質(zhì),F(xiàn)PGA(現(xiàn)場可編程門陣列)為存儲陣列的控制核心,針對來自A/D的高速數(shù)據(jù),引入多級流水和冗余校驗技術(shù),能夠屏蔽FLASH的壞塊。實現(xiàn)了用高密度、相對低速的FLASH存儲器對高速實時數(shù)據(jù)的可靠存儲。另外,通過橋接芯片PCI9656,可以很方便地實現(xiàn)同主機的高速的數(shù)據(jù)通信。
關(guān)鍵詞:FPGA;A/D;FLASH;PCI;高速
中圖分類號:TP368.1 文獻標識碼:B
文章編號:1004-373X(2008)10-003-04
Design on High Speed Data Acqucisition Storage Board
LIU Jiakui,WANG Hongxian,XING Mengdao
(National Key Lab of Radar Signal Processing,Xidian University,Xi′an,710071,China)
Abstract: The mechanism and scheme of system in the designed storage board for high speed and large capacity are introduced.It uses a dual 8-bit analog-to-digital converter with a sample rate up to 1 GS/s,uses FLASH as storage medium and FPGA as the processor of the storage array.For high speed data input from A/D,the pipeline technique and the redundancy check method are used.Moreover,the invalid blocks of FLASH chips have been masked out too.It successfully accomplish the high speed data storage with the high density and relatively low speed FLASH chips.Besides,it can also communicate data with the computer host through the bridge chip PCI9656.
Keywords:FPGA;A/D;FLASH;PCI;high speed
高速采集存儲系統(tǒng)目前在雷達、圖像處理、語音識別、聲納、通信等領(lǐng)域有著廣泛地應(yīng)用。為了滿足雷達高速數(shù)據(jù)采集的需要,要求設(shè)計高速大容量的數(shù)據(jù)存儲器,可以在現(xiàn)場采集數(shù)據(jù)、保存后進行回放和后期處理。特別是隨著雷達成像技術(shù)逐漸成熟,分辨率和采樣率都大幅提升,需要實時保存海量數(shù)據(jù)。Atmel公司的1 GS/s速率的A/D變換器件,可以工作1 GHz上進行采樣。NAND型FLASH芯片,以半導(dǎo)體作為記憶載體,比傳統(tǒng)的存儲設(shè)備可靠性更高,體積及重量更小,日趨成為存儲器的主流。
在某機載合成孔徑雷達的試驗中,雷達以正側(cè)視條帶式工作在X波段,空間分辨率達到0.5 m×0.5 m(0.3 m×0.3 m)的高分辨率,I,Q雙通道采樣,采樣頻率640 MHz,采樣位寬為8 b,場景距離向45 120 (22 560)點,方位向重復(fù)頻率為2 k/s,要求最小存儲速度2×8 b×45120×2 k/s=180.480 Mb/s。本文將詳細介紹所設(shè)計的A/D_FLASH系統(tǒng)是如何構(gòu)建來滿足數(shù)據(jù)采集和存儲要求的。
1 核心芯片選擇
存儲介質(zhì)采用Samsung公司的NAND FLASH芯片K9WAG08U1A-PIB0,他的外部接口速度為40 MHz,接口寬度8 b。每個芯片含8 192×2個數(shù)據(jù)塊,1個塊分64頁,每頁大小為(2 k+64)B,其中64 B為空閑區(qū),存儲總?cè)萘繛?6 Gb。
數(shù)據(jù)采集芯片采用Atmel公司的AT84A/D001B,他是雙通道8位AD,采樣速率可達2 Gs/s(此時是2個通道),輸入接口是SMA,觸發(fā)選用外接觸發(fā),觸發(fā)信號為3.3 V的TTL或者CMOS電平。輸入信號帶寬可為1~1 500 MHz,輸入信號幅度為-2 dBm(Vpp=500 mV),輸入阻抗50 Ω,信號通過SMA接頭接入。
FPGA是控制核心,他非常適合復(fù)雜時序邏輯的設(shè)計,這里選用Altera公司的STRATIXⅡ系列的EP2S60F1020C5芯片。他的內(nèi)置存儲RAM,可以緩存一定量的數(shù)據(jù),支持3.3 V,64 b,66 MHz PCI,可以作CPCI的功能控制。
PCI橋接芯片采用了PIX公司的PCI9656BA芯片,以簡化與主機進行通信時PCI部分的設(shè)計。借助PCI9656,可實現(xiàn)與主機間進行64 b,66 MHz的PCI總線,與FPGA間實現(xiàn)32 b,66 MHz的局部總線協(xié)議,并可實現(xiàn)板卡的熱插拔。該芯片應(yīng)用靈活,性價比較高,是進行CPCI接口開發(fā)的一塊性能優(yōu)良的芯片。
2 A/D芯片部分的操作
AT84A/D001B有2路(I,Q)模擬輸入,變換的結(jié)果可以最多有4路的差分輸出,這4路都連到FPGA的差分IObank上,A/D的時鐘輸入也是差分的,最高可以達1 GHz,如果設(shè)定成將這個時鐘反相后作為另一路的時鐘輸入,那么采樣速率實際可達2 GS/s,工作模式的設(shè)定都是通過FPAG輸出時序給A/D,其中要注[GK!5]意的FPGA輸出的信號經(jīng)過一個電平轉(zhuǎn)換芯片后再連到A/D的配置接口上,因為A/D支持電平是2.2 V,可以用FPGA的3.3 VBANK的I/O接口轉(zhuǎn)換。
3 FLASH芯片接口操作
K9WAG08U1A可以看作由2片存儲容量為8 Gb的小芯片組成,對此,芯片有2個片選信號ce1和ce2,對應(yīng)還有2個rdy信號。芯片的各種操作必須寫入相應(yīng)的命令才能順利執(zhí)行,由于命令、地址、數(shù)據(jù)共用I/O,所以要通過命令鎖存信號和地址鎖存信號共同[HK]控制而分時復(fù)用。FLASH存儲中主要使用的操作簡介如下:
(1) 頁編程(PAGE PROGRAME)
器件的編程以頁為單位,但在一個頁編程周期中允許對部分頁(一個或連續(xù)的多個字節(jié),最多不超過頁容量)編程。一個頁編程周期由串行數(shù)據(jù)加載階段和緊隨的編程階段組成。在數(shù)據(jù)加載階段,數(shù)據(jù)被加載到數(shù)據(jù)寄存器中;在編程階段,已加載的數(shù)據(jù)寫入實際的存儲單元,編程典型時間為200 μs。
(2) 頁讀(PAGE REA/D)
器件在上電時,就被初始化為讀模式,此時可以不寫00h命令,直接寫入地址和30h命令即可。有2種類型的讀,分別是隨機讀和順序頁讀。命令打入后經(jīng)過最多20 μs的時間,數(shù)據(jù)會從選擇的頁傳到數(shù)據(jù)寄存器中。
(3) 塊擦除(BLOCK ERASE)
器件的擦除操作是以塊為單位的。塊地址加載由擦除建立命令60h啟動,然后輸入確認命令D0h,執(zhí)行內(nèi)部擦除過程。這一先建立再執(zhí)行的兩步命令時序,確保了存儲內(nèi)容不會由外部的干擾而意外擦除。
4 板卡大致布局
板卡有一個高速CPCI接口,方便與CPCI工控機之間的數(shù)據(jù)交換。此外采用自定義的兩個高速數(shù)據(jù)接口(SCSI)。64片F(xiàn)LASH芯片并行操作,另外8片F(xiàn)LASH芯片專門用于冗余校驗, FPGA為整個板卡的控制核心,其硬件結(jié)構(gòu)如圖1所示。
由于CPCI的插槽J3,J4和J5用戶自定義應(yīng)用,在這里把J3設(shè)計成自定義I/O,總共有80根線連到FPGA的引腳上,這樣只要跟這塊板卡插在同一塊CPCI工控機的底板上,就可以很自由地實現(xiàn)板間通信而不需要主機的太多干預(yù)。J4沒有連接,而J5則按照TigerShark公司的TS201的鏈路口協(xié)議進行鏈接,這樣以來,這塊板卡就可以實現(xiàn)與以TS201為核心的雷達信號處理板卡之間的通信。
布局時要把數(shù)字部分和模擬部分盡量徹底分開,模擬部分主要是指A/D上的模擬電源,模擬地,模擬信號等。這塊板卡的布局如圖1所示:
5 重要模塊設(shè)計
程序的大致結(jié)構(gòu)流程如圖2所示:
FPGA是整個存儲卡的控制核心,EP2S60F1020I4實現(xiàn)的內(nèi)部功能模塊如圖3所示:
6 A/D的配置及與FPGA數(shù)據(jù)傳輸
Atmel的這款A(yù)/D變換芯片采用3線式配置其工作方式,通過這個接口配置他的時鐘源,單路或是雙路模擬輸入,以及變換結(jié)果的輸出通道數(shù),并可以配置2路的增益和補償。這種配置方式只需往芯片的內(nèi)部8個寄存器寫入相應(yīng)的配置值即可,并可以根據(jù)應(yīng)用場合及時修改配置參數(shù),適應(yīng)各種要求的數(shù)據(jù)采集要求。A/D的3線配置時序如圖4所示:
A/D變換工作的頻率比較高,F(xiàn)PGA要接收這個數(shù)據(jù)需采用一個LVDS接收器,這樣就可以把接收器的輸出直接連到FPGA中的FIFO去,接下來通過FIFO接口把數(shù)據(jù)傳給FLASH模塊去存儲。A/D變換的結(jié)果進入FPGA后,再經(jīng)過一個解串器,把速度降下來,就可以分到把數(shù)據(jù)送給FLASH去存儲。
6.1 FLASH流水工作
考慮存儲速度要求和接口的最高速度,我們以接口速度320 MB/s進行設(shè)計,由于每組17片F(xiàn)LASH并行操作,分配到每個FLASH芯片的速度為320/16=20 MB/s。K9K8G08U0M芯片接口的寫入速度最高可達40 MB/s,所以工作在20~40 MB之間就可滿足所需要求。
考慮FLASH的結(jié)構(gòu)特點,設(shè)計過程中基于整個頁進行讀寫操作。數(shù)據(jù)加載時間,即1頁數(shù)據(jù)寫入FLASH寄存器的時間為:頁容量/接口速度=102.4 μs。數(shù)據(jù)加載結(jié)束后,進入編程階段。K9K8G08U0M芯片編程時間的典型值為200 μs,最大值為700 μs。為了系統(tǒng)達到最大穩(wěn)定,以最大時間700 μs進行設(shè)計,編程時間/數(shù)據(jù)寫滿每組FLASH一頁的時間為:700 μs/102.4 μs=6.8,說明經(jīng)過7組FLASH的寫入加載操作后,第一組FLASH編程結(jié)束,又可進行再次加載。由此可見,在一次循環(huán)操作中,用8組FLASH是比較合適的,也就是如圖5所示的樣子。
6.2 用于FLASH存儲的壞塊列表
NAND FLASH內(nèi)部有隨機分布的壞塊,需要建立壞塊信息列表,對FLASH的操作都要基于此列表。芯片在出廠的時候,在每塊第一頁和第二頁的空閑區(qū)的首字節(jié)(第2 048個字節(jié))處留有標記,如果不是FFH則為壞塊。建立壞塊信息列表如圖6所示。
在實際操作中發(fā)現(xiàn),每組17片F(xiàn)LASH總的壞塊從80到130不等,但相對于總塊數(shù)8 192而言仍算少數(shù)。所以把每組17片F(xiàn)LASH各自的壞塊信息相與,建立一個新的組壞塊信息列表,一共8組FLASH所有的壞塊信息是8 192個字節(jié),總的大小很小。由于每組FLASH共同控制,那么基于同一個壞塊列表操作就顯得非常的方便。
存儲操作及壞塊列表的更新,如圖7所示。FLASH在長期使用中,會產(chǎn)生新的壞塊,要及時對壞塊信息進行更新。更新時,把新的壞塊內(nèi)容寫入第一塊中去,但不重新寫入原來的地址。這樣確保原始壞塊信息的安全。
6.3 數(shù)據(jù)的冗余校驗
在實際信道傳輸數(shù)據(jù)時,如果由于信道傳輸特性不理想,并且受到噪聲和干擾的影響,就會造成接收端誤判而發(fā)生差錯,或者由于個別芯片出現(xiàn)讀寫失敗時,也會造成數(shù)據(jù)的丟失。為了盡可能的降低通信的誤碼率,提高數(shù)據(jù)存儲的完整性,同時使用循環(huán)冗余校驗碼CRC(Cyclic Redundancy Check)與奇偶校驗碼來檢查和恢復(fù)錯誤數(shù)據(jù),保障存儲系統(tǒng)數(shù)據(jù)的可靠性。
循環(huán)冗余碼采用CRC-CCITT國際標準,其生成多項式為:G(X)=X16+X12+X5+1。為了提高運算速度,使用并行計算方法。奇偶校驗的法則為,數(shù)據(jù)有奇數(shù)個1時,校驗碼為1,否則為0,在FPGA內(nèi)部使用異或組合邏輯就可輕松實現(xiàn)所需算法。
8 FPGA內(nèi)部實現(xiàn)的功能結(jié)構(gòu)
FPGA內(nèi)部主要完成的工作主要有,接收從CPCI工控機來的的命令,判斷執(zhí)行的命令的類型(存儲、回放、擦除數(shù)據(jù)等),實現(xiàn)FPGA與PCI9656的通信,對A/D的工作模式進行配置,把A/D變換的結(jié)果傳給FLASH,建立壞塊列表,以及對數(shù)據(jù)的冗余校驗。低速模塊對高速輸入的處理,是個通過數(shù)據(jù)流的串并轉(zhuǎn)換,面積換速度的方法達到。
9 結(jié) 語
本文對FLASH的固存技術(shù)進行研究,所設(shè)計的基于FPGA的存儲卡,在存儲速度、容量、糾錯性能上都滿足了機載合成孔徑雷達成像試驗所需的要求。在速度要求愈高的發(fā)展趨勢下,高速大容量的存儲器將在各個領(lǐng)域都會有廣泛的應(yīng)用前景。
參 考 文 獻
[1]K9WAG08U1A A/Dvanced FLASH Memory Data Sheet SAMSUNG Electronics,2005.
[2]PCI 9656BA Data Book,Version 1.12003 PLX Technology,Inc.
[3]Stratix II Device Handbook Altera Corporation.
[4]李貴山,戚德虎.PCI局部總線開發(fā)者指南\\[M\\].西安:西安電子科技大學出版社,1997.
[5]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程[M].北京:北京航空航天大學出版社,2003.
作者簡介 劉加奎 男,1982年出生,山東臨沂人,西安電子科技大學信號與信息處理專業(yè)碩士研究生。主要研究方向為雷達成像信號處理。
王虹現(xiàn) 男,1979年出生,河南商丘人,西安電子科技大學信號與信息處理專業(yè)博士研究生。主要研究方向為雷達成像與高速實時信號處理。
邢孟道 男,1975年出生,浙江嵊州人,西安電子科技大學教授,博士生導(dǎo)師。主要研究方向為雷達成像、目標識別和天波超視距雷達信號處理。