1 概述
数据采集技术是智能化仪器仪表及控制装置的重要组成部分,包括信号处理、A/D转换、数据存储、控制时序逻辑等电路。通常这些电路由若干芯片组成,但当系统要求高速数据采集时,由于集成度低,各芯片速度匹配困难,数据采集电路结构比较复杂,设计难度大。
设计中选用了大规模、高速、复杂可编程逻辑器件(CPLD)--ACEX1K系列器件EP1K30TI114-2,利用CPLD芯片本身集成的上万个逻辑门和嵌入式阵列块(EAB),把数据采集电路中用到的数据缓存、地址发生器、读写控制时序逻辑、译码等电路全部集成进1片CPLD芯片中,借助CPLD芯片高速、大规模、可重构等特性,以及功能强大的EDA开发工具的支持,大大降低了设计难度,提高了数据采集系统的集成度和可靠性。另外,CPLD可由软件实现逻辑重构,而且可实现在线系统编程(ISP),使得系统具有升级容易、开发周期短等优点。
通常超声波流量计使用的探头频率为1~5MHz,根据采样定理,采样频率应在2~10MHz以上。为了保证高精度超声波流量计软件时差算法对回波波形记录精度的要求,选用AD公司采样速率高达80MHz的A/D转换器 AD9057进行模数转换。CPLD器件EP1K0TIll4-2写RAM的最高工作频率为143MHz,读RAM的最高工作频率为196MHz.因此,数据采集电路采样速度仅受A/D转换器限制,频率达80MHz,完全满足波形记录精度要求。
本超声波流量计是一种新型的由计算机控制的软件时差算法超声波流量测量系统,可用于高精度流体流速、瞬时流量和累计流量的测量,也可用于测长、测微位移、测厚及无损探伤等。
2 时差法超声波流量计的工作原理
2.1 工作原理
时差法超声波流量计由于精度高、传感器结构简单,不影响流体流动形态而被广泛应用。根据超声波测量原理可知,超声波在流体中的传播速度与流体流动速度有关,据此,可以实现流量测量。时差法超声波流量计的测量原理就是根据超声波在流体中传播时,沿顺流和逆流的传播时间差随流体流动速度的不同而变化。
公式推导见参考文献[5]。
图1所示为一般超声波流量计传感器结构原理图。设超声波的传播方向与管道方向夹角(声路角)为β。考虑到应用场合的需要,令β=0,则cosβ=1。


式中:L为两传感器之间的传播距离,即声程,m;C为超声波在静止流体中的传播速度,m/s;v为被测流体沿管道方向中心处的流速,m/s; T1为顺流传播时间;T2为逆流传播时间;ΔT为声波顺、逆流传播时间差,ΔT=T1-T2,s。
式(2)与式(1)相比,克服了温度变化对声速的影响,需要指出的是,v是流体沿管道中心线的速度。考虑到流体流速沿管道直径的不均匀分布,需添加一个修正系数K。由流体力学可知:当雷诺数Re在某一范围内时,K为定值。通过标定可以确定K的值。
(3)
式中:D为管道直径;Q为瞬时流量。
如果已经知道了L和D,只要能够测得顺流和逆流传播时间(T1,T2)及时间差(ΔT),就可以求出流体的流速,进而得到瞬时流量。因此,在时差法超声波流量计设计中,传播时间的精确测量成为十分关键的环节。
2.2 硬件时差法超声波流量计存在的问题
硬件二值化时差法超声波流量计测量原理是最常用的一种方法。
在传统的时差法超声波流量计设计中,声传播时间是通过回波信号识别触发电路控制的硬件计时器的计时测得的。硬件计时器可以做得足够精确,然而,由于存在原理性缺陷,单靠硬件电路幅值比较来识别回波信号,进而控制计时器的计时很难满足高精度流量计ns级计时精度的要求。这主要是由于超声波回波信号的幅值会受到多种因素的影响:声通道温度变化影响、探头耦合特性变化影响、硬件电路温度漂移、超声波回波信号比较杂乱等。所有这些影响因素都会使回波信号识别触发电路的识别比较点发生变化,影响计时器的计时精度。这些问题,靠硬件电路是难以解决的。
2.3 基于软件波形分析算法的时差法超声波流量计
为了解决硬件电路不能自动适应波形变化带来测量精度低的问题,采用了高速数据采集技术,用80MHz的采样频率精确记录整回波信号,通过自适应波形分析算法滤除各种影响因素,自动适配波形变化带来的影响,求得准确回波时间,达到高精度测量目的。
3 基于CPLD高速数据采集技术的软件时差法超声波流量计硬件组成及工作原理
超声波流量计测量系统包括超声波换能器、方向切换电路、高压及激励电路、超声波信号处理电路、增益电平调整电路、A/D转换电路、CPLD双口RAM等几个部分。超声波流量计原理框图如图2所示,其中,虚线框内高速数据采集电路、CPU总线接口逻辑由1片CPLD芯片实现。
3.1 系统工作原理
3.1.1 外部电路工作原理
如图2所示,换能器A、B和方向切换电路用于传感器顺流和逆流方向时间测量的切换。当同步逻辑控制信号Z4=0时,系统复位,所有计时器及采样逻辑处于初始状态。当同步控制逻辑Z4=1时,采样开始。产生的激励脉冲信号SA作用于激励电路,在高压的驱动下,在发射探头端产生超声波发射信号,接收探头收到回波信号后,经放大、滤波将信号送入A/D转换器。

3.1.2 内部电路工作原理
当同步逻辑Z4=1时采样开始。主计时电路开始计数,双口RAM生成写地址和写时钟等采样时序控制信号,A/D采样值存入双口RAM。同时数字触发电路判断是否有回波信号产生,一旦存在回波信号,则控制主计时器立即停止计数,同时延时停止采样控制电路开始工作,继续采样800byte后,发生停止采样命令,产生INT0中断,完成一次采样过程。主计时值和A/D采样值被主机读回,经单片机处理后求出超声波传播时间。
3.2 信号波形图
如图3所示,Z4为上升沿时刻开始采样过程。主计时器(COUNTER)的测量时间为t1,利用软件分析算法求出回波峰一峰波的过零点时间t2(相对t1),二者相加即为超声波沿某一方向的传播时间。根据式(1~式(3)便可以计算出流体传播速度和瞬时流量。

4 CPLD数据采集电路设计
ACEX系列是ALTERA公司新近推出的中等密度、高性价比的CPLD器件。ACEX系列包括2.5V的ACEX1K和1.8V的ACEX2K系列。ACEX1K系列基于创新的0.22μm/0.18μm混合工艺,密度为104~105门。
EP1K30TI144-2是一种嵌入式、高性能、低功耗、在线可编程逻辑器件。该芯片提供了在单个器件中的系统集成。器件内部带有双口RAM。
4.1 单片机总线接口电路设计
如图4所示。采用器件74373、74138、74273和74244。

74373为地址锁存器,锁存CPU低8位地址信号A0~A7;138译码器对A0、A1、A2进行译码,用A15作为控制信号,产生Y0~Y7片选,地址从8000H~8007H,控制对I/O口的操作。而双口RAM的地址单元从4000H起,从而避免了地址重叠;74273产生脉宽控制信号Z0~Z3、启动/复位Z4及换能器方向控制信号Z5。CPU在有效时写入;K0~K7为8个独立键信号输入,在Y6有效时读入CPU。
4.2 同步逻辑等电路的设计
Z4是采样启动/停止/清零控制信号。Z4=0时停止计数,并清零计数器,为下次采样做准备。Z4=1时启动采样。信号乙同时作用于激励脉宽控制MKTZ、激励波抑制电路RE-STRA 、主计时器COUNTER、延时停止采样控电路DELAY_STOP及数字触发电路TRIG。
用VHDL语言编辑的激励脉宽控制MKTZ的功能是产生宽度可编程的脉冲激励控制信号SA,其脉冲宽度可以通过Z3~Z0的不同设置选择。当外部晶振FOSC=80MHz,Z3…Z0=00H时,脉宽最小,为0.25μs;Z3…Z0=0FH时,脉宽最大,为3.06μs。共有16种选择。
激励波抑制电路RESTRAIN用VHDL语言编写而成,其功能是在发射波期间禁止数字触发电路工作,抑制发射波干扰,防止误触发。抑制时间约为8μs。
24位高精度计时器(COUNTER)用VHDL语言编辑输入,确定高精度计时回波信号的起始位置。设计中采用了倍频技术,即在时钟的上升沿和下降沿均计数。计数时钟频率为80MHz,因而得到相当于160MHz的计数频率(相当于6.25ns时分辨能力)。不仅实现了高精度计时,而且节省RAM容量。
数字触发电路TRIG的主要功能是识别回波信号。将A/D转换值(DD0~DD7)与基准值(JD0~JD7)相比较,若前者大,则B909输出低电平0,表示识别到回波信号。
4.3 延时停止采样控制电路DELAY_STOP
延时停止采样控制电路DELAY_STOP的功能是当识别到回波信号后,控制采样电路再继续采样800byte,以便能够采到完整的回波波形,然后停止采样(令AD_STOP=1),引发INT0中断。将主计时器的值Q23~Q0(代表回波起始位置时刻,74244*3)及其对应RAM的地址指针AA9~AA0(74244*2)读入CPU,CPU通过自适应时差算法求得精确回波过零点时刻,结合主计数器的值得到准确超声波传播时间及时间差,进而计算出流体流速、流量。

4.4 双口RAM电路
双口RAM及读、写控制逻辑原理图如图6所示。

双口RAM的核心是存储器阵列,它的读与写相互独立,有各自的时钟线、地址总线、数据总线和使能端。在数据采集时,数据进入存储器进行缓存,同时CPU可以从缓存中取出数据。在CPLD中设计双口RAM模块,缓存RAM的数据宽度、存储量大小可以根据需要配置。
CPLD技术中设计双口RAM可以有两种方法:原理图输入和 VHLD语言输入。采用 MAX+PLUSⅡ库中的LPM4_RAM_DP宏。LPM4_RAM_DP宏中总共有9个可配置参数。通常情况下,只配置LPM_WIDTH(数据宽度)、LPM_WIDTHAD(地址总线宽度)、USE_EAB(是否使用嵌入式阵列块EAB)3个参数。A/D转换器AD9057的数据宽度是8位,所以配置LPM_WIDTH=8,LPM_WIDTHID=10(缓存容量为1k),USE_KAB=ON。对于缓存的大小,可以根据采样深度要求进行在线调整。
在LPM_RAM_DP模块中,rdaddress、rden、rdclock、rdelken、q分别为读端的地址线、使能端、时钟线、时钟使能和数据线;data、wraddress、wren、wrclock、wreclken为写端的数据总线和地址总线。在设计中,由于读时钟使能端(rdclken)、写时钟使能端(wrclken)一直有效(高电平),因此使用缺省设置。
由于MAZ+PLUSⅡ库中的LPM_RAM_DP宏的读端数据线q不具有三态特性,不能直接挂CPU总线,因此添加一个三态缓冲器74244,在双口RAM读期间,将数据读入CPU。
4.5 RAM写控制RAM_CONTROL
RAN_CONTROL模块产生双端口RAM的写地址和写时钟以及A/D的转换控制时钟。该功能模块用VHDL语言编程实现,然后生成符号文件RAN_CONTROL。部分程序如下:
entity ram_control is
port(elk:in std logic;
clr: in std_logie;
ad_stop:in std_logic;
q:out std_logic_vector(9 downto 0);
wr:out std_logic);
end ram_control;
architecture ram_write of ram_control is sigma n:std_logic_vector(9 downto 0);
begin
aa:process(clk)
begin
if clk’devent and elk=‘0’then
if dr=‘l'then
if ad_stop=‘0’then
n<n+1;
end if;
else
n<=“000 000 000 0”
end if;
end if;
q<n;--q 为写地址
end process aa;
bb:process(clr,clk)
begin
if clr=‘1'and ad_stop ‘0’then
wr<=clk after 20 ns:
else
wr<=1;
end if;
end process bb;
end ram_write;
采样地址宽度是10位,因而缓存容量为1k。启动采样后A/D转换一直在进行。当收到回波信号后再延时800个AD_CLK采样时钟,之后发出AD_STOP=1停止采样命令。此时的地址为RAM地址的尾指针。这样,RAM的首指针地址为AA9~AA0的十六进制值+1。
当INTO产生中断时,CPU从RAM中相继读出从首指针到尾指针存放的采样值,CPU通过自适应时差算法求得精确回波过零点时刻,求得辅计数值(图3中的t2)。
参考文献
[1] 宋万杰,罗丰,吴顺君.CPLD技术及其应用西安:西安电子科技大学出版社,2000.
[2] 黄正谨,徐坚.CPLD系统设计技术入门.北京:电子工业出版社,2002.
[3] 北京理工大学ASIC研究所.VHDL语言100例详解.北京:清华大学出版社,1999.
[4] 徐爱钧.智能化测量控制仪表原理与设计.北京:北京航空航天大学出版社,1995.
[5] [日]川田裕郎,小勤宫一,山崎弘郎.流量测量手册.北京:中国量出版社,1982.




