基于FPGA的测井系统模拟仪器设计
2013-05-31李敏
李 敏
(中海油田服务股份有限公司 北京)
0 引言
在成像测井系统的研制过程中,地面系统的检测通常需要挂接井下仪器才能进行,一旦检测出现问题,往往不能很快判断出是地面系统还是井下仪器出现的问题,通常需要更换地面系统或是井下仪器来进一步检测。地面系统软件的调试,同样需要挂接相应的井下仪器才能进行,软件开发人员只能在测井或试验现场才能进行调试。因此,设计了一套能够模拟各种井下仪器的装置,用于地面系统的检测及科研调试。
1 原理
模拟仪器可以接收地面系统发送的采集命令,经过放大和整形,恢复出命令的曼彻斯特码波形,然后进入fpga进行解码,解析出命令,MCU收到命令后,根据命令包含的仪器地址和subset编号,从Flash存储器中读取仪器的数据,通过FPGA产生曼彻斯特编码,驱动后送回到地面系统[1]。
地面系统的采集命令由两个字节组成。高8位表示仪器地址,低8位表示采集命令。因此模拟不同的仪器,实际上就是要能响应不同仪器地址的采集命令,并返回相应的数据。对采集命令的分析和处理都是在MCU内部完成的,各种仪器的数据预先存放在MCU的Flash存储器中。
2 系统硬件组成
模拟仪器系统的硬件由以下部分组成:隔离变压器板、命令和数据整形驱动电路、FPGA、MCU以及Flash,分成了两块电路板:信号调理和驱动板、CPU板,如图1所示。
图1 模拟仪器系统的硬件
系统的电源采用一个成熟的开关电源,输入范围80-240VAC,既可以适应测井托撬使用的110VAC,又可以适应实验室的220VAC;电源输出+5 V,通过CPU板的电源电路,产生+3.3 V和+1.5 V,分别供给MCU和FPGA。电源输出的+12 V和-12 V,用于信号调理板的模拟电路部分。
隔离变压器板主要由3个用于电缆通讯的隔离变压器组成,完成信号的隔离和电缆复用。整形驱动电路,主要完成对采集命令和数据波形的调理,包括程控增益放大、均衡滤波、以及电流驱动等。
CPU板主要包括FPGA和MCU以及外扩的Flash存储器。FPGA完成曼彻斯特编解码功能,作为MCU的外设挂在MCU的外部总线上[2]。FPGA选用Alter公司Cyclone系列的EP1C6T144[3]。MCU选择Silabs的C8051F340单片机[4]。
cyclone EP1C6是Altera推出的一款高性价比FPGA,工作电压3.3 V,内核电压1.5 V。采用0.13m工艺技术,全铜SRAM工艺,其密度为5980个逻辑单元,包含20个128×36位的RAM块(M4K模块),总的RAM空间达到92160位。
C8051F340是Silabs推出的一款增强型51内核的单片机,其指令集与MCS-51完全兼容,具有标准8051的组织架构,可以使用标准的51汇编或者C编译器进行软件开发。其指令执行速度是标准8051指令执行速度的12倍;其峰值执行速度可达100MIPS(C8051F120等),是目前世界上速度最快的8位单片机。而且集成了JTAG接口,便于开发和调试。
F340单片机具有外部数据存储器接口,8位数据总线宽度,16位地址总线。所以FPGA可以作为MCU的外设,挂在外部执行接口上。
由于F340单片机带有64KB的Flash,以及4KB的片上RAM,再利用FPGA的内部RAM模块,就可以实现系统功能,而不需要扩展外部存储。
MCU的外部数据存储地址范围从0x0000-0xffff。其中0x0000-0x0fff为片上RAM,FPGA映射到MCU的外部地址范围从0x8000开始,实现5个寄存器,分别是命令寄存器、M2/M5/M7数据寄存器、状态寄存器。
3 软件设计
系统的软件设计包括两个部分,MCU和FPGA的软件设计。FPGA使用QuartusII作为编程环境,采Verilog语言编程[5]。MCU的编程采用Silabs提供的SiliconLaboratoriesIDE开发环境,结合KeilC编译器。下面分别介绍软件设计流程。
3.1 FPGA的软件编程
FPGA编程在QuartusII开发环境下,同样采用自顶向下的设计。顶层文件采用原理图实现,进行功能模块的划分和结构设计,各功能模块内部采用Verilog语言实现。FPGA实现的功能模块主要有MCU接口模块、命令解码模块、数据编码模块和中断控制模块。
(1)MCU的接口模块,通过MCU的地址译码得出不同的寄存器,进行功能控制。
(2)命令解码模块,接收整形后的曼码,进行解码,解码后的命令,送给MCU进行处理。
(3)数据编码模块,接收MCU的数据,进行曼码编码。经过驱动后,数据传到地面系统。
(4)中断控制模块,对多个中断源进行仲裁控制,实现中断复用。
3.2 单片机软件设计
单片机的程序采用C语言开发,主要功能分为几部分:响应FPGA产生的采集命令中断;向FPGA写发送数据。FPGA每发送完成一个数据后,产生中断给MCU,MCU判断发送的数据个数是否小于期望值,如果小于,继续向FPGA写入数据,否则,关闭停止发送。
4 结论
本系统基于FPGA和MCU结构,设计了成像测井系统的模拟仪器,通过电缆与测井地面系统连接,可以检测通讯状态。目前模拟的仪器功能有,能谱仪器、密度仪器、侧向仪器等常规仪器,还有声波等高端仪器。通过工程实践证明,本系统为地面系统的测试和检修提供了有效而可靠的手段。而且通过检测软件界面的波形,为地面软件的调试提供支持。
[1]马 虹,法 林.测井电缆遥测系统信号模拟器的设计[J].石油仪器,1998,12(6)
[2]赵红梅,米启超.基于DSP与FPGA的多通道数据采集系统的设计[J].微计算信息(嵌入式与SOC),2007,23(9-2)
[3]Cyclone Device Handbook,Altera,2005(资料)
[4]C8051F340 datasheet Sillicon Laboratories,2009(资料)
[5]夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2008