APP下载

基于FPGA的测井系统模拟仪器设计

2013-05-31

石油管材与仪器 2013年1期
关键词:寄存器解码命令

李 敏

(中海油田服务股份有限公司 北京)

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

猜你喜欢

寄存器解码命令
《解码万吨站》
只听主人的命令
STM32和51单片机寄存器映射原理异同分析
Lite寄存器模型的设计与实现
解码eUCP2.0
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
移防命令下达后
这是人民的命令
高速数模转换器AD9779/AD9788的应用