文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.180717
中文引用格式: 周浩,王浩全,,任時(shí)磊. 基于FPGA和NAND Flash的便攜式信號(hào)采集系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,,2018,44(9):82-86.
英文引用格式: Zhou Hao,,Wang Haoquan,,Ren Shilei. Design of portable signal acquisition system based on FPGA and NAND Flash[J]. Application of Electronic Technique,2018,,44(9):82-86.
0 引言
隨著現(xiàn)代檢測(cè)技術(shù)和科技水平的高速發(fā)展,,信號(hào)采集技術(shù)的應(yīng)用范圍越來越廣泛[1]。與此同時(shí),,對(duì)信號(hào)采集系統(tǒng)的采集精度,、采樣率以及便攜性等設(shè)計(jì)需求提出了更高的要求。現(xiàn)場(chǎng)可編程門陣列(FPGA)具有邏輯門充足,、時(shí)鐘頻率高,、速度快、效率高和IP核豐富等特點(diǎn),,使其成為高速信號(hào)采集系統(tǒng)設(shè)計(jì)的一個(gè)有效手段[2-3],。針對(duì)當(dāng)前信號(hào)采集系統(tǒng)的設(shè)計(jì)需求,本文主要介紹如何提高信號(hào)采集系統(tǒng)的采樣率和便攜性,。
目前,,信號(hào)便攜式信號(hào)采集系統(tǒng)采樣率低主要受限于信號(hào)采集系統(tǒng)的傳輸速度和處理速度不足,。查閱近幾年的相關(guān)文獻(xiàn),基于FPGA的信號(hào)采集系統(tǒng)主要有以下兩種設(shè)計(jì)方案:方案一,,采用FPGA作為邏輯控制模塊,,搭配ADC采集模塊和USB2.0傳輸模塊[4];方案二,,同樣采用FPGA作為邏輯控制模塊,,搭配DDR2/DDR3模塊對(duì)ADC模塊采集的數(shù)據(jù)進(jìn)行高速緩存[5-6]。方案一受限于USB的傳輸速度其采樣率較低[7-8],;方案二雖然可以達(dá)到較高的采樣率,,但是具有數(shù)據(jù)易失、存儲(chǔ)容量小的問題,,便攜性不足[9],。
針對(duì)以上問題,本文結(jié)合目前NAND Flash高速存儲(chǔ)的特性,,提出了便攜式高速信號(hào)采集系統(tǒng)的設(shè)計(jì)方案,。該設(shè)計(jì)的關(guān)鍵在于利用存儲(chǔ)芯片寫入速度快、數(shù)據(jù)總線可復(fù)用等特點(diǎn),,使ADC采集到的信號(hào)采用DMA方式存入存儲(chǔ)芯片中,。其次,,該設(shè)計(jì)配置LCD顯示屏,,用于信號(hào)的實(shí)地查看,減少了上位機(jī)的配置,。系統(tǒng)滿足長(zhǎng)時(shí)間,、多批次的信號(hào)采集。
1 系統(tǒng)總體設(shè)計(jì)方案
根據(jù)功能和原理,,該系統(tǒng)分為4個(gè)模塊:基于FPGA芯片的邏輯控制模塊,、以ADC芯片為主的數(shù)據(jù)轉(zhuǎn)換模塊、以NAND_Flash芯片為核心的高速數(shù)據(jù)存儲(chǔ)模塊以及LCD觸摸顯示屏模塊,,如圖1所示,。
系統(tǒng)基本工作原理:首先,模數(shù)轉(zhuǎn)換模塊在接收到模擬信號(hào)后,,將信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)并發(fā)送到FPGA邏輯控制模塊中的FIFO中,;其次,F(xiàn)PGA邏輯控制模塊采用直接存儲(chǔ)器存儲(chǔ)(Direct Memory Access,,DMA)模式將數(shù)據(jù)從FIFO中傳遞到NAND_Flash數(shù)據(jù)存儲(chǔ)模塊,;然后,NAND_Flash模塊結(jié)合其相應(yīng)的內(nèi)部結(jié)構(gòu)以同步的方式進(jìn)行高速數(shù)據(jù)存儲(chǔ),;最后,,將由LCD模塊發(fā)送相應(yīng)的指令,,以一定速度讀取數(shù)據(jù),經(jīng)過FPGA進(jìn)行一定的信號(hào)處理,,在LCD顯示屏中顯示,。
2 硬件電路設(shè)計(jì)
2.1 FPGA邏輯控制模塊
FPGA邏輯控制模塊由ALTERA公司的EP4CE40F29C8N、EPCS64SI16以及海力士公司的H27U1G8F2B芯片組成,。其中EP4CE40F29C8N為Cyclone IV系列FPGA芯片,,該芯片最大時(shí)鐘頻率為472 MHz,具有533個(gè)IO接口,,滿足系統(tǒng)設(shè)計(jì)所需的最大時(shí)鐘頻率以及外設(shè)連接接口,。邏輯控制模塊由頂層設(shè)計(jì)部分、系統(tǒng)時(shí)鐘與復(fù)位部分,、采集控制部分,、存儲(chǔ)控制部分、LCD顯示控制部分以及NISO II部分構(gòu)成,,其中頂層設(shè)計(jì)部分負(fù)責(zé)各個(gè)部分的連接以及邏輯控制模塊與其他模塊的接口,。FPGA頂層原理圖如圖2所示。
在系統(tǒng)時(shí)鐘與復(fù)位部分,,由FPGA芯片系統(tǒng)時(shí)鐘接口通過連接25 MHz無源晶振獲得25 MHz時(shí)鐘信號(hào),,通過“PLL”IP核將25 MHz時(shí)鐘信號(hào)倍頻為33 MHz、50 MHz,、100 MHz以及200 MHz,,以此作為系統(tǒng)的時(shí)鐘電路。其次,,產(chǎn)生異步復(fù)位同步釋放的系統(tǒng)復(fù)位信號(hào),。
LCD顯示控制部分由波形模塊、數(shù)據(jù)緩存模塊,、LCD顯示驅(qū)動(dòng)模塊和觸摸屏指令接收模塊組成,。該部分提供接口將QSYS中的顯示數(shù)據(jù)輸出到DDR2緩存模塊中;并為DDR2芯片和LCD顯示芯片建立DMA通信機(jī)制,,實(shí)現(xiàn)顯示數(shù)據(jù)的輸出,。
通過QSYS系統(tǒng)集成開發(fā)工具建立NIOS II片上嵌入式處理系統(tǒng),負(fù)責(zé)信號(hào)采集系統(tǒng)指令接收和程序執(zhí)行控制,。NIOS II系統(tǒng)完成以下工作:(1)系統(tǒng)初始化程序執(zhí)行,,監(jiān)聽LCD指令輸入;(2)實(shí)現(xiàn)配置Flash芯片(H27U1G8F2B)的讀寫操作,,配置Flash芯片中存放顯示模塊中的背景圖片,、字體庫以及采集過程中采集批次編號(hào)和采集數(shù)據(jù)存儲(chǔ)的起止位置信息;(3)實(shí)現(xiàn)采集數(shù)據(jù)讀取操作,,并將采集的信號(hào)數(shù)據(jù)轉(zhuǎn)為波形顯示數(shù)據(jù),;(4)負(fù)責(zé)系統(tǒng)各個(gè)外設(shè)驅(qū)動(dòng)指令的輸出,。
2.2 模數(shù)轉(zhuǎn)換模塊
模數(shù)轉(zhuǎn)換電路采用AD9226作為轉(zhuǎn)換芯片,該芯片是一款低功耗(475 mW),、高精度(12 bit)的高速模數(shù)轉(zhuǎn)換芯片,,其最高轉(zhuǎn)換速率為65 MSPS,并且具有良好的信噪比(70 dB),。本設(shè)計(jì)中,,信號(hào)輸入范圍為1 V~3 V。該模塊的采樣時(shí)鐘由FPGA邏輯模塊提供,,以達(dá)到對(duì)采樣率的控制,,本文中所有測(cè)試內(nèi)容中采樣率均為50 MHz,模數(shù)轉(zhuǎn)換模塊電路圖如圖3所示,。
2.3 高速數(shù)據(jù)存儲(chǔ)模塊
為了匹配高速采樣率,,高速數(shù)據(jù)存儲(chǔ)模塊選取SLC顆粒的NAND Flash芯片[10]。本設(shè)計(jì)選擇Micron公司的MT29F256G08AUCABH3芯片,,該芯片在同步狀態(tài)下,,引腳讀寫速度可以達(dá)到200 MT/s,并且在數(shù)據(jù)寫入過程中采用DDR模式,,即在時(shí)鐘的上升沿和下升沿均有數(shù)據(jù)寫入,。通過對(duì)其數(shù)據(jù)手冊(cè)的分析,由于NAND Flash需要進(jìn)行PROGRAM PAGE 操作,,因此該芯片寫入1頁數(shù)據(jù)(8 KB)大約需要400 μs,。在該時(shí)間段內(nèi),AD信號(hào)采集模塊采集數(shù)據(jù)4×104 B,,遠(yuǎn)大于NAND Flash存儲(chǔ)數(shù)據(jù),,無法滿足系統(tǒng)的設(shè)計(jì)需求,??紤]到NAND Flash芯片在同步寫入過程中加載8 KB數(shù)據(jù)需要40.96 μs,模數(shù)轉(zhuǎn)換模塊采集8 KB數(shù)據(jù)需要81.92 μs,。影響系統(tǒng)存儲(chǔ)時(shí)間的主要因素是NAND Flash的編程時(shí)間(350 μs),。
針對(duì)這一問題,本設(shè)計(jì)結(jié)合MT29F256G08AUCABH3的存儲(chǔ)結(jié)構(gòu)特點(diǎn),,如圖4所示,。該芯片內(nèi)部具有8個(gè)LUN結(jié)構(gòu),且當(dāng)一個(gè)LUN處于編程狀態(tài)時(shí),,其他LUN可以進(jìn)行讀寫以及編程,。根據(jù)這一特性,本設(shè)計(jì)將其內(nèi)部的8個(gè)LUN芯片采用流水線方式排列,,依次進(jìn)行數(shù)據(jù)的存儲(chǔ)操作,,如圖5所示,。當(dāng)采集數(shù)據(jù)達(dá)到8 KB,處于寫準(zhǔn)備狀態(tài)的LUN開始以DDR方式進(jìn)行數(shù)據(jù)寫入,。完成1頁數(shù)據(jù)(8 KB)的寫入后,,后一LUN進(jìn)入寫準(zhǔn)備狀態(tài),等待未存儲(chǔ)數(shù)據(jù)再次達(dá)到8 KB,。以此方式進(jìn)行循環(huán),,當(dāng)?shù)?個(gè)LUN完成寫操作時(shí),第一個(gè)LUN完成編程過程,,處于空閑狀態(tài)可以進(jìn)行寫操作,,圖5所示為存儲(chǔ)芯片流水線工作模式。
2.4 顯示模塊
在系統(tǒng)的顯示模塊,,選用一款具有800×480分辨率和數(shù)字接口驅(qū)動(dòng)的7英寸LCD液晶顯示屏,。顯示屏的輸出色彩信號(hào)通過565的RGB并口數(shù)字信號(hào)傳輸,搭配容量為512 MB的DDR2 SDRAM芯片用于緩存顯示數(shù)據(jù),。系統(tǒng)顯示模塊的時(shí)鐘頻率為33 MHz,。
除顯示功能外,該模塊同時(shí)肩負(fù)人機(jī)交互功能,。利用觸摸屏的特性,,完成對(duì)整個(gè)系統(tǒng)的操作控制,減少鍵盤模塊,,使操作更加簡(jiǎn)單,。本設(shè)計(jì)采用電阻式觸摸屏,屏幕的x軸和y軸各有兩條信號(hào)線連接到觸摸屏專用AD芯片上(本設(shè)計(jì)選擇AW2083芯片),,每次按觸摸屏?xí)r,,會(huì)在對(duì)應(yīng)的x軸和y軸產(chǎn)生一個(gè)阻值。在兩條坐標(biāo)軸的正負(fù)極之間加參考電壓,,當(dāng)其中一條坐標(biāo)軸的某一位置被觸按,,則這個(gè)位置和對(duì)應(yīng)坐標(biāo)軸的正負(fù)極之間的電阻會(huì)通過電壓的形式反饋給ADC的輸入端,產(chǎn)生12 bit的AD量化值,,AD芯片采集到的坐標(biāo)數(shù)據(jù)與實(shí)際坐標(biāo)值成正比,,且為線性關(guān)系。圖6所示為y軸坐標(biāo)測(cè)量等效電路圖,。
3 系統(tǒng)程序邏輯設(shè)計(jì)
當(dāng)系統(tǒng)上電后,,系統(tǒng)進(jìn)行初始化操作。FPGA讀取配置NAND Flash芯片中系統(tǒng)的配置信息,。獲取顯示模塊的初始化界面并進(jìn)行輸出和顯示,,同時(shí)從配置芯片中獲取存儲(chǔ)模塊下一存儲(chǔ)地址。系統(tǒng)初始化完畢后,,系統(tǒng)進(jìn)入待機(jī)狀態(tài),,并監(jiān)聽LCD顯示模塊的指令輸入,。
3.1 信號(hào)采集流程
通過點(diǎn)擊LCD模塊中的“開始采集”按鈕,觸發(fā)信號(hào)采集程序,。邏輯控制模塊監(jiān)聽到信號(hào)采集開始指令,,系統(tǒng)進(jìn)入信號(hào)采集流程。
信號(hào)采集流程:
(1)高速存儲(chǔ)模塊初始化,,對(duì)上一批次結(jié)束的所在LUN的下一個(gè)LUN進(jìn)行存儲(chǔ)狀態(tài)激活,。
(2)邏輯控制模塊發(fā)送模式轉(zhuǎn)換模塊使能信號(hào),同時(shí)向模數(shù)轉(zhuǎn)換模塊輸入50 MHz時(shí)鐘信號(hào),。
(3)模數(shù)轉(zhuǎn)換模塊開始工作,,將輸入的模擬信號(hào)以50 MS/s的轉(zhuǎn)換率轉(zhuǎn)換為12 bit的數(shù)字信號(hào),并輸出到邏輯控制模塊,。
(4)邏輯控制模塊接收到12 bit后,,將其左移4位與當(dāng)前采集批次的4 bit二進(jìn)制值相加產(chǎn)生一個(gè)16 bit存入FIFO中。FIFO設(shè)置為輸入信號(hào)16 bit,,頻率50 MHz,;輸出信號(hào)為8 bit,輸出信號(hào)頻率為400 MHz,;深度為4 096 words,。
(5)當(dāng)FIFO狀態(tài)為“FULL”時(shí),邏輯控制模塊向高速數(shù)據(jù)存儲(chǔ)模塊發(fā)生寫指令,,向FIFO發(fā)送讀指令,,系統(tǒng)開始以DMA的方式將數(shù)據(jù)從FIFO中發(fā)送到高速數(shù)據(jù)存儲(chǔ)模塊。
(6)當(dāng)完成page數(shù)據(jù)的存儲(chǔ)后,,邏輯控制模塊關(guān)閉FIFO讀使能,。高速數(shù)據(jù)存儲(chǔ)模塊激活下一個(gè)LUN的存儲(chǔ)狀態(tài),重復(fù)步驟(5)~(6),。信號(hào)采集流程圖如圖7所示,。
3.2 信號(hào)采集停止流程
LCD顯示模塊中的“采集停止”按鈕被觸發(fā),邏輯控制模塊等待數(shù)據(jù)采集流程中步驟(6)執(zhí)行時(shí),,關(guān)閉高速數(shù)據(jù)存儲(chǔ)模塊,、模數(shù)轉(zhuǎn)換模塊使能,,將當(dāng)前采集批次編號(hào)和對(duì)應(yīng)數(shù)據(jù)存儲(chǔ)的起止位置存入配置信息存儲(chǔ)Flash中,。系統(tǒng)進(jìn)入待機(jī)狀態(tài),監(jiān)聽LCD顯示模塊的指令輸入,,同時(shí)LCD顯示模塊初始化界面,。
3.3 波形顯示流程
LCD波形顯示按鈕觸發(fā)后,界面切換到采集批次選擇界面,,通過點(diǎn)擊選擇對(duì)應(yīng)批次的波形顯示,,進(jìn)入波形顯示操作流程,。
波形顯示流程:
(1)邏輯控制模塊從配置Flash中讀取相應(yīng)批次數(shù)據(jù)采集的存儲(chǔ)起止位置。
(2)讀取高速存儲(chǔ)模塊中對(duì)應(yīng)地址的數(shù)據(jù),,寫入波形控制IP核中,。波形控制模塊負(fù)責(zé)控制LCD波形窗口控制,并將采集數(shù)據(jù)值鎖存到雙口RAM中,,同時(shí)負(fù)責(zé)輸出波形點(diǎn)顯示坐標(biāo)位置和波形顯示時(shí)鐘頻率,。
(3)將波形控制模塊中的數(shù)據(jù)輸入到LCD顯示模塊中的DDR2芯片中。
(4)LCD顯示屏中,,讀取DDR2中的數(shù)據(jù),,進(jìn)行顯示。
(5)當(dāng)對(duì)應(yīng)批次的所有數(shù)據(jù)讀取完畢后,,波形顯示流程結(jié)束,。
3.4 高速數(shù)據(jù)存儲(chǔ)控制流程
高速數(shù)據(jù)存儲(chǔ)控制程序主要分為采集數(shù)據(jù)寫流程和顯示數(shù)據(jù)讀流程。本設(shè)計(jì)中,,采集數(shù)據(jù)寫流程采用同步寫入方式,,工作頻率為200 MHz;顯示數(shù)據(jù)讀流程采用異步讀取方式,,工作頻率為50 MHz,。
(1)高速數(shù)據(jù)寫流程:①NAND Flash芯片激活同步讀寫狀態(tài);②從邏輯控制模塊獲取寫入頁地址,;③向NAND Flash發(fā)送寫操作命令,;④向NAND Flash寫入寫操作地址;⑤NAND Flash等待數(shù)據(jù)寫入使能,;⑥接收到邏輯控制模塊發(fā)送的寫使能,,開始寫入數(shù)據(jù);⑦當(dāng)數(shù)據(jù)寫滿一頁時(shí),,該LUN進(jìn)入編程狀態(tài),,同時(shí)從邏輯控制模塊獲取下一個(gè)LUN的存儲(chǔ)地址,重復(fù)步驟③~⑦,。
(2)高速數(shù)據(jù)讀流程:①NAND Flash芯片激活異步讀寫狀態(tài),;②從邏輯控制模塊獲取讀取頁地址;③向NAND Flash芯片發(fā)送讀操作命令,;④向NAND Flash寫入多操作操作地址,;⑤讀取NAND Flash數(shù)據(jù)發(fā)送到邏輯控制模塊中;⑥當(dāng)數(shù)據(jù)讀完一頁后,,重復(fù)步驟②~⑥,。
4 實(shí)驗(yàn)測(cè)試
測(cè)試平臺(tái)由超聲發(fā)射電路、超聲接收電路、超聲探頭和有焊縫的金屬薄板構(gòu)成,。超聲探頭發(fā)射2.5 MHz的超聲信號(hào)到金屬薄板,。當(dāng)超聲信號(hào)到達(dá)焊縫部位時(shí),信號(hào)發(fā)生部分或全部反射,,產(chǎn)生回波信號(hào),。信號(hào)采集系統(tǒng)通過超聲接收電路采集回波信號(hào),經(jīng)過邏輯控制模塊處理后,,寫入存儲(chǔ)模塊,。同時(shí),經(jīng)過處理的數(shù)據(jù)通過LCD顯示屏進(jìn)行顯示,。圖8為信號(hào)檢測(cè)系統(tǒng)輸出波形,。對(duì)比兩個(gè)波形發(fā)現(xiàn),系統(tǒng)能夠以50 MHz的采樣率進(jìn)行良好的采樣,。圖9和圖10為連續(xù)采樣數(shù)據(jù)波形輸出,,實(shí)現(xiàn)了連續(xù)多批次信號(hào)采集。
5 結(jié)束語
本系統(tǒng)通過AD9226高速模數(shù)轉(zhuǎn)換模塊,,將采集到的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),,經(jīng)過FPGA存儲(chǔ)到大容量NAND Flash中,并在LCD顯示屏中顯示波形,。在實(shí)際應(yīng)用中,,該系統(tǒng)能夠進(jìn)行持續(xù)長(zhǎng)時(shí)間的多批次高速信號(hào)采集,并具有小型化,、易于攜帶的特點(diǎn),。
參考文獻(xiàn)
[1] 張曉威,蘇淑靖.基于FPGA的高速高精度數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].儀表技術(shù)與傳感器,,2016(1):70-72.
[2] BAO S,,YAN H,CHI Q,,et al.FPGA-based reconfigurable data acquisition system for industrial sensors[J].IEEE Transactions on Industrial Informatics,,2017,13(4):1503-1512.
[3] 楊海鋼,,孫嘉斌,,王慰.FPGA器件設(shè)計(jì)技術(shù)發(fā)展綜述[J].電子與信息學(xué)報(bào),2010,,32(3):714-727.
[4] XU Z,,ZHU L,SHAN J F,,et al.A new high-speed data acquisition system[J].Journal of Fusion Energy,,2015,34(3):1-4.
[5] 黃遠(yuǎn)望,,嚴(yán)濟(jì)鴻,,周偉.基于FPGA的數(shù)據(jù)采集測(cè)試系統(tǒng)設(shè)計(jì)[J].現(xiàn)代雷達(dá),2015,,37(4):73-76.
[6] KHEDKAR A A,,KHADE R H.High speed FPGA-based data acquisition system[J].Microprocessors & Microsystems,2016,,49:87-94.
[7] 李茂,,楊錄,張艷花.基于FPGA和USB的多通道超聲檢測(cè)系統(tǒng)設(shè)計(jì)[J].儀表技術(shù)與傳感器,,2017(8):82-84.
[8] 孟曉東.基于FPGA的DDR3控制器設(shè)計(jì)與驗(yàn)證[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),,2012.
[9] LIU D,WANG Y,,QIN Z,,et al.A space reuse strategy for Flash translation layers in SLC NAND Flash memory storage systems[J].IEEE Transactions on Very Large Scale Integration Systems,2012,,20(6):1094-1107.
[10] 肖佳.基于NANDFLASH的大數(shù)據(jù)高速存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),,2014.
作者信息:
周 浩,王浩全,,任時(shí)磊
(中北大學(xué) 信息與通信工程學(xué)院,,山西 太原030051)