0 引言
隨著現代檢測技術和科技水平的高速發展,信號采集技術的應用范圍越來越廣泛[1]。與此同時,對信號采集系統的采集精度、采樣率以及便攜性等設計需求提出了更高的要求?,F場可編程門陣列(FPGA)具有邏輯門充足、時鐘頻率高、速度快、效率高和IP核豐富等特點,使其成為高速信號采集系統設計的一個有效手段[2-3]。針對當前信號采集系統的設計需求,本文主要介紹如何提高信號采集系統的采樣率和便攜性。
目前,信號便攜式信號采集系統采樣率低主要受限于信號采集系統的傳輸速度和處理速度不足。查閱近幾年的相關文獻,基于FPGA的信號采集系統主要有以下兩種設計方案:方案一,采用FPGA作為邏輯控制模塊,搭配ADC采集模塊和USB2.0傳輸模塊[4];方案二,同樣采用FPGA作為邏輯控制模塊,搭配DDR2/DDR3模塊對ADC模塊采集的數據進行高速緩存[5-6]。方案一受限于USB的傳輸速度其采樣率較低[7-8];方案二雖然可以達到較高的采樣率,但是具有數據易失、存儲容量小的問題,便攜性不足[9]。
針對以上問題,本文結合目前NAND Flash高速存儲的特性,提出了便攜式高速信號采集系統的設計方案。該設計的關鍵在于利用存儲芯片寫入速度快、數據總線可復用等特點,使ADC采集到的信號采用DMA方式存入存儲芯片中。其次,該設計配置LCD顯示屏,用于信號的實地查看,減少了上位機的配置。系統滿足長時間、多批次的信號采集。
1 系統總體設計方案
根據功能和原理,該系統分為4個模塊:基于FPGA芯片的邏輯控制模塊、以ADC芯片為主的數據轉換模塊、以NAND_Flash芯片為核心的高速數據存儲模塊以及LCD觸摸顯示屏模塊,如圖1所示。
系統基本工作原理:首先,模數轉換模塊在接收到模擬信號后,將信號轉換為數字信號并發送到FPGA邏輯控制模塊中的FIFO中;其次,FPGA邏輯控制模塊采用直接存儲器存儲(Direct Memory Access,DMA)模式將數據從FIFO中傳遞到NAND_Flash數據存儲模塊;然后,NAND_Flash模塊結合其相應的內部結構以同步的方式進行高速數據存儲;最后,將由LCD模塊發送相應的指令,以一定速度讀取數據,經過FPGA進行一定的信號處理,在LCD顯示屏中顯示。
2.1 FPGA邏輯控制模塊
FPGA邏輯控制模塊由ALTERA公司的EP4CE40F29C8N、EPCS64SI16以及海力士公司的H27U1G8F2B芯片組成。其中EP4CE40F29C8N為Cyclone IV系列FPGA芯片,該芯片最大時鐘頻率為472 MHz,具有533個IO接口,滿足系統設計所需的最大時鐘頻率以及外設連接接口。邏輯控制模塊由頂層設計部分、系統時鐘與復位部分、采集控制部分、存儲控制部分、LCD顯示控制部分以及NISO II部分構成,其中頂層設計部分負責各個部分的連接以及邏輯控制模塊與其他模塊的接口。FPGA頂層原理圖如圖2所示。
在系統時鐘與復位部分,由FPGA芯片系統時鐘接口通過連接25 MHz無源晶振獲得25 MHz時鐘信號,通過“PLL”IP核將25 MHz時鐘信號倍頻為33 MHz、50 MHz、100 MHz以及200 MHz,以此作為系統的時鐘電路。其次,產生異步復位同步釋放的系統復位信號。
LCD顯示控制部分由波形模塊、數據緩存模塊、LCD顯示驅動模塊和觸摸屏指令接收模塊組成。該部分提供接口將QSYS中的顯示數據輸出到DDR2緩存模塊中;并為DDR2芯片和LCD顯示芯片建立DMA通信機制,實現顯示數據的輸出。
通過QSYS系統集成開發工具建立NIOS II片上嵌入式處理系統,負責信號采集系統指令接收和程序執行控制。NIOS II系統完成以下工作:(1)系統初始化程序執行,監聽LCD指令輸入;(2)實現配置Flash芯片(H27U1G8F2B)的讀寫操作,配置Flash芯片中存放顯示模塊中的背景圖片、字體庫以及采集過程中采集批次編號和采集數據存儲的起止位置信息;(3)實現采集數據讀取操作,并將采集的信號數據轉為波形顯示數據;(4)負責系統各個外設驅動指令的輸出。
2.2 模數轉換模塊
模數轉換電路采用AD9226作為轉換芯片,該芯片是一款低功耗(475 mW)、高精度(12 bit)的高速模數轉換芯片,其最高轉換速率為65 MSPS,并且具有良好的信噪比(70 dB)。本設計中,信號輸入范圍為1 V~3 V。該模塊的采樣時鐘由FPGA邏輯模塊提供,以達到對采樣率的控制,本文中所有測試內容中采樣率均為50 MHz,模數轉換模塊電路圖如圖3所示。
2.3 高速數據存儲模塊
為了匹配高速采樣率,高速數據存儲模塊選取SLC顆粒的NAND Flash芯片[10]。本設計選擇Micron公司的MT29F256G08AUCABH3芯片,該芯片在同步狀態下,引腳讀寫速度可以達到200 MT/s,并且在數據寫入過程中采用DDR模式,即在時鐘的上升沿和下升沿均有數據寫入。通過對其數據手冊的分析,由于NAND Flash需要進行PROGRAM PAGE 操作,因此該芯片寫入1頁數據(8 KB)大約需要400 μs。在該時間段內,AD信號采集模塊采集數據4×104 B,遠大于NAND Flash存儲數據,無法滿足系統的設計需求??紤]到NAND Flash芯片在同步寫入過程中加載8 KB數據需要40.96 μs,模數轉換模塊采集8 KB數據需要81.92 μs。影響系統存儲時間的主要因素是NAND Flash的編程時間(350 μs)。
針對這一問題,本設計結合MT29F256G08AUCABH3的存儲結構特點,如圖4所示。該芯片內部具有8個LUN結構,且當一個LUN處于編程狀態時,其他LUN可以進行讀寫以及編程。根據這一特性,本設計將其內部的8個LUN芯片采用流水線方式排列,依次進行數據的存儲操作,如圖5所示。當采集數據達到8 KB,處于寫準備狀態的LUN開始以DDR方式進行數據寫入。完成1頁數據(8 KB)的寫入后,后一LUN進入寫準備狀態,等待未存儲數據再次達到8 KB。以此方式進行循環,當第8個LUN完成寫操作時,第一個LUN完成編程過程,處于空閑狀態可以進行寫操作,圖5所示為存儲芯片流水線工作模式。
2.4 顯示模塊
在系統的顯示模塊,選用一款具有800×480分辨率和數字接口驅動的7英寸LCD液晶顯示屏。顯示屏的輸出色彩信號通過565的RGB并口數字信號傳輸,搭配容量為512 MB的DDR2 SDRAM芯片用于緩存顯示數據。系統顯示模塊的時鐘頻率為33 MHz。
除顯示功能外,該模塊同時肩負人機交互功能。利用觸摸屏的特性,完成對整個系統的操作控制,減少鍵盤模塊,使操作更加簡單。本設計采用電阻式觸摸屏,屏幕的x軸和y軸各有兩條信號線連接到觸摸屏專用AD芯片上(本設計選擇AW2083芯片),每次按觸摸屏時,會在對應的x軸和y軸產生一個阻值。在兩條坐標軸的正負極之間加參考電壓,當其中一條坐標軸的某一位置被觸按,則這個位置和對應坐標軸的正負極之間的電阻會通過電壓的形式反饋給ADC的輸入端,產生12 bit的AD量化值,AD芯片采集到的坐標數據與實際坐標值成正比,且為線性關系。圖6所示為y軸坐標測量等效電路圖。
3 系統程序邏輯設計
當系統上電后,系統進行初始化操作。FPGA讀取配置NAND Flash芯片中系統的配置信息。獲取顯示模塊的初始化界面并進行輸出和顯示,同時從配置芯片中獲取存儲模塊下一存儲地址。系統初始化完畢后,系統進入待機狀態,并監聽LCD顯示模塊的指令輸入。
3.1 信號采集流程
通過點擊LCD模塊中的“開始采集”按鈕,觸發信號采集程序。邏輯控制模塊監聽到信號采集開始指令,系統進入信號采集流程。
信號采集流程:
(1)高速存儲模塊初始化,對上一批次結束的所在LUN的下一個LUN進行存儲狀態激活。
(2)邏輯控制模塊發送模式轉換模塊使能信號,同時向模數轉換模塊輸入50 MHz時鐘信號。
(3)模數轉換模塊開始工作,將輸入的模擬信號以50 MS/s的轉換率轉換為12 bit的數字信號,并輸出到邏輯控制模塊。
(4)邏輯控制模塊接收到12 bit后,將其左移4位與當前采集批次的4 bit二進制值相加產生一個16 bit存入FIFO中。FIFO設置為輸入信號16 bit,頻率50 MHz;輸出信號為8 bit,輸出信號頻率為400 MHz;深度為4 096 words。
(5)當FIFO狀態為“FULL”時,邏輯控制模塊向高速數據存儲模塊發生寫指令,向FIFO發送讀指令,系統開始以DMA的方式將數據從FIFO中發送到高速數據存儲模塊。
(6)當完成page數據的存儲后,邏輯控制模塊關閉FIFO讀使能。高速數據存儲模塊激活下一個LUN的存儲狀態,重復步驟(5)~(6)。信號采集流程圖如圖7所示。
3.2 信號采集停止流程
LCD顯示模塊中的“采集停止”按鈕被觸發,邏輯控制模塊等待數據采集流程中步驟(6)執行時,關閉高速數據存儲模塊、模數轉換模塊使能,將當前采集批次編號和對應數據存儲的起止位置存入配置信息存儲Flash中。系統進入待機狀態,監聽LCD顯示模塊的指令輸入,同時LCD顯示模塊初始化界面。
3.3 波形顯示流程
LCD波形顯示按鈕觸發后,界面切換到采集批次選擇界面,通過點擊選擇對應批次的波形顯示,進入波形顯示操作流程。
波形顯示流程:
(1)邏輯控制模塊從配置Flash中讀取相應批次數據采集的存儲起止位置。
(2)讀取高速存儲模塊中對應地址的數據,寫入波形控制IP核中。波形控制模塊負責控制LCD波形窗口控制,并將采集數據值鎖存到雙口RAM中,同時負責輸出波形點顯示坐標位置和波形顯示時鐘頻率。
(3)將波形控制模塊中的數據輸入到LCD顯示模塊中的DDR2芯片中。
(4)LCD顯示屏中,讀取DDR2中的數據,進行顯示。
(5)當對應批次的所有數據讀取完畢后,波形顯示流程結束。
3.4 高速數據存儲控制流程
高速數據存儲控制程序主要分為采集數據寫流程和顯示數據讀流程。本設計中,采集數據寫流程采用同步寫入方式,工作頻率為200 MHz;顯示數據讀流程采用異步讀取方式,工作頻率為50 MHz。
(1)高速數據寫流程:①NAND Flash芯片激活同步讀寫狀態;②從邏輯控制模塊獲取寫入頁地址;③向NAND Flash發送寫操作命令;④向NAND Flash寫入寫操作地址;⑤NAND Flash等待數據寫入使能;⑥接收到邏輯控制模塊發送的寫使能,開始寫入數據;⑦當數據寫滿一頁時,該LUN進入編程狀態,同時從邏輯控制模塊獲取下一個LUN的存儲地址,重復步驟③~⑦。
(2)高速數據讀流程:①NAND Flash芯片激活異步讀寫狀態;②從邏輯控制模塊獲取讀取頁地址;③向NAND Flash芯片發送讀操作命令;④向NAND Flash寫入多操作操作地址;⑤讀取NAND Flash數據發送到邏輯控制模塊中;⑥當數據讀完一頁后,重復步驟②~⑥。
4 實驗測試
測試平臺由超聲發射電路、超聲接收電路、超聲探頭和有焊縫的金屬薄板構成。超聲探頭發射2.5 MHz的超聲信號到金屬薄板。當超聲信號到達焊縫部位時,信號發生部分或全部反射,產生回波信號。信號采集系統通過超聲接收電路采集回波信號,經過邏輯控制模塊處理后,寫入存儲模塊。同時,經過處理的數據通過LCD顯示屏進行顯示。圖8為信號檢測系統輸出波形。對比兩個波形發現,系統能夠以50 MHz的采樣率進行良好的采樣。圖9和圖10為連續采樣數據波形輸出,實現了連續多批次信號采集。
5 結束語
本系統通過AD9226高速模數轉換模塊,將采集到的模擬信號轉換為數字信號,經過FPGA存儲到大容量NAND Flash中,并在LCD顯示屏中顯示波形。在實際應用中,該系統能夠進行持續長時間的多批次高速信號采集,并具有小型化、易于攜帶的特點。
參考文獻
[1] 張曉威,蘇淑靖?;贔PGA的高速高精度數據采集系統的設計[J]。儀表技術與傳感器,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器件設計技術發展綜述[J]。電子與信息學報,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] 黃遠望,嚴濟鴻,周偉?;贔PGA的數據采集測試系統設計[J]?,F代雷達,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的多通道超聲檢測系統設計[J]。儀表技術與傳感器,2017(8):82-84.
[8] 孟曉東。基于FPGA的DDR3控制器設計與驗證[D]。長沙:國防科學技術大學,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] 肖佳?;贜ANDFLASH的大數據高速存儲系統的設計與實現[D]。西安:西安電子科技大學,2014.
評論
查看更多