胡永建1,胡寰臻2,石林1
(1.中國石油集團鉆井工程技術研究院,北京 102206;2.中國石油大學(北京) 地球科學學院,北京 102249)
摘要:在定向井鉆井中,為了測量鉆頭的方位信息,設計出一種高可靠性隨鉆定向儀。該文分析了可能的系統失效風險并給出解決方法,選擇了合適的安全微控制器及多軌電源來簡化設計。高可靠性策略包括:器件內均衡的硬件及軟件功能診斷以及用于監測微控制器程序運行的獨立的問答式看門狗。給出了關鍵的硬件電路及軟件流程圖。該設計在石油鉆井領域中可以通過減少起鉆次數來降低鉆井成本。
關鍵詞:TPS65381;安全多軌電源;TMS570;安全微控制器;可靠性;定向儀
0引言
石油鉆井施工是按照一定的目的和要求,有控制地使井眼軌跡沿著預先設計的井眼軌道順利鉆達設計目標,并使效益最大化的施工工藝過程[1]。在鉆井過程中需要不斷監測井眼軌跡方向以保證按照設計目標正確施工。井下定向儀可以測量井斜、工具面及方位角等定向參數,廣泛用于石油鉆井施工。
在深井及超深井中,起鉆一次往往需要數百小時,花費成本高昂。與汽車行業安全應用類似[2],隨鉆測量的各類井下儀器也必須具備高可靠性。
本文設計的隨鉆定向儀在設計初期就分析了系統出錯風險,并考慮了相應對策。在硬件及軟件設計上結合安全設計要素,選用了新推出的安全芯片完成系統設計。
井下隨鉆定向儀由微控制器、定向傳感器、電源模塊及通訊接口組成。定向傳感器測量定向參數,電源模塊為微控制器和定向傳感器供電,微控制器將采集到的定向參數數據通過通訊總線發送出去,通訊接口既可連接泥漿脈沖發生器也可連接電纜實現與地面的數據通訊。
2器件選型及功能說明
2.1定向傳感器
本設計選用的定向傳感器內置1個三軸磁通門磁力計和1個三軸加速度計,兩者組合能夠確定井斜、工具面及方位角等定向參數。
定向傳感器通過1個TTL/CMOS兼容的三線串行接口與外部通訊。返回的數據帶有數據校驗和字節,可據此判斷接收數據是否正確。
如圖1所示,該定向傳感器與安全微控制器的串行通訊接口(Serial Communication Interface, SCI)相連,由電源模塊提供用于傳感器的5 V電源。由于該型定向傳感器沒有系統復位連接端子,在發現死機或接收數據錯誤等問題時,可以關斷電源模塊供電并重新加電來復位定向傳感器,以此嘗試修復定向傳感器錯誤。
2.2安全微控制器
本設計選用TMS570LS1114安全微控制器[3],該微控制器具有硬件及軟件故障診斷功能。如圖1所示,SPI接口可與安全多軌電源通訊;SCI串行接口可與定向傳感器相連;內置模數轉換器可用于安全電源的診斷輸出(DIAG_OUT引腳)模擬信號測量;內置實時中斷(RealTime Interrupt, RTI)定時器可以完成看門狗觸發動作。
一旦微控制器診斷檢測到某個錯誤時,微控制器的外設錯誤信號模塊(Error Signaling Module, ESM)可將錯誤按照嚴重性分類并提供可編程的錯誤響應方法,開發人員據此確定如何響應錯誤[4]。
2.3安全多軌電源
電源模塊選用了美國德州儀器生產的TPS65381Q1圖2安全電源相關電路圖安全多軌電源[5],該器件支持雙核鎖步架構的TMS570系列安全微控制器。器件內部集成了多個電源軌,可為微控制器、CAN總線器件及外部傳感器供電。該器件內置一個帶場效應管(FET)的異步降壓開關模式的高效率電源轉換器(預穩壓器),可以將輸入電池電壓轉換為6 V輸出,為其他內部線性穩壓器供電。預穩壓器支持高達36 V的電池供電輸入,特別適合井下高溫鋰電池的串聯應用。
TPS65381Q1器件能夠監測電池輸入電壓及內部電源軌的電壓,也能通過獨立電壓基準來監測內部電源軌的欠壓及過壓情況;其他安全功能包括:內部振蕩器的時鐘監測、時鐘監視器的自檢、非易失存儲器的CRC校驗、微控制器錯誤信號輸入(ERROR引腳)監測、用于微控制器的復位輸出(NRES引腳)等。所有診斷信號通過DIAG_OUT引腳輸出到外部,分為模擬與數字兩類信號,由微控制器通過器件的寄存器設定并通過自身的輸入模擬或數字端口來檢測。如圖1所示,微控制器通過SPI接口與TPS65381Q1器件相連, DIAG_OUT引腳連接到微控制器的模數轉換器或數字輸入引腳。
根據條件不同,TPS65381Q1器件有待機、復位、診斷、活動、安全等5種工作狀態。器件上電后進入待機狀態;通過外部喚醒可以進入復位狀態,此時復位輸出(NRES引腳)為低;當所有穩壓器完成升壓準備后,器件進入診斷狀態,此時可以通過SPI接口配置器件的寄存器;活動狀態是器件的正常工作狀態;一旦檢測到異常,器件可以根據需要進入安全狀態,此時復位輸出為高。
為了防止微控制器發生程序跑飛或進入死循環等錯誤,使用TPS65381Q1器件內置的問答式看門狗來監測微控制器的程序運行。該看門狗的每次操作周期包含一個OPEN窗口和后續一個CLOSE窗口,兩個窗口的持續時間可根據微控制器需求設定。微控制器需要在不同的窗口對看門狗進行不同的觸發(“喂狗”)操作。看門狗包含一個失效計數器負責統計觸發錯誤及超時事件的次數,一旦超過計數范圍,器件可以執行相應的復位輸出等動作。微控制器通過SPI接口讀取看門狗的令牌(“問題”,該令牌由器件內部的馬爾科夫鏈生成),微控制器通過特定的算法根據該令牌計算出響應(“回答”)并發送給器件,完成一次觸發。
3高可靠性設計
3.1硬件設計
本隨鉆定向儀以TPS65381Q1安全多軌電源作為核心安全器件,圖2是安全電源的相關電路圖,包含與微控制器和定向傳感器的相關接口。
如圖2所示,高溫鋰電池輸出VBAT為TPS65381Q1供電(VBATP引腳),同時為器件內的安全功能電路供電(VBAT_SAFING引腳)。IGN引腳可以承受40 V電壓,與VBAT相連使器件上電后自動從待機狀態遷移到復位狀態。器件內的預穩壓器自帶FET,與外部肖特基整流二極管D1、電感L1及C5組成一個高效異步降壓開關式電源轉換器。VBAT經預穩壓器后輸出6 V,該VDD6可以為器件內的其他線性穩壓器供電(VDD6引腳):內置固定5 V輸出VDD5的線性穩壓器可用于CAN總線收發器供電;內置通過SEL_VDD3/5引腳選擇不同電壓輸出的線性穩壓器,本設計該引腳不連接,輸出3.3V(VDD3/5引腳)為IO接口供電,包括器件IO供電(VDDIO)與外部微控制器的IO供電;器件內的線性控制器與外部FET Q1、R1與R2組成的分壓網絡聯合輸出1.23 V電壓為TMS570LS1114安全微控制器內核供電;VDD6通過外部連接為帶對地、電池短路保護的傳感器電源供電,該線性穩壓器的VTRACK1引腳與VDD5相連,使其工作在跟蹤模式,將VSFB1引腳與輸出的VSOUT1引腳相連,使增益反饋為1,即VSOUT1跟蹤輸出5 V為定向傳感器供電。
傳感器通過串行接口與微控制器的SCI2接口相連。器件NRES引腳與微控制器的上電復位引腳nPORRST相連,可以在檢測到錯誤時選擇輸出復位信號,使微控制器復位。器件內部的模擬復用器(AMUX)與數字復用器(DMUX)的診斷輸出DIAG_OUT引腳與微控制器的AD1IN[0]相連,注意需要并聯適當的采樣電容,微控制器的ADC可以檢測內部電壓的范圍。器件的SPI接口與微控制器的SPI4接口相連,用于讀取或設定器件內的狀態及控制寄存器,也用于器件內看門狗的觸發。ERROR/WDI引腳與微控制器的nERROR引腳相連,來監測微控制器的工作狀態。
3.2軟件設計
在系統發生或發現致命錯誤,如安全微控制器自檢錯誤、安全多軌電源自檢錯誤、定向傳感器讀取異常時,軟件及器件配置為通過安全電源產生一個復位信號,微控制器在復位時對外設重新初始化(包含定向傳感器的斷電重新上電),以此來嘗試修復錯誤。一些常規錯誤可以通過冗余讀取、重新初始化相關外設來嘗試解決。
圖3是TPS65381-Q1安全多軌電源的狀態遷移圖。
系統上電后,TPS65381Q1器件處于待機狀態,通過連接到電池電壓的IGN引腳喚醒進入復位狀態,此時通過NRES引腳復位外部的微控制器并進入診斷狀態。微控制器需要在器件診斷狀態下對其配置,可以通過SPI指令設定SAFETY_CHECK_CTRL寄存器的DIAG_EXIT_MASK位和DIAG_EXIT位均為1,令器件強制進入診斷狀態,配置完成后令DIAG_EXIT_MASK位為0來退出診斷狀態,進入活動狀態。在活動狀態,一旦檢測到外部微控制器的ERROR引腳錯誤就進入安全狀態,在發生超時,并且器件錯誤計數器的值DEV_ERR_CNT≤SAF圖4工作流程圖E_LOCK_THR值(在SAFETY_ERR_CFG寄存器中設置)時,器件轉為復位狀態,復位微控制器;在活動狀態,如果看門狗失效且寄存器值WDT_FAIL_CNT≥7,同樣進入復位狀態。
圖4是相關程序的工作流程。
如圖4所示,微控制器上電或復位后開始初始化外設,如SPI接口、SCI接口、RTI定時器等;之后通過SPI指令向TPS65381Q1器件的SAFETY_CHECK_CTRL寄存器寫入0x13使能ERROR引腳監測功能,并令其強制進入診斷狀態;在診斷狀態下,向SAFETY_FUNC_CFG寄存器寫入0xE4來配置器件,使器件看門狗配置為通過SPI指令觸發的問答安全裝置模式和錯誤引腳檢測模式。在該階段,可以通過SPI指令配置AMUX與DMUX以將器件內診斷信號通過DIAG_OUT引腳輸出到微控制器來檢測。
看門狗需要與微控制器保持同步,可以通過不發送觸發導致看門狗超時來同步,也可以通過更改OPEN及CLOSE窗口持續時間來進行同步,本文采用后者,以下是相關偽代碼:
SetRegister(WDT_WIN1_CFG, OPEN_WINDOW_TIME);
SetRegister(WDT_WIN2_CFG, CLOSE_WINDOW_TIME);
while (GetBit(WDT_STATUS, BIT_SEQ_ERR) == 1);
先分別寫入OPEN及CLOSE窗口的持續時間,此后看門狗立刻開始一個新的操作周期,微控制器不做任何動作等待,直到器件發生令牌序列錯誤(SEQ_ERR位被置位)為止,此時微控制器完成與器件看門狗的同步。看門狗開始新的操作周期的OPEN窗口階段,此時可以按照OPEN窗口工作狀態來設定RTI計時器的定時時間,并啟動RTI中斷。在發生RTI中斷后,程序進入中斷服務子程序,工作流程如圖5所示。
在OPEN窗口需要發送三次看門狗回答,在CLOSE窗口需要發送一次看門狗問答,以完成一次正確的觸發(“喂狗”)事件,一次事件會使看門狗失效計數器值(SAFETY_STAT_2寄存器的低三位)減1。在OPEN窗口時,先讀取看門狗失效計數值,當失效計數值為0且為復位后首次進入,此時TPS65381Q1器件處于診斷狀態,可以使能看門狗并退出診斷狀態進入正常的激活狀態,相關偽代碼是:
SetBit(SAFETY_FUNC_CFG, BIT_WD_RST_EN, 1);
SetRegister(SAFETY_ERR_STAT, 0x00);
SetRegister(SAFETY_CHECK_CTRL, 0x01);
寄存器的SAFETY_FUNC_CFG的WD_RST_EN位置位可以使看門狗失效,計數器值在達到7時遷移到復位狀態。在復位錯誤狀態寄存器后,令SAFETY_CHECK_CTRL寄存器的DIAG_EXIT_MASK位為0來退出診斷狀態,器件進入正常活動狀態[6]。
如圖4所示,當定向儀正常工作時,程序定時讀取定向傳感器的測量數據。該測量數據包含一個校驗位,可以根據校驗位判斷讀取的數據是否正確。一旦檢測到錯誤,可以設定ERROR引腳輸出低電平(向安全微控制器的ESM錯誤鍵值寄存器(ESMEKR)寫入0x05),通知TPS65381-Q1器件發生了錯誤。
4結論
本文設計的隨鉆定向儀充分利用了安全多軌電源及安全微控制器的安全功能,能夠以硬件或軟件方式自動診斷各功能模塊的故障,通過獨立于微控制器的看門狗檢測微控制器的軟件運行,具有較高的可靠性。在石油鉆井應用中,該高可靠性隨鉆定向儀通過降低數據采集的故障來減少起鉆次數,能夠節省大量的時間和人力物力,具有較高的經濟效益。
參考文獻
[1] 王清江,毛建華,韓貴金,等. 定向井鉆井技術[M]. 北京:石油工業出版社,2009.
[2] 劉軍,陶昌嶺,余節發,等.基于汽車主動安全的車載嵌入式平臺的研究[J].電子技術應用,2014,40(7):2123,26.
[3] TEXAS Instruments. TMS570LS1114 16 and 32bit RISC Flash microcontroller (SPNS188B) [Z]. 2015.
[4] 胡永建,胡寰臻,黃衍福.基于TMS570的高可靠性隨鉆壓力計[J] .微型機與應用,2016,35(1):2324,27.
[5] TEXAS Instruments. TPS65381Q1 MultiRail Power Supply for Microcontrollers in Safety Applications (SLVSBC4C) [Z]. 2015.
[6] TEXAS Instruments. Interfacing TPS65381 With Hercules? Microcontrollers (SPNA176A) [Z]. 2014.