李金猛
(國(guó)營(yíng)蕪湖機(jī)械廠 安徽 蕪湖 241007)
基于FPGA的數(shù)據(jù)采集存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
李金猛
(國(guó)營(yíng)蕪湖機(jī)械廠安徽蕪湖241007)
針對(duì)大規(guī)模集成電路測(cè)試中需要采集記錄總線數(shù)據(jù)并用于后續(xù)產(chǎn)品測(cè)試分析的目的,采用了基于FPGA的數(shù)據(jù)采集存儲(chǔ)系統(tǒng)的軟硬件設(shè)計(jì)方法,硬件采用“上位機(jī)+下位機(jī)”架構(gòu),下位機(jī)直接由FPGA直接控制FLASH陣列盤,實(shí)現(xiàn)長(zhǎng)時(shí)數(shù)據(jù)采集存儲(chǔ),上位機(jī)在采集完成后通過(guò)USB接口對(duì)數(shù)據(jù)進(jìn)行離線分析,通過(guò)對(duì)采集系統(tǒng)的硬件進(jìn)行設(shè)計(jì)與仿真,開(kāi)發(fā)出與下位機(jī)控制盒相配套的采集軟件,進(jìn)行實(shí)際數(shù)據(jù)采集試驗(yàn)得出所采集的16路總線數(shù)據(jù)信號(hào)有效。
采集;存儲(chǔ);流水線;FIFO;FPGA
隨著電子技術(shù)的發(fā)展及帶大規(guī)模器件的電路板、總線接口類產(chǎn)品在電子設(shè)備的大規(guī)模應(yīng)用,傳統(tǒng)的電子設(shè)備的測(cè)試修理模式將發(fā)生重大轉(zhuǎn)變。有很多產(chǎn)品電路板中由大規(guī)模集成芯片組成的板件,給維修工作帶來(lái)很大的困難,對(duì)該類板件數(shù)據(jù)信號(hào)分析是解決產(chǎn)品板件修理的一種重大檢測(cè)手段。文中重點(diǎn)介紹應(yīng)用在電子產(chǎn)品維修中的一套基于FPGA的數(shù)據(jù)采集存儲(chǔ)系統(tǒng)的軟硬件設(shè)計(jì)方法及實(shí)現(xiàn)過(guò)程。
本采集存儲(chǔ)系統(tǒng)將以定制計(jì)算機(jī)與固態(tài)硬盤為上位機(jī),下位機(jī)由數(shù)據(jù)控制板、數(shù)據(jù)存儲(chǔ)板、數(shù)據(jù)采集與數(shù)據(jù)傳輸板組成,系統(tǒng)框架關(guān)系示意圖如圖1所示。上下位機(jī)的通訊接口為2個(gè)USB2.0通訊接口,其中1個(gè)為USB2.0通訊接口,另1個(gè)為數(shù)據(jù)采集測(cè)控板的JTAG調(diào)試與下載配置接口。
圖1 系統(tǒng)原理框圖
2.1硬件設(shè)計(jì)
數(shù)據(jù)采集存儲(chǔ)模塊[1-6]硬件設(shè)計(jì)包括FPGA最小系統(tǒng)設(shè)計(jì)、多級(jí)流水線電路設(shè)計(jì)、USB2.0通訊接口設(shè)計(jì)3部分,這里重點(diǎn)闡述前兩部分,具體如下:
2.1.1FPGA最小系統(tǒng)設(shè)計(jì)
1)底板設(shè)計(jì)
控制器底板硬件設(shè)計(jì)包括FPGA最小系統(tǒng)與USB2.0通訊接口兩部分電路設(shè)計(jì)。
2)存儲(chǔ)板設(shè)計(jì)
本采集系統(tǒng)初步設(shè)計(jì)為16通道。與多級(jí)流水線的設(shè)計(jì)相匹配,存儲(chǔ)板需要21片NAND型FLASH器件,對(duì)應(yīng)7級(jí)流水線,每級(jí)3片NAND型FLASH,該FLASH器件選用MT29F2G16,該器件容量為2 G×16 bit,電平標(biāo)準(zhǔn)為3.3 V,電平與FPGA兼容。
3)程序配置電路
FPGA是SRAM型結(jié)構(gòu),因此需要一片F(xiàn)LASH結(jié)構(gòu)的配置芯片來(lái)存儲(chǔ)配置信息,用于進(jìn)行上電復(fù)位。本設(shè)計(jì)中的配置芯片選用EPCS128。
4)信號(hào)轉(zhuǎn)換板設(shè)計(jì)
由于本采集存儲(chǔ)系統(tǒng)的數(shù)字探針輸出信號(hào)為峰峰值為0.4 V,該信號(hào)過(guò)小且容易受到干擾。如果將此信號(hào)直接輸入到FPGA的I/O口,很難被準(zhǔn)確檢測(cè)。因此需要對(duì)信號(hào)進(jìn)行放大,所利用的信號(hào)轉(zhuǎn)換器件為高速運(yùn)放ADA4891-2,其單通道信號(hào)轉(zhuǎn)換電路如圖2所示。
圖2 ADA4891接口電路
2.1.2多級(jí)流水線電路設(shè)計(jì)
這里利用多級(jí)流水線工作原理來(lái)解決數(shù)據(jù)采集與滿足數(shù)據(jù)存儲(chǔ)之間的讀寫速度匹配問(wèn)題。
1)多級(jí)流水線工作原理
這里以16通道的存儲(chǔ)模塊、并以50 MHz采樣頻率為例進(jìn)行說(shuō)明。
16路被采信號(hào)經(jīng)過(guò)阻抗匹配電路輸入至FPGA的I/O口,經(jīng)過(guò)MUX處理存入FPGA內(nèi)部建立的3塊FIFO內(nèi),具體存放順序?yàn)椋旱?個(gè)字存入第一塊FIFO,第2個(gè)字存入第二塊FIFO,第3個(gè)字存入第3塊FIFO,第4個(gè)字存入第一塊FIFO,依次循環(huán),等第3塊FIFO存滿1024字時(shí),同時(shí)對(duì)3塊FIFO進(jìn)行讀取,把第一個(gè)FIFO的1024字對(duì)第一級(jí)第一片F(xiàn)lash進(jìn)行寫寄存器,把第二個(gè)FIFO的1024字對(duì)第一級(jí)第二片F(xiàn)lash進(jìn)行寫寄存器,把第3個(gè)FIFO的1024字對(duì)第一級(jí)第3片F(xiàn)lash進(jìn)行寫寄存器,在讀取FIFO的過(guò)程中,數(shù)據(jù)不斷的往每一個(gè)FIFO內(nèi)進(jìn)行存儲(chǔ)。每一塊的FIFO讀完1024字之后,等待第3塊FIFO下一次再次存滿1024字時(shí),再進(jìn)行下一次的讀取FIFO,把下一次的3塊FIFO中的數(shù)據(jù)存入下一級(jí)的3片F(xiàn)lash中,依次循環(huán)。采集與存儲(chǔ)流程示意圖如圖3所示。
圖3 采集與存儲(chǔ)流程示意圖
2)FIFO設(shè)計(jì)
本方案中FPGA建立3塊2KWord的FIFO,具體設(shè)計(jì)理由闡述如下:
①FIFO空間設(shè)計(jì)
本采集儀NAND型FLASH器件型號(hào)為MT29F2G16,該器件的寫周期最小值為25 ns,自動(dòng)編程時(shí)間為220~600 μs。由于Flash的頁(yè)寫空間為1KWord,因此一個(gè)FIFO的空間至少需要大于1KWord,留有一定余量,因此選取每塊FIFO的空間大小為2KWord。
②FIFO塊數(shù)設(shè)計(jì)
由于采樣頻率為50 MHz,而Flash的寫入頻率最大為25 MHz(字寫入的時(shí)間twc最快為35 ns,留有一定的余量,取40 ns),因此,需要采用乒乓算法,把采樣頻率由50 MHz降低為25 MHz,因此FIFO塊數(shù)至少需要3片F(xiàn)IFO(50/25=2,留一定余量,取3),所以FIFO塊數(shù)需要擁有3片F(xiàn)IFO。因此相當(dāng)于每塊FIFO的輸入頻率為16.7 MHz。
③Flash片數(shù)的選擇
Flash的寫入分兩個(gè)步驟:寫頁(yè)寄存器和頁(yè)編程,前一過(guò)程時(shí)間較短而后一過(guò)程時(shí)間較長(zhǎng)。當(dāng)被采信號(hào)為50 MHz時(shí),由于Flash的頁(yè)寫大小為1KWord,而每一個(gè)字寫入的時(shí)間Twc最小值為40 ns(手冊(cè)上所給出的最小值為25 ns),因此頁(yè)寫的時(shí)間Tpage=Twc*1 024=40*1 024 ns=42 us,而頁(yè)編程時(shí)間Tprog典型值為220 us,所以除了第一片F(xiàn)lash以外還需要的Flash級(jí)數(shù)n=Tprog/TwrFIFO=220/42=5.2,加上第一級(jí),共6.2,留有一定的余量,取n為7級(jí)。FLASH流水線示意圖如圖4所示。
2.2軟件開(kāi)發(fā)
數(shù)據(jù)存儲(chǔ)模塊主要包括以下功能:命令接收與執(zhí)行功能(控制器底板可以接收上位機(jī)軟件所發(fā)送來(lái)的采集、暫停、復(fù)位、讀取、退出命令,并執(zhí)行相應(yīng)的命令);數(shù)據(jù)采集與存儲(chǔ)功能(下位機(jī)在收到上位機(jī)發(fā)送的采集存儲(chǔ)命令之后,將基于流水線操作實(shí)現(xiàn)多通道數(shù)據(jù)采集與存儲(chǔ)功能,直至結(jié)束);數(shù)據(jù)讀取與發(fā)送功能(下位機(jī)在收到上位機(jī)發(fā)送的讀取命令之后,將通過(guò)USB接口向上位機(jī)發(fā)送所采集存儲(chǔ)的數(shù)據(jù))。通過(guò)軟件實(shí)現(xiàn)主要?dú)w納為以下幾個(gè)部分:1)USB2.0通訊功能的軟件開(kāi)發(fā);2)FLASH器件讀寫/擦除功能的軟件開(kāi)發(fā);3)數(shù)據(jù)采集存儲(chǔ)功能的軟件開(kāi)發(fā);4)數(shù)據(jù)讀取發(fā)送功能的軟件開(kāi)發(fā)。其中第1)部分為上下位機(jī)按約定的通訊協(xié)議格式進(jìn)行通信完成特定的命令解析功能,這里限于篇幅,僅對(duì)2)~4)部分軟件開(kāi)發(fā)進(jìn)行介紹。
圖4 Flash流水線操作示意圖
2.2.1FLASH器件讀寫/擦除功能的軟件開(kāi)發(fā)
以MT29F2G16ABAEAWP為FLASH器件,下面給出其操作(包括頁(yè)讀、頁(yè)寫、塊擦除)的軟件開(kāi)發(fā)過(guò)程,具體仿真時(shí)序如圖5所示。
圖5 Flash操作時(shí)序圖
2.2.2數(shù)據(jù)采集存儲(chǔ)功能的軟件開(kāi)發(fā)
對(duì)于存儲(chǔ)板所需采集的通道而言,按照前面的多級(jí)流水線采集存儲(chǔ)示意圖,每16通道共需要3個(gè)大小為2 k的FIFO參與數(shù)據(jù)采集、需要7級(jí)流水線共計(jì)21片的陣列(簡(jiǎn)稱存儲(chǔ)板)參與數(shù)據(jù)存儲(chǔ)。下面將給出單組數(shù)據(jù)采集存儲(chǔ)的仿真時(shí)序圖如圖6所示。
圖6 數(shù)據(jù)采集存儲(chǔ)仿真時(shí)序圖
2.2.3數(shù)據(jù)讀取發(fā)送功能的軟件開(kāi)發(fā)
對(duì)于數(shù)據(jù)讀取發(fā)送功能的軟件開(kāi)發(fā),其中數(shù)據(jù)讀取是數(shù)據(jù)存儲(chǔ)的逆過(guò)程,將按照先前存儲(chǔ)時(shí)標(biāo)進(jìn)行依次讀取,數(shù)據(jù)發(fā)送則是按照快速寫入到FPGA的FIFO中后采取塊發(fā)送(64 kB)的方式。
上位機(jī)設(shè)計(jì)為軟件設(shè)計(jì),采用基于VC6.0的圖形化設(shè)計(jì)方法,主要實(shí)現(xiàn)以下功能如下:命令發(fā)送功能(上位機(jī)軟件可以向采集存儲(chǔ)板發(fā)送采集、暫停、復(fù)位、讀取、退出命令,下位機(jī)根據(jù)收到的命令實(shí)行相應(yīng)的操作);數(shù)據(jù)讀取與文件保存功能(上位機(jī)在向下位機(jī)發(fā)送讀取命令之后,下位機(jī)向上位機(jī)發(fā)送數(shù)據(jù)。在接收的過(guò)程中,數(shù)據(jù)進(jìn)行實(shí)時(shí)保存,直至結(jié)束);數(shù)據(jù)顯示與波形控制功能(上位機(jī)可以打開(kāi)所保存的文件,并對(duì)文件內(nèi)容進(jìn)行曲線顯示,針對(duì)所顯示的曲線,可以對(duì)曲線進(jìn)行拖動(dòng)、選擇、放大、縮小等控制);文件時(shí)序?qū)Ρ确治龉δ埽ㄉ衔粰C(jī)軟件可以對(duì)2個(gè)文件的時(shí)序進(jìn)行比對(duì),并把比對(duì)出不同數(shù)據(jù)的時(shí)間、數(shù)值進(jìn)行顯示)。這里重點(diǎn)闡述數(shù)據(jù)顯示和數(shù)據(jù)分析兩個(gè)方面,具體如下:
3.1數(shù)據(jù)顯示
同樣利用內(nèi)存映射文件技術(shù),將文件對(duì)象全部或部分映射到創(chuàng)建的文件映射中,通過(guò)指向文件映射的指針快速對(duì)文件進(jìn)行訪問(wèn)。對(duì)于波形顯示,不可能同時(shí)將幾十個(gè)G的數(shù)據(jù)內(nèi)容同時(shí)顯示在波形上,這是不切實(shí)際的,那么就必須進(jìn)行分段顯示,由于利用內(nèi)存文件映射技術(shù),可以快速的從這幾十個(gè)G的文件中取到某個(gè)時(shí)刻要顯示數(shù)據(jù)塊,并將該數(shù)據(jù)塊快速顯示在波形上,根據(jù)實(shí)際情況控制好顯示的速度。
3.2數(shù)據(jù)時(shí)序分析對(duì)比
同時(shí)打開(kāi)2個(gè)幀頭相同的文件,顯示的實(shí)現(xiàn)辦法還是利用內(nèi)存映射文件進(jìn)行顯示,在拉動(dòng)時(shí)間進(jìn)度條時(shí),需要改變內(nèi)存映射的地址。
采集存儲(chǔ)系統(tǒng)的使用及其具體的硬件測(cè)試電路框圖如圖1所示。整個(gè)測(cè)試過(guò)程如下:PC上位機(jī)發(fā)送采集命令中的各種狀態(tài)控制字,下位機(jī)解析進(jìn)行數(shù)據(jù)采集并完成數(shù)據(jù)的上傳,經(jīng)測(cè)試,所采集的16通道數(shù)據(jù)滿足產(chǎn)品輸出型號(hào)的特征,測(cè)試效果如圖7所示。
圖7 數(shù)據(jù)采集界面
本文在對(duì)基于FPGA的數(shù)據(jù)采集存儲(chǔ)系統(tǒng)架構(gòu)進(jìn)行系統(tǒng)詮釋的基礎(chǔ)上,從最小系統(tǒng)、存儲(chǔ)板以及信號(hào)轉(zhuǎn)換板3個(gè)方面,對(duì)系統(tǒng)的硬件進(jìn)行設(shè)計(jì)與仿真,并基于VC6.0,開(kāi)發(fā)出與下位機(jī)相配套的采集軟件,并對(duì)實(shí)際待測(cè)信號(hào)進(jìn)行了測(cè)試驗(yàn)證,試驗(yàn)結(jié)果表明待測(cè)通道的信號(hào)滿足設(shè)計(jì)的采集存儲(chǔ)要求,滿足后續(xù)產(chǎn)品應(yīng)用測(cè)試的需求。
[1]劉繼武,胡修林,張?zhí)N玉,等.高速大容量存儲(chǔ)通道的設(shè)計(jì)[J].華中科技大學(xué)學(xué)報(bào):自然科學(xué)版,2005,33(11):30-32.
[2]馬曉明,趙鳳軍.高速大容量固態(tài)存儲(chǔ)系統(tǒng)的設(shè)計(jì)[J].科學(xué)技術(shù)與工程,2009,12(9):3512-3514.
[3]馬培嬌,張宇光,姚永興,等.高速大容量存儲(chǔ)系統(tǒng)的關(guān)鍵技術(shù)實(shí)現(xiàn)[J].化工自動(dòng)化及儀表,2011,38(7):869-872.
[4]李超,王虹現(xiàn),邢孟道.高速大容量FLASH存儲(chǔ)系統(tǒng)設(shè)計(jì)[J].火控雷達(dá)技術(shù),2007,36(3):83-88.
[5]劉瑞,黃魯,陳楠.基于FLASH的高速固態(tài)存儲(chǔ)系統(tǒng)設(shè)計(jì)[J].測(cè)控技術(shù),2009,28(4):10-14.
[6]胡世明,康懷祺,滕云龍.高速大容量存儲(chǔ)系統(tǒng)的應(yīng)用設(shè)計(jì)[J].火控雷達(dá)技術(shù),2012,41(1):34-38,80.
Design and implementation of data acquisition and storage system based on FPGA
LI Jin-meng
(State-owned Wuhu Machinery Factory,Wuhu 241007,China)
For the purpose of the product test analysis after collected and recorded the bus data onto the large scale integrated circuits testing.It is adopted software and hardware design method of data acquisition and storage system which based on FPGA.The hardware adopted"Host computer+Slave computer"structures,Slave computer is controlled flash disk arrays of the FPGA directly,Achieve long time data acquisition and storage,The Host computer analysis data through the USB interface after the completion of the acquisition,Through the design and simulation of acquisition system hardware,and developed the software of the control box is.The 16 bus data signals collected by practical data acquisition experiment is effective.
acquisition;storage;Assembly line;FIFO;FPGA
TN06
A
1674-6236(2016)13-0085-03
2015-07-04稿件編號(hào):201507043
李金猛(1981—),男,江蘇建湖人,碩士研究生,工程師。研究方向:電子設(shè)備測(cè)控技術(shù)。