摘 要: 介紹了AD7366/AD7367的主要特點,并搭建了以AD7366/AD7367和FPGA為基礎(chǔ)的電磁層析成像高速數(shù)據(jù)采集模塊。以AD7366為例給出了高速數(shù)據(jù)采集模塊的實現(xiàn)方法和仿真結(jié)果。
關(guān)鍵詞: 電磁層析成像; AD7366/AD7367; 數(shù)據(jù)采集; FPGA
?
數(shù)據(jù)采集是獲取信息的重要途徑。數(shù)據(jù)采集的好壞,主要取決于它的精度和速度。在保證精度的條件下應(yīng)有盡可能提高采樣速度,以滿足實時采集、實時處理和實時控制對速度的要求。在電磁層析成像EMT(Electromagnetic Tomography)數(shù)據(jù)采集系統(tǒng)中,共有16路數(shù)據(jù)采集通道,每路數(shù)據(jù)采集通道通過16路模擬開關(guān)分時切換到A/D模塊進(jìn)行數(shù)據(jù)轉(zhuǎn)換和處理,數(shù)據(jù)信息量非常大,這對AD轉(zhuǎn)換器速度要求非常高,而且需要很強(qiáng)的數(shù)據(jù)處理和傳輸能力[1-2]。串行AD7366/AD7367芯片具有速度快、體積小、功耗低、占用數(shù)據(jù)口少等優(yōu)點,而且作為可編程邏輯器件的FPGA,集成上百萬的邏輯門,支持反復(fù)地編程、擦除和使用,開發(fā)周期短,運用成本低,處理速度高等優(yōu)點,因此,選擇以FPGA為平臺對AD7366/AD7367的高速轉(zhuǎn)換數(shù)據(jù)進(jìn)行傳送、存儲和相應(yīng)的數(shù)據(jù)處理。
1 數(shù)據(jù)采集模塊
1.1 數(shù)據(jù)采集模塊組成
基于數(shù)據(jù)采集系統(tǒng)的功能與特點,綜合考慮了數(shù)據(jù)采集系統(tǒng)對數(shù)據(jù)處理的速度、精度和實時性等要求,本文設(shè)計的數(shù)據(jù)采集模塊主要由A/D轉(zhuǎn)換電路、FPGA和PCI總線三大部分組成[3]。具體數(shù)據(jù)采集模塊框圖如圖1所示。
?

1.2 AD7366/AD7367
AD7366/AD7367[4]是Analog Devices公司生產(chǎn)的8通道、12位/14位、高速、低功耗、單/雙極性轉(zhuǎn)換的高精度串行逐次逼近型ADC,采樣速率最高可達(dá)到1MS/s。在連續(xù)采樣的情況下,完成一次轉(zhuǎn)換的時間(包括數(shù)據(jù)的讀?。┎粫^1μs。在一般模式下,最低消耗電流為8.3mA;若工作于關(guān)閉模式,消耗電流可降低到320nA。AD7366/AD7367還具有可編程選擇模擬輸入電壓范圍的功能,有3個不同的輸入范圍可供選擇:±10V、±5V及0~10V。AD7366/AD7367的引腳圖如圖2所示。
?

??? AD7366和AD7367的轉(zhuǎn)換過程和控制時序都是一致的,惟一不同的是,AD7366是12位的串行ADC,AD7367是14位的串行ADC,即轉(zhuǎn)換結(jié)果位數(shù)不同。因此,在高速數(shù)據(jù)采集模塊設(shè)計過程中,均以AD7366為例來說明。
1.3 存儲器
綜合考慮了數(shù)據(jù)轉(zhuǎn)換結(jié)果的精度和速度,選擇了FPGA開發(fā)板上集成的IS61LV25616AL型SRAM芯片,容量為512KB,字長為16bit。本系統(tǒng)使用的是12bit的A/D轉(zhuǎn)換器,IS61LV25616AL型SRAM的字長和容量都能滿足系統(tǒng)要求。IS61LV25616AL型SRAM芯片的讀寫主要由控制信號來支配,控制信號主要有:
和
。
2 數(shù)據(jù)采集接口設(shè)計
2.1 數(shù)據(jù)采集流程
在整個數(shù)據(jù)采集接口設(shè)計中,利用VHDL語言[5]依次實現(xiàn)了時鐘匹配、AD7366的啟動、查詢和停止,以及數(shù)據(jù)串并轉(zhuǎn)換和數(shù)據(jù)存儲等數(shù)據(jù)采集過程。具體采集流程圖如圖3所示。

2.2 時鐘匹配單元設(shè)計
電磁層析成像高速數(shù)據(jù)采集系統(tǒng)采用的是CycloneⅡ系列的EP2C35F484C8型FPGA,它提供的時鐘信號頻率為50MHz,AD7366/AD7367的最大時鐘信號頻率為1MHz,所以必須設(shè)計相應(yīng)的分頻單元解決AD7366/AD7367與FPGA時鐘頻率匹配問題。分頻的基本原理如下:假設(shè)一個3位的二進(jìn)制字符串,最先初始化為“0”,然后每來一個FPGA時鐘信號,該字符串自動加1,則會依次出現(xiàn)以下字符串:000,001,010,011,100,101,110,111,000,001……。通過以上字符串可以看出其規(guī)律:它的最高位由“0”變到“1”和由“1”變到“0”都要經(jīng)過4個連續(xù)的FPGA時鐘信號,并且在這4個連續(xù)的FPGA時鐘信號期間,這個3位的二進(jìn)制字符串的最高位都恒為“1”或“0”,接收到8個FPGA時鐘信號后才會接收到1個二進(jìn)制字符串最高位組成的周期信號。因此,利用3位的二進(jìn)制字符串的累加實現(xiàn)8分頻。如果字符串的長度為n,則可以實現(xiàn)2n分頻。
??? 綜上所述,為了把FPGA提供的時鐘信號頻率50MHz分頻到1MHz以下,解決AD7366/AD7367與FPGA的時鐘頻率匹配問題,可以設(shè)置一個長度為6的字符串,實現(xiàn)64分頻,滿足數(shù)據(jù)采集時鐘頻率要求。
2.3 AD7366/AD7367時序控制單元設(shè)計
??? AD7366/AD7367時序控制單元主要處理兩種信號:控制信號和狀態(tài)信號。AD7366/AD7367的主要控制信號是轉(zhuǎn)換開始信號
和芯片選擇信號CS,主要狀態(tài)信號是轉(zhuǎn)換完成信號BUSY。
??? 利用FPGA提供轉(zhuǎn)換開始信號
的下降沿觸發(fā)AD7366/AD7367,開啟模數(shù)轉(zhuǎn)換,隨后轉(zhuǎn)換完成信號BUSY會自動置為高電平。在模數(shù)轉(zhuǎn)換期間,BUSY信號會一直保持高電平,直到本次轉(zhuǎn)換完成BUSY信號才會再自動跳變?yōu)榈碗娖健?IMG src="http://files.chinaaet.com/old/uploadfiles/jishu/jslw/20090505032838546.gif" border=0>下降沿到來后,再過兩個進(jìn)程才重新將
信號置為高電平,保證了t1至少不得短于10ns的要求。然后該代碼又設(shè)置檢測轉(zhuǎn)換完成的語句,即利用檢測BUSY信號的下降沿來判斷轉(zhuǎn)換是否完成。從開啟模數(shù)轉(zhuǎn)換開始到完成,一直都將
置為高電平,直到檢測到BUSY信號的下降沿的到來后,即代表本次模數(shù)轉(zhuǎn)換已經(jīng)完成后,才將
置為低電平,允許轉(zhuǎn)換結(jié)果的輸出。在輸出轉(zhuǎn)換結(jié)果的過程中,又設(shè)置了相應(yīng)的循環(huán)判斷數(shù)據(jù)是否已經(jīng)輸出完畢。當(dāng)檢測到結(jié)果輸出完畢時,又將
信號置為高電平,表示本次轉(zhuǎn)換已經(jīng)徹底結(jié)束。如果需要進(jìn)行下一步的模數(shù)轉(zhuǎn)換,則重新進(jìn)行以上操作。
2.4 串并轉(zhuǎn)換單元設(shè)計
AD7366/AD7367是串行輸出芯片,為了方便數(shù)據(jù)的存儲和運算處理,有必要設(shè)計一個串并轉(zhuǎn)換單元實現(xiàn)串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)的功能。
在高速數(shù)據(jù)采集模塊的設(shè)計過程中,為解決串并轉(zhuǎn)換問題,采用了移位操作的方法??紤]到AD7366的轉(zhuǎn)換結(jié)果是12位,設(shè)置了一個13位的移位寄存器,即一個13位的字符串temp_data_ad66。當(dāng)檢測到BUSY信號的下降沿后,在下一個進(jìn)程開始數(shù)據(jù)的串并轉(zhuǎn)換。串并轉(zhuǎn)換的具體操作是:首先對設(shè)置的移位寄存器temp_data_ad66賦初值“1111111111110”,每當(dāng)來一個SCLK的下降沿,把移位寄存器temp_data_ad66的數(shù)值往左平移一位,并把此時芯片的輸出端DOUTA的輸出結(jié)果放到寄存器temp_data_ad66的最低位,即把移位寄存器temp_data_ad66的原有數(shù)據(jù)的低12位和AD7366輸出端DOUTA的輸出數(shù)據(jù)組合在一起構(gòu)成一個新的13位的位串存放在移位寄存器temp_data_ad66中。每來一個SCLK信號,移位寄存器temp_data_ad66的數(shù)據(jù)則向左移動一位,AD7366輸出端DOUTA的輸出數(shù)據(jù)則自動依照先后順序存放在寄存器temp_data_ad66的最低位;相應(yīng)地,temp_data_ad66中初始化存放的字符串“1111111111110”中的“1”就會減少一個,只要檢測到的SCLK信號的下降沿總數(shù)少于12個,即移位操作次數(shù)少于12次時,temp_data_ad66的最高位都會是“1”,不會是“0”。當(dāng)且僅當(dāng)移位操作次數(shù)等于12次時,其最高位才會為“0”,同時,此時寄存器temp_data_ad66的低12位存放的數(shù)據(jù)恰好就是AD7366的轉(zhuǎn)換結(jié)果。據(jù)此,可以通過檢測移位寄存器temp_data_ad66的最高位是否為“0”來判斷串并轉(zhuǎn)換是否結(jié)束。AD7366的輸出端DOUTA是按照依次先輸出高位再輸出低位的順序輸出A/D轉(zhuǎn)換結(jié)果。結(jié)合串并轉(zhuǎn)換過程可知,當(dāng)串并轉(zhuǎn)換完成時,寄存器temp_data_ad66中存放的數(shù)據(jù)順序正好與A/D轉(zhuǎn)換真實結(jié)果一致。
2.5 數(shù)據(jù)存儲單元設(shè)計
數(shù)據(jù)存儲過程中,AD7366都被置于關(guān)閉狀態(tài)。在進(jìn)行寫操作之前,控制信號
和
都置為高電平,存儲器停止工作。準(zhǔn)備進(jìn)行寫操作時,將控制信號
置為低電平,其他控制信號仍然保持高電平,同時向地址輸入線送入數(shù)據(jù)存儲地址。在下一個進(jìn)程到來時,把控制信號
也置為低電平,其他控制信號保持原來狀態(tài)。SRAM在接收到輸出使能控制信號WE的下降沿時,通過地址尋址,自動把輸入/輸出總線上的數(shù)據(jù)送到地址線數(shù)據(jù)對應(yīng)的存儲單元,完成數(shù)據(jù)的寫操作,下一個進(jìn)程來時,把控制信號
和
再次置為高電平。
3 實驗仿真結(jié)果
在高速數(shù)據(jù)采集模塊設(shè)計過程中,使用的仿真軟件是Altera公司提供的QuartusⅡ開發(fā)系統(tǒng)[6]。以下實驗結(jié)果都是以AD7366為例,利用QuartusⅡ仿真得到的。
3.1 實現(xiàn)時鐘匹配實驗結(jié)果
由前面的分析可知,要實現(xiàn)AD7366與FPGA的時鐘匹配,需要對FPGA提供的時鐘信號進(jìn)行64分頻。經(jīng)QuartusⅡ仿真實現(xiàn)了64分頻,clk為FPGA時鐘信號,clk0為AD7366時鐘信號,如圖4所示。
?

3.2 AD7366工作時序仿真結(jié)果
圖5是AD7366在一個完整周期內(nèi)的工作時序仿真圖。
?

3.3 數(shù)據(jù)存儲
在數(shù)據(jù)存儲過程中,輸出使能信號OE始終為高電平。當(dāng)接到A/D傳來的存儲信號時,SRAM的片選信號CE跳變?yōu)榈碗娖?,一個進(jìn)程后,寫使能信號WE、高低字節(jié)選擇信號UB和LB都被置為低電平,寫數(shù)據(jù)開始。具體仿真圖可參見圖5。
針對電磁層析成像數(shù)據(jù)采集系統(tǒng)對數(shù)據(jù)采集速度和精度的要求,設(shè)計了一套基于FPGA的高速數(shù)據(jù)采集模塊,使用了高速高精度的串行模數(shù)轉(zhuǎn)換器AD7366/AD7367進(jìn)行數(shù)據(jù)轉(zhuǎn)換,利用FPGA編程控制AD7366/AD7367的啟動、停止和狀態(tài)查詢,同時進(jìn)行FPGA與AD7366/AD7367時鐘匹配、串并轉(zhuǎn)換、高速數(shù)據(jù)緩沖、數(shù)據(jù)存儲等處理,實現(xiàn)了電磁層析成像(EMT)數(shù)據(jù)采集系統(tǒng)數(shù)據(jù)信息的高速采集,提高了EMT系統(tǒng)數(shù)據(jù)采集模塊的數(shù)據(jù)處理能力和傳輸能力。
參考文獻(xiàn)
[1] ?YU Z Z, PEYTON A J, XU L A, et al. Electromagnetic?inductance tomography(EMT): sensor, electronics and image?reconstruction algorithm for a system with a rotatable?parallel excitation field[J]. IEE Proceedings-Science,?Measurement and Technology, 1998, 145(1):20-25.
[2] ?PEYTON A J, YU Z Z, LYON G, et al. An overview of?electromagnetic inductance tomography: description of three ?different systems[J]. Measurement Science and Technology, ?1996,7(3):261-271.
[3] ?周振安,數(shù)據(jù)采集系統(tǒng)的設(shè)計與實踐[M].北京:地震出版社,2005.
[4] ?Analog Devices公司.AD7366/AD7367芯片手冊, 2007.
[5] ?潘松,黃繼業(yè).EDA技術(shù)實用教程[M]. 北京:科學(xué)出版社,2004.
[6] ?Altera公司. QuartusⅡ使用說明. 2003.
