李 敏
(中海油田服務(wù)股份有限公司 北京)
在成像測井系統(tǒng)的研制過程中,地面系統(tǒng)的檢測通常需要掛接井下儀器才能進(jìn)行,一旦檢測出現(xiàn)問題,往往不能很快判斷出是地面系統(tǒng)還是井下儀器出現(xiàn)的問題,通常需要更換地面系統(tǒng)或是井下儀器來進(jìn)一步檢測。地面系統(tǒng)軟件的調(diào)試,同樣需要掛接相應(yīng)的井下儀器才能進(jìn)行,軟件開發(fā)人員只能在測井或試驗(yàn)現(xiàn)場才能進(jìn)行調(diào)試。因此,設(shè)計(jì)了一套能夠模擬各種井下儀器的裝置,用于地面系統(tǒng)的檢測及科研調(diào)試。
模擬儀器可以接收地面系統(tǒng)發(fā)送的采集命令,經(jīng)過放大和整形,恢復(fù)出命令的曼徹斯特碼波形,然后進(jìn)入fpga進(jìn)行解碼,解析出命令,MCU收到命令后,根據(jù)命令包含的儀器地址和subset編號,從Flash存儲器中讀取儀器的數(shù)據(jù),通過FPGA產(chǎn)生曼徹斯特編碼,驅(qū)動后送回到地面系統(tǒng)[1]。
地面系統(tǒng)的采集命令由兩個(gè)字節(jié)組成。高8位表示儀器地址,低8位表示采集命令。因此模擬不同的儀器,實(shí)際上就是要能響應(yīng)不同儀器地址的采集命令,并返回相應(yīng)的數(shù)據(jù)。對采集命令的分析和處理都是在MCU內(nèi)部完成的,各種儀器的數(shù)據(jù)預(yù)先存放在MCU的Flash存儲器中。
模擬儀器系統(tǒng)的硬件由以下部分組成:隔離變壓器板、命令和數(shù)據(jù)整形驅(qū)動電路、FPGA、MCU以及Flash,分成了兩塊電路板:信號調(diào)理和驅(qū)動板、CPU板,如圖1所示。
圖1 模擬儀器系統(tǒng)的硬件
系統(tǒng)的電源采用一個(gè)成熟的開關(guān)電源,輸入范圍80-240VAC,既可以適應(yīng)測井托撬使用的110VAC,又可以適應(yīng)實(shí)驗(yàn)室的220VAC;電源輸出+5 V,通過CPU板的電源電路,產(chǎn)生+3.3 V和+1.5 V,分別供給MCU和FPGA。電源輸出的+12 V和-12 V,用于信號調(diào)理板的模擬電路部分。
隔離變壓器板主要由3個(gè)用于電纜通訊的隔離變壓器組成,完成信號的隔離和電纜復(fù)用。整形驅(qū)動電路,主要完成對采集命令和數(shù)據(jù)波形的調(diào)理,包括程控增益放大、均衡濾波、以及電流驅(qū)動等。
CPU板主要包括FPGA和MCU以及外擴(kuò)的Flash存儲器。FPGA完成曼徹斯特編解碼功能,作為MCU的外設(shè)掛在MCU的外部總線上[2]。FPGA選用Alter公司Cyclone系列的EP1C6T144[3]。MCU選擇Silabs的C8051F340單片機(jī)[4]。
cyclone EP1C6是Altera推出的一款高性價(jià)比FPGA,工作電壓3.3 V,內(nèi)核電壓1.5 V。采用0.13m工藝技術(shù),全銅SRAM工藝,其密度為5980個(gè)邏輯單元,包含20個(gè)128×36位的RAM塊(M4K模塊),總的RAM空間達(dá)到92160位。
C8051F340是Silabs推出的一款增強(qiáng)型51內(nèi)核的單片機(jī),其指令集與MCS-51完全兼容,具有標(biāo)準(zhǔn)8051的組織架構(gòu),可以使用標(biāo)準(zhǔn)的51匯編或者C編譯器進(jìn)行軟件開發(fā)。其指令執(zhí)行速度是標(biāo)準(zhǔn)8051指令執(zhí)行速度的12倍;其峰值執(zhí)行速度可達(dá)100MIPS(C8051F120等),是目前世界上速度最快的8位單片機(jī)。而且集成了JTAG接口,便于開發(fā)和調(diào)試。
F340單片機(jī)具有外部數(shù)據(jù)存儲器接口,8位數(shù)據(jù)總線寬度,16位地址總線。所以FPGA可以作為MCU的外設(shè),掛在外部執(zhí)行接口上。
由于F340單片機(jī)帶有64KB的Flash,以及4KB的片上RAM,再利用FPGA的內(nèi)部RAM模塊,就可以實(shí)現(xiàn)系統(tǒng)功能,而不需要擴(kuò)展外部存儲。
MCU的外部數(shù)據(jù)存儲地址范圍從0x0000-0xffff。其中0x0000-0x0fff為片上RAM,F(xiàn)PGA映射到MCU的外部地址范圍從0x8000開始,實(shí)現(xiàn)5個(gè)寄存器,分別是命令寄存器、M2/M5/M7數(shù)據(jù)寄存器、狀態(tài)寄存器。
系統(tǒng)的軟件設(shè)計(jì)包括兩個(gè)部分,MCU和FPGA的軟件設(shè)計(jì)。FPGA使用QuartusII作為編程環(huán)境,采Verilog語言編程[5]。MCU的編程采用Silabs提供的SiliconLaboratoriesIDE開發(fā)環(huán)境,結(jié)合KeilC編譯器。下面分別介紹軟件設(shè)計(jì)流程。
FPGA編程在QuartusII開發(fā)環(huán)境下,同樣采用自頂向下的設(shè)計(jì)。頂層文件采用原理圖實(shí)現(xiàn),進(jìn)行功能模塊的劃分和結(jié)構(gòu)設(shè)計(jì),各功能模塊內(nèi)部采用Verilog語言實(shí)現(xiàn)。FPGA實(shí)現(xiàn)的功能模塊主要有MCU接口模塊、命令解碼模塊、數(shù)據(jù)編碼模塊和中斷控制模塊。
(1)MCU的接口模塊,通過MCU的地址譯碼得出不同的寄存器,進(jìn)行功能控制。
(2)命令解碼模塊,接收整形后的曼碼,進(jìn)行解碼,解碼后的命令,送給MCU進(jìn)行處理。
(3)數(shù)據(jù)編碼模塊,接收MCU的數(shù)據(jù),進(jìn)行曼碼編碼。經(jīng)過驅(qū)動后,數(shù)據(jù)傳到地面系統(tǒng)。
(4)中斷控制模塊,對多個(gè)中斷源進(jìn)行仲裁控制,實(shí)現(xiàn)中斷復(fù)用。
單片機(jī)的程序采用C語言開發(fā),主要功能分為幾部分:響應(yīng)FPGA產(chǎn)生的采集命令中斷;向FPGA寫發(fā)送數(shù)據(jù)。FPGA每發(fā)送完成一個(gè)數(shù)據(jù)后,產(chǎn)生中斷給MCU,MCU判斷發(fā)送的數(shù)據(jù)個(gè)數(shù)是否小于期望值,如果小于,繼續(xù)向FPGA寫入數(shù)據(jù),否則,關(guān)閉停止發(fā)送。
本系統(tǒng)基于FPGA和MCU結(jié)構(gòu),設(shè)計(jì)了成像測井系統(tǒng)的模擬儀器,通過電纜與測井地面系統(tǒng)連接,可以檢測通訊狀態(tài)。目前模擬的儀器功能有,能譜儀器、密度儀器、側(cè)向儀器等常規(guī)儀器,還有聲波等高端儀器。通過工程實(shí)踐證明,本系統(tǒng)為地面系統(tǒng)的測試和檢修提供了有效而可靠的手段。而且通過檢測軟件界面的波形,為地面軟件的調(diào)試提供支持。
[1]馬 虹,法 林.測井電纜遙測系統(tǒng)信號模擬器的設(shè)計(jì)[J].石油儀器,1998,12(6)
[2]趙紅梅,米啟超.基于DSP與FPGA的多通道數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].微計(jì)算信息(嵌入式與SOC),2007,23(9-2)
[3]Cyclone Device Handbook,Altera,2005(資料)
[4]C8051F340 datasheet Sillicon Laboratories,2009(資料)
[5]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2008