摘要:本文提出了由現(xiàn)場可編程門陣列( FPGA)、高速數(shù)模轉(zhuǎn)換器和USB接口組成的通用信號采集系統(tǒng)設(shè)計方案。設(shè)計了以FPGA為核心部件的信號采集系統(tǒng),實現(xiàn)數(shù)據(jù)的實時采集、存儲。它的優(yōu)點是擺脫了軟件驅(qū)動控制,信號的采集傳輸采用全硬件的操作方式,使系統(tǒng)更加穩(wěn)定、高效,USB接口作為數(shù)據(jù)傳輸?shù)慕涌?,保證了數(shù)據(jù)的高速穩(wěn)定傳輸。
關(guān)鍵詞:數(shù)據(jù)采集;FPGA;信號采集
1 系統(tǒng)總體結(jié)構(gòu)
本文提出的信號采集系統(tǒng)主要是利用FPGA芯片控制模數(shù)轉(zhuǎn)換芯片對目標(biāo)模擬信號進(jìn)行采樣,將模擬信號轉(zhuǎn)換數(shù)字信號后,寫入到USB接口芯片中將數(shù)據(jù)傳輸?shù)絇C中,利用軟件編寫人機交互界面,將信號數(shù)據(jù)進(jìn)行存儲。信號采集模塊的設(shè)計功能是實現(xiàn)信號采集與分析,通過ADC進(jìn)行模數(shù)轉(zhuǎn)換,實現(xiàn)數(shù)據(jù)采集和采樣數(shù)據(jù)的存儲。如圖1所示。
2 信號模塊方案分析
2.1 信號采集模塊方案分析
信號采集模塊是計算機與外界連接的橋梁,也稱信號獲取模塊。主要完成對目標(biāo)模擬信號采集,并將之轉(zhuǎn)換成數(shù)字信號進(jìn)行存儲。該模塊的主要任務(wù)是實現(xiàn)模擬信號的數(shù)字采集,即進(jìn)行模數(shù)轉(zhuǎn)換,以便進(jìn)行信號的處理,本設(shè)計采用模數(shù)轉(zhuǎn)換芯片(ADC)來實現(xiàn)。目前,主流信號采集系統(tǒng)大多采用MCU或者DSP作為核心部件來進(jìn)行信號轉(zhuǎn)換,存儲器和其他外圍電路來完成數(shù)據(jù)采集。但是,不論是單片機還是DSP都有缺點:單片機雖然指令豐富,編程簡單,靈活的控制方式,但運行速度慢,穩(wěn)定性較差,抗干擾能力較低,極大地限制了ADC的采樣速度,對于目前強調(diào)高速信號處理的今天已經(jīng)不太適用了。而DSP芯片雖然處理速度較快,但DSP芯片的通用輸入輸出接口較少,功耗較大,并且對外圍設(shè)備的控制能力較弱。相反,F(xiàn)PGA(可編程邏輯器件)具有MCU和DSP所無法比擬的優(yōu)勢,它硬件采用并行機制,在性能和處理速度上優(yōu)勢明顯,并且編程簡單,設(shè)計靈活,時鐘頻率高,抗干擾能力強,穩(wěn)定性好的優(yōu)點。特定的邏輯功能由用戶通過硬件描述語言(HDL)實現(xiàn),設(shè)計靈活,功能可以更改。此外,F(xiàn)PGA還有大量可編程邏輯的片上系統(tǒng),主要包括PLL(鎖相環(huán))模塊和存儲單元,可為總線、模塊產(chǎn)生時鐘。因此,F(xiàn)PGA的這些處理速度快和存儲特性使其非常適合用作ADC的控制設(shè)備,以實現(xiàn)高速信號采集和存儲控制。本文以FPGA為核心控制器,設(shè)計了數(shù)據(jù)采集系統(tǒng),控制ADC對數(shù)據(jù)采樣,并將采樣后的數(shù)據(jù)存儲到SRAM存儲器中,以實現(xiàn)數(shù)據(jù)采集和存儲的功能。
2.2 數(shù)據(jù)處理模塊方案分析
在數(shù)字信號處理方面,目前有四種實現(xiàn)方法,主要包括使用數(shù)字信號處理軟件、芯片、單片機、FPGA等。
(1)使用常用的數(shù)字信號處理軟件是matlab、LabVIEW等軟件編寫數(shù)字信號處理軟件來實現(xiàn)數(shù)字信號處理。它的缺點是處理速度受計算機CPU處理狀態(tài)的影響,系統(tǒng)體積大,成本高。因其通用性和可移植性好,數(shù)據(jù)接口類型豐富,主要適用于教學(xué)和科研。
(2)采用特殊的數(shù)字信號處理芯片(DSP)。這種芯片一般廠家通過內(nèi)部硬件電路設(shè)計實現(xiàn)特定功能的數(shù)字信號處理功能,具有繼承性好,運算速度快的優(yōu)點,但又具有功能較單一,價格較高,應(yīng)用不靈活的缺點。常見類型的芯片專門用于FFT,卷積,各種數(shù)字濾波和其他相關(guān)算法。通常用于對加工有較高要求的應(yīng)用中。
(3)采用MCU進(jìn)行數(shù)字信號處理,單片機雖然編寫程序簡單,容易開發(fā),但是,其處理速度較慢,穩(wěn)定性也較差,只能實現(xiàn)一些簡單的、對精度要求不高的數(shù)字信號處理,對于較復(fù)雜信號不能采用單片機。
(4)采用通用的FPGA處理芯片。由于目前FPGA在性能和處理速度上的優(yōu)勢,F(xiàn)PGA在DSP領(lǐng)域應(yīng)用越來越廣泛。這種FPGA處理芯片的特點是采用并行機制;芯片內(nèi)部有專用的硬件乘法器,可以實現(xiàn)快速信號處理,能夠完成復(fù)雜的DSP任務(wù)。
與前三種實現(xiàn)方式相比,F(xiàn)PGA芯片結(jié)構(gòu)由于采用并行機制,在性能和處理速度上優(yōu)勢明顯,并且編程簡單,設(shè)計靈活,抗干擾能力強,穩(wěn)定性好的優(yōu)點,非常適合高速數(shù)字信號處理。在工作的第一階段,采樣數(shù)據(jù)通過FPGA接口傳輸?shù)絇C平臺,以實現(xiàn)數(shù)字信號處理。在第二階段,以通用的FPGA芯片作為核心控制器來設(shè)計數(shù)據(jù)處理模塊,并設(shè)計FPGA軟件來完成數(shù)字信號處理功能。
3 高速數(shù)據(jù)存儲技術(shù)的實現(xiàn)
一般存儲芯片數(shù)據(jù)接收速度快,但無法實現(xiàn)系統(tǒng)顯示模塊,USB傳輸模塊和數(shù)據(jù)處理模塊的處理速度。因此,必須實現(xiàn)實時高速的數(shù)據(jù)存儲。美光公司的mt29f256908aucabh3的NAND閃存芯片被選為系統(tǒng)的存儲芯片。該芯片具有兩個工作狀態(tài):同步和異步。該芯片采用單層存儲架構(gòu)的SLC,因此在同步工作狀態(tài)下,數(shù)據(jù)引腳可以通過DDR模式進(jìn)行讀取,并且該引腳的最大讀寫速度可以達(dá)到200MT/s,即同時上升可以寫入時鐘的上升沿和下降沿。
芯片的總存儲容量為32GB,每個芯片分為四個目標(biāo),每個目標(biāo)包含兩個邏輯單元(Lun)。NAND閃存以Lun單位工作,即每個NAND閃存可以獨立完成讀取,寫入和擦除操作。如果插銷允許,多個Lun可以同時工作。每個Lun包含兩個平面,每個平面包含2048個塊(每個塊中256頁)。每頁包含(8K+ 448)字節(jié),其中8Kbytes是數(shù)據(jù)存儲空間,而448bytes是地址空間。根據(jù)對NAND閃存芯片數(shù)據(jù)手冊的分析,在NAND閃存芯片中用于程序頁面的時間包括數(shù)據(jù)加載時間,地址信息加載時間,狀態(tài)切換時間和頁面編程時間。根據(jù)產(chǎn)品手冊提供的產(chǎn)品電氣規(guī)格,地址信息的加載時間和R/B狀態(tài)切換時間均為lOOns,頁面編程時間為3505。在同步狀態(tài)下,NAND閃存芯片需要大約40.96s的時間才能完成。接收8KB數(shù)據(jù)??梢钥闯觯琋AND閃存存儲1頁數(shù)據(jù)大約需要400 s,而存儲72mb數(shù)據(jù)需要3.7 s,這不能滿足系統(tǒng)的高采樣率。如圖2所示。
綜上所述,系統(tǒng)設(shè)計中選用的NAND閃存芯片不能滿足正常工作狀態(tài)下高速數(shù)據(jù)存儲的要求。因此,提出了一種基于NAND閃存芯片和FPGA的高速數(shù)據(jù)存儲方法。根據(jù)芯片的存儲結(jié)構(gòu)特性,當(dāng)Lun處于程序頁面狀態(tài)時,盡管Lun的狀態(tài)顯示為忙,但寫操作所占用的芯片引腳將被釋放(不包括芯片選擇引腳和狀態(tài))。當(dāng)芯片中的任何Lun處于編程狀態(tài)時,其余七個可以寫入數(shù)據(jù)。結(jié)合芯片的特點,本文提出使用芯片來寫流水線數(shù)據(jù)。芯片中的八個邏輯單元按順序排列,并且數(shù)據(jù)依次寫入一頁,這減少了等待程序頁面狀態(tài)的時間。當(dāng)收集的數(shù)據(jù)達(dá)到8K時,處于寫就緒狀態(tài)的Lun開始以DDR模式寫入數(shù)據(jù)。寫入數(shù)據(jù)(8K)之后,下一個Lun準(zhǔn)備就緒,并等待聯(lián)合國存儲的數(shù)據(jù)再次達(dá)到8K。這樣,當(dāng)?shù)诎藗€Lun完成寫操作時,第一個Lun完成編程過程,并且處于用于寫操作的空閑狀態(tài)。根據(jù)NAND閃存邏輯控制程序的時序分析,NAND閃存寫入數(shù)據(jù)頁的時間(8K>減少為81.92 US)。設(shè)計了一種高速數(shù)據(jù)存儲技術(shù),其存儲速率可以達(dá)到100 MB,以滿足系統(tǒng)要求,實現(xiàn)對收集數(shù)據(jù)的實時存儲。
4 信號采集流程
系統(tǒng)信號采集模塊可分為兩部分:采集開始和信號視圖。操作員可以通過人機交互模塊中的LCD觸摸屏輸入命令來觸發(fā)相應(yīng)的功能。通過單擊人機交互模塊中的“開始獲取”按鈕,將觸發(fā)信號獲取程序。軟核處理器接收人機交互模塊的信號采集開始指令,系統(tǒng)進(jìn)入信號采集過程。
步驟1:初始化A/D轉(zhuǎn)換模塊和高速存儲模塊,以激活最后一批結(jié)束的倫的下一個倫的存儲狀態(tài);
步驟2:軟核處理器將芯片選擇信號和使能信號發(fā)送給相關(guān)的定制 IP核,并同時輸出somhz時鐘信號給模數(shù)轉(zhuǎn)換芯片;
步驟3:模數(shù)轉(zhuǎn)換模塊開始工作,ADC芯片負(fù)責(zé)將輸出的12位數(shù)字信號輸入到邏輯控制模塊。
步驟4:邏輯控制模塊對接收到的12位數(shù)字信號進(jìn)行簡單編碼和處理,然后將當(dāng)前采集批處理的左移四位和四位二進(jìn)制值相加,以形成16位數(shù)字信號,并將其存儲在數(shù)據(jù)中臨時存儲FIFO。數(shù)據(jù)存儲FIFO輸入信號的位寬設(shè)置為16位,信號輸入頻率設(shè)置為smohz;輸出信號位寬設(shè)置為8位,輸出信號頻率為200MHz;深度是4096個單詞
步驟5:當(dāng)臨時存儲FIFO存儲已滿時,邏輯控制模塊將向數(shù)據(jù)存儲模塊發(fā)出指令要求寫入數(shù)據(jù),并向臨時存儲FIFO發(fā)送指令要求讀取存儲的數(shù)據(jù)。系統(tǒng)開始以直接內(nèi)存訪問模式將數(shù)據(jù)從FIFO發(fā)送到DDR IP內(nèi)核,并且數(shù)據(jù)通過DDR IP內(nèi)核發(fā)送到數(shù)據(jù)存儲模塊。
步驟6:進(jìn)入到寫入頁面數(shù)據(jù)環(huán)節(jié),先入先出隊列讀取使能將被控制模塊關(guān)閉。數(shù)據(jù)存儲模塊將激活下一個Lun的存儲狀態(tài),再重復(fù)進(jìn)行步驟5至步驟6。
波形顯示流程:波形顯示流程圖如圖3所示。
步驟1:處理器從系統(tǒng)配置存儲芯片中獲得查看信號的存儲地址。
步驟2:將信號存儲地址發(fā)送給數(shù)據(jù)存儲模塊,處理器讀取數(shù)據(jù)存儲模塊對應(yīng)地址的數(shù)據(jù)。
步驟3:處理器量化數(shù)據(jù)以滿足LCD顯示要求。
步驟4:將波形控制模塊中的數(shù)據(jù)輸入人機交互模塊中的存儲芯片。
步驟5:初始化波形控制IP核,并在顯示屏上建立波形顯示窗口。要輸出的數(shù)據(jù)從DDR2鎖定到雙端口RAM。波形控制IP內(nèi)核負(fù)責(zé)輸出波形點顯示坐標(biāo)位置和波形顯示時鐘頻率。
步驟6:讀取對應(yīng)批次的所有數(shù)據(jù)后,波形顯示過程結(jié)束。
5 總結(jié)
基于FPGA器件的結(jié)構(gòu)特點,開發(fā)了通用信號采集系統(tǒng)。信號采集與存儲系統(tǒng)是通過FPGA技術(shù)實現(xiàn)的。設(shè)計了基于FPGA和NAND閃存芯片的高速存儲解決方案,解決了高速信號實時存儲的問題。測試了采集功能,系統(tǒng)運行良好,有效提高了信號采集和處理效率。
參考文獻(xiàn)
[1]陳騰飛.地震數(shù)據(jù)采集模塊通用測試系統(tǒng)的研究與設(shè)計[D].中國科學(xué)技術(shù)大學(xué),2019.
[2]金真平.基于FPGA的電路板多功能測試儀設(shè)計與開發(fā)[D].南昌航空大學(xué),2018.
[3]溫建飛,基于FPGA和USB3.O的超高速數(shù)據(jù)采集系統(tǒng)設(shè)計[D].中北大學(xué),2016.
[4]陳亞斐.基于DSP和FPGA的電力電子數(shù)字控制平臺的研究[D].青島科技大學(xué),2016.
[5]關(guān)守平,尤富強,董國偉.基于FPGA的高速數(shù)據(jù)采集系統(tǒng)設(shè)計[J].控制工程,201 3.20 (5):970-975.
作者簡介
吉強,山東省臨沂市人。研究生學(xué)歷,講師,目前在江蘇安全技術(shù)職業(yè)學(xué)院從事教學(xué)工作。