文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.170310
中文引用格式: 侯天喜,李錦明,,馬林,,等. 基于eMMC的128路數(shù)據(jù)采集系統(tǒng)設(shè)計[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.
0 引言
當今海洋已經(jīng)和太空一樣成為人類探索自然的重要領(lǐng)域,,我國水下探測設(shè)備的水平已達到一個新的高度,。隨著我國水下探測技術(shù)的進步,對數(shù)據(jù)采集及存儲測試儀器的可靠性,、高速,、大容量、多通道等技術(shù)參數(shù)提出了更高的要求[1-2],。本文的128路數(shù)據(jù)采集及存儲系統(tǒng)主要完成對水下模擬船艙相關(guān)參數(shù)的高速多次采集存儲任務(wù),,以eMMC為存儲單元,解決了傳統(tǒng)的以Flash為存儲模塊的復(fù)雜的壞塊檢測與系統(tǒng)管理等問題,。該系統(tǒng)可進行多次觸發(fā),,采集并存儲采集數(shù)據(jù);通過讀數(shù)盒與上位機通信并傳輸采集的試驗數(shù)據(jù),。
任何測量系統(tǒng)都需要有精度要求,,否則測量將失去意義[3-4]。128路數(shù)據(jù)采集的總采樣率達到1.6 MS/s,,采集編碼長度為12 bit,,采樣精度0.1%,可重復(fù)觸發(fā),,單次記錄時間達到5 s,。
1 系統(tǒng)的整體設(shè)計
基于eMMC的128路數(shù)據(jù)采集系統(tǒng)主要由數(shù)據(jù)采集模塊、FPGA控制模塊,、eMMC存儲器模塊,、讀數(shù)盒模塊、上位機5個模塊組成,。每進行一次觸發(fā)操作,,128路電壓范圍在±5 V的模擬信號就會通過運放跟隨電路的放大后進入8個16通道模擬多路復(fù)用開關(guān)ADG506,,經(jīng)多路模擬開關(guān)通道選擇,,使接到每一個模擬開關(guān)上的16個模擬信號依次送到AD轉(zhuǎn)換驅(qū)動芯片AD823中,進行信號調(diào)理后由AD轉(zhuǎn)換器AD7495進行模數(shù)轉(zhuǎn)換操作。轉(zhuǎn)換后的數(shù)字信號在FPGA的控制下依次存儲在eMMC芯片MTFC2GMDEA-0M中,。一次觸發(fā)操作會在eMMC中存儲16 MB的數(shù)據(jù),,可以連續(xù)觸發(fā)4次。最后可以通過讀數(shù)盒將數(shù)據(jù)回讀到上位機中,,完成采集及存儲的任務(wù),。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
2 系統(tǒng)的硬件構(gòu)成
2.1 電源管理
在本系統(tǒng)中,,需要對FPGA XC3S500E芯片進行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的控制下實現(xiàn)模擬量到數(shù)字量的轉(zhuǎn)化[5-6],主要由運放調(diào)理電路,、模擬開關(guān)和AD轉(zhuǎn)換芯片構(gòu)成,。
2.2.1 放大電路設(shè)計
該128路數(shù)據(jù)采集系統(tǒng)運放調(diào)理電路采用的是高精度低噪聲模擬信號放大器OP4177,多路信號放大的芯片OP4177具有4條互不干涉的信號放大通道,,可對4路模擬信號進行同時放大,。
2.2.2 模擬開關(guān)
本系統(tǒng)采用了16通道的模擬多路復(fù)用器ADG506A進行模擬通道的選擇。通過FPGA控制ADG506A的4條地址線來決定在某一時刻送到AD轉(zhuǎn)換器之中的信號是哪一位,,使16路模擬信號可以依次發(fā)送到AD轉(zhuǎn)換器中,,大大提高了系統(tǒng)的集成度。
2.2.3 模數(shù)轉(zhuǎn)換電路設(shè)計
本系統(tǒng)采用的是精度為12 bit的模數(shù)轉(zhuǎn)換芯片AD7495,,并采用芯片AD823作為A/D轉(zhuǎn)換器的驅(qū)動芯片,。電路上電后,F(xiàn)PGA首先會對A/D轉(zhuǎn)換芯片進行參數(shù)設(shè)定,,A/D轉(zhuǎn)換器的驅(qū)動電壓由FPGA提供,,A/D轉(zhuǎn)換的時鐘由FPGA內(nèi)部的定時器產(chǎn)生。AD7495芯片要求采集模擬量在-2.5 V~2.5 V之間,,而考慮到實際用的模擬量一般在0 V~5 V之間,,所以需要進行電壓轉(zhuǎn)換,使其滿足AD7495的輸入電壓要求,,保證模數(shù)轉(zhuǎn)換的正確性,。模數(shù)轉(zhuǎn)換的驅(qū)動電路如圖2所示。
2.3 存儲電路
數(shù)據(jù)存儲部分是整個系統(tǒng)中數(shù)據(jù)的載體,,承擔(dān)著存儲由A/D轉(zhuǎn)換芯片產(chǎn)生的數(shù)字數(shù)據(jù)的重任,。128路數(shù)據(jù)采集及存儲系統(tǒng)選用了鎂光公司的MTFC2GMDEA-0M芯片作為數(shù)據(jù)存儲。該器件將Nand Flash與控制器和MMC接口封裝到一起,,控制器負責(zé)Flash的無效塊檢測,、讀寫,、ECC校驗等[7],大大提高了數(shù)據(jù)的讀寫速度,。該芯片對外提供標準MMC接口,,接口總線有時鐘線CLK、命令線CMD,、8位數(shù)據(jù)線以及復(fù)位信號線,,使用起來非常方便,其電路連接圖如圖3所示,。
3 數(shù)據(jù)存儲技術(shù)的實現(xiàn)
在正常無故障的情況下,,經(jīng)過觸發(fā),系統(tǒng)啟動數(shù)據(jù)采集后,,模擬信號經(jīng)過數(shù)據(jù)采集部分進行處理后轉(zhuǎn)換為FPGA可以處理的數(shù)字信號,,將轉(zhuǎn)換完的串行數(shù)據(jù)送回FPGA內(nèi)部FIFO進行緩存,并由FPGA控制將FIFO內(nèi)的數(shù)據(jù)按照一定的時序?qū)懭雃MMC芯片,完成數(shù)據(jù)的存儲,。
eMMC在傳輸模式之前首先進行初始化操作,,初始化操作主要完成器件識別、模式配置以及擦除操作等[8-9],。具體操作流程為:(1)發(fā)送CMD0命令,,復(fù)位設(shè)備;(2)發(fā)送CMD1命令,,獲取OCR,,進入準備完畢狀態(tài);(3)發(fā)送CMD2命令,,獲取器件信息,,進入器件識別狀態(tài);(4)發(fā)送CMD3命令,,進行eMMC地址分配,,進入設(shè)備待命狀態(tài);(5)發(fā)送CMD9命令,,獲取設(shè)備寄存器的值,;(6)發(fā)送CMD7命令,進行狀態(tài)轉(zhuǎn)換,,進入數(shù)據(jù)傳輸狀態(tài),;(7)發(fā)送CMD19命令,發(fā)送總線測試數(shù)據(jù),;(8)發(fā)送CMD14命令,,回讀總線測試數(shù)據(jù),并檢驗測試是否通過,,系統(tǒng)返回傳輸狀態(tài),。
3.1 數(shù)據(jù)寫入
eMMC的數(shù)據(jù)傳輸模式是其主要工作模式,,其讀寫操作都是在該模式下進行的。eMMC有單塊寫和多塊寫兩種寫模式,,這里采用單塊寫模式,其對應(yīng)狀態(tài)轉(zhuǎn)化圖如圖4所示,。首先,,在eMMC進入傳輸模式之后發(fā)送CMD16命令,設(shè)置寫數(shù)據(jù)塊長度,;接著發(fā)送CMD24命令,,開始單塊寫操作,將寫FIFO數(shù)據(jù)寫入eMMC,,依次寫入起始位,、數(shù)據(jù)位、CRC16校驗碼與結(jié)束位,。數(shù)據(jù)發(fā)送完畢后,,eMMC器件會根據(jù)接收到的數(shù)據(jù)進行CRC16校驗比對,校驗成功后將數(shù)據(jù)存儲到eMMC的Flash存儲區(qū),,完成一次數(shù)據(jù)存儲,。
3.2 數(shù)據(jù)讀取
要分析eMMC中存儲的數(shù)據(jù),就要通過上位機將讀數(shù)盒數(shù)據(jù)回讀到計算機,,因此eMMC的讀數(shù)過程需要上位機的配合完成,。FPGA在接收到上位機發(fā)來的讀數(shù)命令后,主動給eMMC控制器發(fā)送讀數(shù)命令,。首先判斷eMMC后端FIFO是否寫滿,,若寫滿則禁止往后端FIFO里寫數(shù);若未滿,,則發(fā)送CMD17命令,,開始數(shù)據(jù)讀操作。當檢測起始位有效時,,開始數(shù)據(jù)讀,,并對數(shù)據(jù)進行實時CRC校驗,并對讀取數(shù)據(jù)進行計數(shù),。當計數(shù)個數(shù)等于數(shù)據(jù)塊長度時,,接收端進行數(shù)據(jù)接收,并將接收到的數(shù)據(jù)的CRC校驗與eMMC的CRC檢驗對比,,判斷數(shù)據(jù)接收是否正確,,完成一次數(shù)據(jù)的讀取操作。具體數(shù)據(jù)發(fā)送流程圖如圖5所示,。
4 測試與驗證
為了驗證系統(tǒng)的功能實現(xiàn)及可靠性,,分別對eMMC的寫數(shù)據(jù)和讀數(shù)據(jù)操作進行了在線調(diào)試,。在信號輸入端提供電壓峰值為5 V的正弦波電壓進行系統(tǒng)的可靠性測試。通過Chipscope進行抓圖,。經(jīng)分析,,CRC檢驗正確,證明數(shù)據(jù)讀寫正確,。其數(shù)據(jù)讀與數(shù)據(jù)寫的測試結(jié)果如圖6,、圖7所示。
同時,,利用讀數(shù)盒將存儲在eMMC中的數(shù)據(jù)讀取到上位機中,,對數(shù)據(jù)進行直接的觀察。圖8為128路信號中存儲在eMMC中前4路信號通過上位機讀取到的信號波形,。從圖中可以看出,,128路數(shù)據(jù)采集存儲系統(tǒng)可以如實地反映出系統(tǒng)采集到的電壓范圍為±5 V的正弦波。經(jīng)過標定后,,128路數(shù)據(jù)采集存儲系統(tǒng)的誤差范圍可控制在0.1%范圍內(nèi),。
5 結(jié)論
本文設(shè)計了一種128路數(shù)據(jù)采集存儲系統(tǒng),以eMMC為存儲單元,,解決了傳統(tǒng)的以Flash為存儲模塊的復(fù)雜的壞塊檢測與系統(tǒng)管理等問題,。通過在線邏輯分析和上位機驗證,該128路數(shù)據(jù)采集存儲系統(tǒng)讀寫時序正確,,誤差范圍可控制在0.1%范圍內(nèi),,能夠確保已存儲的數(shù)據(jù)可靠、有效,,達到設(shè)計指標,。
參考文獻
[1] 李廣志,周卓赟,,謝昱勃,,等.基于FPGA的陣列信號數(shù)據(jù)采集系統(tǒng)[J].電子技術(shù)應(yīng)用,2016,,42(2):71-73,,77.
[2] 葛立,李驥,,高楓,,等.多路模擬開關(guān)在數(shù)據(jù)采集系統(tǒng)中的應(yīng)用與分析[J].電子技術(shù)應(yīng)用,2014,,40(12):40-42.
[3] 皇甫堪,,陳建文,樓生強.現(xiàn)代數(shù)字信號處理(第一版)[M].北京:電子工業(yè)出版社,,2003.
[4] 馬明建,,周長城.數(shù)據(jù)采集與處理技術(shù)(第一版)[M].西安:西安交通大學(xué)出版社,,1999.
[5] 崔迎煒,李猛.基于FPGA的PMC數(shù)據(jù)采集卡的設(shè)計[J].電子技術(shù)應(yīng)用,,2014,,40(10):27-29.
[6] 王悅凱,馬游春,,丁寧.基于MRAM和FPGA的多路數(shù)據(jù)采集存儲系統(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].單片機與嵌入式系統(tǒng)應(yīng)用,,2016,16(2):10-13.
[9] 王慶,,樓向雄,,王維建.基于eMMC大容量存儲U盤的研究[J].杭州電子科技大學(xué)學(xué)報(自然科學(xué)版),2016,,36(2):37-41.
作者信息:
侯天喜,,李錦明,馬 林,,降 帥
(中北大學(xué) 儀器科學(xué)與動態(tài)測試教育部重點實驗室,,山西 太原030051)