超聲波隨鉆井徑檢測(cè)儀的數(shù)據(jù)采集與傳輸
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
在油、氣開(kāi)發(fā)過(guò)程中,測(cè)井是必不可少的。在開(kāi)發(fā)初期,有勘探測(cè)井,在開(kāi)發(fā)中后期,則有生產(chǎn)測(cè)井。傳統(tǒng)的電纜測(cè)井存在著種種難以解決的問(wèn)題,如在某些大斜度井或特殊地質(zhì)環(huán)境(膨脹粘土或高壓地層)鉆井時(shí),電纜測(cè)井就無(wú)法進(jìn)行。除此之外,電纜測(cè)井是在鉆井完成之后,用電纜將儀器放入井中進(jìn)行測(cè)量,鉆井過(guò)程中帶出的鉆碎的巖屑和鉆井液會(huì)侵入地層,這樣測(cè)量的數(shù)據(jù)與真實(shí)的數(shù)據(jù)有一定的差別。因此,隨鉆測(cè)井技術(shù)就應(yīng)運(yùn)而生,而無(wú)論是在電纜測(cè)井還是隨鉆測(cè)井中,數(shù)據(jù)采集和傳輸都是必不可少的。
本文所涉及的超聲波隨鉆測(cè)井徑的基本原理是:沿著油井的徑向向井壁垂直發(fā)射超聲波,當(dāng)發(fā)出的超聲波遇到井壁時(shí)發(fā)生反射,反射的回波被換能器接收。這樣,根據(jù)超聲換能器發(fā)出超聲波到反射回波被換能器接收所經(jīng)歷的時(shí)間t和已知的超聲波在泥漿中的速度V就可以計(jì)算井徑的長(zhǎng)度。本文運(yùn)用AD對(duì)回波進(jìn)行采集,運(yùn)用FPGA對(duì)AD轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行緩存和傳輸,F(xiàn)PGA為AD提供片選信號(hào)和轉(zhuǎn)換時(shí)鐘,轉(zhuǎn)換之后的數(shù)字量再給FPGA進(jìn)行串轉(zhuǎn)并.FIFO存儲(chǔ)、串口發(fā)送。在本文中,F(xiàn)PGA采用的是Actel公司的APA075,開(kāi)發(fā)平臺(tái)采用的是Libero8.5。
1系統(tǒng)的總體設(shè)計(jì)
本系統(tǒng)的總體設(shè)計(jì)思想是:FPGA為AD提供片選及時(shí)鐘等控制信號(hào),AD將數(shù)字化后的數(shù)據(jù)送給FPGA,并在FPGA中進(jìn)行串并轉(zhuǎn)換、緩存等一系列數(shù)據(jù)處理后,再通過(guò)MAX232完成TTL電平到RS-232電平的轉(zhuǎn)換,然后在PC機(jī)上運(yùn)用串口調(diào)試小助手顯示數(shù)據(jù)。通過(guò)分析串口調(diào)試小助手上顯示的數(shù)據(jù)來(lái)判斷是否正確,從而驗(yàn)證系統(tǒng)設(shè)計(jì)的合理性。其系統(tǒng)框圖如圖1所示。
2FPGA主要功能模塊的設(shè)計(jì)
在本系統(tǒng)中,F(xiàn)PGA的功能模塊主要包括AD控制模塊、FIFO設(shè)計(jì)模塊和串口數(shù)據(jù)發(fā)送模塊三部分。FPGA系統(tǒng)與外圍電路的信息交換主要由AD_out、clk、SCLK、CS、TXD等信號(hào)線完成。其中,AD_out負(fù)責(zé)將AD轉(zhuǎn)換后的數(shù)字信號(hào)送入FPGA;CS和SCLK是FPGA為AD提供的片選信號(hào)和時(shí)鐘信號(hào),用來(lái)控制AD的轉(zhuǎn)換;TXD是FPGA輸出數(shù)據(jù)的通道;clk是FPGA的時(shí)鐘信號(hào)。系統(tǒng)時(shí)鐘采用50MHz,其FPGA功能模塊電路框圖如圖2所示。
2.1AD控制模塊的設(shè)計(jì)與實(shí)現(xiàn)
AD控制模塊要實(shí)現(xiàn)的功能是提供AD轉(zhuǎn)換的片選信號(hào)和AD轉(zhuǎn)換時(shí)鐘,以及FIFO的寫(xiě)時(shí)鐘、FIFO要存儲(chǔ)的16位并行數(shù)據(jù),接收AD轉(zhuǎn)換的串行數(shù)據(jù)并實(shí)現(xiàn)串轉(zhuǎn)并,同時(shí)提供換能器的激勵(lì)信號(hào)。本設(shè)計(jì)中,AD轉(zhuǎn)換芯片采用的是ADI公司的12位AD7352,該芯片具有耐高溫、功耗低等優(yōu)點(diǎn)。片選信號(hào)CS的周期決定了AD采樣的速率,F(xiàn)PGA為AD提供的轉(zhuǎn)換時(shí)鐘SCLK的頻率大小決定了AD的轉(zhuǎn)換時(shí)間,正常工作時(shí),完成一個(gè)數(shù)據(jù)的轉(zhuǎn)換至少需要14個(gè)時(shí)鐘下降沿。在本設(shè)計(jì)中,綜合考慮各方面的因素,AD采樣頻率設(shè)計(jì)為2.5MHz,完成一個(gè)模擬量的轉(zhuǎn)換采用18個(gè)轉(zhuǎn)換時(shí)鐘,這樣,AD的轉(zhuǎn)換時(shí)鐘SCLK的頻率為45MHz,該時(shí)鐘由FPGA中鎖相環(huán)對(duì)50MHz的系統(tǒng)時(shí)鐘分頻得到。片選信號(hào)CS高低電平的控制采用計(jì)數(shù)器對(duì)與轉(zhuǎn)換時(shí)鐘相同的時(shí)鐘計(jì)數(shù)來(lái)實(shí)現(xiàn),每當(dāng)該時(shí)鐘的上升沿到來(lái)時(shí),計(jì)數(shù)器加1,計(jì)數(shù)器加到17后,又從零開(kāi)始循環(huán)計(jì)數(shù),當(dāng)計(jì)數(shù)器的值小于14時(shí),將片選信號(hào)CS置低,否則置高。片選信號(hào)與轉(zhuǎn)換時(shí)鐘的時(shí)序如圖3所示。
在本部分設(shè)計(jì)中,考慮到實(shí)際應(yīng)用中需要對(duì)四個(gè)換能器接收的數(shù)據(jù)進(jìn)行采集,為了區(qū)別各個(gè)換能器的數(shù)據(jù),設(shè)計(jì)時(shí)在串轉(zhuǎn)并的過(guò)程中人為添加了四位數(shù)據(jù)作為標(biāo)志位。為了使AD的采樣率、FPGA中串轉(zhuǎn)并的速率以及FIFO的寫(xiě)速率保持一致,F(xiàn)IFO的寫(xiě)時(shí)鐘采用一個(gè)計(jì)數(shù)器對(duì)AD的轉(zhuǎn)換時(shí)鐘計(jì)數(shù)獲得。每當(dāng)轉(zhuǎn)換時(shí)鐘SCLK的下降沿到來(lái)時(shí)計(jì)數(shù)器加1,計(jì)數(shù)器從零到13循環(huán)計(jì)數(shù),計(jì)數(shù)器每循環(huán)一個(gè)周期就提供一個(gè)寫(xiě)時(shí)鐘上升沿(寫(xiě)時(shí)鐘上升沿有效),使FIFO完成一次寫(xiě)操作。在AD正常工作時(shí),第一個(gè)時(shí)鐘下降沿會(huì)輸出兩個(gè)前導(dǎo)零,然后從第二個(gè)時(shí)鐘下降沿開(kāi)始依次從高位到低位輸出12位有效的數(shù)據(jù),并在第13個(gè)下降沿完成最后一位數(shù)據(jù)的輸出,最后在之后的上升沿返回跟蹤模式。因此,在串轉(zhuǎn)并時(shí),要從第二個(gè)時(shí)鐘下降沿開(kāi)始。
2.2FIFO的設(shè)計(jì)與實(shí)現(xiàn)
FIFO的主要功能是實(shí)現(xiàn)不同時(shí)鐘域之間的數(shù)據(jù)傳輸。
FIFO分為同步FIFO和異步FIFO,本設(shè)計(jì)中采用的是異步FIFO,涉及到的主要參數(shù)包括FIFO的深度,FIFO的讀、寫(xiě)時(shí)鐘,F(xiàn)IFO存儲(chǔ)的數(shù)據(jù)的寬度和讀、寫(xiě)指針等。考慮到AD采樣速率為2.5MHz,每次開(kāi)始轉(zhuǎn)換后持續(xù)的時(shí)間大約為600ns,因此,F(xiàn)IFO需要緩存的數(shù)據(jù)大約為1500個(gè),Aetel公司的APA075中有12個(gè)256X9的RAM空間,最多能緩存1536個(gè)16位的數(shù)據(jù)。為了保險(xiǎn)起見(jiàn),FIFO的深度設(shè)計(jì)成1536,根據(jù)實(shí)際應(yīng)用的需求,F(xiàn)IFO的寬度設(shè)計(jì)成16位,寫(xiě)時(shí)鐘頻率和AD采樣頻率保持一致,讀時(shí)鐘頻率和串口傳輸速率保持一致。同時(shí),為了防止數(shù)據(jù)溢出或讀取無(wú)效的數(shù)據(jù),FIFO的設(shè)計(jì)采用了空滿標(biāo)志位。當(dāng)FIFO寫(xiě)滿時(shí),滿標(biāo)志位置1,禁止繼續(xù)向FIFO中寫(xiě)入數(shù)據(jù);當(dāng)FIFO為空時(shí),禁止從FIFO中繼續(xù)讀取數(shù)據(jù)。空滿標(biāo)志的準(zhǔn)確判斷是FIFO設(shè)計(jì)的一大難點(diǎn),本設(shè)計(jì)中采用了列舉的算法實(shí)現(xiàn)空滿標(biāo)志的判斷。FIFO寫(xiě)滿有以下兩種情況:第一,寫(xiě)指針加1等于讀指針,并且寫(xiě)使能有效,再繼續(xù)寫(xiě)操作時(shí),FIFO就為滿,滿標(biāo)志位置1;第二,寫(xiě)指針加1等于FIFO的深度并且讀指針為零,再繼續(xù)寫(xiě)操作時(shí),FIFO就為滿,滿標(biāo)志位置1。與滿標(biāo)志情況類(lèi)似,F(xiàn)IFO讀空也有以下兩種情況:第一,讀指針加1等于寫(xiě)指針,再繼續(xù)讀操作時(shí),FIFO就為空,空標(biāo)志位置1;第二,讀指針加1等于FIFO的深度并且寫(xiě)指針為零,再繼續(xù)讀操作時(shí),FIFO就為空,這時(shí),空標(biāo)志位置1。
2.3串口發(fā)送的設(shè)計(jì)與實(shí)現(xiàn)
串口發(fā)送模塊負(fù)責(zé)把處理后的數(shù)據(jù)從FIFO中讀出,將其按通信協(xié)議傳送給MAX232完成電平轉(zhuǎn)換后送給PC機(jī)。發(fā)送數(shù)據(jù)采用的波特率是9600,數(shù)據(jù)幀格式如圖4所示。
本設(shè)計(jì)的數(shù)據(jù)幀格式為1位起始位,8位數(shù)據(jù)位,1位停止位,沒(méi)有奇偶校驗(yàn)位,本設(shè)計(jì)采用連續(xù)兩次發(fā)送來(lái)解決發(fā)送16位數(shù)據(jù)的問(wèn)題。為了保持讀FIFO的速率與發(fā)送數(shù)據(jù)的速率一致,F(xiàn)IFO的讀時(shí)鐘根據(jù)串口發(fā)送一個(gè)完整數(shù)據(jù)的速度來(lái)確定。
3測(cè)試結(jié)果
在實(shí)驗(yàn)室自制的最小系統(tǒng)板上,模擬換能器給AD提供一個(gè)250kHz的正弦信號(hào),在上位機(jī)串口調(diào)試小助手上接收到的數(shù)據(jù)運(yùn)用Matlab畫(huà)出的圖形如圖5所示。圖5中,縱坐標(biāo)是幅值,橫坐標(biāo)是所取點(diǎn)的個(gè)數(shù)。
4結(jié)語(yǔ)
可以看出,本設(shè)計(jì)中每個(gè)周期的正弦波包含有10個(gè)點(diǎn)。由于我們輸入的是250kHz的正弦波,AD采樣頻率是2.5MHz,通過(guò)理論計(jì)算,每個(gè)周期應(yīng)該包含的點(diǎn)數(shù)為2.5MHz/250kHz=10,可見(jiàn)設(shè)計(jì)與實(shí)際測(cè)試的結(jié)果相符。另外,從測(cè)試結(jié)果圖中還可以看出,其幅值與所給的幅值也相符,測(cè)試結(jié)果也表明了該設(shè)計(jì)的合理性。
20211017_616c2a272c84d__超聲波隨鉆井徑檢測(cè)儀的數(shù)據(jù)采集與傳輸