×
单片机 > 单片机程序设计 > 详情

基于PIC16F877单片机的井下压力测量技术研究

发布时间:2020-06-23 发布时间:
|
    目前,我国油井主要采用的是电子式井下压力测量系统,由于电子压力传感器长期工作在高温环境中,所以存在漂移问题,而且可靠性不高。同时这种仪器大多数将采集的数据存储在存储器中,缺乏实时性测量的要求。而本文所介绍的井下压力采集系统是一种新型的压力测量系统,其主要是以惰性气体作为压力传递介质,在地面完成对井口气体压力的测量,然后通过井口压力的大小推算井下测压点处压力大小。其主要特点是所有的测量都在地面上进行,避免了井下复杂环境对测量结果造成的影响,同时也满足了系统的实时性要求。

1 井下压力测量系统工作原理
    井下测压系统的基本原理是帕斯卡定理。整个套管设备在测压时被下放到井下测压点处,地面可以通过压力泵向传压筒内充放气体,为维持井液与高压气体接触的气液面平衡,传压筒里面的气体要定期进行补充。根据帕斯卡定理,传压筒内气体的压力等于井液的压力,将信号采集到PIC16F877中,在PIC16F877中根据相应的算法计算出井内的压力值,并进行存储、实时显示和数据回放。

2 硬件电路设计
    压力检测系统主要由以下几部分组成,分别为数据采集电路、数据存储电路、数据显示以及数据回放。数据采集电路主要使用PIC16F 877单片机对压力数据进行实时采集数据,存储电路使用型号FLASH存储芯片;数据显示使用的是智能显示器;数据回放采用RS-232串行接口,将存储在flash芯片中的数据回放到计算机中。图1为压力检测硬件电路的设计框图。


2.1 压力传感器的选取
    压力的测量一直以来受到压力传感器技术的制约,其测量的准确程度取决于压力传感器的技术指标,根据压力检测系统的设计要求,最后决定选用德国HeLM公司生产的HM10高精度压阻式压力传感器,此传感器采用了最坚固可靠的压力敏感元件,特别适合于野外的压力测量。  HM10主要的性能指标如下:
    1)工作温度:-40~85℃
    2)冲 击:100 g,11 ms
    3)振 动:10 gRMS.20~2 000 Hz条件下无变化
    4)压力量程:-0.1 MPa~0~10 kPa…70 MPa[page]

2.2 压力采集电路设计
    压力检测系统的数据采集主要是通过单片机PIC16F877来完成。压力检测系统设计中有一项要求就是精度要达到0.1%FS,且采集最小间隔为1 s,鉴于这两个要求,在数据采集电路设计时选用精度很高的多通道24位芯片ADS1226,具有100SPS的数据采集率,符合最小1 s的数据采集间隔。


    图2为压力采集电路的连接图,其中,P3.0、P3.1、P3.2、P3.3为单片机的I/O接口,分别与ADS1226的START、SCLK、DOUT、MUX引脚相连。其中P3.0控制着ADS1226的启动信号,当P3.0输出高电平时,ADS1226开始进行数模转换,当P3.2输入低电平时A/D转换完成,转换完的数据信号随着SCLK传输到PIC16F877单片机内。由于压力传感器HM10输出的是4~20 mA的电流信号,而ADS1226是一个电压采集芯片,在此处选用了型号为ISO-A4-P3-04的电流转电压芯片。ISO-A4-P3-04把4~20 mA的电流信号转换成了0~5 V的电压信号。
2.3 数据存储电路设计
    井下数据测量期间可能会有大量的原始数据,这些数据对油井状况的评估是一份宝贵的资料,因此测量系统在设计时要考虑数据的存储。本系统选用的是大容量Flash存储器。该器件采用三星公司的CMOS浮置门技术和与非存储结构,存储容量为64M×8位,除此之外还有2 048k×8位的空闲存储区。对528字节一页的写操作所需时间典型值是200 μs,而对16 k字节一块的擦除操作典型值也仅需2 ms。每一页中的数据读出速度也很快,平均每个字节只需50 ns,已经与一般的SRAM相当。8位I/O端口采用地址、数据和命令复用的方法。这样既可减少引脚数,还可使接口电路简洁。片内的写控制器能自动执行写操作和擦除功能,包括必要的脉冲产生,内部校验等,完全不用外部微控制器考虑,简化了器件的编程控制难度。如图3为单片机PIC16F877与Flash存储器的接口连接图。单片机的P5.0~P5.7管脚与Flash的8为I/O口相连。

[page]

2.4 数据显示电路设计
    压力检测系统采用了彩色智能显示液晶屏,该系列显示器采用集成化CPU,内置一级汉字库(二级字库可选),采用标准指令集,通过RS232C接口或打印机并行口接收控制命令和数据。同时为了提高通讯速度,显示器内设置了一个256字节的输入缓冲区。在发送数据前应先检查DTR(液晶显示器上串口名称)信号,若DTR为高电平(TTL),表示缓冲区满,要等到DTR信号变为低电平(TTL)后再发送数据。即DTR为低电平(TTL)时发送数据,DTR为高电平(TTL)时停止数据发送。如果每组的数据量少于256字节,同时每组之间又有足够的间隔,则不需要判断DTR位信号也可连续发送。
    压力检测系统在处理器与液晶屏通信时采用的是串口的形式,把PIC16F877的P4.6管脚当作通用I/O口直接与液晶屏的串行接口向连接,标准的RS-232在进行通信时只需要发送、接收和地线(GND)3个管脚即可,因此液晶显示器与处理器的连接十分简单。但是由于PIC16F877管脚能承受的电平最大5.5 V,而串行接口的电平是TTL电平,所以在连接这两个器件时必须添加一个电平转换芯片MAX3232,具体的连接方式如图4所示,图中YJ-RXD是液晶屏的串行接收接口,P4.6为PIC16F877的发送端口,MAX3232起到了一个电压转换的作用。数据回放主要指的是将存储在FLASH存储芯片中的数据回放到PC机上,PC机接收数据采用的是串口RS-232,通过MAX3232进行连接,如图4所示,这里不再叙述。



3 软件设计
    本系统软件设计主要是单片机系统软件设计。PIC16F877的内核CPU结构是按照精简指令集和高透明指令的宗旨来设计的,因此单片机开发采用专门用于PIC16F877系列单片机而设计集成开发环境,编程采用C语言。PIC16F877作为主CPU。PIC16F877在系统中主要负责压力数据的采集、系统的启动、采集数据的处理、数据的显示和上位机数据的回放等。其软件的主程序流程图如图5所示。


    在整个压力采集系统中,通过PIC16F877单片机来控制启动A/D转换,单片机共采集12个数据,去掉最大与最小的数据,取平均值,作为一个井口压力值。在根据相应的算法,通过进口压力值计算出测点压力和油层压力,再把这3个数据进行存储和显示。

4 结束语
    本文设计的压力检测系统通过了现场实验的测试,系统稳定可靠,采集了大量的数据,通过改变测试条件验证了测得压力值的准确性,由于要长期实时监测井下压力,Flash存储器可以存储10天的数据,所以该系统连续工作10天后要对数据进行回访,并存储在计算机上,以便后续参考。井下压力检测系统是通过测量井口压力来推算井底压力的方法来实现压力测量的,这就避免了井下的复杂环境,从而减少了环境对测量的影响。同时使用液晶屏将测量数据进行实时的显示,满足了实时性测量的要求。

关键字:PIC16F877  测压  数据采集  实时显示 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析