?

基于FPGA的數據采集存儲系統的設計與實現

2016-09-08 09:23李金猛
電子設計工程 2016年13期
關鍵詞:下位存儲系統流水線

李金猛

(國營蕪湖機械廠 安徽 蕪湖 241007)

基于FPGA的數據采集存儲系統的設計與實現

李金猛

(國營蕪湖機械廠安徽蕪湖241007)

針對大規模集成電路測試中需要采集記錄總線數據并用于后續產品測試分析的目的,采用了基于FPGA的數據采集存儲系統的軟硬件設計方法,硬件采用“上位機+下位機”架構,下位機直接由FPGA直接控制FLASH陣列盤,實現長時數據采集存儲,上位機在采集完成后通過USB接口對數據進行離線分析,通過對采集系統的硬件進行設計與仿真,開發出與下位機控制盒相配套的采集軟件,進行實際數據采集試驗得出所采集的16路總線數據信號有效。

采集;存儲;流水線;FIFO;FPGA

隨著電子技術的發展及帶大規模器件的電路板、總線接口類產品在電子設備的大規模應用,傳統的電子設備的測試修理模式將發生重大轉變。有很多產品電路板中由大規模集成芯片組成的板件,給維修工作帶來很大的困難,對該類板件數據信號分析是解決產品板件修理的一種重大檢測手段。文中重點介紹應用在電子產品維修中的一套基于FPGA的數據采集存儲系統的軟硬件設計方法及實現過程。

1 系統總體結構

本采集存儲系統將以定制計算機與固態硬盤為上位機,下位機由數據控制板、數據存儲板、數據采集與數據傳輸板組成,系統框架關系示意圖如圖1所示。上下位機的通訊接口為2個USB2.0通訊接口,其中1個為USB2.0通訊接口,另1個為數據采集測控板的JTAG調試與下載配置接口。

圖1 系統原理框圖

2 FPGA數據采集存儲模塊

2.1硬件設計

數據采集存儲模塊[1-6]硬件設計包括FPGA最小系統設計、多級流水線電路設計、USB2.0通訊接口設計3部分,這里重點闡述前兩部分,具體如下:

2.1.1FPGA最小系統設計

1)底板設計

控制器底板硬件設計包括FPGA最小系統與USB2.0通訊接口兩部分電路設計。

2)存儲板設計

本采集系統初步設計為16通道。與多級流水線的設計相匹配,存儲板需要21片NAND型FLASH器件,對應7級流水線,每級3片NAND型FLASH,該FLASH器件選用MT29F2G16,該器件容量為2 G×16 bit,電平標準為3.3 V,電平與FPGA兼容。

3)程序配置電路

FPGA是SRAM型結構,因此需要一片FLASH結構的配置芯片來存儲配置信息,用于進行上電復位。本設計中的配置芯片選用EPCS128。

4)信號轉換板設計

由于本采集存儲系統的數字探針輸出信號為峰峰值為0.4 V,該信號過小且容易受到干擾。如果將此信號直接輸入到FPGA的I/O口,很難被準確檢測。因此需要對信號進行放大,所利用的信號轉換器件為高速運放ADA4891-2,其單通道信號轉換電路如圖2所示。

圖2 ADA4891接口電路

2.1.2多級流水線電路設計

這里利用多級流水線工作原理來解決數據采集與滿足數據存儲之間的讀寫速度匹配問題。

1)多級流水線工作原理

這里以16通道的存儲模塊、并以50 MHz采樣頻率為例進行說明。

16路被采信號經過阻抗匹配電路輸入至FPGA的I/O口,經過MUX處理存入FPGA內部建立的3塊FIFO內,具體存放順序為:第1個字存入第一塊FIFO,第2個字存入第二塊FIFO,第3個字存入第3塊FIFO,第4個字存入第一塊FIFO,依次循環,等第3塊FIFO存滿1024字時,同時對3塊FIFO進行讀取,把第一個FIFO的1024字對第一級第一片Flash進行寫寄存器,把第二個FIFO的1024字對第一級第二片Flash進行寫寄存器,把第3個FIFO的1024字對第一級第3片Flash進行寫寄存器,在讀取FIFO的過程中,數據不斷的往每一個FIFO內進行存儲。每一塊的FIFO讀完1024字之后,等待第3塊FIFO下一次再次存滿1024字時,再進行下一次的讀取FIFO,把下一次的3塊FIFO中的數據存入下一級的3片Flash中,依次循環。采集與存儲流程示意圖如圖3所示。

圖3 采集與存儲流程示意圖

2)FIFO設計

本方案中FPGA建立3塊2KWord的FIFO,具體設計理由闡述如下:

①FIFO空間設計

本采集儀NAND型FLASH器件型號為MT29F2G16,該器件的寫周期最小值為25 ns,自動編程時間為220~600 μs。由于Flash的頁寫空間為1KWord,因此一個FIFO的空間至少需要大于1KWord,留有一定余量,因此選取每塊FIFO的空間大小為2KWord。

②FIFO塊數設計

由于采樣頻率為50 MHz,而Flash的寫入頻率最大為25 MHz(字寫入的時間twc最快為35 ns,留有一定的余量,取40 ns),因此,需要采用乒乓算法,把采樣頻率由50 MHz降低為25 MHz,因此FIFO塊數至少需要3片FIFO(50/25=2,留一定余量,取3),所以FIFO塊數需要擁有3片FIFO。因此相當于每塊FIFO的輸入頻率為16.7 MHz。

③Flash片數的選擇

Flash的寫入分兩個步驟:寫頁寄存器和頁編程,前一過程時間較短而后一過程時間較長。當被采信號為50 MHz時,由于Flash的頁寫大小為1KWord,而每一個字寫入的時間Twc最小值為40 ns(手冊上所給出的最小值為25 ns),因此頁寫的時間Tpage=Twc*1 024=40*1 024 ns=42 us,而頁編程時間Tprog典型值為220 us,所以除了第一片Flash以外還需要的Flash級數n=Tprog/TwrFIFO=220/42=5.2,加上第一級,共6.2,留有一定的余量,取n為7級。FLASH流水線示意圖如圖4所示。

2.2軟件開發

數據存儲模塊主要包括以下功能:命令接收與執行功能(控制器底板可以接收上位機軟件所發送來的采集、暫停、復位、讀取、退出命令,并執行相應的命令);數據采集與存儲功能(下位機在收到上位機發送的采集存儲命令之后,將基于流水線操作實現多通道數據采集與存儲功能,直至結束);數據讀取與發送功能(下位機在收到上位機發送的讀取命令之后,將通過USB接口向上位機發送所采集存儲的數據)。通過軟件實現主要歸納為以下幾個部分:1)USB2.0通訊功能的軟件開發;2)FLASH器件讀寫/擦除功能的軟件開發;3)數據采集存儲功能的軟件開發;4)數據讀取發送功能的軟件開發。其中第1)部分為上下位機按約定的通訊協議格式進行通信完成特定的命令解析功能,這里限于篇幅,僅對2)~4)部分軟件開發進行介紹。

圖4 Flash流水線操作示意圖

2.2.1FLASH器件讀寫/擦除功能的軟件開發

以MT29F2G16ABAEAWP為FLASH器件,下面給出其操作(包括頁讀、頁寫、塊擦除)的軟件開發過程,具體仿真時序如圖5所示。

圖5 Flash操作時序圖

2.2.2數據采集存儲功能的軟件開發

對于存儲板所需采集的通道而言,按照前面的多級流水線采集存儲示意圖,每16通道共需要3個大小為2 k的FIFO參與數據采集、需要7級流水線共計21片的陣列(簡稱存儲板)參與數據存儲。下面將給出單組數據采集存儲的仿真時序圖如圖6所示。

圖6 數據采集存儲仿真時序圖

2.2.3數據讀取發送功能的軟件開發

對于數據讀取發送功能的軟件開發,其中數據讀取是數據存儲的逆過程,將按照先前存儲時標進行依次讀取,數據發送則是按照快速寫入到FPGA的FIFO中后采取塊發送(64 kB)的方式。

3 上位機軟件設計

上位機設計為軟件設計,采用基于VC6.0的圖形化設計方法,主要實現以下功能如下:命令發送功能(上位機軟件可以向采集存儲板發送采集、暫停、復位、讀取、退出命令,下位機根據收到的命令實行相應的操作);數據讀取與文件保存功能(上位機在向下位機發送讀取命令之后,下位機向上位機發送數據。在接收的過程中,數據進行實時保存,直至結束);數據顯示與波形控制功能(上位機可以打開所保存的文件,并對文件內容進行曲線顯示,針對所顯示的曲線,可以對曲線進行拖動、選擇、放大、縮小等控制);文件時序對比分析功能(上位機軟件可以對2個文件的時序進行比對,并把比對出不同數據的時間、數值進行顯示)。這里重點闡述數據顯示和數據分析兩個方面,具體如下:

3.1數據顯示

同樣利用內存映射文件技術,將文件對象全部或部分映射到創建的文件映射中,通過指向文件映射的指針快速對文件進行訪問。對于波形顯示,不可能同時將幾十個G的數據內容同時顯示在波形上,這是不切實際的,那么就必須進行分段顯示,由于利用內存文件映射技術,可以快速的從這幾十個G的文件中取到某個時刻要顯示數據塊,并將該數據塊快速顯示在波形上,根據實際情況控制好顯示的速度。

3.2數據時序分析對比

同時打開2個幀頭相同的文件,顯示的實現辦法還是利用內存映射文件進行顯示,在拉動時間進度條時,需要改變內存映射的地址。

4 具體應用測試

采集存儲系統的使用及其具體的硬件測試電路框圖如圖1所示。整個測試過程如下:PC上位機發送采集命令中的各種狀態控制字,下位機解析進行數據采集并完成數據的上傳,經測試,所采集的16通道數據滿足產品輸出型號的特征,測試效果如圖7所示。

圖7 數據采集界面

5 結束語

本文在對基于FPGA的數據采集存儲系統架構進行系統詮釋的基礎上,從最小系統、存儲板以及信號轉換板3個方面,對系統的硬件進行設計與仿真,并基于VC6.0,開發出與下位機相配套的采集軟件,并對實際待測信號進行了測試驗證,試驗結果表明待測通道的信號滿足設計的采集存儲要求,滿足后續產品應用測試的需求。

[1]劉繼武,胡修林,張蘊玉,等.高速大容量存儲通道的設計[J].華中科技大學學報:自然科學版,2005,33(11):30-32.

[2]馬曉明,趙鳳軍.高速大容量固態存儲系統的設計[J].科學技術與工程,2009,12(9):3512-3514.

[3]馬培嬌,張宇光,姚永興,等.高速大容量存儲系統的關鍵技術實現[J].化工自動化及儀表,2011,38(7):869-872.

[4]李超,王虹現,邢孟道.高速大容量FLASH存儲系統設計[J].火控雷達技術,2007,36(3):83-88.

[5]劉瑞,黃魯,陳楠.基于FLASH的高速固態存儲系統設計[J].測控技術,2009,28(4):10-14.

[6]胡世明,康懷祺,滕云龍.高速大容量存儲系統的應用設計[J].火控雷達技術,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稿件編號:201507043

李金猛(1981—),男,江蘇建湖人,碩士研究生,工程師。研究方向:電子設備測控技術。

猜你喜歡
下位存儲系統流水線
分布式存儲系統在企業檔案管理中的應用
流水線
天河超算存儲系統在美創佳績
發射機房監控系統之下位機
景洪電廠監控系統下位機數據傳輸網絡改造
圍觀黨“下位”,吐槽帝“登基”
報廢汽車拆解半自動流水線研究
華為震撼發布新一代OceanStor 18000 V3系列高端存儲系統
CAN總線并發通信時下位機應用軟件設計
流水線生產殺死藝術
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合