?

隨鉆聲波測井井下算法測試系統數據交換接口設計

2023-12-06 03:01郝小龍高國寅
關鍵詞:聲波測井微控制器上位

王 偉,郝小龍,周 靜,楊 誠,高國寅

(1.西安石油大學 電子工程學院,陜西 西安 710065; 2.西安石油大學 油氣鉆井技術國家工程實驗室井下測控研究室,陜西 西安 710065)

引言

隨著油氣勘探與開發的不斷深入,鉆井工程越來越依賴隨鉆測井的遠探測地質導向功能?;陔S鉆測量、地質導向和旋轉導向的“測定導”一體化技術成為優化井筒軌跡、提高油氣采收率的重要手段[1-2]。

目前,隨鉆電磁波電阻率和方位伽馬測井在地質導向中應用較多[3-5]。隨鉆聲波測井每個測量點的數據量遠大于這兩種技術所對應的數據量,無法實時上傳全部數據,現有儀器多采用“井下存儲數據、起鉆后再讀取和處理”的方式或者只實時上傳滑行波時差信息[6-7]。這導致隨鉆聲波測井數據處理的實時性很差,無法滿足鉆井的地質導向需求,也阻礙了隨鉆聲波“遠探”和“前探”技術的快速發展[8-9]。對數據進行井下處理后只實時上傳處理結果,是一種有效的解決方案。

聲波測井的數據處理算法主要有預處理[10]、滑行波的時差計算[7,11]、反射波的提取和成像[12-14]、方位接收信號的相控增強[15]等算法。這些算法大多數是在PC機的純軟件中進行測后處理,未考慮測井儀器的硬件條件和執行算法所需要的時間與內存,不能作為井下實時處理算法。因此,必須開發井下硬件支持、運行時間短、占用內存小、兼容數據采集的井下處理算法來滿足隨鉆聲波測井地質導向的實時性需求。構建井下算法測試系統并使用已有的測井數據對算法進行驗證是開發各種隨鉆聲波測井井下處理算法的重要途徑。

數據交換接口是井下算法測試系統的重要組成部分,需要完成測試系統上位機中原始測井數據與前端機SRAM中處理數據的格式轉換與雙向快速傳輸兩個功能,其中傳輸速率在20 MB/s以上。本文設計了一種用于井下算法測試系統的數據交換接口,滿足了上述需求。硬件上,前端機以FPGA為控制核心,它與上位機通過USB微控制器連接。軟件上,USB微控制器固件、FPGA和上位機控制軟件三者配合,實現了數據交換接口的通信協議。

1 硬件設計

圖1所示為隨鉆聲波測井井下處理算法測試系統的硬件整體框架。該系統由上位機和前端機組成,二者通過USB總線連接。數據交換接口實現上位機與前端機SRAM中數據的格式轉換與雙向傳輸。上位機實現測井數據格式轉換、USB傳輸控制和數據二次處理等功能。前端機主要由FPGA、SRAM和USB微控制器三部分組成。FPGA作為井下處理算法的執行中心,一方面能夠并行處理多道信號,大大減少算法的執行時間,另一方面與實際測井儀器的采集控制器一致,保證了井下數據處理和采集功能的硬件兼容。高速SRAM掛接在FPGA上,緩存算法運行過程中的大量數據。USB微控制器是數據交換接口的核心硬件,它以從設備的方式與FPGA交換數據,通過USB總線與上位機通信。

USB微控制器選用CY7C68013A,它集成了一個增強型8051微處理器和一個USB 2.0收發器[16]。該芯片以Slave FIFO接口模式掛接在FPGA上,FPGA產生該接口所需的訪問時序[17]。IFCLK為接口時鐘信號,SLCS為片選信號,SLRD和SLWR分別為讀寫使能信號,SLOE為讀寫允許控制信號,FIFOADDR[1:0]為FIFO緩沖區選擇信號,FD[15:0]為16位數據總線。FLAGB和FLAGC分別為所選端點FIFO的空標志和滿標志,PKTEND為FPGA數據包發送完畢標志。

基于該數據交換接口,按照以下流程測試井下處理算法:(1)上位機將原始測井數據轉換為前端機能夠識別的數據文件,通過USB微控制器傳遞,下發至FPGA并存儲在SRAM中;(2)FPGA運行井下處理算法,對SRAM中的測井數據進行處理;(3)上位機讀取處理后的數據并進行二次處理,評價井下處理算法。

2 軟件設計

本工作設計了USB微控制器固件、FPGA和上位機控制軟件三部分,它們共同實現了上位機和前端機之間的數據交換協議。

2.1 USB微控制器固件設計

USB微控制器的固件實現了上位機和FPGA之間雙向數據的中轉功能。它與上位機以低位先發送的方式串行通信,與FPGA以16位數據總線的方式并行通信。圖2為微控制器的工作流程,主要包含以下步驟:

(1)系統初始化。配置CPU時鐘為48 MHz,USB總線為480 Mbps的高速模式。設置外部FIFO接口工作在從模式,并為該接口分配引腳。

(2)配置Slave FIFO端點。設置EP2端點為自動輸出模式,緩存上位機和FPGA之間的下行數據。EP6為自動輸入模式,緩存上行數據。這兩個端點以16位數據總線和批量傳輸的方式工作,均配置為四緩沖方式,每個緩沖區512字節。

(3)中斷配置。使能INT2和INT4中的USB設備掛起請求、接收到設備包令牌、端點FIFO空滿狀態等中斷。

(4)USB微控制器枚舉,與上位機建立連接。在該過程中,上位機獲取微控制器的設備描述符等信息,為設備分配配置值,確認USB接口和斷點的屬性。

(5)等待并分析上位機的事務命令,執行相應的操作。若收到OUT事務,則將下行數據寫入EP2端點并通過FIFO非空狀態通知FPGA讀取數據。若收到IN事務,則將EP6中的上行數據放到USB總線上。這一步驟(圖2中虛線以下的過程)是自動執行的,不需要CPU的參與。與此同時,微控制器及時處理各種中斷請求,保證設備的正常運行。

2.2 FPGA控制軟件設計

本工作在FPGA中設計了USB微控制器和SRAM的訪問模塊,并在此基礎上實現了二者的數據交換。圖3為FPGA內部控制的原理框圖。PLL模塊將24 MHz的輸入時鐘倍頻成48 MHz和96 MHz的時鐘信號,分別提供給Slave FIFO接口控制模塊和FIFO-SRAM轉換模塊。Slave FIFO接口控制模塊實現兩個功能:一是構建USB微控制器內從FIFO的訪問時序,對其進行讀寫操作;二是根據上位機下發的數據包類型,執行下傳數據到SRAM、上傳數據至從FIFO以及數據處理等操作。FIFO-SRAM轉換模塊一方面對SRAM進行讀寫訪問,另一方面與Slave FIFO接口控制模塊交互,實現數據在FPGA內部的下傳和上傳。主FIFO模塊在數據下傳過程中緩存數據,協調讀從FIFO操作和寫SRAM操作之間的速度差異。該FIFO由IP核生成,深度為4 096,數據寬度為16位。在數據上傳過程中,FIFO-SRAM轉換模塊將SRAM中的數據讀出并寫入Slave FIFO接口控制模塊。

圖3 FPGA控制原理示意圖

在Slave FIFO接口控制模塊中,數據上傳和下傳兩個功能的設計方法類似,都是基于狀態機思想。圖4為該模塊下傳功能的狀態機圖,展示了該模塊從USB微控制器的從FIFO中讀取數據并寫入主FIFO的過程。當FPGA上電并完成初始化后(RESET=1′b1),系統從復位狀態(RESET)進入空閑狀態(IDLE),此時從FIFO的讀寫控制信號SLOE、SLRD和SLWR均為不操作時的高電平,主FIFO的寫控制信號FIFO_WR為不操作時的低電平。當從FIFO中有數據需要讀取時(FLAGB=1′b1),系統進入下傳等待狀態(DOWNLOAD_WAIT)并判斷主FIFO是否允許寫入數據。當主FIFO允許寫入時(WR_READY=1′b1),系統進入下傳狀態(DOWNLOAD)。在該狀態,FIFOADR被配置為選擇EP2緩沖區,SLOE和SLRD變為低電平用于連續讀取EP2中的數據,FIFO_WR變為高電平用于寫數據到主FIFO。當從FIFO的數據讀完后(FLAGB = 1′b0),系統返回到IDLE狀態。

圖4 Slave FIFO接口控制模塊數據下傳的狀態機圖

圖5所示為Slave FIFO接口控制模塊數據下傳功能的仿真結果,其中左側虛線以上為該模塊的輸入信號,虛線以下為輸出信號。FDATA為USB微控制器輸出到Slave FIFO接口控制模塊的16位并行數據,FIFO_DATA是Slave FIFO接口控制模塊輸出到主FIFO的數據。時間段1到時間段4分別代表復位、空閑、下傳等待和下傳這4種狀態。仿真結果與預期相符合,表明該設計是正確的。

圖5 Slave FIFO接口控制模塊數據下傳的仿真結果

2.3 上位機控制軟件設計

上位機是井下算法測試系統數據交換的控制中心,圖6所示為該系統的上位機控制軟件。該軟件基于MFC框架開發,實現了文件轉換和文件傳輸兩個功能。

圖6 井下算法測試系統的上位機控制軟件

文件轉換是將不同記錄格式的測井數據轉換為前端機能夠識別和處理的文件[18]。該功能通過文件輸入、輸出和回放3個模塊實現。文件輸入模塊導入原始測井數據并解析出數據對應的測井起止深度與采樣間隔。文件輸出模塊轉換出所需深度、接收站和通道的測井數據。文件回放模塊可以快速查看上述2個模塊中數據文件的質量,回放速度可以設置。

文件傳輸是在正確識別USB設備的基礎上進行文件的下傳與上傳操作。該功能的開發利用了Cypress提供的CyAPI驅動程序庫。USB設備的識別主要判斷設備的初始化是否正常,并在軟件中顯示設備的PID號和VID號。文件下傳是將上位機的測井數據傳送到前端機的SRAM中,而文件上傳與之相反。文件傳輸以512字節的數據包為基本單位,每包中的前511個字節為純數據,最后1個為校驗和字節。在數據傳輸過程中,上位機和FPGA均計算每包數據的校驗和,統計校驗和不一致的數據包個數用于計算誤碼率。文件傳輸完畢后,該軟件顯示平均傳輸速度和誤碼率。若有傳輸錯誤發生,則重新傳輸該文件。

3 測試與分析

本設計對基于USB微控制器的傳輸過程和數據交換接口的整體性能進行了測試。

3.1 USB傳輸過程的測試

在上位機和FPGA之間互相收發已知數據,可以測試系統中USB傳輸過程的準確性和接口速度。圖7所示為下傳測試時上位機端發送和FPGA端接收到的數據。圖的上部為上位機端發送數據包中的前16個字節數據,也即0x0000-0x0007這8個字數據,其中字數據的高字節在前,低字節在后。圖的下部為FPGA中Slave FIFO接口控制模塊接收數據包中的前8個字數據??梢钥闯?FPGA端接收到的數據與上位機端發送的數據一致,說明二者可以進行基于USB微控制器的通信。

圖7 基于USB的下傳測試數據

上位機連續發送512字節(含校驗字節,每個字節占8位)的數據包時,利用示波器可以測試基于USB微控制器的數據包傳輸時序。圖8所示為示波器測試結果,通道1到通道3分別是Slave FIFO接口控制模塊的IFCLK、SLRD以及FLAGB信號,其中IFCLK是48 MHz的時鐘信號。SLRD為低電平而FLAGB為高電平的時間段表示FPGA讀取USB微控制器中從FIFO數據的過程,SLRD為高電平而FLAGB為低電平的時間段表示上位機往從FIFO中寫數據的過程。從圖可以看出,傳輸一個512字節的數據包耗時約為9.75 μs,計算可得本系統中USB接口的數據傳輸速度約為420.10 Mb/s。

圖8 基于USB的數據包傳輸時序

3.2 數據交換接口的整體性能測試

本設計通過傳輸已知大小的數據文件來估算該數據交換接口的上傳和下傳速度,驗證上位機軟件中傳輸速度自動測試功能的可靠性。上位機下傳1 GB的數據時,秒表記錄的耗時為24.69 s,估算的下傳速度為41.47 MB/s。前端機上傳1 GB的數據通過連續64次讀取SRAM中的全部數據并上傳來實現。該過程的耗時為30.44 s,上傳速度的估算值為33.64 MB/s。測試中,上位機軟件測量的下傳和上傳速度分別為43.04 MB/s和34.78 MB/s。這與估算值接近,說明該數據交換接口的傳輸速度滿足設計要求且上位機軟件的傳輸速度測試功能正常。在此基礎上,使用實際聲波測井數據對該接口進行了整體測試。結果表明,該數據交換接口的上位機控制軟件能夠實現測井數據的格式轉換,上位機和前端機SRAM之間能夠進行雙向快速傳輸,且傳輸速度和所需時間均與預期相符合。

4 結 論

本文在開發FPGA、USB微控制器和上位機軟硬件的基礎上,初步構建了一種隨鉆聲波測井井下算法測試系統,設計了前端機SRAM與上位機之間的數據交換接口,實現了測井數據的格式轉換、上位機和前端機的雙向快速傳輸等功能,滿足了井下處理算法測試系統的接口需求。

該數據交換接口能夠完善隨鉆聲波測井井下算法測試系統,提高開發井下實時處理算法的效率,有助于推動隨鉆聲波測井地質導向技術的發展。

猜你喜歡
聲波測井微控制器上位
基于DDS的正交偶極子聲波測井儀快檢裝置研究
聲波測井圓環陣指向性設計
特斯拉 風云之老阿姨上位
物聯網技術在微控制器實驗教學中的應用
關于聲波測井技術的研究進展
“三扶”齊上位 決戰必打贏
基于ZigBee和VC上位機的教室智能監測管理系統
以新思路促推現代農業上位
多極子陣列聲波測井在煤層氣勘探開發中的應用
Atmel針對新一代物聯網應用發布全新32位微控制器
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合