基于FPGA的测井深度系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

 [收稿日期]20061020

 [作者简介]吴爱平(1977),男,2002年大学毕业,硕士,讲师,现主要从事信号采集与处理方面的教学与研究。基于FPGA的测井深度系统设计

吴爱平,付青青 (长江大学电子信息学院,湖北荆州434023)

[摘要]针对单片机处理深度信号存在速度慢、外围电路复杂等问题,提出了用现场可编程门阵列实现深

度系统设计的方法,给出了设计的整体硬件框图和FPGA设计的顶层图,并对设计进行了仿真。试验结

果表明,使用该方法设计的深度处理系统结构简单,速度快,可靠性高。

[关键词]FPGA;测井深度;设计

[中图分类号]P631畅88

[文献标识码]A [文章编号]16731409(2006)04010203

深度信息是一个非常重要的测井信息,如果深度测量不准,可能会导致测井资料作废,甚至有带来生产事故的危险,所以它在测井过程中起着相当重要的作用。目前进行深度系统设计主要是采用单片

机,用单片机设计的深度系统[1],外围电路复杂,执行速度慢,但开发风险小。为了克服采用单片机设

计的深度系统的弊端,笔者提出了采用FPGA(现场可编程门阵列)设计深度系统的方法,采用该方法设计的深度系统,硬件电路简单,执行速度快,可靠性高,升级改造容易。

图1 测井深度系统总体硬件框图1 硬件设计

系统硬件框图如图1所示,深度信号送至FPGA

处理,同时FPGA通过PCI9052接受工控机发出的深

度初始设置命令,并回送计算的深度脉冲数给工控

机。FPGA中设计了地址译码、读写控制、数据选

择、方向判断、深度计数、深度中断发生器、数据锁

存7个模块,其中用到了23个I/O(输入/输出端

口)。FPGA选择Altera公司的EP1C3TC144[2]。由于Cyclone系列器件是基于SRAM工艺,掉电后信息不能保存,每次上电时要对芯片进行配置后才可使用,

设计中选用的配置芯片是Altera公司的EPCS1。通过JTAG(联合测试行动小组)进行在线编程,AS(主动串行)进行在线配置,配置电路完成FPGA程序的上电配置。

配置寄存器选用93C46,完成PCI9052上电时的自动配置,确保接口电路按预先设置的方式进行工作。93C46存储了PCI9052重要的配置信息,如设备号DID、制造商号VID、子设备号SDID、子制造商号SVID、中断号、设备类型号、局部空间基地址、局部空间描述符、片选响应以及局部响应控制CNTRL等信号。配置寄存器的内容非常重要,它直接关系到整个系统能否正常工作,如果配置不正确,即使硬件设计没有一点错误,电路也很难正确地工作[3]。

2 软件设计

软件设计选用Altera公司的QuatrusⅡ5畅0[4]

软件开发工具。深度信号的处理由FPGA实现,深度信号A和B从FPGA的全局时钟进入。在FPGA内部做了接口模块、测井方向判决模块、一个32位的可逆计数器和深度中断发生器(图2)。当进行上提测井时,A信号相位超前B信号,方向模块输・201・长江大学学报(自科版) 2006年12月第3卷第4期理工卷JournalofYangtzeUniversity(NatSciEdit) Dec畅2006,Vol畅3No畅4Sci&EngV

图2 FPGA设计顶层框图

出0,计数器做减计数;当进行下放测井时,

方向模块输出1,计数器做加计数。计数器计

的深度脉冲数分成4个字节送至数据选择器,

数据选择器在片选信号SEL的作用下依次将4

字节的深度数据从D送至接口模块供工控机读

取,工控机读到深度计数值后根据每米脉冲数

计算出当前的深度和速度。由于目前的井深一

般不会超过10000m,为此,笔者设计了一个

32位的计数器,确保在当前的测井中计数器不

会发生溢出。深度中断发生器接受工控机的初

始设置,根据工控机的要求相应地发出中断。3 仿真结果

为确保设计的可行性,对各模块都进行了功能仿真和时序仿真。功能仿真只是从电路的功能上验证设计的正确性,电路中没有延时;而时序仿真能模拟实际电路中的器件延时,从而能进一步验证设计的

正确性[5]。图3为深度处理模块中深度计数部分的仿真波形,clk为系统时钟,reset为复位输入信号,a和b为深度脉冲输入信号,direct为方向输出信号;q1[7畅畅0],q2[7畅畅0],q3[7畅畅0],q4[7畅畅0]为深度计数输出信号,共4个字节。在A和B信号的作用下,计数器做加或减计数。从图3中可以看出,当系统复位信号有效时,深度计数的初始值为80000000H。在102畅5ns前,A超前B,direct输出为低,说明仪器被上提,计数器从80000000H做减计数;当减到7FFFFFEDH时,深度信号发生改变,B超前A,direct为高,仪器被下放,计数器从7FFFFFEDH

开始做加计数。

图3 深度计数仿真波形

图4为上提测井中断信号仿真波形,A为深度脉冲输入信号,fs为测井控制方式输入信号,direct为测井方向输入信号,data[7畅畅0]为主机下发的每米中断数,irq为中断输出信号,count为内部信号。当fs为低,data[7畅畅0]为5时,即要求仪器上提时每隔5个脉冲向主机发一次中断。在direct为低时,说明仪器被上提,每计5个深度脉冲发一次中断,即在图4中count为05和0A出均有中断发出;由于某种原因仪器被下放,即在图中direct为高时,不论来多少脉冲,均不发中断,只有当仪器被再次提起,并且减去由于仪器下放而增加的深度计数部分后才向主机发中断,见图4中count为1D时即发中断。

图5为下放测井中断信号仿真波形。图5中,fs为高、方向信号direct为高时,仪器被下放,在count为2A和2F时发出中断;在count为32处方向信号变为低,中断发生器不发中断,直到方向信号改为高且加回由于仪器上提而减去的深度计数部分后才开始向主机发中断,见图5中count为49时即发中断。

・301・第3卷第4期吴爱平等:基于FPGA的测井深度系统设计 

相关文档
最新文档