文献标识码:B
文章编号: 0258-7998(2012)10-0072-03
在地球物理勘探领域,地震波勘探越来越受到地质工作者的青睐,地震波数据的正确采集因此显得非常重要。地震信号由于其自身的固有特征,动态范围需在120 dB左右,频带需要在10 Hz~1 kHz左右,对采集卡提出了较高要求,而且随着城市化进程的加剧,测试环境的背景噪声也越来越复杂,这给地震数据的采集带来了新的问题,同时也给采集卡提出了更高的要求。因此需要采用更高精度的ADC技术和更加严格的数字滤波技术对信号进行处理,才能得到理想的采集数据[1]。目前国内相应的仪器均采用国外进口,为了有所突破,本文对此技术进行的相应研究,通过CS3301、CS5272以及CS5376和STM32相连,构成了一套地震数据采集卡,采集在地震勘探过程中的地震波信号,并通过网络接口传递给上位机,以LabVIEW作为软件平台对数据进行实时监测、处理以及分析。
1 系统的硬件结构框图
系统的硬件结构框图如图1所示,硬件电路主要包括前端运放CS3301、24位ADC芯片CS5372、数字滤波芯片CS5376、网络接口芯片ENC28J60以及STM32F103ZE芯片的最小系统和相关模块之间的接口电路。
1.1 STM32F103ZE硬件模块
本系统采用ST(意法开云棋牌官网在线客服)公司生产的STM32F103ZE作为核心控制模块。STM32F103ZE是基于最新Cortex-M3内核的32位高速ARM微处理器,功耗比较低,工作频率经过PLL倍频后最高可以达到72 MHz。它拥有512 KB Flash,64 KB SRAM,外围接口相当丰富,拥有2个SPI接口,完全满足设计的要求。STM32F103ZE作为本系统的控制核心,直接通过两个SPI接口分别控制CS5376和ENC28J60工作状态以及数据采集、处理和发送过程。首先将CS5376滤波处理过后的数据传递给ENC28J60,再通过网线与上位机通信。在本数据采集系统中,STM32F103ZE外接8 MHz时钟,经过内部PLL倍频至72 MHz[2]。
1.2 CS3301、CS5372及CS5376硬件接口模块
CS3301、CS5372和CS5376是Cirrus Logic公司生产的专用于地震数据采集的一组套片,需要一起配合使用,CS5372是基于△-Σ技术的24位ADC调制芯片,它对信号进行抽取调制后变成“1”的比特流,然后送至数字滤波芯片CS5376进行滤波处理后形成24位数据输出。前端的信号调理电路采用CS3301,它是差分运放,增益可控,用它进行前端阻抗匹配以及放大倍数的控制。对应的电路接口图如图2和图3所示。图2中,CS3301通过MUX0和MUX1选择输入通道,GAIN0~GAIN2控制增益。这些控制信号都接入STM32,由STM32进行控制。电阻R1、R2、R3、R4和电容C1、C2组成信号输入耦合电路。其中电阻R1、R2的作用是匹配信号内阻;电容C1、C2起隔直作用;电阻R3、R4组成运放偏置电流回路。隔直电容C1、C2在隔断直流信号的同时,也隔断了部分低频信号。如果想让预定频率的信号通过,则C1、C2和R3、R4的大小必须合适。另外CS3301、CS5372均需要外接时钟信号,它们直接由数字滤波芯片CS5376产生,这样有利于在数据处理时严格控制信号的同步性。
1.3 STM32和ENC28H60硬件接口模块
在本课题中设计中,网卡芯片采用Microchip(微芯)公司生产的ENC28J60。该芯片是目前全球最小封装的以太网控制器。目前市场上大部分以太网控制器采用的封装均超过80引脚,而符合IEEE802.3协议的ENC28J60只有28引脚,这既能提供相应的功能,又可以大大简化相关设计,并减小电路板的空间,精简相应的程序设计开发。此外,ENC28J60 以太网控制器采用业界标准的SPI 串行接口,只需4条连线即可与主控单片机连接。这些功能加上由Microchip 免费提供的、用于单片机的TCP/IP软件堆栈,使之成为目前市面上最小的嵌入式应用以太网解决方案[3]。
ENC28J60芯片内部集成了网络变压器和用作指示的LED,因此电路中不再需要接网络变压器。由于ENC28J60是基于SPI 接口的以太网控制芯片,因此其与嵌入式系统的接口非常简单,只需将ENC28J60的SPI接口与STM32F103ZE的SPI接口按照标准的SPI接口方式连接即可。
2 系统的软件设计
2.1 STM32软件设计
STM32F103ZE采用MDK作为开发环境。系统采集软件由主程序和若干子程序构成,子程序包括SPI1控制CS5376,SPI2控制ENC28J60, 数据采集程序框图如图4所示。
在STM32软件设计中需要包含对网络接口芯片ENC28J60和数字滤波芯片CS5376的初始化。ENC28J60和CS5376均采用SPI接口,因此需要对STM32F103的两个SPI接口——SPI1和SPI2分别初始化。这里不再赘述。
2.2 LabVIEW上位机软件设计
本课题采用了LabVIEW作为上位机软件开发平台。它使用图形化编程语言——G语言进行编程,功能强大而使用灵活,分前面板和后面板两部分来进行设计。前面板是图形化显示界面,后面板是模块连接图。在本课题的设计中,使用了LabVIEW后面板数据通信控件协议中的4个函数[3],将分别介绍如下。
该函数是用来打开地址或者网络端口或服务器的TCP连接。比如说打开192.168.1.1端口号为80的TCP连接。该函数是用来匹配IP地址是否是目标板的IP地址,如果是则连接成功,不是则返回错误信号。该函数中的地址要与其建立连接的目标板的地址一致。该地址可以为IP句点符号格式,例如192.168.1.1或者主机名。如未指定地址,LabVIEW将建立与本地计算机的连接;远程端口或服务名称可以接受数字或字符串输入。远程端口或服务名称是要与其确立连接的端口或服务的名称。
在本课题中目标板的端口号选用5 000端口。
函数3:读取TCP数据 (函数),如图7所示。
当LabVIEW和目标板建立连接后,该函数用来读取数据以及控制读取数据的字节数。在本课题中一次读取的字节数控制为4 096 B。刚好为一个AD采样存储空间的大小。
函数4:关闭TCP连接(函数),如图8所示。该函数是实现关闭TCP连接。
在本课题中LabVIEW前面板框图如图9所示,后面板如图10所示。在前面板中输入目标板的地址192.168.1.30,端口为5 000,读取的字节数为4 096。打开/停止键控制打开和关闭TCP连接。
由于刚开始不知道数据传输的格式,所以使用网络调试助手进行数据观测。
通过观测发现网络数据包是按照字节进行发送的,也就是说下位机中的24 bit AD采样数据分4个字节发送,先发送低字节,然后发送高字节,因此需要将发送的数据进行整合处理。相应的整合电路如图11所示。
先将低2字节的数据直接拿出来,高2字节的数据乘以65 535后与低2 bit的数据进行叠加形成新的数据。这个新的数据就是一次AD转换的结果,转换成float型数据,也就是乘以参考电压除以2的N次方减1,将相应的数据传送给显示控件进行显示。在试验过程中用AD采样标准三角波和标准正弦波。从显示的曲线可以看出,系统可以完全地进行采样并且正确地显示。
本课题提出了一种基于STM32和LabVIEW的地震数据采集卡的设计,实现了信号的远程监测,用户通过登录服务器即可实现信号的远程监控。经实验测试,采集卡通信稳定,信号采集精度高,并且使用方便。非常适合远程中低频信号的监测,具有很好的应用前景。
参考文献
[1] 何正淼,宋克柱,汤家俊,等. 24位ADC在地震数据采集中的应用[J].数据采集与处理,2005,20(2):244-248.
[2] 彭刚,秦志强.基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践[M].北京:电子工业出版社,2011.
[3] 刘建超.单片机与Internet网络的通信应用研究[D].济南:山东师范大学,2007.
[4] 吴成东,孙秋野,盛科. LabVIEW虚拟仪器程序设计及应用[M].北京:人民邮电出版社,2008.