《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的傳感器信號的采集與存儲模塊設(shè)計
基于FPGA的傳感器信號的采集與存儲模塊設(shè)計
來源:電子技術(shù)應(yīng)用2014年第5期
劉占峰,任勇峰,李輝景,彭巧君
(中北大學(xué) 儀器科學(xué)與動態(tài)測試教育部重點實驗室 電子測試技術(shù)國家重點實驗室, 山西 太原030051
摘要: 為了實現(xiàn)飛行器在飛行試驗狀態(tài)下對空間噪聲信號的記錄,設(shè)計了一個基于FPGA的超聲數(shù)據(jù)采集與存儲模塊。該模塊以FPGA芯片XC3S400作為主控制器,使用THS1408芯片作為模/數(shù)轉(zhuǎn)換器,將采集到的模擬信號轉(zhuǎn)換為數(shù)字信號并進行存儲。在超聲數(shù)據(jù)采集模塊FPGA軟件方案中,對軟件的功能、實現(xiàn)框圖以及軟件流程做了相應(yīng)的介紹。Flash芯片采用交替雙平面頁編程方式,提高了數(shù)據(jù)的寫入速度。通過試驗驗證了該采集與存儲模塊功能的有效性。
關(guān)鍵詞: FPGA 信號采集 THS1408 Flash
中圖分類號: TP274.2
文獻標識碼: A
文章編號: 0258-7998(2014)05-0039-03
中文引用格式:劉占峰,任勇峰,李輝景,彭巧君.基于FPGA的傳感器信號的采集與存儲模塊設(shè)計[J].電子技術(shù)應(yīng)用,2014,40(05):39-41+48.
Design of a sensor signal acquisition and storage module based on FPGA
Liu Zhanfeng,Ren Yongfeng,Li Huijing,Peng Qiaojun
The Key Laboratory of Education Ministry of China for Instrument Science and Dynamic Test,National Key Laboratory for Electronic Measurement Technology,North University of China,Taiyuan 030051,China
Abstract: In order to achieve the records of spatial noise signal during aircraft flying condition,a ultrasonic data acquisition and storage module is designed based on FPGA. In the module, FPGA chip XC3S400 is the main controller, THS1408 chip is used as the A/D converter, the collected analog signals are converted to digital signals and for storage. In the FPGA software scheme of ultrasonic data acquisition module, the function of the software, implementation block diagram and software flow chart are presented.Flash chips use alternating double plane page programming method, improving the data writing speed. The test has verified the effectiveness of the acquisition and storage module function.
Key words : FPGA;signal acquisition;THS1408;Flash

    隨著高速采集和大容量存儲技術(shù)的發(fā)展,傳統(tǒng)的低速采樣和單一Flash存儲結(jié)構(gòu)的應(yīng)用已經(jīng)難以滿足工業(yè)化和軍事化應(yīng)用。在航空、工業(yè)等領(lǐng)域中,數(shù)據(jù)采集和存儲設(shè)備占據(jù)著很重要的地位,對多通道高速數(shù)據(jù)采集技術(shù)的應(yīng)用需求也越來越廣泛,對數(shù)據(jù)存儲容量的要求也越來越高,特別是在需要對數(shù)據(jù)進行記錄和回放分析的場合。在飛行器的飛行研制、驗證和完善階段,對飛行過程中各項參數(shù)的變化和分析具有重要作用和意義[1]。傳統(tǒng)的數(shù)據(jù)采集和存儲設(shè)備由于存在低采樣率和存儲量小的缺點,已難以勝任長時間數(shù)據(jù)采集與存儲的任務(wù),因此采用新的采集和存儲陣列技術(shù)解決高速數(shù)據(jù)采集和大容量存儲的問題顯得日益重要。由于FPGA具有可靈活配置、低成本以及Flash可組成陣列的特點,對解決飛行試驗中數(shù)據(jù)采集和存儲的問題提供了可能。
    本文提出了一種基于FPGA高采樣率深存儲的設(shè)計方案,并可實現(xiàn)飛行器在飛行過程中的各項原始數(shù)據(jù)的記錄、分析和回放。而且可以通過上位機軟件在計算機中讀取出飛行的原始數(shù)據(jù)并將數(shù)據(jù)拆分以及繪圖,供試驗后進行分析。
1 總體設(shè)計方案
    本設(shè)計采用型號為XC3S400E的FPGA芯片作為邏輯控制單元,該芯片擁有400 K邏輯門,288 KB Block RAM,I/O數(shù)量達到了141個,其低成本、低功耗和可靈活配置的特性能夠滿足設(shè)計要求[2-3]。引腳支持高速數(shù)據(jù)通信,能夠完成高速采集和存儲接口的設(shè)計,設(shè)計總體框圖如圖1所示,其中信號調(diào)理電路完成模擬信號的放大和濾波,模/數(shù)轉(zhuǎn)換器完成模擬信號到數(shù)字信號的轉(zhuǎn)換功能。為了提高電源的抗噪聲性能,在給系統(tǒng)模擬電路和數(shù)字電路供電之前需要經(jīng)過濾波處理。存儲模塊由4個深存儲的三星Flash組合成一個16 GB的Flash陣列,實現(xiàn)數(shù)據(jù)的大容量存儲功能。總線接口完成與計算機之間控制指令、數(shù)據(jù)、地址等信號的通信。
    系統(tǒng)工作原理:計算機通過USB總線接口給系統(tǒng)下發(fā)控制指令,指令在FPGA邏輯控制單元進行譯碼,之后完成相對應(yīng)的采集、存儲等操作。參數(shù)信號經(jīng)過信號輸入接口后進行調(diào)理和模/數(shù)轉(zhuǎn)換,將采集到的數(shù)字信號存儲到Flash陣列中,以備計算機對數(shù)據(jù)進行回放和分析。

2 硬件電路設(shè)計
    采集模塊主要由信號調(diào)理電路、單端轉(zhuǎn)差分電路和模數(shù)轉(zhuǎn)換電路三部分組成,采集模塊的電路原理圖如圖2所示。信號調(diào)理電路的作用是把傳感器輸入的相對較小的電壓信號進行放大,使其適合于模/數(shù)轉(zhuǎn)換芯片的輸入要求[4]。單端轉(zhuǎn)差分電路將傳感器輸入的單端模擬信號轉(zhuǎn)換成差分信號,以滿足模/數(shù)轉(zhuǎn)換芯片THS1408轉(zhuǎn)換的輸入信號要求[5]。FPGA控制模/數(shù)轉(zhuǎn)換芯片把模擬信號轉(zhuǎn)換成數(shù)字量,并將符合條件的數(shù)據(jù)進行編幀,寫入16 GB Flash陣列。其中運放采用AD8028,當輸入信號頻率不大于1.5 MHz時,運放跟隨后的波形效果仍然很好,滿足設(shè)計要求。最初設(shè)計階段,電阻R12選用10 kΩ阻值,在實際電路調(diào)試過程中發(fā)現(xiàn)A/D運放的容性負載隨著輸入信號頻率的增大不斷減小,當輸入信號頻率達到1 MHz以上時,AD8028的輸入電容值C和容性負載由下式得出:

    由式(1)可知,AD8028的容性輸入阻抗與R12在同一數(shù)量級,電阻R12阻值過大,會對輸入信號進行分壓,使得輸入信號的幅值衰減。把電阻R12更換成1 kΩ以后,輸入信號幅值的衰減幾乎可以忽略不計,保證了信號的采集精度。THS1408采用具有三態(tài)緩沖的并行數(shù)據(jù)接口,可以直接連接到數(shù)據(jù)總線接口,通過驅(qū)動OE為低可以將數(shù)據(jù)輸出使能,使得電路設(shè)計更加簡單。
3 軟件設(shè)計
3.1 FPGA邏輯設(shè)計

      邏輯控制中心FPGA主要完成THS1408內(nèi)部寄存器的初始化和數(shù)/模轉(zhuǎn)換控制、數(shù)據(jù)采集的控制、數(shù)據(jù)有效性判斷以及Flash陣列芯片的讀寫控制功能。內(nèi)部程序框圖如圖3所示。

    FPGA作為高速采集和深存儲模塊的中心控制器,主要負責(zé)控制A/D轉(zhuǎn)換器、外部FIFO、Flash陣列以及內(nèi)部總線間的相互通信,各個模塊的作用如下:
    (1)A/D控制以及FIFO寫控制模塊:系統(tǒng)上電后,該模塊主動實現(xiàn)A/D轉(zhuǎn)換器的初始化、FIFO的初始化,在采集狀態(tài)下,控制A/D轉(zhuǎn)換器的采樣,并將數(shù)據(jù)寫入FIFO中。
    (2)接口控制以及FIFO讀控制模塊:系統(tǒng)上電后,將內(nèi)部總線發(fā)送過來的命令轉(zhuǎn)發(fā)給各個子模塊,在采集狀態(tài)下,讀取FIFO中的數(shù)據(jù),并對數(shù)值進行判斷,滿足條件時,將數(shù)據(jù)傳輸給Flash陣列控制模塊。在讀數(shù)狀態(tài)下,接收Flash陣列控制模塊傳遞過來的數(shù)據(jù),并通過內(nèi)部總線將數(shù)據(jù)通過接口模塊上傳給上位機,進行數(shù)據(jù)的分析、判斷。
    (3)Flash陣列控制模塊:系統(tǒng)上電后,該模塊對Flash無效塊進行掃描,并生成列表。在擦除狀態(tài)下,該模塊控制Flash陣列的擦除流程;在采集狀態(tài)下,該模塊將前一級送過來的數(shù)據(jù)進行存儲;在讀數(shù)狀態(tài)下,該模塊讀取Flash陣列中的數(shù)據(jù),并傳遞給前一級模塊。其FPGA具體的控制流程圖如圖4所示。

3.2 Flash讀寫
    本設(shè)計中,存儲芯片選用三星公司的K9WBG08U1M。Flash的寫入過程需要進行頁編程,頁編程的最大時間為700 ?滋s,典型時間為200 ?滋s,經(jīng)實際測試頁編程時間為150 ?滋s~250 ?滋s。在頁編程時間內(nèi),不能對Flash進行操作。K9WBG08U1M擁有兩個片選信號,在chip1進入編程后,對chip2進行寫入操作,從而錯過編程時間。K9WBG08U1M可以將內(nèi)部存儲空間分為4個存儲平面,每個平面由2 048個塊和4 KB的頁寄存器組成,每個平面可以進行單獨的擦除和編程操作[6]。設(shè)計中,F(xiàn)lash采用交替雙平面編程方式,可以大大提高存儲芯片的寫入速度。在進行雙平面操作時,必須選擇plane0和plane1或者plane2和plane3同時進行操作。如令chip1中plane0和plane1為第1組,chip1中plane2和plane3為第2組,chip2中plane0和plane1為第3組,chip2中plane0和plane1為第4組,交替雙平面編程方式流程圖如圖5所示。當寫完第1組頁寄存器以后,將進入200 μs的編程時間,此時再對第2、3和4組加載數(shù)據(jù)。當?shù)?組加載完數(shù)據(jù)以后,第1組已經(jīng)完成了編程,可以繼續(xù)對第1組加載數(shù)據(jù)[7]。

    為了方便對塊地址的統(tǒng)一管理,每次上電后先掃描Flash內(nèi)部無效塊,并生成無效塊列表,存放于FPGA內(nèi)部ROM中。只要不斷電,F(xiàn)lash的擦除、讀、寫操作都按照列表操作,不再進行無效塊檢測[8]。若對應(yīng)的塊地址為有效塊,則將數(shù)據(jù)寫入該塊中。
3.3 模/數(shù)轉(zhuǎn)換

 


    根據(jù)THS1408的采樣時序和采樣率確定A/D采集時序,如圖6所示。系統(tǒng)時鐘clk為60 MHz,通過計數(shù)器對系統(tǒng)時鐘進行十分頻,產(chǎn)生A/D采樣時鐘ad_clk為6 MHz,在時鐘上升沿對輸入的模擬信號進行采樣并進行模/數(shù)轉(zhuǎn)換,在時鐘下降沿輸出數(shù)字量,數(shù)據(jù)輸出延時25 ns。通過控制數(shù)據(jù)輸出使能out_oe完成轉(zhuǎn)換后的14 bit數(shù)字量的輸出,并將其緩存入外部FIFO中。當符合觸發(fā)條件時,將數(shù)據(jù)存入對應(yīng)的16 GB Flash陣列中。
4 實驗結(jié)果與驗證
    為驗證系統(tǒng)的功能,將采集與存儲系統(tǒng)接入地面測試系統(tǒng),如圖7所示。
    在地面檢測模式下,地面測試臺向系統(tǒng)提供模擬信號供其采集(這里提供頻率為3.8 Hz的正弦模擬信號)。采集與存儲系統(tǒng)對此正弦模擬信號進行采集、A/D轉(zhuǎn)換、編幀和存儲。當采集存儲結(jié)束之后,地面測試臺向采集和存儲系統(tǒng)下發(fā)讀數(shù)命令將系統(tǒng)轉(zhuǎn)換存儲后的數(shù)據(jù)讀回測試臺,并通過USB將數(shù)據(jù)上傳給上位機。上位機軟件對數(shù)據(jù)采集模塊采回的數(shù)據(jù)進行數(shù)據(jù)處理和分析,在數(shù)據(jù)的幀校驗準確無誤后,對分解后的數(shù)據(jù)進行繪圖分析,繪圖結(jié)果如圖8所示,可以清楚地看到正弦波形。通過10次連續(xù)的采集和Flash讀取測試,驗證了系統(tǒng)的可靠性和準確性。

    本文介紹了一種基于FPGA的高速采集和深存儲的模塊設(shè)計,整個設(shè)計在實現(xiàn)高速數(shù)據(jù)采集的同時也實現(xiàn)了大容量的數(shù)據(jù)存儲。物理層上采用高速的模/數(shù)轉(zhuǎn)換器,同時增加了放大、濾波等調(diào)理電路,在硬件電路上降低了信號的噪聲,并且采用了構(gòu)造Flash陣列的方法,提高了數(shù)據(jù)的存儲深度。該設(shè)計已可實現(xiàn)采樣率為6 MHz的數(shù)據(jù)采集以及高達16 GB的存儲容量,并具有實現(xiàn)簡單以及功耗低的特點,在高速數(shù)據(jù)傳輸應(yīng)用中具有很高的應(yīng)用和參考價值。
參考文獻
[1] 姚永興.多通道數(shù)據(jù)存儲系統(tǒng)關(guān)鍵技術(shù)研究[D].太原:中北大學(xué),2012.
[2] 王杰,王誠,謝龍漢.Xiinx FPGA/CPLD設(shè)計手冊[M].北京:人民郵電出版社,2011.
[3] 白佳俊,孟祥勇,張德平,等.基于W5300和FPGA的實時數(shù)據(jù)采集系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2013,39(4):19-21.
[4] 郭建平,王亮,郭正剛,等.單通道信號處理的前端信號調(diào)理模塊的設(shè)計[J].儀表技術(shù)與傳感器,2008(9):99-101.
[5] TI.THS1408-EP data sheet[Z].2011.
[6] Samsung Electronics K9XXGO8XXM data sheet[Z].2006.
[7] 李鑫旺,張丕狀.基于非易失存儲器的數(shù)據(jù)存儲與管理方法[J].探測與控制學(xué)報,2010,32(2):3-4.
[8] 文豐,趙艷利,甄國涌.基于FPGA的高速數(shù)據(jù)采集存儲系統(tǒng)的設(shè)計[J].電子技術(shù),2009,46(1):18-19.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。