李宏芳,雙 凱,黃 菲
(中國石油大學(xué) 地球物理與信息工程學(xué)院,北京 102249)
測井是油氣勘探開發(fā)中的重要環(huán)節(jié)。測井傳輸系統(tǒng)在石油測井中扮演著關(guān)鍵角色。測井傳輸系統(tǒng)將測井過程中產(chǎn)生的大量數(shù)據(jù)傳輸?shù)降孛嫦到y(tǒng)以供實時有效地進行地層評價,同時將地面系統(tǒng)的控制指令傳送到井下系統(tǒng)來控制井下儀器的工作。所以,測井傳輸性能是測井質(zhì)量和效率的保證。隨著含油氣地質(zhì)條件復(fù)雜程度的增加以及井下高溫等惡劣環(huán)境的影響,使得測井傳輸系統(tǒng)存在信號衰減、傳輸速度慢、信號失真等問題。而在石油測井向超深井的發(fā)展過程中,長距離的傳輸也必然會造成信號的衰減,且其相互間的干擾也將加重。這就意味著長距離傳輸將成為測井技術(shù)的難點。
文中分析了中繼傳輸系統(tǒng)的需求,在FPGA上實現(xiàn)了曼徹斯特編解碼算法、中繼接收與發(fā)送算法,并最終完成了對整個中繼模塊的設(shè)計。
測井傳輸中繼模型如圖1所示,A,B分別代表測井傳輸?shù)木孪到y(tǒng)和地面系統(tǒng),即中繼系統(tǒng)中的兩個源節(jié)點,N是一個中繼節(jié)點[1]。當(dāng)A與B之間的通信距離超過其各自的接收范圍或是因距離過長所引起的傳輸損耗導(dǎo)致接收端無法恢復(fù)原始信號時,就需要加入中繼輔助完成通信。中繼N處于A、B節(jié)點之間且在各自傳輸范圍內(nèi)。因此,中繼、碼節(jié)點N可協(xié)助A和B來完成各自信息的傳送與接收。考慮到系統(tǒng)的實際應(yīng)用需求,假設(shè)3個節(jié)點均為半雙工,即每個節(jié)點在同一時間內(nèi)不能同時發(fā)送和接收信息。
圖1 中繼模型圖Fig.1 The relay graph model
A和B是需傳遞信息的發(fā)送端和接收端,但其之間由于距離過長使得直接通信難以實現(xiàn),故必須在A和B傳輸中引入中繼節(jié)點N作為中轉(zhuǎn)來實現(xiàn)傳輸。中繼節(jié)點在整個測井系統(tǒng)中的具體傳輸過程如下:將發(fā)送節(jié)點A/B所發(fā)送的信號先傳遞至中繼節(jié)點N,中繼節(jié)點N將接收到的信號進行處理后再發(fā)給接收節(jié)點B/A。在實際應(yīng)用過程中,中繼節(jié)點可完成不同的功能,如“放大-轉(zhuǎn)發(fā)”或“解碼-轉(zhuǎn)發(fā)”[1]。本文主要設(shè)計的是“解碼-轉(zhuǎn)發(fā)”功能。傳輸中繼在系統(tǒng)中完成的是接收其他設(shè)備發(fā)送出的編碼信號,并經(jīng)處理后轉(zhuǎn)發(fā)出去。中繼節(jié)點采用半雙工通信方式,即每個節(jié)點均具有接收與發(fā)送功能,卻并不同時進行數(shù)據(jù)的接收及發(fā)送。
在測井信息傳輸過程當(dāng)中,傳輸?shù)街欣^的信號由于受到信道特性的影響,會出現(xiàn)不同程度的畸變,且會參雜一定量的噪聲。因此,在測井信號進入傳輸前,需根據(jù)輸入信號的特性進行硬件濾波和信號調(diào)理操作[2]。整個傳輸中繼的設(shè)計如圖2所示。
圖2 中繼硬件框圖Fig.2 Relay hardware block diagram
中繼前端模塊:是由兩部分構(gòu)成的,一個是作用于中繼發(fā)送,而另一個則作用于中繼接收。作用于中繼接收部分主要完成對電纜傳輸信號的放大整形,使其適合通過FPGA進行處理轉(zhuǎn)發(fā)[2];中繼接收前端模塊由平衡-非平衡模塊和電平匹配模塊兩部分構(gòu)成。平衡-非平衡模塊將在電纜上傳輸?shù)男盘栟D(zhuǎn)換成非平衡的方式,同時此模塊也具備放大信號和減少干擾的功能。其可將信號轉(zhuǎn)變成非平衡的方式并通過電平匹配電路的整形作用,轉(zhuǎn)化為方波信號,供中繼功能模塊處理。FPGA處理完畢后所輸出的信號為方波,但由于方波的頻帶范圍較大,將其直接在電纜上進行傳輸會造成高頻與低頻信號的同時輸送,因高低頻信號的傳輸速率不同,造成到達下一個中繼不能接收信號的所有分量出現(xiàn)失真。此外,高頻信號在傳輸信道中進行傳輸還會產(chǎn)生嚴重的衰減,因此需要在信號進入信道傳輸前做濾波處理,選擇低通濾波器將FPGA輸出信號中高頻的部分濾掉且縮小信號的頻帶寬度,使得在電纜中傳輸?shù)男盘栴l帶能被控制在較狹窄的范圍內(nèi),故需在前端添加濾波和放大電路。濾波采用有源濾波,其是由低通、帶通組成的縱向濾波器。濾波器使用的運放為LT1355,這是由凌特推出的一款雙路運算放大器,帶寬12 MHz,+/-12 V 供電。
經(jīng)濾波后的波形,需經(jīng)過比較電路,整形變成規(guī)則的矩形波形,由于比較器輸出的波形幅度為 0~5 V,而FPGA輸入的電平幅度為0~3.3 V,超出輸入范圍,會造成FPGA芯片燒壞。因此,需進行電平匹配。經(jīng)FPGA芯片后,將+5 V轉(zhuǎn)變成+3.3 V的電平。并將FPGA_IO信號接在FPGA的引腳上。
FPGA中繼功能模塊:其為整個中繼的核心模塊,本文利用硬件描述語言(Verilog HDL)和Quartus II軟件在FPGA器件上實現(xiàn)中繼模塊的各項功能,同時考慮到其在實際應(yīng)用中的穩(wěn)定、毛刺、同步和干擾等問題,詳細的設(shè)計思想將在下文介紹。
附件模塊:附件模塊由3部分構(gòu)成:時鐘、存儲和電源。從中繼的穩(wěn)定運行角度來看,以上3部分均有著重要作用。時鐘模塊為FPGA提供工作時鐘保證各模塊工作的同步;存儲模塊是FPGA的代碼存放地;電源則為其提供動力。因通常在開發(fā)板上均會集成以上附件模塊,故在此不做闡述。
整個中繼功能是通過各個子模塊綜合實現(xiàn)的,需注意的是傳輸鏈路采用半雙工方式。因此要求傳輸中繼為雙通道,其中包括兩套功能完全相同的模塊,分別用于各自方向上數(shù)據(jù)的轉(zhuǎn)發(fā)。如圖3所示,主要的功能模塊有控制模塊、同步檢測模塊、譯碼模塊、同步再生模塊和發(fā)送模塊。各部分的作用說明如下:
1)控制模塊是整個中繼的中央處理器,控制著時鐘、發(fā)送、檢測等功能實現(xiàn),確保中繼能準確高效地運行。
2)同步檢測模塊完成對進入中繼的數(shù)據(jù)幀(或控制幀)的同步位檢測與識別,并將同步信息后面的數(shù)據(jù)信息發(fā)送至譯碼模塊進行處理。
3)譯碼模塊完成中繼的接收數(shù)據(jù)譯碼工作,同時按照協(xié)議規(guī)定的譯碼算法還原編碼信號。
4)同步再生模塊完成在中繼發(fā)送前添加新的同步信息,為發(fā)送編碼做準備。
5)發(fā)送模塊負責(zé)發(fā)送數(shù)據(jù)幀。
圖3 中繼內(nèi)部模塊框圖Fig.3 Relay internal block diagram
中繼編碼選擇曼徹斯特編碼,由同步頭、數(shù)據(jù)位和校驗位3部分構(gòu)成,每幀數(shù)據(jù)20位。前3位是同步頭,其可分為命令同步頭和數(shù)據(jù)同步頭,以1.5位處為間隔,先正后負表示命令字頭,先負后正表示數(shù)據(jù)字頭。同步頭可區(qū)分幀的類型和標(biāo)識幀傳輸?shù)拈_始;4~19位是數(shù)據(jù)位,16位編碼數(shù)據(jù)是由高到底,通常數(shù)據(jù)傳輸均會有起始位和停止位。因曼徹斯特碼的數(shù)據(jù)位全部有效,因此提高了傳輸?shù)男剩?0位是奇偶校驗位,對4~19位數(shù)據(jù)奇偶校驗,本文采用奇校驗。
中繼的接收是完成對傳輸線上數(shù)據(jù)的接收,有效地識別同步位,并將識別后的同步位丟棄,再降有效數(shù)據(jù)位緩存[3]。為了論述方便,以狀態(tài)機的方式描述中繼接收的實現(xiàn)。實現(xiàn)過程如圖4(a)所示,當(dāng)中繼的輸入端無任何信號時,接收模塊將始終處于空閑狀態(tài)(IDLE);當(dāng)檢測到跳變沿時,接收模塊進入檢測同步位狀態(tài)(SYNC),在該狀態(tài)當(dāng)中會啟動兩個計數(shù)器cout0_SYNC和cout1_SYNC,每個計數(shù)器將不間斷的計數(shù)3次采集其認為是正確的同步信號,中繼接收將進入譯碼進程 (DEC),否則認為接收到的是噪聲信號,計數(shù)器cout0_SYNC和cout1_SYNC清零,進入丟棄狀態(tài)(DROP),將接收到的噪聲數(shù)據(jù)丟棄后返回IDLE狀態(tài);譯碼的進程即為在譯碼時鐘(DECODER_CLOCK)的控制下對接收到的信號進行譯碼操作,譯碼結(jié)束后進入緩存狀態(tài)(DATAS),將譯碼后的數(shù)據(jù)存儲后,接收模塊恢復(fù)到IDLE。中繼接收過程中,需考慮傳輸時的干擾問題,在實際傳輸應(yīng)用中,傳輸線上的電平可能會出現(xiàn)位寬不穩(wěn)定的情況,因此對解碼器的采樣處理功能有著較高要求。本文通過檢測和判定方法來解決位寬不穩(wěn)定引起的干擾問題。解碼器以12倍頻于碼速率的時鐘進行采樣,解碼模塊根據(jù)時鐘生成判定邏輯,該邏輯包括判定計數(shù)器用來記錄12次采樣的前6次中高電平的次數(shù),理論上前6次均采到“1”,判定原始數(shù)據(jù)為“1”。而在實際的應(yīng)用中,將判定邏輯計數(shù)器的門限設(shè)為4,即當(dāng)計數(shù)器記錄4次以上(包括4次)的高電平則判定原始數(shù)據(jù)為“1”,否則為“0”。由此便提高了解碼模塊的抗干擾能力。
圖4 中繼接收和發(fā)送流程圖Fig.4 Relay receiving and transmitting flow chart
中繼發(fā)送的實現(xiàn):中繼器作為一個數(shù)據(jù)轉(zhuǎn)發(fā)裝置是先接收數(shù)據(jù)后發(fā)送的[4]。發(fā)送模塊是完成將中繼所接收的數(shù)據(jù)去掉同步位緩存部分并加上新的同步位與校驗位再轉(zhuǎn)發(fā)到下一個中繼的過程,如圖4(b)所示。中繼發(fā)送中的曼徹斯特編碼在傳統(tǒng)意義上是通過NRZ碼與位率時鐘異或得到的,該種方法將會在位率時鐘和NRZ碼同時跳變時產(chǎn)生毛刺,而若想消除毛刺將極為困難,且還將增加設(shè)計成本。本文在編碼模塊(encoder)是通過選擇器完成編碼的,采用二倍頻于數(shù)據(jù)傳輸速率的時鐘,通過記錄時鐘的個數(shù)選擇輸出的曼徹斯特碼,當(dāng)時鐘個數(shù)為奇數(shù)時,曼徹斯特碼為對應(yīng)的NRZ碼,否則,編碼輸出與NRZ相反。這樣做是從時鐘的角度考慮了編碼的可行性,符合硬件描述語言的設(shè)計思路,解決了傳統(tǒng)曼徹斯特編碼的毛刺問題。
為了確保設(shè)計的正確性,將系統(tǒng)模塊在QUARTUSII中進行功能及時序仿真[5]。中繼編碼器仿真結(jié)果如圖5(a)所示,輸入的并行數(shù)據(jù) din16為 “0x7654”,同步字選擇信號SYNC_SLECT為“1”。當(dāng)編碼開始后,編碼有效信號DE置1,編碼輸出的ONE_OUT輸出同步信號“111000”在DE置1后的第5個時鐘過后SEND_DATA置1,SERIAL端開始發(fā)送串行數(shù)據(jù),數(shù)據(jù)編碼開始,在發(fā)送完16位數(shù)據(jù)后SEND_DATA返回低電平,DE返回低電平。
曼徹斯特編碼輸出ONE_OUT=“11100010010101100101 101001100110011010”,表明仿真結(jié)果與理論分析相吻合。
圖5 編解碼算法解碼仿真圖Fig.5 The simulation waveform figure of encoding and decoding
中繼解碼的仿真波形如圖5(b)所示。解碼模塊的數(shù)據(jù)輸入(UNIPOLAR_DATA_IN)來自于曼徹斯特編碼模塊的輸出(ONE_OUT)。圖中 UNIPOLAR_DATA_IN 的值為:“11100010 010101100101101001100110011010”, 完 成 同 步 頭 檢 測(“111000”)解碼開始后,同步信號指示輸出COMMAND_SYNC=1,使能信號TAKE_DATA置1,輸出端連續(xù)輸出串行數(shù)據(jù)SERIAL_DATA_OUT,在使能信號置1后的16個解碼位移時鐘后返回0值[6],串行數(shù)據(jù)輸出完畢后校驗驗證正確,有效字VALID_WORD置1,經(jīng)串并轉(zhuǎn)換完全恢復(fù)出進入編碼模塊的16位并行數(shù)據(jù)“0x7654”,驗證其仿真結(jié)果與期望一致。
由3塊FPGA電路板實現(xiàn),額外加2臺PC,PC作為數(shù)據(jù)的始發(fā)端配有USB口,通過USB和COM轉(zhuǎn)換線發(fā)送和接收數(shù)據(jù),一個作為發(fā)送數(shù)據(jù),另一個作為接收數(shù)據(jù)。在PC上打開兩個串口工具,一個使用COM1作為發(fā)送端,一個使用COM3作為接收端,波特率均為128 kbps。板1接收到PC1數(shù)據(jù)后編碼數(shù)據(jù)輸出至中繼,通過中繼輸出至板3,板3經(jīng)濾波和解碼成功后通過UART再將數(shù)據(jù)傳至PC2,由此可通過在PC上觀測串口工具發(fā)送和接收內(nèi)容是否一致判斷中繼傳輸?shù)恼_性。
實驗結(jié)果如圖 7 所示,COM1 發(fā)送 AA、BB、CC、DD、EE,結(jié)果中繼傳輸后,接收端的顯示與COM1發(fā)送相一致,這說明中繼功能基本正確。經(jīng)實際測試中繼傳輸?shù)恼`碼率<10-6。
圖6 中繼傳輸測試結(jié)果圖Fig.6 Relay transmission test result chart
將文中所設(shè)計的傳輸中繼應(yīng)用到測井傳輸領(lǐng)域中可解決長距離傳輸?shù)葐栴},中繼在硬件設(shè)計上采用了模塊化和狀態(tài)機的設(shè)計思想,解決了傳統(tǒng)設(shè)計中的缺陷等問題。同時,令設(shè)計更具靈活性和可操作性。此外,通過軟件仿真與硬件功能測試結(jié)果表明,該設(shè)計達到了預(yù)期的目的,且具有良好地可靠性及穩(wěn)定性。
[1]王翠.中繼協(xié)作傳輸方案及性能研究[D].南京:南京郵電大學(xué),2013.
[2]雷占勃,陳新,徐藝文,等.無線電力抄表系統(tǒng)的傳輸中繼站設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2013,13(8):78-81.LEI Zhan-bo,CHEN Xin,XU Yi-wen,et al.Wireless transmission of electricity relay station meter reading system design[J].Microcontroller and Embedded Systems,2013,13(8):78-81.
[3]吳昊,周越文,毛東輝,等.基于Verilog的曼徹斯特Ⅱ型碼解碼器設(shè)計[J].計算機測量與控制,2012(7):1989-1991.WU Hao,ZHOU Yue-wen,MAO Dong-hui,et al.Manchesterbased verilog code decoder design typeⅡ [J].Computer Measurement&Control,2012(7):1989-1991.
[4]LIU Zhi-xin,Chan C K.Generation of dispersion tolerant manchester-duobinary signal using directly modulated chirp managed laser[J].Photonics Technology Letters,2011(15):1043-1045.
[5]王鐵男.基于FPGA的曼徹斯特碼編解碼器的實現(xiàn)[J].石油儀器,2011,25(5):71-73.WANG Tie-nan.Achieve Manchester codec on FPGA[J].Petroleum Equipment,2011,25(5):71-73.
[6]周利華.Nakagami-m信道下放大轉(zhuǎn)發(fā)增量中繼性能分析[J].電子科技,2013,26(12):56-59.ZHOU Li-hua.Under Nakagami-m relay channel amplification forwarding incremental performance analysis[J].Electronic Technology,2013,26(12):56-59.
[7]季彥呈,章國安,張士兵,等.基于準正交空時分組碼的多中繼協(xié)作方案[J].電子科技,2013,26(12):118-121,126.JI Yan-cheng,ZHANG Guo-an,ZHANG Shi-bing,et al.Collaboration solutions based on multi-relay quasi-orthogonal space-time block code[J].Electronic Technology,2013,26(12):118-121,126.
[8]王建國,孫敬華,曹丙霞.基于AVR單片機的曼徹斯特編解碼及其應(yīng)用[J].計算機工程,2006,32(20):258-260.WANG Jian-guo,SUN Jing-hua,CAO Bing-xia.AVR microcontroller based Manchester encoding and decoding and its application[J].Computer Engineering,2006,32(20):258-260.