趙 斌,曹旭東,黃 華,王志博
(1.中原油田分公司石油工程技術研究院,河南濮陽 457000;2.中國石油大學(北京)信息科學與工程學院,北京 102249)
過套管地層電阻率測井儀系統(tǒng)通過測量套管外地層的電阻率能夠快速判斷油層的動用程度,評價油層水淹程度,是分析確定剩余油分布的卓有成效的技術方法[1-2]。
測井過程中儀器的主要工作內容包括過套管電阻率測井工作、自然伽馬數據的采集和回傳、儀器狀態(tài)反饋和儀器工作環(huán)境信息的采集回傳等。
研制的過套管電阻率測井儀器通信系統(tǒng)由DSP處理器、曼碼信號濾波及調制電路單元、耦合變壓器3 部分組成[3]。
通過7 芯電纜接收井下上傳數據,通過變壓器藕合方式將傳輸數據進行分離,通信線上的直流信號與曼碼信號被分成兩路,曼碼信號通過硬件電路濾波調制,然后送到DSP 處理器進行編碼解析,實現數據通信功能。
系統(tǒng)選用TI 公司最新推出的TMS320F28335芯片,其時鐘頻率能達到150 MHz,同時兼?zhèn)鋽底中盘柼幚砟芰Α⑹录芾砟芰颓度胧娇刂乒δ堋?/p>
系統(tǒng)設計結構圖如圖1 所示。由DSP 芯片構成主控電路,用于執(zhí)行通訊協(xié)議,接收總線上的曼碼數據,按照其特定的格式發(fā)送曼徹斯特II 型編碼數據,從而實現總線和終端的連接及控制測井儀器通訊系統(tǒng)的地面系統(tǒng)。其中,曼徹斯特碼編解碼器采用DSP 片上定時模塊以及邊沿捕捉模塊實現,用于完成數據的發(fā)送和接收、曼碼的調制與解調、數據的串并和并串轉換、同步頭的產生與檢測、地址識別以及錯誤檢測等功能。
圖1 系統(tǒng)設計方案
調制解調模塊由濾波整形電路以及發(fā)送調制電路構成。在曼碼接收過程中,總線上傳輸的差分曼碼通過電壓耦合后送到濾波電路,去除掉干擾尖峰脈沖之后再輸入到ADM485 芯片的總線引腳上完成信號電壓的比較,電壓比較器輸出幅度為5 V 和0 V 的單極性的曼徹斯特編碼信號,直接送到DSP 的邊沿捕捉引腳上進行解碼[4]。在曼碼發(fā)送過程中,發(fā)送調制電路從DSP 同時接收兩種編碼信號,兩信號構成差分的曼徹斯特串碼,其差分信號引入到功率場效應管的柵極來控制通訊變壓器的編碼部分的中斷與導通,通過電壓器耦合,在總線上產生±12 V 差分曼徹斯特碼,傳輸到井下儀器。
基于MIL-STD-1553B 編碼格式的Manchester 碼其信息幀格式,每位占用時間10 μs,由20 位組成。其0~2 位為同步字頭,用于表示幀的類型,也標識每一幀的開始。如果前一個半位為高電平,后一個半位為低電平時表示此幀為命令/狀態(tài)字,前一個半位為低電平,后一個半位為高電平時表示為數據字,解碼器也可利用同步字頭提取位同步信息[5-6]。3~18 位為待編碼數據位,第19 位為數據校驗位,其作用是對3~18 位進行數據校驗。
在曼徹斯特編碼與解碼的過程中,有如下幾個模塊:編解碼時鐘CLK、數據移位寄存器Data、位計數寄存器Count、位分頻計數器Feq、奇偶檢驗位P。CLK 為曼碼的編解碼時鐘,時鐘速率為其數據位傳輸速率的10 倍,由于DSP 系統(tǒng)時鐘為150 MHz,而曼徹斯特碼的編碼速率為100 kbit/s,所以可用定時器對DSP 系統(tǒng)時鐘進行150 倍分頻得到。Data 為曼碼編碼及解碼的緩存寄存器,所要編碼的數據以及解碼得到的數據都暫存在其中。Count 為數據位計數器,按照MIL-STD-1553B 編碼格式,每個信息幀包含20 個數據位,在數據編碼及解碼過程中,利用它來指示有多少位數據尚未編碼及解碼。Feq 為位分頻計數器,對編解碼時鐘計數,計數區(qū)間為0~9,計數值為10 時,則溢出清零重新開始計數,可用前5 個計數周期表示數據位的前0.5 bit,后5 個計數周期表示數據位的后0.5 bit。奇偶檢驗位:用于對輸入的16 位數據進行奇校驗,生成校驗位。
2.1.1 基于DSP的曼碼編碼方案
曼徹斯特碼編碼的過程是指DSP 編碼模塊將DSP 程序模塊接收到的數據以曼徹斯特II 型編碼串行數據的格式,以100 kb/s 的速率發(fā)送到總線。編碼模塊有同步頭控制、同步數據編碼、奇偶位產生等功能[7]。
1)幀的同步頭編碼
根據總線協(xié)議,同步位的寬度為3 個數據位,如果信息幀為命令字,則前一個半位波形為正,后一個半位波形為負,如果信息幀為數據字,則與命令字波形相反,所以幀的同步頭占用3 位數據位,共30 個CLK 周期[8]。前15 個時鐘周期為1(或0),后15 個時鐘周期為0(或1),位計數器相對應的值為0~2。
2)幀的數據位編碼
同步頭之后就是數據位編碼,每個數據碼元間隔的中點以數據‘1’和‘0’分別表示下降沿和上升沿。數據移位寄存器的最低位表示當前待編碼數據位,在位計數寄存器遞增時右移一位。當分頻計數器Feq 值為零時,位計數寄存器遞增,讀入數據移位寄存器的最低位值,輸出相應的波形,當分頻計數器Feq 遞增到5 時對輸出波形進行跳變,以產生相對應的跳變沿,分頻計數器Feq 遞增到10 完成一個數據位的編碼,進入下一位編碼循環(huán)。位計數器相對應的值為:3~18。
3)奇偶校驗位編碼
信息幀的第19 位是奇偶校驗位。在數據編碼完成后,奇偶校驗位已經根據移位寄存器的18 次移位數據計算出校驗結果,根據校驗結果輸出相應的編碼信息[9-10]。
2.1.2 曼碼解碼實現方案
曼徹斯特碼解碼的過程是DSP 解碼模塊接收數據時,將接收的曼碼型串行數據,實現同步頭檢出等,同時將處理后的數據送入DSP 程序模塊進行分析。接收數據通過采樣判定完成,即首先檢測到電平極性的變化,再用計數器進行計數,在同一極性的情況下,計數到一個設定的值時確定半位曼碼的極性,不同極性的曼碼組合形成完整的信息幀。
1)幀的同步頭的監(jiān)測
同步頭包括3 位數據位,前1.5 位與后1.5 位極性相反。在實際的波形監(jiān)測中得到以下6 種信息幀的同步頭,如圖2 所示。
圖2 曼切斯特編碼信息幀同步頭波形圖
圖中的①~③表示命令幀的3 種同步頭,④~⑥表示數據幀的3 種同步頭。在波形監(jiān)測中,如果對③和⑥同步頭不處理好,就會丟失信息,也有可能造成對信息幀類型判斷失誤[11]。
根據曼徹斯特碼的碼型特征可知,偵測同步頭的關鍵是如何識別曼徹斯特碼的前1.5 位和后1.5 反極性位?,F以圖2 的③為例,介紹問題的解決方法。
第一步,當監(jiān)測到圖中的1、2、3 半位相同極性的曼碼以及4、5、6 半位反極性碼元時,初步判定它們?yōu)閹筋^的前1.5 位和后1.5 位,如果緊跟的兩個半位曼碼極性不同,則說明其后面緊隨的是數據碼,符合曼碼編碼協(xié)議,可以進行數據碼的接收。但如果緊跟的兩個半位曼碼極性相同,那么就不符合曼碼編碼的規(guī)則了,如圖3 中的第7、8 半位,一些編碼芯片對其檢測產生錯誤,造成數據丟失或數據錯亂。在本設計中,遇到7、8 半位相同的情況時,丟棄初始判斷的前1.5 位,把第4、5、6 半位重新設置為前1.5 位同步頭[12]。
圖3 信息幀同步頭分解圖
第二步,在7、8 半位相同的情況下,繼續(xù)對第9半位進行檢測。如果其極性位與7、8 極性不同,則停止此次判斷,重新開始幀同步頭的檢測。如果7、8、9 半位極性相同,則4、5、6、7、8、9 又組成了一個幀同步頭,回到了第一步開始情況。再次檢測10、11兩個半位的極性,如果極性相反的話進入數據碼接收,如果相同的話繼續(xù)以第二步方法檢測。
第三步,在運行完以上兩步之后,得到了信息幀的一個同步頭,其后緊跟的是數據碼。根據同步頭中前1.5 位與后1.5 位的極性,可以確定信息幀的類型。
2)信息幀數據位的接收
在同步頭檢測到之后,緊接的就是數據碼,任何兩位數據的組合結果只有4 種:00、01、10、11;從波形上看,它會出現4 種情況,如圖4 所示。
圖4 總線數據譯碼波形圖
由圖4 可以看出,此時只可能有兩種的波形寬度一個位和半個位寬度,由于編解碼時鐘CLK 是數據位編碼時鐘的10 倍,所以相應分頻計數器Feq 的計數值的范圍是4~5 和8~9 之間。所以,只要得到的數據位計數值滿足以上兩個寬度范圍,則認為數據格式正確,接收的數據有效。根據前一時鐘的碼元信息以及現時刻分頻計數器值,可得到即時所接收到的碼元極性,完成了數據同步接收[13]。
3)數據校驗
對每一幀數據,在接收完16 位數據之后,最后一位為奇偶校驗值,如果數據接收過程沒有出現差錯,則數據的奇偶校驗值與接收到的值相對應[14]。
在數據傳輸的過程中,可通過循環(huán)冗余校驗算法,對串行數據進行差錯檢驗,確保數據傳輸的可靠性。其主要有兩種校驗方法,按位計算法和查表法。按位計算CRC 雖然代碼簡單,但占用處理器資源。而使用查表法,可生成16 位CRC 校驗碼表,數據運算量小、速度快。
該設計在DSP 芯片具有足夠的內存空間情況下,采用查表法來實現循環(huán)冗余碼校驗,以優(yōu)化微處理芯片資源配置[15]。以下兩組數據就是數據校驗完的結果,前12 個字節(jié)是數據,后面緊跟的2 個字節(jié)為校驗碼:0xAA 0xFE 0x03 0x55 0x40 0x00 0xE9 0x01 0x00 0x33 0x5A 0xA0 0x15 0x25;0xAA 0xFE 0x03 0x56 0x80 0x00 0x0F 0x02 0x00 0x39 0x0A 0x50 0x6A 0xCD。
曼碼編碼實現采用軟硬件結合方式,DSP 通過對AD847兩個輸入端邏輯電平的控制,實現對信號的編碼。曼碼信號經AD847 幅度放大[16],TD823 功率放大后發(fā)送到電纜上。其具體實現電路如圖5所示。
圖5 曼碼編碼電路
曼碼解碼實現也同樣采用軟硬件方式,電纜上的曼碼信號經一階微分電路,再經放大電路幅度放大,最后經LM193 比較電路整形產生一系列脈寬不等的曼碼脈沖信號。單片機捕捉脈沖信號后經處理算法解碼出數據,實現對曼碼信號的解碼。具體實現電路如圖6 所示。
上位機控制軟件通過總線發(fā)送指令到上遙測板,其長度為2 個字。上遙測板轉發(fā)指令到電纜2、3芯上。
圖6 曼碼解碼電路
下遙測板感應到指令信號,解碼指令,正確解析指令之后上傳數據幀到電纜2、3 芯上。上遙測板感應到數據信號,正確解碼數據之后上傳到計算機。
根據曼碼波形分析,上遙測板通訊變壓器2 腳與3 腳相連,下遙測板通訊變壓器2 腳與3 腳斷開的情況下,上通訊變壓器的1 腳和4 腳的差分信號如圖7 所示。
圖7 井上遙測板通訊變壓器1與4腳指令感應差分波形
通過上面的波形不難看出,利用曼碼編碼繞組來獲取到導線上的曼碼信號盡管波形衰減嚴重,可是畸變的情況基本能夠接納,通過下遙測板上通信變壓器接受繞組獲取的信號能夠順利解碼。這就說明:只要上下遙測板通訊變壓器2、3 腳相連接,則整個通訊握手協(xié)議實現,能夠完成整個采集周期數據傳輸。
從DSP 的編碼信號開始,到發(fā)送端信號,再到電纜的兩端,最后接收端信號和輸入DSP 的解碼信號。數字編碼信號如圖8 所示,電纜一端2、3 芯接收曼碼差分信號測試如圖9 所示,經過濾波調整后數字解碼輸入信號如圖10 所示。
圖8 數字編碼信號
由此看出,通訊系統(tǒng)的效果得以展現,Manchester 碼編碼解碼順利進行,可以當場順利地使用。
圖9 電纜一端23芯接收曼碼差分信號
圖10 數字解碼輸入信號
基于DSP 的過套管曼徹斯特編碼通信系統(tǒng)曼徹斯特編碼以及解碼是通過軟件來完成的。編碼是通過GPIO 復用口輸出編碼控制信號,配合IRF7341 驅動芯片和耦合變壓器實現的;而解碼是通過CAP 輸入信號,進行邊沿捕捉和定時器中斷觸發(fā)的方式實現的。由于井下和地面間的長距離輸送,設計中通過變壓器耦合的方式,實現信號的差分傳輸功能,減輕了噪聲干擾及誤差,同時接收一方使用收發(fā)芯片ADM485,把該差分信號轉換為單路NRZ 信號,最后輸入GPIO 復用口。
通過實驗檢驗表明,該方案建立的通訊系統(tǒng)工作擁有良好的平穩(wěn)性,值得我們進行更加深入的研究及應用。