胡永建1,胡寰臻2,黄衍福1
1. 中国石油集团钻井工程技术研究院 北京石油机械厂,北京 100083; 2.中国石油大学(北京) 地球科学学院,北京 102249
摘要:为了实现井下随钻压力测量,设计出一种高可靠性压力计。选择了适合井下高温、高压环境的微控制器与压力传感器,同时分析了可能的器件失效风险并给出了解决方法。借助安全微控制器的“安全岛”理念及设计架构,该压力计能够自动处理微控制器及压力传感器的软硬件错误以保证工作可靠性。该压力计在石油钻井领域中可以有效减少起钻次数来降低钻井成本。
关键词:TMS570;安全微控制器;可靠性;压力计
0引言
在石油钻井中,通过随钻井下压力测量可以实时得到井筒内压力数据,有助于实施控压钻井,同时可以预防井涌和井漏,是井控安全的有效手段。石油钻井是高风险的资本密集型行业,在深井及超深井中,因故障起钻一次往往需要数百小时,成本高昂。这要求随钻井下压力计必须具备高可靠性。
本文设计的随钻井下压力计使用了安全微控制器,充分利用其安全架构来实现高可靠性井下压力测量。
1系统结构
随钻井下压力计电气单元的核心器件是微控制器,微控制器从压力传感器读取所需原始数据,将其转换为压力等测量数据经通信端口发送到地面。为保证系统的可靠性,需要从器件选型、架构设计、软硬件实现等方面完成综合设计。微控制器及压力传感器是其中的关键器件。
微控制器选用了美国德州仪器的Hercules安全微控制器。该系列安全微控制器能够通过硬件方式实现安全特性,符合业界安全性能标准,可使系统设计更易满足ISO 26262 ASILD 和 IEC 61508 SIL3的安全标准要求。采用支持浮点计算的ARM CortexR4F内核,双CPU同步结构提供了系统冗余并简化开发过程;CPU和内存内置硬件自检功能,无需软件编程就能检测硬件错误;在CPU内部集成了ECC逻辑以校验内存和闪存;具有外设内存的奇偶校验和外设IO的回读功能[1]。德州仪器新推出的TMS570LS1114新增I2C数据接口,适合与所选压力传感器连接,其片上资源及功能满足本设计需求。
图1数字压力计原理框图压力传感器选用了美国Quartzdyne公司生产的DMB30110150数字压力传感器[2]。该压力传感器包含3个石英晶体探头部件,其中压力和温度晶体分别对压力与温度敏感,而参考晶体对温度与压力均不敏感。如图1所示,其数字电路包含石英晶体振荡器(压力、温度及参考)、混频器、频率计及串口EEPROM。通过分别将压力、温度信号与参考信号混频来提高频率测量分辨率。频率计输出压力、温度两组原始数据。用户可调用存储在EEPROM中的校准系数,从原始数据计算出修正的压力与温度测量数据。该数字压力传感器供电电源为直流27~55 V,使用与NXP的I2C总线兼容的串行接口通信。
安全微控制器通过I2C接口与数字压力传感器相连,不仅可以读取温度与压力的原始数据,也可以读取存储在串口EEPROM中的校准系数。TMS570LS1114安全微控制器的I2C多主机通信模块兼容I2C总线规范V21。数字压力传感器为7位寻址方式,通信速率为100 kb/s。
2高可靠性设计
2.1微控制器安全策略
TMS570系列安全微控制器采用了被称为“安全岛”的通用安全架构理念,以此分配硬件与软件诊断,实现安全管理与应用成本之间的平衡[3]。“安全岛”方法将微控制器组件分为内核组件与其他组件:内核组件是所有微控制器操作所必须的逻辑电路,运行硬件诊断安全机制;其他组件包含外设等部件,运行软件诊断安全机制。一旦微控制器诊断检测到某个错误时,微控制器的外设错误信号模块(Error Signaling Module, ESM)将该错误传递给其他组件或软件,开发人员确定如何响应错误。
“安全岛”方法将微控制器的各种错误状况按严重性分为3组。如图2所示,错误组1(如外设随机存储器奇偶校验错误)的严重程度最低,对来自硬件诊断错误组1的错误通道信号,用户可以选择是否使能中断并确定中断优先级,也可以选择是否使能微控制器的ERROR引脚信号输出(低电平有效);错误组2(如地址总线奇偶校验错误)的错误会产生不可屏蔽的高优先级中断,同时产生ERROR引脚信号输出;因为错误组3(如互联总线错误)的大多数错误会导致CPU直接退出,所以仅产生ERROR引脚信号输出而不产生中断。为了方便外设响应,需要ERROR引脚在输出有效信号时能够保持一段时间,该低电平保持时间可以自行设定。
2.2出错风险分析
井下压力计出错风险来自电源、微控制器及传感器等部件。安全微控制器的硬件错误可以通过上述“安全岛”方法来处理,这里分析传感器及其通信接口的出错风险。
所选数字压力传感器的传感器件为石英晶体。晶体表面的污染物或晶格不完美会使其阻抗上升,从而需要更高的驱动电平才能起振,即石英晶体振荡器在加电时不一定起振。Quartzdyne的数字压力传感器使用了一种启动辅助电路来改善这种失效情况,即在上电的短时间内使用较高的驱动电压,之后再恢复正常电压。即便在这种情况下,依然不能保证完全有效,解决的唯一办法是对其断电后重新加电。
安全微控制器I2C多主机通信模块的控制及状态寄存器数值可能因为干扰或错误操作而改变,需要在每次操作前或定期回读,如发现出错则重新写入。
2.3系统设计
图3是高可靠性设计相关部分的硬件连接示意图。
如图3所示,安全微控制器的一个通用IO引脚配置为输出,与同步降压控制器的EN使能引脚相连,控制数字压力传感器的供电。ERROR引脚与冷启动复位PORRST引脚相连,使用上拉电阻与IO供电电源相连,电容即用于滤波,也用于延迟上电复位。一旦发生硬件诊断错误或其他错误,ERROR引脚输出低电平,使PORRST引脚拉低,微控制器进入冷启动,尝试修复错误。
表1列出了错误原因及相应初始化动作。表1错误原因及初始化动作错误原因初始化动作石英晶体不起振数字压力传感器断电再上电安全微控制器硬件诊断错误常规初始化I2C控制及状态寄存器回读错误I2C多主机通信模块初始化数字压力传感器冗余读取错误视情况而定
由于实时性要求不高,在初始化过程中,这些动作逐一进行。压力数据读取错误时可使用冗余读取的三选二策略判定结果,无需初始化。仅当多次读取出错才需冷启动,只需向安全微控制器的ESM错误键值寄存器(ESM Error Key Register, ESMEKR)写入0x05即可使ERROR引脚输出低电平。其他错误一般不需要冷启动来处理。
3初始化及驱动代码生成
为了缩短产品研发时间,德州仪器提供了基于图形用户界面的硬件抽象层代码生成器HALCoGen开发工具,可生成初始化、配置及驱动代码 [4]。
新建项目并选择TMS570LS1114及开发工具,即可开始配置。以I2C多主机通信模块为例,在“Driver Enable” 标签页中勾选“Enable I2C driver”使能该模块。在“I2C”标签页可以配置模块,如图4所示。
生成代码包含头文件i2ch及代码文件i2cc。包含初始化函数i2cInit、速率设定函数i2cSetBaudrate、发送字节函数i2cSendByte等。具体实现可参考相关文档[5]。
4结论
本文设计的基于TMS570的高可靠性随钻井下压力计能够自动尝试消除数字压力传感器的石英晶体起振故障,也可以自动处理其他硬件及软件错误,具有较高可靠性。通过降低数据采集故障率可以减少起钻次数,能够节省时间和人力物力,具有较高的经济效益。
参考文献
[1] TEXAS INSTRUMENTS. TMS570LS1114 16 and 32bit RISC Flash microcontroller (SPNS188B) [Z]. 2015.
[2] QUARTZDYNE, Inc. Operating manual for digital pressure transducer (DigitalTransProg201206) [Z]. 2012.
[3] TEXAS INSTRUMENTS. Safety Manual for TMS570LS12x and 11x HerculesTM ARMbased safety critical microcontrollers user’s guide (SPNU550A) [Z]. 2014.
[4] TEXAS INSTRUMENTS. HALCoGen TMS570LS31x help 040500 [N]. 2015.
[5] 杨帆.基于I2C接口EEPROM读写控制器设计[J].微型机与应用,2015,34(10):2224.