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

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

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

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

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

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

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

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

 


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

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

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