多功能电磁法仪器同步系统的设计与实现
于生宝, 苏发, 何建龙, 郑建波
吉林大学 仪器科学与电气工程学院,长春 130061

作者简介:于生宝(1963-),男,教授,博士生导师.研究方向:功率源技术及其应用.E-mail:yushengbao@jlu.edu.cn

摘要

针对多功能电磁法仪器对同步信号的要求,以仪器上位机为主控单元,通过LabVIEW编程设计人机交互界面,依据获取的GPS模块信息,利用循环队列思想,自动计算分频参数并对FPGA进行设置。采用硬件描述语言VHDL对FPGA进行模块化设计,实现对GPS模块1PPS和10 kHz的最小二乘估计预处理,并以处理后的1PPS作为对钟信号,控制FPGA分频模块,使其根据分频参数对处理后的10 kHz分频产生同步信号。经实验验证,系统可通过人工或自动调整产生1 Hz~5 kHz同步信号,同步精度优于0.03 μs,满足各电磁法同步精度要求。

关键词: 仪器仪表技术; 同步信号; LabVIEW; 全球定位系统; FPGA; 最小二乘估计
中图分类号:TH761 文献标志码:A 文章编号:1671-5497(2016)01-0146-07
Design and realization of synchronization system of multifunctional electromagnetic instrument
YU Sheng-bao, SU Fa, HE Jian-long, ZHENG Jian-bo
College of Instrumentation and Electrical Engineering, Jilin University, Changchun 130061, China
Abstract

To meet the requirement of synchronization signals of multifunction electromagnetic instruments, a synchronization system is developed. The PC of the instrument is taken as the master device to design the interactive interface using LabVIEW programming. The parameters are set for the FPGA frequency division based on the acquired information of GPS Module and the idea of circular-queue. The hardware description language VHDL is used to design the FPGA modules to achieve the least square estimation of 1PPS and 10 kHz. The treated 1PPS is taken as the clock signal to control the FPGA frequency division module, and the module is applied to divide the treated 10 kHz for the generation of synchronization signal according to the parameters. Experiment results show that the developed system can manually or automatically generate 1 Hz to 5 Hz sync signals, with sync accuracy better than 0.03 s that meets the accuracy requirement of most electromagnetic methods.

Keyword: technology of instrument and meter; sync signal; LabVIEW; GPS; FPGA; least squares estimation
0 引 言

地下电性结构探测是地球物理勘探的主要任务, 作为地下电性结构探测的方法之一, 电磁法占有极其重要的地位[1, 2], 其应用渗透到各个领域, 包括能源与资源勘探、环境勘察、灾害监测等各个方面[3, 4]。为了节约探测时的人力物力, 并提高探测结果的精确性, 集多种电磁法于一身的多功能电磁法仪器应运而生。由于不同的探测方法以及不同的探测深度对同步信号的要求也不同, 因此, 频率实时可调的高精度同步系统是多功能电磁法仪器的关键组成之一[5, 6, 7]

通常的同步方式有电缆同步、无线电同步、石英钟同步、GPS同步等。其中, GPS同步不受距离和地形影响, 同步精度高, 价格合理[8]。特别是全球定位系统的完善, 使得GPS同步被广泛应用于同步系统设计[9]

鉴于上述原因, 为了满足多功能电磁法仪器的同步要求, 本文提出了一种基于GPS的同步方案:以仪器上位机为主控单元, 使用美国NI公司图形化编程语言G设计人机交互界面, 依据读取的GPS信息对FPGA进行同步设置, 使FPGA在GPS模块1PPS控制下对10 kHz信号进行分频, 进而得到同步信号; 为了进一步提高同步精度, 本文方案利用FPGA编程, 对1PPS和10 kHz信号进行最小二乘估计预处理。本文方案充分利用了FPGA速度快、效率高的特点, 克服了单片机实现时电路复杂、抗干扰能力差的不足[10], 保证了同步信号的精确度。同时, 借鉴计算机中循环队列的思想, 实现了同步信号频率的人工调整和自动调整, 增加了控制的方便性与灵活性。

1 系统组成及工作原理
1.1 系统整体设计方案

系统整体框图如图1所示, 主要包括三个单元:主控单元, GPS单元, 同步单元。

图1 系统总体框图Fig.1 Block diagram of system

GPS单元主要由GPS模块组成, 每隔1 s, 模块向主控单元写入一次GPS信息, 并产生1PPS及10 kHz方波信号供给同步单元用以产生同步信号。主控单元检测到GPS模块定位成功后, 会依据所要求的同步信号频率对同步单元中FPGA进行参数设置。同步单元中, 预处理模块对GPS模块的1PPS和10 kHz进行预处理, 提高精度; 分频模块根据参数, 对处理后的10 kHz信号进行相应分频, 产生同步信号。同时利用处理后的1PPS对FPGA进行对钟设置, 以达到信号同步的目的。

1.2 主控单元

主控单元为工控机PCM-3362。其CPU采用Intel公司的Atom N450处理器。主频高达1.66 GHz, 支持DDR2 667 SDRAM内存, 具有自动浮点运算功能, 可以运行包括Windows 7在内的多种操作系统, 具备非常强的软件开发能力, 可以开发运行LabVIEW上位机软件。

1.3 GPS单元

GPS单元包括GPS模块及其与主控单元通信的接口电路。GPS模块选用NAVMAN推出的Jupiter21, 具有高性能、高精度的特点。Jupiter21主要参数指标如下:电源电压为+5 V; 通信协议为RS232; 数据格式为NMEA-0183; 接口逻辑为TTL; 启动时间低于44 s。

由GPS模块参数可知, 模块接口电平为TTL电平, 故在与上位机通信时需要MAX232进行电平转换。模块定位成功后可以提供精确的时间信息和严格同步的1PPS, 精度为30~100 ns, 同时产生与1PPS同步的10 kHz方波, 可用做同步授时。

1.4 同步单元

同步单元由FPGA及其与主控单元的接口电路构成。FPGA选用Altera公司的Cyclone系列中的EP2C5T144C8, 它具有速度快、效率高的特点, 以良好的抗干扰性能, 在信息处理、工业控制等领域被广泛应用。

2 系统软件设计

本系统要求主控单元具有准确接收并解析GPS数据的能力。在确定GPS定位有效后, 能人工或自动调整分频参数并将其打包, 以串口通信的方式发送于FPGA中。同时要求FPGA能接收数据包, 提取参数, 并根据所解析的参数, 在预处理后的1PPS控制下, 对处理后的10 kHz方波实施分频。

2.1 GPS信息的读取与解析

上位机程序应用LabVIEW编程系统采用图形化编程语言G编程设计[11]。与C和BASIC一样, LabVIEW也是通用的编程系统, 有一个可完成任何编程任务的庞大函数库。各个函数之间的数据传递通过函数输入输出端口间连线完成。在GPS信息读取解析中, 系统调用VISA选板的相关子函数完成对串口资源的申请、设置、数据读取和资源释放; 调用字符串选板的相关子函数完成数据解析。其程序流程图如图2所示。

图2 GPS信息读取解析流程图Fig.2 Flow chart of parsing GPS information

利用“ VISA读取” 函数将串口波特率设置为4800 bit/s, 通信协议设置为异步串行通信方式(1位起始位、8位数据位、1位停止位、无奇偶校验位), 进而读取GPS信息。本同步系统设计中, 只需读取NMEA-0183协议中的“ $GPRMC” 语句[12], 其内包含了当前时间(0时区)、定位状态(A有效/V无效)等信息。主控单元调用“ 搜索/拆分字符串” 函数提取GPS信息的中“ $GPRMC” 语句。提取出的信息传递给“ 截取字符串” 函数, 设置函数中“ 截取位置” 和“ 截取长度” 可完成对信息中时间和定位标志的解析。

2.2 参数设置与发送

电磁法根据发射场性质不同, 分为连续谐变(频率域)电磁法和阶跃瞬变(时间域)电磁法[13]。在时间域测量时, 同步频率应人工进行调整, 人为决定工作时间和工作频率。而在频率域测量时, 每个测点的工作频率较多, 人为进行频率调整操作复杂, 且浪费测量时间。为此, 本系统在设计时, 提供了两种频率调整模式:人工和自动调整模式, 分别用于时间域测量和频率域测量。对于两种模式输入的频率信息, 系统统一进行分频参数计算、打包及发送。

2.2.1 同步信号频率调整

利用函数库中的“ 条件结构” 函数可实现人工调整和自动调整两种模式的选择。在人工调整模式中, 通过在主控单元界面中直接输入所选频率数值即可完成频率的更改。在自动调整模式中, 系统借助“ 文本读取” 函数自动读取编辑好的频率表并将其以二维数组形式输出。对该二维数组进行相应列索引可得到由频点值组成的一维数组, 继续使用“ 索引数组” 函数, 利用可变索引选择出对应的频率值。

可变索引的产生借鉴数据储存结构中循环队列[14]的思想, 利用“ 公式节点” 函数进行与C语言类似的编程实现, 其示意图如图3所示。图中Ts表示频率域测量开始时刻, 即发射机开始工作的时刻; Tc表示当前时刻, 它由GPS模块提供; Ta表示每个测点进行频率域测量所用总时间; T0表示每个频点的持续时间; n表示当前输出的可变索引值; {0, …, N}表示可变索引值全体的集合, 其中, NTa/T0得到。

图3 可变索引产生示意图Fig.3 Variable index generating diagram

通过式(1)计算出仪器系统的工作总时间Tg

Tg=Tc-Ts1

进而由式(2)可得当前正在进行的扫频循环已工作时间T1, 其中MOD表示取余运算。

T1=Tg MOD Ta2

利用式(3)对T1T0的商进行向下取整, 即可得到当前可变索引值n:

在频率域测量时, 发射机和接收机都依据相同频率表进行频率调整, 接收机只需知道发射机起始工作时刻, 即可自动计算出当前时刻发射机所处的工作频率, 并将其写入系统供其进行分频参数计算。

2.2.2 分频参数计算与发送

分频参数M的计算式为:

M=f02×fm4

式中:f0表示被分频率, 这里为10 kHz; fm表示要求分频得到的频率; 系数2由FPGA分频方式产生。为了便于FPGA处理并保证fm精确度, 这里M通过四舍五入方式取整(LabVIEW数值计算自动完成)。此时的M为数值格式, 欲通过串口发送需转化为字符串格式。

程序中调用“ 公式节点” 函数, 利用C语言对公式(5)进行编程实现, 以提取出数值的各个数位。

m0=M MOD 10mj=M-i=0j-1mi·10i10j MOD 10(j> 1)5

式中:mj表示M从右至左第j+1位的数值。继而通过使用“ 格式化写入字符串” 函数将每个数位转化为字符格式并与数据头“ $” 连接构成含有分频参数的字符串。串口发送程序与上文接收程序相似, 将含参字符串以连线方式传递给“ VISA写入” 函数即可完成数据的发送。

2.3 参数解析与同步处理

2.3.1 参数解析

在FPGA中进行串口通信模块设计完成参数接收。对FPGA系统时钟以计数方式进行分频产生8倍于波特率的时钟, 用以控制对数据总线的监视与每个Bit位的读取。设计状态机实现对接收数据包的解析, 其状态转换图如图4所示。其中, buf表示串口数据接收寄存器; r为接收标志, 每接收完一组数据, r进行一次上升跳变; n为分频参数的逻辑矢量表示; n0、n1、n2、n3、n4为变量, 用于寄存所接受的数据。状态机起始状态为S0, 当接收到数据头“ $” 后, 继续通过状态S1、S2、S3、S4接收分频参数的千、百、十、个位。若其中出现所接收数据不为数字, 则实时跳入状态S5, 向主控单元返回错误提示, 使其重新发送, 继而跳回状态S0等待下次接收; 若接收正确, 则状态机输出分频参数n并跳回状态S0。

图4 状态机状态转换图Fig.4 State transition diagram of state machine

2.3.2 信号预处理及同步处理

本系统在设计中, 将GPS模块1PPS作为对钟信号, 其稳定性及精确性直接影响系统的同步精度。而1PPS在实际中会受模块噪声等干扰影响[9], 产生30~100 ns的偏差。因此, 对1PPS进行预处理以降低扰动对提高同步精度意义重大。同时, 要求10 kHz信号与处理后的1PPS同步, 故对10 kHz信号也要进行预处理。考虑到实时性, 对1PPS和10 kHz的预处理应讲求简洁与实用, 故预处理采用最小二乘估计算法[15]

最小二乘估计是一种经典的估计方法[16], 为了估计未知量X, 对它进行k次测量, 测量值为:

yi=hiX+εi, i=1, 2, , k6

式中:hi为已知量; ε i为第i次测量的随机误差。

设所得估计值为 X^, 则第i次的测量值与估计值之间的误差为:

e^i=yi-hiX^7

对前k次求平方和, 记为:

δ(X^)=i=1ke^i2=i=1k(yi-hiX^)28

通过求解使δ ( X^)最小的估计值 X^, 即可得到未知量X的最小二乘估计。对前k次测量值、已知量、误差采用向量形式表示, 有:

则式(6)和式(8)改写成:

Y=HX+ε10δ(X^)=(Y-HX^)T(Y-HX^)(11)

根据导数与最值的关系, 当 X^满足下式

δ(X^)X^=-2HT(Y-HX^)=0(12)

时, X^即为最小二乘估计值, 其最终计算公式为:

X^=(HTH)-1HTY13

在1PPS预处理中, 测量值yi为相邻两个1PPS信号上升沿间隔内FPGA所记录的外部时钟脉冲个数, 该外部时钟由恒温晶振提供; X^为所要估计的下一个1PPS信号间隔中的脉冲个数。由此易知:

hi=1, i=1, 2, , k14

为了保证最小二乘估计的精度, 又不过多占用FPGA资源, 所选k值为60。同时, 在FPGA中以循环队列方式存储脉冲个数, 实时更新用以估计的60组数据, 从而充分利用恒温晶振短时稳定的特点, 进一步提高估计的精度。对10 kHz信号的预处理与1PPS相同, 但其产生受处理后的1PPS控制, 以保证初始同步。预处理结构框图如图5所示。

图5 预处理结构框图Fig.5 Block diagram of pretreatment

对于处理后的10 kHz信号, 在FPGA中设计分频模块, 根据分频参数进行分频保证同步信号的频率。设计触发器产生一个与处理后的1PPS上升沿同步的高电平信号, 在下一个1PPS来之前对触发器置零。将触发器输出信号作为分频器的使能和清零信号, 就可以控制同步信号初始相位, 完成对钟, 实现同步。由此设计同步处理程序逻辑结构如图6所示。输入与各个模块输出的时序示意图如图7所示。在计数器中预设计数值上限(低于10 000), 当CT为高电平时开始对10 kHz计数, FULL变为高电平。en2为低电平, 触发器有效, CT跟踪1PPS上升沿变为高电平; en2为高电平时CT变为低电平。由计数器和触发器协调工作, 可得到CT信号性质:CT上升沿与1PPS信号同步, 下降沿受FULL电平控制。故分频器在CT信号控制下, 根据分频参数n, 即可完成1PPS的对钟功能, 产生任意频率的同步信号。

图6 同步处理逻辑结构图Fig.6 Synchronize logic structure diagram

图7 输入输出时序示意图Fig.7 Input and output timing diagram

通过进行时序仿真, 该程序满足设计要求, 可以实现同步信号的产生。

3 实验测试
3.1 预估校正处理分析

图8为利用Matlab仿真得到的预处理前后效果对比。其中, 蓝线是通过仿真得到未处理前的1PPS时间间隔的计数值, 红线为通过最小二乘预估处理后的1PPS时间间隔的计数值。

图8 1PPS预处理前后对比图Fig.8 1PPS comparison of before and after pretreatment

由于所选k值为60, 故红线从第62个数据开始有意义。进而通过计算可知, 原1PPS的精度为± 50 ns, 通过处理后可以提高到± 9 ns。后续实测结果也说明了预处理的效果。

3.2 主控单元测试

对所编写的控制软件进行测试, 实际测试表明, 主控单元可正常读取GPS信息。测试“ 频率域测量” 模式:将每个频点的持续时间设为3 min, 主控单元可以根据扫频起始时间和当前时间确定应选频率, 并将其换算为分频参数发送, 实现按时扫频功能。测试“ 时间域测量” 模式:手动输入频率值, 主控单元可以根据该值, 计算出分频参数并发送。GPS信息解析和频率设置达到主控单元的设计要求。

3.3 同步信号测试

图9为同步系统产生的12.5 Hz的同步信号实测图。由图9可知, 12.5 Hz同步信号的产生受处理后的1PPS控制, 图中A与B时长同为40 ms, 因此以处理后的1PPS信号上升沿作为对钟信号, 可以实现高精度同步。

图9 12.5 Hz同步信号Fig.9 12.5 Hz synchronization signal

图10为GPS处于有效定位状态下的接收机与发射机12.5 Hz同步信号实测对比图, 由图可知, 此时同步精度为0.015 μ s。对系统进行2 h连续运行测试, 每隔5 min进行一次精度测量, 得到的数据如图11所示。图11表明, 系统同步精度优于0.03 μ s, 满足多功能电磁法仪器的同步精度要求。

图10 接收与发射同步信号对比Fig.10 Comparison between receiving and transmitting synchronous signals

图11 同步精度Fig.11 Synchronization precision

4 结束语

本文针对多功能电磁法仪器对同步信号的要求, 设计了一种基于GPS+上位机+FPGA架构的同步系统。系统可实现同步信号频率的人工调整以及依据时间和频率表的自动调整, 并实时显示当前频率信息。对GPS模块的1PPS和10 kHz信号采用最小二乘估计算法进行预处理, 提高系统的同步精度。为验证设计的准确性, 对系统进行了实际测试。实验结果表明, 本系统可以实时、灵活、准确地进行同步信号频率调整, 产生的同步信号精度可以满足多种电磁法的同步要求。

The authors have declared that no competing interests exist.

参考文献
[1] 底青云, 方广用, 张一鸣. 地面电磁探测系统(SEP)研究[J]. 地球物理学报, 2013, 56(11): 3629-3639.
Di Qing-yun, Fang Guang-yong, Zhang Yi-ming. Research of the surface electromagnetic prospecting (SEP) system[J]. Chinese Journal of Geophysics, 2013, 56(11): 3629-3639. [本文引用:1]
[2] 邢铁增. GPS在瞬变电磁系统同步中的应用研究[J]. 物探化探计算技术, 2010, 32(1): 27-32.
Xing Tie-zeng. Application of GPS in TEM synchronization[J]. Computing Techniques for Geophysical and Geochemical Exploration, 2010, 32(1): 27-32. [本文引用:1]
[3] 赵国泽, 陈晓斌, 汤吉. 中国地球电磁法新进展和发展趋势[J]. 地球物理学进展, 2007, 22(4): 1171-1180.
Zhao Guo-ze, Chen Xiao-bin, Tang Ji. Advanced geo-electromagnetic methods in China[J]. Progress in Geophysics, 2007, 22(4): 1171-1180. [本文引用:1]
[4] 张平松, 刘盛东, 李培根, . 矿井瞬变电磁探测技术系统与应用[J]. 地球物理学进展, 2011, 26(3): 1107-1114.
Zhang Ping-song, Liu Sheng-dong, Li Pei-gen, et al. Mine transient electromagnetic technology system and its application[J]. Progress in Geophysics, 2011, 26(3): 1107-1114. [本文引用:1]
[5] 于生宝, 王忠, 嵇艳鞠. GPS同步瞬变电磁探测系统设计[J]. 电子测量与仪器学报, 2005, 19(4): 39-42.
Yu Sheng-bao, Wang Zhong, Ji Yan-ju. Transcient electromagnetic sounding system design based on the GPS synchronization[J]. Journal of Electronic Measurement and Instrument, 2005, 19(4): 39-42. [本文引用:1]
[6] 牛之琏. 时间域电磁法原理[M]. 长沙: 中南工业大学出版社, 1992. [本文引用:1]
[7] 蒋邦远. 瞬变电磁法勘探[M]. 北京: 地质出版社, 1998. [本文引用:1]
[8] 华煌圣, 游大海, 余宏伟. 基于误差分析的变电站高精度时钟产生新方法[J]. 电力系统自动化, 2008, 32(8): 98-101.
Hua Huang-sheng, You Da-hai, Yu Hong-wei. New method of producing clock of high accuracy for substations based on error analysis[J]. Automation of Electric Power Systems, 2008, 32(8): 98-101. [本文引用:1]
[9] 吴宁, 潘小龙, 虞皆侠. 高精度GPS同步时钟的研究与实现[J]. 电力系统自动化, 2008, 32(10): 61-65.
Wu Ning, Pan Xiao-long, Yu Jie-xia. Research and realization of the high accuracy GPS synchronization clock[J]. Automation of Electric Power Systems, 2008, 32(10): 61-65. [本文引用:2]
[10] 任强, 李尚柏. 基于FPGA的GPS同步时钟装置的设计[J]. 微计算机信息: 测控自动化, 2007, 23(3-1): 261-263.
Ren Qiang, Li Shang-bai. Design of a GPS synchronous clock equipment based on FPGA[J]. Microcomputer Information (Automation), 2007, 23(3-1): 261-263. [本文引用:1]
[11] 蔡共宣. LabVIEW编程思想研究[J]. 装备制造技术, 2009(9): 56-58.
Cai Gong-xuan. Study of the program thought based on LabVIEW[J]. Equipment Manufactring Technology, 2009(9): 56-58. [本文引用:1]
[12] 王腾龙, 于生宝, 陈厚瑾. 海洋可控源甲板监控系统串行通信设计与实现[J]. 传感器与微系统, 2013, 32(8): 67-70.
Wang Teng-long, Yu Sheng-bao, Chen Hou-jin. Design and realization of serial communication of marine controlled source deck monitoring and control system[J]. Transducer and Microsystem Technologies, 2013, 32(8): 67-70. [本文引用:1]
[13] 李金铭. 地电场与电法勘探[M]. 北京: 地质出版社, 2005: 305-309. [本文引用:1]
[14] 高永平, 周书民. 循环队列中入队算法的研究[J]. 计算机与现代化, 2005(4): 9-13.
Gao Yong-ping, Zhou Shu-min. An algorithmic research on how to enter circular queue[J]. Computer and Modernization, 2005(4): 9-13. [本文引用:1]
[15] 王新民, 朮洪亮. 工程数学: 计算方法[M]. 北京: 高等教育出版社, 2005: 39-49. [本文引用:1]
[16] 张嗣瀛, 高立群. 现代控制理论[M]. 北京: 清华大学出版社, 2006: 323-324. [本文引用:1]