《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于eMMC的128路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
基于eMMC的128路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
2017年電子技術(shù)應(yīng)用第9期
侯天喜,李錦明,馬 林,降 帥
中北大學(xué) 儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,山西 太原030051
摘要: 針對(duì)水下模擬船艙相關(guān)參數(shù)的高速多次采集存儲(chǔ)任務(wù),設(shè)計(jì)了一種基于eMMC的多通道數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)以FPGA為主控芯片,控制8個(gè)通道模擬多路復(fù)用開(kāi)關(guān)和8個(gè)AD轉(zhuǎn)換器來(lái)實(shí)現(xiàn)128路信號(hào)同時(shí)采集。與傳統(tǒng)采集系統(tǒng)相比,該系統(tǒng)以eMMC為存儲(chǔ)單元,解決了傳統(tǒng)的以Flash為存儲(chǔ)模塊的復(fù)雜的壞塊檢測(cè)與系統(tǒng)管理等問(wèn)題。試驗(yàn)證明,128路數(shù)據(jù)采集存儲(chǔ)系統(tǒng)的誤差可控制在0.1%范圍內(nèi),能夠確保已存的數(shù)據(jù)可靠、有效。
中圖分類號(hào): TN919
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.170310
中文引用格式: 侯天喜,李錦明,馬林,等. 基于eMMC的128路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2017,43(9):76-79.
英文引用格式: Hou Tianxi,Li Jinming,Ma Lin,et al. Design of 128-channels data acquisition system based on eMMC[J].App-
lication of Electronic Technique,2017,43(9):76-79.
Design of 128-channels data acquisition system based on eMMC
Hou Tianxi,Li Jinming,Ma Lin,Jiang Shuai
Key Laboratory of Instrument Science & Dynamic Measurement of Ministry of Education, North University of China,Taiyuan 030051,China
Abstract: For the high speed multiple acquisition and storage task of underwater simulated cabin related parameters,a multi-channel data acquisition system based on eMMC is designed.The system uses FPGA as the main control chip to control 8 channels analog multiplexer switches and eight AD converters to achieve simultaneous acquisition of the 128 signals. Compared with the traditional acquisition system, the system uses embeded MultiMedia Card(eMMC) as storage module, an solve the problem of traditional Flash storage module that complex bad bock detection and system management. The measuring result shows using 128 channel data collection storage system, the error range is 0.1%, which ensures that acquired data is reliable and effective.
Key words : 128 channels;FPGA;data acquisition;data storage;eMMC

0 引言

    當(dāng)今海洋已經(jīng)和太空一樣成為人類探索自然的重要領(lǐng)域,我國(guó)水下探測(cè)設(shè)備的水平已達(dá)到一個(gè)新的高度。隨著我國(guó)水下探測(cè)技術(shù)的進(jìn)步,對(duì)數(shù)據(jù)采集及存儲(chǔ)測(cè)試儀器的可靠性、高速、大容量、多通道等技術(shù)參數(shù)提出了更高的要求[1-2]。本文的128路數(shù)據(jù)采集及存儲(chǔ)系統(tǒng)主要完成對(duì)水下模擬船艙相關(guān)參數(shù)的高速多次采集存儲(chǔ)任務(wù),以eMMC為存儲(chǔ)單元,解決了傳統(tǒng)的以Flash為存儲(chǔ)模塊的復(fù)雜的壞塊檢測(cè)與系統(tǒng)管理等問(wèn)題。該系統(tǒng)可進(jìn)行多次觸發(fā),采集并存儲(chǔ)采集數(shù)據(jù);通過(guò)讀數(shù)盒與上位機(jī)通信并傳輸采集的試驗(yàn)數(shù)據(jù)。

    任何測(cè)量系統(tǒng)都需要有精度要求,否則測(cè)量將失去意義[3-4]。128路數(shù)據(jù)采集的總采樣率達(dá)到1.6 MS/s,采集編碼長(zhǎng)度為12 bit,采樣精度0.1%,可重復(fù)觸發(fā),單次記錄時(shí)間達(dá)到5 s。

1 系統(tǒng)的整體設(shè)計(jì)

    基于eMMC的128路數(shù)據(jù)采集系統(tǒng)主要由數(shù)據(jù)采集模塊、FPGA控制模塊、eMMC存儲(chǔ)器模塊、讀數(shù)盒模塊、上位機(jī)5個(gè)模塊組成。每進(jìn)行一次觸發(fā)操作,128路電壓范圍在±5 V的模擬信號(hào)就會(huì)通過(guò)運(yùn)放跟隨電路的放大后進(jìn)入8個(gè)16通道模擬多路復(fù)用開(kāi)關(guān)ADG506,經(jīng)多路模擬開(kāi)關(guān)通道選擇,使接到每一個(gè)模擬開(kāi)關(guān)上的16個(gè)模擬信號(hào)依次送到AD轉(zhuǎn)換驅(qū)動(dòng)芯片AD823中,進(jìn)行信號(hào)調(diào)理后由AD轉(zhuǎn)換器AD7495進(jìn)行模數(shù)轉(zhuǎn)換操作。轉(zhuǎn)換后的數(shù)字信號(hào)在FPGA的控制下依次存儲(chǔ)在eMMC芯片MTFC2GMDEA-0M中。一次觸發(fā)操作會(huì)在eMMC中存儲(chǔ)16 MB的數(shù)據(jù),可以連續(xù)觸發(fā)4次。最后可以通過(guò)讀數(shù)盒將數(shù)據(jù)回讀到上位機(jī)中,完成采集及存儲(chǔ)的任務(wù)。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。

ck3-t1.gif

2 系統(tǒng)的硬件構(gòu)成

2.1 電源管理

    在本系統(tǒng)中,需要對(duì)FPGA XC3S500E芯片進(jìn)行3.3 V、2.5 V和1.2 V供電,因此需要利用電源轉(zhuǎn)換芯片將5 V的電壓轉(zhuǎn)換到所需要的電壓值。系統(tǒng)選用電壓轉(zhuǎn)換器SPX3819將電源電壓轉(zhuǎn)換成所需要的電壓值。

2.2 模擬電路

    數(shù)據(jù)采集部分在FPGA的控制下實(shí)現(xiàn)模擬量到數(shù)字量的轉(zhuǎn)化[5-6],主要由運(yùn)放調(diào)理電路、模擬開(kāi)關(guān)和AD轉(zhuǎn)換芯片構(gòu)成。

2.2.1 放大電路設(shè)計(jì)

    該128路數(shù)據(jù)采集系統(tǒng)運(yùn)放調(diào)理電路采用的是高精度低噪聲模擬信號(hào)放大器OP4177,多路信號(hào)放大的芯片OP4177具有4條互不干涉的信號(hào)放大通道,可對(duì)4路模擬信號(hào)進(jìn)行同時(shí)放大。

2.2.2 模擬開(kāi)關(guān)

    本系統(tǒng)采用了16通道的模擬多路復(fù)用器ADG506A進(jìn)行模擬通道的選擇。通過(guò)FPGA控制ADG506A的4條地址線來(lái)決定在某一時(shí)刻送到AD轉(zhuǎn)換器之中的信號(hào)是哪一位,使16路模擬信號(hào)可以依次發(fā)送到AD轉(zhuǎn)換器中,大大提高了系統(tǒng)的集成度。

2.2.3 模數(shù)轉(zhuǎn)換電路設(shè)計(jì)

    本系統(tǒng)采用的是精度為12 bit的模數(shù)轉(zhuǎn)換芯片AD7495,并采用芯片AD823作為A/D轉(zhuǎn)換器的驅(qū)動(dòng)芯片。電路上電后,F(xiàn)PGA首先會(huì)對(duì)A/D轉(zhuǎn)換芯片進(jìn)行參數(shù)設(shè)定,A/D轉(zhuǎn)換器的驅(qū)動(dòng)電壓由FPGA提供,A/D轉(zhuǎn)換的時(shí)鐘由FPGA內(nèi)部的定時(shí)器產(chǎn)生。AD7495芯片要求采集模擬量在-2.5 V~2.5 V之間,而考慮到實(shí)際用的模擬量一般在0 V~5 V之間,所以需要進(jìn)行電壓轉(zhuǎn)換,使其滿足AD7495的輸入電壓要求,保證模數(shù)轉(zhuǎn)換的正確性。模數(shù)轉(zhuǎn)換的驅(qū)動(dòng)電路如圖2所示。

ck3-t2.gif

2.3 存儲(chǔ)電路

    數(shù)據(jù)存儲(chǔ)部分是整個(gè)系統(tǒng)中數(shù)據(jù)的載體,承擔(dān)著存儲(chǔ)由A/D轉(zhuǎn)換芯片產(chǎn)生的數(shù)字?jǐn)?shù)據(jù)的重任。128路數(shù)據(jù)采集及存儲(chǔ)系統(tǒng)選用了鎂光公司的MTFC2GMDEA-0M芯片作為數(shù)據(jù)存儲(chǔ)。該器件將Nand Flash與控制器和MMC接口封裝到一起,控制器負(fù)責(zé)Flash的無(wú)效塊檢測(cè)、讀寫(xiě)、ECC校驗(yàn)等[7],大大提高了數(shù)據(jù)的讀寫(xiě)速度。該芯片對(duì)外提供標(biāo)準(zhǔn)MMC接口,接口總線有時(shí)鐘線CLK、命令線CMD、8位數(shù)據(jù)線以及復(fù)位信號(hào)線,使用起來(lái)非常方便,其電路連接圖如圖3所示。

ck3-t3.gif

3 數(shù)據(jù)存儲(chǔ)技術(shù)的實(shí)現(xiàn)

    在正常無(wú)故障的情況下,經(jīng)過(guò)觸發(fā),系統(tǒng)啟動(dòng)數(shù)據(jù)采集后,模擬信號(hào)經(jīng)過(guò)數(shù)據(jù)采集部分進(jìn)行處理后轉(zhuǎn)換為FPGA可以處理的數(shù)字信號(hào),將轉(zhuǎn)換完的串行數(shù)據(jù)送回FPGA內(nèi)部FIFO進(jìn)行緩存,并由FPGA控制將FIFO內(nèi)的數(shù)據(jù)按照一定的時(shí)序?qū)懭雃MMC芯片,完成數(shù)據(jù)的存儲(chǔ)。

    eMMC在傳輸模式之前首先進(jìn)行初始化操作,初始化操作主要完成器件識(shí)別、模式配置以及擦除操作等[8-9]。具體操作流程為:(1)發(fā)送CMD0命令,復(fù)位設(shè)備;(2)發(fā)送CMD1命令,獲取OCR,進(jìn)入準(zhǔn)備完畢狀態(tài);(3)發(fā)送CMD2命令,獲取器件信息,進(jìn)入器件識(shí)別狀態(tài);(4)發(fā)送CMD3命令,進(jìn)行eMMC地址分配,進(jìn)入設(shè)備待命狀態(tài);(5)發(fā)送CMD9命令,獲取設(shè)備寄存器的值;(6)發(fā)送CMD7命令,進(jìn)行狀態(tài)轉(zhuǎn)換,進(jìn)入數(shù)據(jù)傳輸狀態(tài);(7)發(fā)送CMD19命令,發(fā)送總線測(cè)試數(shù)據(jù);(8)發(fā)送CMD14命令,回讀總線測(cè)試數(shù)據(jù),并檢驗(yàn)測(cè)試是否通過(guò),系統(tǒng)返回傳輸狀態(tài)。

3.1 數(shù)據(jù)寫(xiě)入

    eMMC的數(shù)據(jù)傳輸模式是其主要工作模式,其讀寫(xiě)操作都是在該模式下進(jìn)行的。eMMC有單塊寫(xiě)和多塊寫(xiě)兩種寫(xiě)模式,這里采用單塊寫(xiě)模式,其對(duì)應(yīng)狀態(tài)轉(zhuǎn)化圖如圖4所示。首先,在eMMC進(jìn)入傳輸模式之后發(fā)送CMD16命令,設(shè)置寫(xiě)數(shù)據(jù)塊長(zhǎng)度;接著發(fā)送CMD24命令,開(kāi)始單塊寫(xiě)操作,將寫(xiě)FIFO數(shù)據(jù)寫(xiě)入eMMC,依次寫(xiě)入起始位、數(shù)據(jù)位、CRC16校驗(yàn)碼與結(jié)束位。數(shù)據(jù)發(fā)送完畢后,eMMC器件會(huì)根據(jù)接收到的數(shù)據(jù)進(jìn)行CRC16校驗(yàn)比對(duì),校驗(yàn)成功后將數(shù)據(jù)存儲(chǔ)到eMMC的Flash存儲(chǔ)區(qū),完成一次數(shù)據(jù)存儲(chǔ)。

ck3-t4.gif

3.2 數(shù)據(jù)讀取

    要分析eMMC中存儲(chǔ)的數(shù)據(jù),就要通過(guò)上位機(jī)將讀數(shù)盒數(shù)據(jù)回讀到計(jì)算機(jī),因此eMMC的讀數(shù)過(guò)程需要上位機(jī)的配合完成。FPGA在接收到上位機(jī)發(fā)來(lái)的讀數(shù)命令后,主動(dòng)給eMMC控制器發(fā)送讀數(shù)命令。首先判斷eMMC后端FIFO是否寫(xiě)滿,若寫(xiě)滿則禁止往后端FIFO里寫(xiě)數(shù);若未滿,則發(fā)送CMD17命令,開(kāi)始數(shù)據(jù)讀操作。當(dāng)檢測(cè)起始位有效時(shí),開(kāi)始數(shù)據(jù)讀,并對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)CRC校驗(yàn),并對(duì)讀取數(shù)據(jù)進(jìn)行計(jì)數(shù)。當(dāng)計(jì)數(shù)個(gè)數(shù)等于數(shù)據(jù)塊長(zhǎng)度時(shí),接收端進(jìn)行數(shù)據(jù)接收,并將接收到的數(shù)據(jù)的CRC校驗(yàn)與eMMC的CRC檢驗(yàn)對(duì)比,判斷數(shù)據(jù)接收是否正確,完成一次數(shù)據(jù)的讀取操作。具體數(shù)據(jù)發(fā)送流程圖如圖5所示。

ck3-t5.gif

4 測(cè)試與驗(yàn)證

    為了驗(yàn)證系統(tǒng)的功能實(shí)現(xiàn)及可靠性,分別對(duì)eMMC的寫(xiě)數(shù)據(jù)和讀數(shù)據(jù)操作進(jìn)行了在線調(diào)試。在信號(hào)輸入端提供電壓峰值為5 V的正弦波電壓進(jìn)行系統(tǒng)的可靠性測(cè)試。通過(guò)Chipscope進(jìn)行抓圖。經(jīng)分析,CRC檢驗(yàn)正確,證明數(shù)據(jù)讀寫(xiě)正確。其數(shù)據(jù)讀與數(shù)據(jù)寫(xiě)的測(cè)試結(jié)果如圖6、圖7所示。

ck3-t6.gifck3-t7.gif

    同時(shí),利用讀數(shù)盒將存儲(chǔ)在eMMC中的數(shù)據(jù)讀取到上位機(jī)中,對(duì)數(shù)據(jù)進(jìn)行直接的觀察。圖8為128路信號(hào)中存儲(chǔ)在eMMC中前4路信號(hào)通過(guò)上位機(jī)讀取到的信號(hào)波形。從圖中可以看出,128路數(shù)據(jù)采集存儲(chǔ)系統(tǒng)可以如實(shí)地反映出系統(tǒng)采集到的電壓范圍為±5 V的正弦波。經(jīng)過(guò)標(biāo)定后,128路數(shù)據(jù)采集存儲(chǔ)系統(tǒng)的誤差范圍可控制在0.1%范圍內(nèi)。

ck3-t8.gif

5 結(jié)論

    本文設(shè)計(jì)了一種128路數(shù)據(jù)采集存儲(chǔ)系統(tǒng),以eMMC為存儲(chǔ)單元,解決了傳統(tǒng)的以Flash為存儲(chǔ)模塊的復(fù)雜的壞塊檢測(cè)與系統(tǒng)管理等問(wèn)題。通過(guò)在線邏輯分析和上位機(jī)驗(yàn)證,該128路數(shù)據(jù)采集存儲(chǔ)系統(tǒng)讀寫(xiě)時(shí)序正確,誤差范圍可控制在0.1%范圍內(nèi),能夠確保已存儲(chǔ)的數(shù)據(jù)可靠、有效,達(dá)到設(shè)計(jì)指標(biāo)。

參考文獻(xiàn)

[1] 李廣志,周卓赟,謝昱勃,等.基于FPGA的陣列信號(hào)數(shù)據(jù)采集系統(tǒng)[J].電子技術(shù)應(yīng)用,2016,42(2):71-73,77.

[2] 葛立,李驥,高楓,等.多路模擬開(kāi)關(guān)在數(shù)據(jù)采集系統(tǒng)中的應(yīng)用與分析[J].電子技術(shù)應(yīng)用,2014,40(12):40-42.

[3] 皇甫堪,陳建文,樓生強(qiáng).現(xiàn)代數(shù)字信號(hào)處理(第一版)[M].北京:電子工業(yè)出版社,2003.

[4] 馬明建,周長(zhǎng)城.數(shù)據(jù)采集與處理技術(shù)(第一版)[M].西安:西安交通大學(xué)出版社,1999.

[5] 崔迎煒,李猛.基于FPGA的PMC數(shù)據(jù)采集卡的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2014,40(10):27-29.

[6] 王悅凱,馬游春,丁寧.基于MRAM和FPGA的多路數(shù)據(jù)采集存儲(chǔ)系統(tǒng)[J].電子器件,2016,39(3):662-666.

[7] Embedded multi-media card(eMMC) electrical standard(5.0)[S].JEDEC,2012.

[8] 張耀軍,孫銘,王锏.Virtex-6 FPGA的eMMC控制器設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2016,16(2):10-13.

[9] 王慶,樓向雄,王維建.基于eMMC大容量存儲(chǔ)U盤(pán)的研究[J].杭州電子科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,36(2):37-41.



作者信息:

侯天喜,李錦明,馬  林,降  帥

(中北大學(xué) 儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,山西 太原030051)

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