一种基于DSP与FPGA结合的光栅振动信号处理系统

时间:2011-06-07

 

  地震检波器是用于地质勘探和工程测量的专用传感器,是一种将地面振动转变为电信号的传感器,或者说是将机械能转化为电能的能量转换装置。   地震数据采集系统主要由传感器(又称检波器)和数字地震仪组成。检波器埋置于地面的装置,把地震波引起的地面震动转换成电讯号并通过电缆将电讯号送入地震仪;数字地震仪将接受到电讯号放大、经过模/数转换器转换成二进制数据、组织数据、存贮数据。   地震勘探是目前常用石油勘探方法之一,它的基本原理是利用人工地震在地层中产生振动信号,根据设计要求在距离激发点不同的地方布置传感器(即地震检波器)接收振动信号,然后对接收到的振动信号进行处理、解释,根据信号的频率、振幅、速度等信息分析不同深度地层的属性、构造的形态等,从而初步判断是否有具备生油、储油条件,提供钻探的井位。本文设计了一种利用DSP与FPGA结合的光栅振动信号处理系统,它主要完成对光栅震动传感器输出的两路正交的正弦波信号的采集、计数、高倍细分等,从而实现了对快速的振动信号的复现。

  1 光栅地震检波器的工作原理

  光栅地震检波器主要由光源(白光或单色光)、准直镜、光电池、指示光栅(副光栅)、光栅谐振子(主光栅)组成。光栅谐振子(主光栅)为检波器的可动部分,由上弹簧片和下弹簧片支撑。工作时,检波器外壳通过检波器尾钉与大地连接并固定,当大地受到震源激发后,地震波传至地面引起地面震动,检波器外壳也随之震动。而光栅振子由于弹簧片的弹性和本身的惯性,有保持不动的趋势,从而产生了光栅振子与外壳的相对运动,也就是说光栅副中的主光栅与裂向式指示光栅之间产生了相对运动。两块叠放在一起的光栅具有了相对运动也就会产生与之相对应的莫尔条纹,从而在相位差为90°的四个光电池上产生莫尔条纹的变化,于是光信号被转化为电信号,再经差分放大后形成两路相位相差90°的正弦或余弦波信号。

  2 光栅震动信号的同步采集

  要保证整个系统对振动信号的实时复现,关键是要保证对两路模拟正弦波的同步采集。若使用DSP直接控制多通道的模数转换器,由于编程语言的顺序结构和单个模数转换器不能同时采样保持的限制,对于多路信号的采集只能分时多通道顺序采集,这样对同一点的两路模拟波的采集肯定会产生相位差,这样对复现出来的原振动信号会造成相当大的失真。但是由于FPGA的编程语言VHDL执行时是并发执行的,并不受到它们在主结构中的编写顺序的影响。根据上述特点,对于本系统的设计可以分成三个并行进程,分别是2个光栅信号采集的进程和一个加减计数器的进程。

  光栅振动莫尔条纹的信号采集采用成直线排列的相位差为90°的四个光电池,分别记为1、2、3和4,如图1所示。它们接收由被测振动信号调制的莫尔条纹,并通过差动放大器、整形滤波器输出两路正交的正弦信号。这两路信号分成两组,其中一组经过鉴零比较电路转换成方波送入辨向电路为FPGA中加减计数器提供计数累加值和辨向信号。另一组则直接将放大的模拟电压信号送入两路AD转换器转换成数字量并存入FPGA。在FPGA中开辟3个双口RAM存储器用来顺序存放每一点的整周期计数值和两路波形的数字量,为DSP进行高倍细分提供基础数据。

 

 

  2.1 双口RAM的设计

  双口RAM 是在一个SRAM 存储器上具有两套完全独立的数据线、地址线和读写控制线,并允许两个独立的系统同时对该存储器进行随机性的访问。即共享式多端口存储器。双口RAM的特点是存储数据共享。一个存储器配备两套独立的地址、数据和控制线,允许两个独立的CPU或控制器同时异步地访问存储单元。因为数据共享,就必须存在访问仲裁控制。内部仲裁逻辑控制提供以下功能:对同一地址单元访问的时序控制;存储单元数据块的访问权限分配;信令交换逻辑(例如中断信号)等。双口RAM可用于提高RAM的吞吐率,适用于作于实时的数据缓存。

  其工作原理如图2所示,所设计的存储空间为3个16字容量的双口RAM,当信号采集部分向新地址写入每一个振动点的三个信息量时(图中所示地址为15),信号处理部分则读取先前振动点的三个信息量进行细分等处理(图中所示地址为0),当双口RAM写满数据后,写地址指针又会重新定位到首地址写入新的数据,这种缓存结构的设立不会丢失信息点,保证了还原信号的连续性和可靠性,虽然还原信号滞后源信号3到4个字的时间,但保证了每一个点三个信息量的同步性,这是C语言等顺序结构语言所无法达到的。

 

 

  2.2 双口RAM的流程图设计

  首先是定义实体与外部端口,包括时钟、输入输出、读写地址端口。它们的作用分别是:

  1)时钟端口:利用时钟的脉冲边沿来触发读写进程,使得新旧数据在双口RAM中交替进出。

  2)输入输出端口:分别为16位的位矢量类型,用来保证与16位AD和DSP的数据格式匹配。

  3)读写地址端口:2位的位矢量类型,用来设置16位字的存储器容量,并在读写RAM操作时提供地址选址信号。

  其次是定义结构体,包括定义内部缓冲地址信号,并定义了一个容量为16字的Mem(存储器类型)型变量。

  是并发进程的定义,包括写进程和读进程的定义,以时钟的脉冲信号作为敏感信号来触发进程的启动,每一个时钟周期完成对RAM的读写,其中时钟频率由FPGA根据AD的采样速度和DSP的处理速度来设定,要保证当采集信号写入尾地址的时刻,至少要保证首地址已经被DSP所读取。图3为双口RAM程序流程图。

 


 

 

  2.3 双口RAM的仿真结果

  图4为该进程的仿真时序图,由图可见个时钟的上升沿数据输入端口data_in的值为4,这时写选通端口write_address选通地址1,然后对应着地址1的存储器模块ram_block1的内的值在此刻刷新为4,这说明写进程正确。同时应注意到读地址选通信号read_address的值被传递到读地址寄存器read_address_reg中,read_address_reg中的值被刷新为1。当个时钟的下降沿到来时,信号输出端口data_out根据读地址寄存器read_address_reg中的地址值1选通ram_block1,此时data_out的值刷新为4,这说明读进程也正确。

 

 

  3 DSP的软件细分

  DSP是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是值得称道的两大特色。

  采用大数可逆计数与小数细分计数的软件细分技术。其中大数计数是对莫尔条纹整周期数进行可逆的加减计数,这部分功能有采集模块中的FPGA来完成,小数计数是对莫尔条纹不到一个周期信号细分结果进行计数,其功能由DSP来完成。运算的结果为大数计数结果乘以光栅栅距与小数计数结果乘以细分当量之和,其中细分当量为光栅栅距除以细分倍数。该模块的硬件原理图如图5所示。

 

 

  通过DSP的地址选通线依次选通读取FPGA中三个数据缓存区中的数据,缓存区分别存放两路模拟信号的数字量与加减计数器的累加计数值,然后利用公式R=N*w+K*L求出任意一点谐振子的幅值并输出。式中N为整周期的累加计数值,W为光栅栅距,K为细分计数,L=W/M,M为细分倍数。该细分模块主要是完成对细分计数K值、和幅值R值的求取,并完成对幅值的数字量转换并输出。

  其中细分方法也就是对K值的求取采用了八卦限幅值分割法,根据上述方法设计了细分倍数可变的细分算法,利用DSP C语言的专用库函数实现了纯计算的算法。细分算法流程如图6所示。

 

 

  由幅值细分法可知,软件细分算法设计的关键问题是根据两路信号的比值对该点的相位角的正确定位。该点的位置有两种情况,一种是落在各象限的边界上,另一种是落在各象限之中。根据细分边界条件判断该点的采样数据是否发生在四个象限的分界线上,如果判断此次换向发生在象限的分界线上,则细分数为固定值,并且通过象限的正负关系就可以确定具体细分数值,不需要进行复杂的计算。如果该点不是发生在象限分界线上,则需根据象限正负关系判断换向发生的具体象限,不同象限对应不同计算公式。细分算法程序如下:

  static int subp(int*input,int*input1)一设置指针形参用来读取两路波形采样值

  {

  程序初始化,定义各种变量标志字。

  float ADSIN_X,ADCOS_X,ABSIN_X,ABCOS_X;一定义存储变量存放采样值与

  int m=0,n=0,k=0,d=0,i=0;一设置标志字判断采样值正负

  ADSIN_X=*input;-从缓存区读取sin采样值

  ADCOS_X=*input1;-从缓存区读取cos采样值

  ABSIN_X=fabs(ADSIN_X);-求取sin

  ABCOS_X=fabs(ADCOS_X);-求取COS

  根据采样值,写标志字

  if(ADSIN_X>0) m=1; else m=0;

  if(ADCOS_X>0) n=1; else n=0;

  if((ABSIN_X-ABCOS_X)>0)k=1;else if((AB-SIN_X-ABCOS_X)<O) k=0;elsek=2;

  根据标志字判断相位点的位置,根据相应位置不同公式求取细分值

 

 


  然后利用公式R=N×ω+d×L求出任意一点谐振子的幅值并输出。式中N为整周期的累加计数值,W为光栅栅距,d为细分计数,L=ω/m,m为细分倍数。

  4 结束语

  光栅地震检波器是基于光栅检测技术设计的一种新型数字传感器,基于单片机的光栅地震检波器信号处理速度较慢,现场可编程门阵列FPGA时钟频率高,内部延时小,硬件资源丰富,在控制数据采集、转换等方面有着单片机和DSP所无法比拟的优势。为了提高光栅地震检波器的测量和分辨力,该文进行了基于FPGA和DSP的光栅地震检波器信号处理研究,并将软件细分原则应用于信号处理系统中。该系统基于硬件RAM存储器进行设计,在有效地减小电路板面积的同时,可实现数据的快速采集和高测量。


 


  
上一篇:基TMS320DM642的嵌入式网络视频监控系统设计
下一篇:基于TMS320VC5509A的超声波电子笔设计与实现

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料