关键词:TPS65381安全多轨电源TMS570安全微控制器
胡永建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的电池供电输入,特别适合井下高温锂电池的串联应用。
TPS65381-Q1器件能够监测电池输入电压及内部电源轨的电压,也能通过独立电压基准来监测内部电源轨的欠压及过压情况;其他安全功能包括:内部振荡器的时钟监测、时钟监视器的自检、非易失存储器的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.