《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的傳感器信號的采集與存儲模塊設計
基于FPGA的傳感器信號的采集與存儲模塊設計
來源:電子技術應用2014年第5期
劉占峰,任勇峰,李輝景,彭巧君
(中北大學 儀器科學與動態(tài)測試教育部重點實驗室 電子測試技術國家重點實驗室, 山西 太原030051
摘要: 為了實現(xiàn)飛行器在飛行試驗狀態(tài)下對空間噪聲信號的記錄,設計了一個基于FPGA的超聲數(shù)據采集與存儲模塊。該模塊以FPGA芯片XC3S400作為主控制器,使用THS1408芯片作為模/數(shù)轉換器,將采集到的模擬信號轉換為數(shù)字信號并進行存儲。在超聲數(shù)據采集模塊FPGA軟件方案中,對軟件的功能、實現(xiàn)框圖以及軟件流程做了相應的介紹。Flash芯片采用交替雙平面頁編程方式,提高了數(shù)據的寫入速度。通過試驗驗證了該采集與存儲模塊功能的有效性。
中圖分類號: TP274.2
文獻標識碼: A
文章編號: 0258-7998(2014)05-0039-03
中文引用格式:劉占峰,任勇峰,李輝景,彭巧君.基于FPGA的傳感器信號的采集與存儲模塊設計[J].電子技術應用,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

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

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

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

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

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

3.2 Flash讀寫
    本設計中,存儲芯片選用三星公司的K9WBG08U1M。Flash的寫入過程需要進行頁編程,頁編程的最大時間為700 ?滋s,典型時間為200 ?滋s,經實際測試頁編程時間為150 ?滋s~250 ?滋s。在頁編程時間內,不能對Flash進行操作。K9WBG08U1M擁有兩個片選信號,在chip1進入編程后,對chip2進行寫入操作,從而錯過編程時間。K9WBG08U1M可以將內部存儲空間分為4個存儲平面,每個平面由2 048個塊和4 KB的頁寄存器組成,每個平面可以進行單獨的擦除和編程操作[6]。設計中,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ù)據。當?shù)?組加載完數(shù)據以后,第1組已經完成了編程,可以繼續(xù)對第1組加載數(shù)據[7]。

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

 


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

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

此內容為AET網站原創(chuàng),未經授權禁止轉載。