基于FPGA高速數(shù)據(jù)采集與傳輸?shù)穆暦鶞y井系統(tǒng)
摘要 針對測井中信號傳輸速度低、操作繁瑣等問題,提出一種高速數(shù)據(jù)采集與傳輸?shù)男路椒?。該設(shè)計(jì)系統(tǒng)采用高速AD轉(zhuǎn)換,以靈活、高效性價(jià)比FPGA芯片-EP1C6為平臺,利用USB傳輸,實(shí)現(xiàn)了基于Verilog的聲幅測井系統(tǒng)。最終,在上位機(jī)得到的聲幅測井曲線用來判斷固井質(zhì)量。在水泥膠結(jié)良好時(shí),固井聲幅測井值低;水泥膠結(jié)差時(shí),固井聲幅測井值高。
關(guān)鍵詞 FPGA;高速數(shù)據(jù)采集;聲幅測井
地球物理測井的方法有多種,如電測井、聲波測井、核測井、地層傾角測井、成像測井等,但聲波測井是惟一可以獲得井壁直觀圖像的測井方法。聲波測井和電法測井,核測井相比,問世較晚,但近20年來發(fā)展迅速,其主要優(yōu)點(diǎn)是不受泥漿性質(zhì),礦化度及泥漿侵入的影響。同樣,巖石聲學(xué)研究了聲波在巖石或地層中的產(chǎn)生、傳播、接收和各種效應(yīng),為聲波技術(shù)發(fā)展提供了理論基礎(chǔ)。所謂聲波是指彈性介質(zhì)中傳播的壓強(qiáng)、應(yīng)力、體積元形變,質(zhì)點(diǎn)位移,質(zhì)點(diǎn)速度等的形變或幾種形變的綜合。最簡單的聲波測井儀由發(fā)射器和接收器組成,接收器所接收到的聲波包括直達(dá)波、反射波、滑行波和沿儀器外殼傳播的聲波,聲波測井的探測范圍一般是指井壁滑行波的影響范圍。
聲波測井是應(yīng)用較廣泛的現(xiàn)代測井方法之一。其采用聲波的速度、幅度在巖石、巖層孔隙、含油氣水等介質(zhì)中傳播時(shí)的全波記錄得出的不同物理地質(zhì)特征來研究和解決地質(zhì)問題,進(jìn)而發(fā)現(xiàn)油氣、煤、金屬與非金屬、放射性、地?zé)?、地下水等礦產(chǎn)資源。
一般常用的聲波測井方法可以分為聲波速度測井。聲波幅度測井和聲波全波列測井。這里使用的是聲波幅度測井,聲波幅度測井是研究巖層對聲波幅度的衰減特性的測井方法。井下信號通過電纜傳輸至井上后,如何對上傳的信號進(jìn)行及時(shí)、高速、準(zhǔn)確的處理從而傳輸?shù)缴衔粰C(jī)以得到測井曲線是至關(guān)重要的。
1 聲幅測井概述
固井聲幅測井也稱水泥膠結(jié)測井。聲幅測井的井下部分如圖1所示。套管應(yīng)與水泥膠結(jié)良好,套管外固結(jié)的水泥環(huán)完整,否則套管外有泥漿存在。套管與泥漿界面的聲阻抗比套管與水泥環(huán)的大,就是說套管與泥漿的聲耦合較差,套管與水泥環(huán)的聲耦合較好。
因此,套管與水泥膠結(jié)差時(shí),套管波的能量不易通過管外泥漿傳播,接收到的套管波幅度大,反之則到達(dá)接收器的套管波能量小。即在水泥膠結(jié)良好時(shí),固井聲幅測井值低;水泥膠結(jié)差時(shí),固井聲幅測井值高。
2 系統(tǒng)硬件設(shè)計(jì)
井下上傳的信號CBL(75 mV,20 kHz)經(jīng)模數(shù)開關(guān)多路選擇后,進(jìn)入A/D采樣,采樣完成后數(shù)據(jù)進(jìn)入FPGA進(jìn)行高速處理,處理后的數(shù)據(jù)由USB模塊上傳至上位機(jī)。系統(tǒng)框圖如圖2所示。
2.1 模數(shù)開關(guān)設(shè)計(jì)
模數(shù)開關(guān)使用AD7502芯片。AD7502是一款單芯片CMOS雙路4通道模擬多路復(fù)用器。它根據(jù)2個(gè)二進(jìn)制地址輸入A0,A1和一個(gè)使能輸入的狀態(tài)EN,將2路輸出總線OUT1-4,OUT5-8,切換至8路輸入S1,S2,S3,S4,S5,S6,S7,S8中的2路S1&S5,S2&S6,S3&S7,S4&S8。通過對模數(shù)開關(guān)的控制可以選擇A/D采集的是CBL信號或AC信號。
2.2 A/D采集模塊
數(shù)據(jù)采集使用AD1671芯片,AD1671芯片為12位1.25 Msample·s-1,轉(zhuǎn)換時(shí)間為800 ns的芯片。
2.3 FPGA主電路模塊
數(shù)據(jù)處理及存儲使用EP1C6芯片,cyclone EP1C6是Altera推出的一款高性價(jià)比FPGA,工作電壓3.3 V,內(nèi)核電壓1.5 V。采用0.13μm工藝技術(shù),全銅SRAM工藝,其密度為5 980個(gè)邏輯單元,包含20個(gè)128×36位的RAM塊,總的RAM空間達(dá)到20×(128×36)=92 160位。而本設(shè)計(jì)的采樣周期為2 ms,采樣間隔為1μs,每次需存儲16位,共需存儲2 000×16=32 000位,可以滿足設(shè)計(jì)要求。內(nèi)嵌2個(gè)鎖相環(huán)電路和一個(gè)用于連接SDRAM的特定雙數(shù)據(jù)率接口,工作頻率高達(dá)200MHz。
2.4 USB數(shù)據(jù)傳輸模塊
USB傳輸使用CH375芯片。CH375是一個(gè)USB總線的通用接口芯片,支持USB-HOST主機(jī)方式和USB-DEVICE/SLAVE設(shè)備方式。這里采用設(shè)備方式。
2.5 電源模塊
由于FPGA正常工作時(shí)要求先給I/O口供電再給內(nèi)核供電,斷電時(shí)要求先給內(nèi)核斷電再給I/O口斷電,為保證嚴(yán)格的上電順序,系統(tǒng)使用AS2830-3.3 V可將電壓由5 V轉(zhuǎn)換到3.3 V,使用AS2830-1.5 V可將電壓由5 V轉(zhuǎn)換成1.5 V,IA0505S為穩(wěn)壓正負(fù)雙輸出電源模塊,可將電壓由5 V轉(zhuǎn)換成-5 V,這樣就可以滿足各部分工作需求。
3 系統(tǒng)軟件設(shè)計(jì)
設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)是基于高性能FPGA芯片實(shí)現(xiàn)的,F(xiàn)PGA承擔(dān)了絕大部分的控制和數(shù)據(jù)處理任務(wù),是設(shè)計(jì)的核心內(nèi)容,對FPGA進(jìn)行模塊化設(shè)計(jì),是大型系統(tǒng)設(shè)計(jì)的常用方法。本項(xiàng)目中將FPGA分成USB控制模塊、采樣控制模塊、觸發(fā)脈沖產(chǎn)生模塊和RAM等幾個(gè)主要功能模塊來設(shè)計(jì)。
FPGA模塊的原理如圖3所示。其工作原理為觸發(fā)脈沖產(chǎn)生模塊,根據(jù)設(shè)定的參數(shù)周期性輸出脈沖信號觸發(fā)采樣控制模塊對A/D進(jìn)行采樣。采樣控制模塊在接收到USB控制模塊的啟動信號后,只要接收到觸發(fā)信號就開始采樣數(shù)據(jù),并判斷采樣數(shù)據(jù)是否滿足要求,如果滿足要求則把數(shù)據(jù)存放于RAM中,且在采樣結(jié)束后觸發(fā)USB控制模塊上傳數(shù)據(jù)。
通電后,先對USB芯片初始化,然后如果接收到采樣結(jié)束信號或上傳結(jié)束信號并且RAM在還剩余有數(shù)據(jù)的條件下把RAM數(shù)據(jù)上傳,若接收到下傳信號,則把計(jì)算機(jī)下傳的數(shù)據(jù)按要求分配到各端口。
3.1 采樣控制模塊
采樣控制模塊根據(jù)外部觸發(fā)信號,利用狀態(tài)機(jī)對A/D的采樣行為進(jìn)行控制。共有5個(gè)狀態(tài),每個(gè)狀態(tài)的動作在代碼中進(jìn)行了詳細(xì)描述。
第1個(gè)狀態(tài):空閑狀態(tài)(IDLE),表示程序無任何操作,在等待外部觸發(fā)信號的到來。
第2個(gè)狀態(tài):延時(shí)1(第一個(gè)等待狀態(tài),WAIT1),表示收到觸發(fā)信號后需要禁閉A/D一段預(yù)先設(shè)定的時(shí)間,這段時(shí)間不進(jìn)行任何操作。
第3個(gè)狀態(tài):找門限(門限判決狀態(tài),THDET),在規(guī)定的時(shí)間段時(shí)間里判斷A/D采樣的信號中是否有連續(xù)6個(gè)采樣大于門限的值,如果有,等待一段時(shí)間后把采樣后的數(shù)據(jù)存入緩沖區(qū)以便上傳給上位機(jī)。否則繼續(xù)等待下一個(gè)觸發(fā)信號。
第4個(gè)狀態(tài):延時(shí)2(第二個(gè)等待狀態(tài),WAIT2),表示已經(jīng)滿足采樣要求后再禁閉A/D一段預(yù)先設(shè)定的時(shí)間,這段時(shí)間不進(jìn)行任何操作。然后啟動A/D進(jìn)行采樣。
第5個(gè)狀態(tài):采樣狀態(tài)(SAMPER),啟動A/D進(jìn)行采樣,并存儲數(shù)據(jù)。
此處為米莉(Mealy)型狀態(tài)機(jī),Mealy型狀態(tài)機(jī)的輸出不僅與現(xiàn)態(tài)有關(guān),而且和輸入也有關(guān)。
該狀態(tài)機(jī)采取3段式描述方式:即使用3個(gè)always塊,第1個(gè)always塊采用同步時(shí)序描述狀態(tài)轉(zhuǎn)移;第2個(gè)always塊采用組合邏輯判斷狀態(tài)轉(zhuǎn)移條件,描述狀態(tài)轉(zhuǎn)移規(guī)律;第3個(gè)always塊描述狀態(tài)輸出。
狀態(tài)機(jī)的編碼使用獨(dú)熱碼(One-hot)編碼,獨(dú)熱碼編碼的最大優(yōu)勢在于狀態(tài)比較時(shí)僅需要比較一個(gè)位,從而一定程度上簡化了比較邏輯,減少了毛刺產(chǎn)生的概率。
3.2 USB控制模塊
USB控制模塊對USB接口進(jìn)行控制,包括初始化USB、USB中斷處理、上傳數(shù)據(jù)、下傳數(shù)據(jù)。這里一共有5個(gè)狀態(tài),每個(gè)狀態(tài)的動作在代碼中進(jìn)行了詳細(xì)描述。狀態(tài)機(jī)所有的動作如下:
第1個(gè)狀態(tài):初始化狀態(tài)(init),對USB芯片進(jìn)行初始化。
第2個(gè)狀態(tài):空閑狀態(tài)(idle),表示程序無任何操作,在等待外部的觸發(fā)信號的到來。
第3個(gè)狀態(tài):上傳狀態(tài)(upload),把儲存器中的數(shù)據(jù)上傳給上位機(jī),每次上傳64 Byte。
第4個(gè)狀態(tài):下傳狀態(tài)(dwonload),上位機(jī)的數(shù)據(jù)通過USB下傳,并根據(jù)命令字把數(shù)據(jù)分配到不同的寄存器。
第5個(gè)狀態(tài):中斷處理狀態(tài)(intStatus),對USB的中繼信號進(jìn)行處理,并根據(jù)不同的中斷狀態(tài)字把狀態(tài)機(jī)切換到不同的狀態(tài)。
本模塊的狀態(tài)機(jī)類型為Mealy型狀態(tài)機(jī)、描述方式為3段式描述方式、編碼方式為獨(dú)熱碼編碼,這些與采樣控制模塊中使用的狀態(tài)機(jī)相同。
4 水泥膠結(jié)質(zhì)量的解釋
固井聲幅測井曲線如圖6所示,當(dāng)以“自由套管”處的偏轉(zhuǎn)幅度為A,凡固井聲幅曲線的幅度<20%A者為固井質(zhì)量良好;曲線幅度為20%A~40%A,固井質(zhì)量中等;凡曲線幅度>40%A,為固井質(zhì)量差的井段,即存在水泥串槽混漿。
5 結(jié)束語
系統(tǒng)是一種基于FPGA的高速數(shù)據(jù)采集系統(tǒng),其中包括高速數(shù)據(jù)采集、存儲和傳輸。整個(gè)系統(tǒng)是基于FPGA實(shí)現(xiàn)的,具有其它元器件不可比擬的優(yōu)點(diǎn)。文中給出了基于FPGA的聲幅測井系統(tǒng)的設(shè)計(jì),包括硬件和軟件的設(shè)計(jì),討論了高速數(shù)據(jù)采集系統(tǒng)中FPGA的模塊化設(shè)計(jì)。實(shí)現(xiàn)了將兩種不同的聲幅信號實(shí)時(shí)高速采集,快速穩(wěn)步存儲傳輸給上位機(jī),同時(shí)將儀器所需要的控制命令由主機(jī)下發(fā),通過USB傳輸至FPGA再至各接口。實(shí)際測試表明:該系統(tǒng)不僅縮短了信號傳輸時(shí)間,而且操作極為簡便。使用該系統(tǒng)滿足了信號傳輸?shù)膶?shí)時(shí)性要求,提高了工作效率。