APP下载

基于RFID的油田钻具巡检手持终端的开发*

2013-12-29薛宇航何艳丽

电子器件 2013年6期
关键词:钻具命令串口

李 颀,周 维,薛宇航,何艳丽

(陕西科技大学电气与信息工程学院,西安710021)

钻井和修井使用的各类钻具是开发和维护油井正常运行的生命线[1]。钻具的及时跟踪和有效管理对安全钻井和高效生产起着至关重要的作用。传统的油田钻具巡检是以纸质记录为主的人工巡检模式。从产品入库、仓储、发料、修理、报废等环节,都要反复多次的数量清点、标记辨认和人工记录等烦琐工作,巡检人员需随身携带大量表格,后期需要人工将巡检数据录入计算机系统,巡检效率低,并且以纸张为载体的数据记录不灵活,巡检内容有任何改变都需要新印制表格,造成极大浪费,同时缺乏有效的监督。所以这种纸质的记录巡检模式不利于钻具资源得到合理利用,不利于发现失效的钻具,难以适应钻井市场快速的发展需要[2]。目前,油田钻具管理采取基于二维条形码巡检的方法,二维条形码的优点是成本低,抗干扰能力较强。但是二维条形码的缺陷是条码读取时只能一次一个,读条码时需要光线,存储资料的容量小,条码资料不可更新,需要靠人工读取有人为疏失的可能,最重要的是当条码污损将无法获取,移动读取有所限制。

针对这些情况,提出基于RFID的油田钻具巡检手持设备的开发,该手持设备将嵌入式技术、RFID技术和GPRS技术相结合完成对钻具数据采集和传输,从而实现对钻具的有效跟踪和管理。

1 油田钻具巡检终端硬件设计

1.1 油田钻具巡检系统介绍

油田钻具巡检系统由RFID手持设备和服务器组成,巡检系统示意图如图1所示。手持设备用来识别钻具上的电子标签的身份信息,通过GPRS网络与巡检系统服务器联网,将现场巡检的数据发送到巡检系统数据库中,由服务器进行存储并分析钻具信息,将分析结果返回到RFID手持设备上,由巡检人员核查设备,解决问题并及时更新数据,将更新的数据再通过RFID手持设备和GPRS网络发送到服务器中储存。该系统可以保证用户及时查询任意钻具的相关信息(如:钻具名称、生产单位、规格、失效时间、失效井号、钢级、失效井深、生产编号、失效钻具在组合中的位置、修复情况、是否进行过检查试验、使用单位、失效编码、失效时转速扭距、累计使用时间等),使钻具在整个寿命期使用历史尽详,准确跟踪钻具信息,防止失效钻具的使用。

RFID手持设备具有文件存储功能,当2 G/3 G等无线网路信号弱或者没有信号导致无法登陆互联网时备用,将扫描的编码信息暂时存储在RFID手持设备上,待能通过互联网登陆钻具失效计算机辅助分析系统时,再将编码信息导入,或者直接通过串口通讯方式导入油田钻具信息。

图1 油田钻具巡检系统示意图

其中,RFID手持设备是由射频识别模块、中央处理模块、液晶显示模块、数据存储模块、GPRS通信模块和电源模块等组成。RFID手持设备结构框图如图2所示。

图2 RFID手持设备结构框图

1.2 微处理器

S3C2440A是三星公司推出的一款32 bit ARM9微处理器,它的工作范围为-40℃ ~+85℃,其宽温的特点特备适合工业领域,除了提供常用接口外,还具有以太网控制器接口,USB HOST,USB OTG接口(可配置成Device),SD/MMC接口,UART接口,I2C接口,CAN总线接口,I2S接口,ADC/DAC接口,特别是集成LCD控制器接口,尤其是支持24 bit真彩色TFT面板。S3C2440A处理器完全可以满足油田钻具巡检系统的需要,丰富的外设接口资源为将来系统的功能的实现和扩展提供了方便。

1.3 射频识别模块

油田钻具巡检系统的射频识别模块采用了RFID技术即射频识别技术,这是非接触式的自动识别技术,它通过射频识别信号自动识别目标对象并获得相关数据,识别距离可以达到几十厘米到几米,具有可以同时读取多个标签的资料,不需要光线可以读取,存储资料的容量大,电子资料可以反复被覆写,智慧型标签可以很薄且隐藏在包装内仍可获取资料,在严酷、恶劣的环境下仍可以读取,可进行高速移动读取的优点。

该系统的模块主要由RFID芯片MF RC522、晶振、功率放大电路和天线组成,通信距离可以达到0.1 m。MF RC522是由 NXP公司生产的用于13.56 MHz非接触式通信中高度集成读卡IC系列中的一员,不仅兼容14443A/MIFARF标准,还具备低电压(3.3 V)、低功耗(休眠电流<LMA)、低成本、尺寸小等优点,适用于手持读写设备,并且工作温度范围为-30℃~+85℃,适合于油田工作环境。MF RC522分为模拟部分和数字部分。模拟部分负责对射频卡的发送接收操作,数字部分则通过串口和中央控制模块S3C2440A通信。13.56 MHz晶振负责给MF RC522提供能量载波,天线则主要由LC低通滤波器和LC谐振电路组成。MF RC522与S3C2440A接口电路如图3所示。

1.4 GPRS模块

本系统中的GPRS模块采用SIMCom公司推出的一款新型无线模块-SIM900A.它属于双频GSM/GPRS模块,完全采用SMT封装形式,同时采用了功能强大的ARM926EJ-S芯片处理器。SIM900A性能稳定,外观小巧,性价比高,采用省电技术设计,在SLEEP模式下最低功耗只有 1.0 mA。另外,SIM900A的尺寸大小为24 mm×24 mm×3 mm。能适用于M2M应用中的各类设计需求,尤其适用于紧凑型产品设计。

S3C2440A内部提供了2路 UART接口,而SIM900A也为外界的连接提供了UART串口,因此只需要将GPRS模块的UART口直接和S3C2440A的UART口对应引脚相连即可。而GPRS模块支持1.8 V/3.0 V的SIM卡供电,SIM卡作为GPRS网络的一个载体,提供GPRS网络的注册和连接。根据SIM卡的类型自动选择输出电压,如图4所示为SIM900A模块与S3C2440A及SIM卡的连接关系。

图3 MF RC522与S3C2440A接口电路

图4 SIM900A与S3C2440A及SIM卡的连接关系

2 巡检手持终端软件的设计

2.1 GPRS模块驱动程序的开发

嵌入式手持终端经过PPP拨号进入GPRS网络,得到移动 IP地址。后台数据库主动接入Internet网络并保持Socket监听状态,手持终端建立Socket,然后向后台数据库发起连接申请,这样在保持Socket连接的状态下,就可以实现手持终端和数据库的通信。对于GPRS通信模块的驱动问题,实际上就是如何通过串口给GPRS模块发AT指令进行控制的问题。所谓AT指令集是从TE或DTE向TA或DCE发送的。通过TA、TE发送AT指令来控制MS的功能,AT指令集的基本格式:AT+命令字符及相关设置参数。其主要指令集如下:

(1)AT+CGDCONT:设置PDP上下文。

这条命令的典型用法如下:AT+CGDCONT=I,"IP","CMNET"。

(2)AT*E2IPA:激活IP命令,该指令允许激活模块的IP程序段。

(3)AT*E2IPO:IP连接/打开命令(建立TCP连接)。

(4)命令返回模式

在线模式,如果释放DTR信号,SIM900A就会从在线模式转换到命令模式,此时还是会继续保持之前建立的连接。在SIM900A进入命令模式后,可以通过串口发送AT命令执行其他的操作。

(5)在线返回模式

当执行完AT指令后,可以使用ATO指令来重新返回到在线模式。如果原来的连接没有中断的话,则可以继续传输数据。

(6)关闭连接

如果系统中断了当前连接,SIM900A会返回到命令模式,并通过串口返回字符串“NO CARRIER”。也可以AT指令实现IP连接的关闭。

(7)释放IP

当完成数据传输后,用户可以使用AT*E2IPA=0,l来释放之前分配给SIM900A的IP地址。

具体AT指令还可以通过如下一个函数实现:

2.2 Linux下RFID模块驱动的实现

在此手持设备上已移植好的开发板提供的版本号为2.6.31的嵌入式linux内核,选用交叉编译环境arm-linux-gcc 4.1.2在redhat9下进行编译运行在该手持设备上的驱动程序。在嵌入式linux内核中已对LCD模块驱动、SD卡模块驱动和GPRS模块驱动有很好的支持。主要对其中一些管脚进行相关的修改,然后在redhat9终端下输入“make menuconfig”对各模块驱动选中,然后通过交叉编译,就能生成该手持设备识别的驱动。由于MF RC522要作为一个全新的设备添加到linux内核中,所以在这本文主要介绍RFID驱动的实现、编译和加载过程。

首先根据硬件引脚连接情况和引脚要实现的功能定义rfid_table[]和 rfid_cfg_table[]两个数组。其次,将在裸机上实现的RFID功能函数如:RFID初始化、寻卡、防碰撞、读写卡等函数移植过来。为了实现用户对该设备的访问需要定义struct file_operations结构体。

把驱动编译成内核模块,驱动编写完之后需要进行Makefile文件的编写。Makefile文件内容如下:

在终端linux-2.6.31/driver/char目录下输入make,编译成功后如图所示1生成“mymodule.ko”。编译完成后在串口终端下通过“rz”命令将“mymodule.ko”加载到手持设备中,加载成功后如图5所示。

图5 ko文件编译成功图

图6 手持终端驱动加载成功图

2.3 手持设备用户应用界面的开发

为了实现用户对该手持设备操作的灵活性,因此,本文对该手持设备RFID读取应用程序进行了开发。

RFID用户应用程序时采用Qt4.5.3版本进行开发。首先下载qt-x11-opensource-src-4.5.3.tar和qt-embedded-linux-opensource-src-4.5.3.tar安装包,然后在redhat9下对这两个安装包进行解压安装,安装成功后需要在redhat9终端下输入命令“vi/etc/profile”对编译环境进行配置。通过命令“source/etc/profile”使命令生效。本文采用Qt4 Designer开发工具进行应用程序的开发其步骤如下:①创建和初始化子部件;②设置子部件布局;③设置Tab键次序(不是必须);④建立信号与插槽的连接。

Qt4 Designer将界面设计组织成.ui的文件:①通过designer设计并保存工程为**.ui文件保存到一个文件夹内部;②通过uic-or rfid.ui ui_rfid.h命令生成ui_rfid.h库文件;③编写一个main.cpp文件;④编写rfid.cpp和rfid.h文件;⑤使用qmake工具生成.pro工程文件 qmake-project;⑥生成makefile文件qmake;⑦编译make。编译生成的界面如图7所示。

图7 编译生成的Qt用户界面

由于Qt程序具有一次编写处处编译的特点,在这本文最后更改为qt-embedded-linux编译环境对Qt应用程序进行编译生成运行在开发板的可执行程序。

3 结语

本文基于RFID的油田钻具巡检手持终端采用RFID免接触自动识别技术,利用GPRS无线传输技术实现对每根钻具的有效跟踪。实验结果表明,提出的钻具巡检手持终端能准确完成对钻具数据的采集和传输,通信可靠,与传统巡检模式相比更加准确有效,对于即将报废的钻具提出预警,有效防止失效

钻具给钻井作业带来的安全问题和经济损失,实现钻具跨地域的有效管理,极大促进油田安全生产。

[1]李鹤林,李平全,冯耀荣.石油钻柱失效分析及预防[M].北京:石油工业出版社,1999.

[2]王运梅,李琛,马建民.基于RFID技术开发的油田钻具数字化管理系统[J].石油矿场机械,2007,36(7):71-74.

[3]刘伟峰,庄奕琪,唐龙飞.一种全新的无源超高频标签芯片架构设计[J].西安电子科技大学学报,2010,37(6):1092-1099.

[4]田景贺,范玉顺,朱云龙.基于RFID的烟草物流分拣系统设计[J].仪器仪表学报,2006,27(6):1873-1880.

[5]孙红,任杰.全新理念的仓库管理模型设计[J].仪器仪表学报,2006,27(6):2542-2543.

[6]田景贺,朱云龙,南琳,张磊.基于RFID数据采集的自动化仓库管理系统[J].仪器仪表学报,2007,28(4):542-546.

[7]王海玲,胡琨元,朱云龙.基于ARM9+Linux的RFID智能终端设计[J].微计算机信息,2008,24(11):19-21.

[8]程明,邓小祥.基于ARM的RFID数据移动终端系统的设计[J].计算机与应用化学,2011,28(7):907-910.

[9]翟鸿雁.RFID与传感器网络集成方法研究[J].现代计算机,2011,33(2):22-23.

[10]杨阳,胡耀光,周玉偈.基于ARM的RFID数据采集模块设计[J].信息化技术,2011,12(4):41-44.

[11]王爽,沈继伟.安全PRESENT加密算法的硬件实现[J].科技传播,2011,22(6):174-177.

猜你喜欢

钻具命令串口
只听主人的命令
浅谈AB PLC串口跟RFID传感器的通讯应用
新疆玛湖油田水平井低摩阻导向钻具组合优选与应用
移防命令下达后
国外潜孔钻具研发方面的新动向
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
低钻速钻井作业中钻具的损伤危害与防护
这是人民的命令
串口技术的实物调试和虚拟仿真联合教学模式