专利名称:一种基于dsp的科氏质量流量变送器的制作方法
技术领域:
本发明涉及流量检测领域,为一种基于DSP的科氏质量流量变送器,特别是一种 采用数字滤波对信号进行滤波、自适应格型陷波滤波器计算信号频率,再采用计及负频率 的DTFT算法计算相位差的科氏质量流量计信号处理系统和模拟驱动系统。
背景技术:
科里奥利质量流量计(以下简称为科氏质量流量计)可以直接测量质量流量,是 当前发展最为迅速的流量计之一,具有广阔的应用前景。科氏质量流量计由两部分组成,一 是传感器部分,包括磁电式速度传感器、激振器和温度传感器,二是变送器,包括信号调理、 处理部分和驱动部分。就信号调理和处理部分来说,要求其精确地测量来自两个流量(磁 电式速度)传感器信号的相位差,并跟踪其频率的变化。国外率先将数字信号处理技术和 数字信号处理器(DSP)应用于科氏质量流量计中。
(1)基于离散傅里叶变换的方法 美国Micro Motion公司用离散傅里叶变换(DFT)处理科里奥利质量流量计的 输出信号(Paul Romano. Coriolis mass flow rate meter having a substantially increased noise immunity. US Patent No. 4934196, Jun. 19, 1990),用TMS系列的数字信 号处理器(DSP)作为二次仪表的处理核心。当非整周期采样时,DFT的计算误差不能满足 仪表精度的要求,为此,提出了粗测、细测和频率跟踪的思路。但是,对其中的一些关键技术 没有披露。例如,当频率变化时,如何采集过零点,等。合肥工业大学参考其思路,研制了采 用DFT的、基于ADSP系列的DSP的信号处理系统,解决了美国专利中没有说明的技术难点, 并在细测和频率跟踪方面做了改进(徐科军,于翠欣等.科氏质量流量计数字信号处理系 统,发明专利,专利号ZL 00108414. 3,申请日2000.4. 30.,授权公告日2002.12.4.)。
(2)基于信号幅值的方法 曰本富士公司(Yoshimura Hiroyuki. Phase difference measuring apparatus for measuringphase difference between input signals. European patent application, EP0791807A2,27. 08. 1997 ;Yoshimura Hiroyuki. Phase difference measuring apparatus andflowmeter thereof. European patent application, EP 0702212A2,20. 03. 1996)对来自科氏质量流量计中两个传感器的信号进行放大,同时将这 两个信号送入差动放大器,得到两个传感器的信号之差。多路转换器将这三个信号顺序送 入模数转换器,送入DSP做DFT,计算出两个传感器信号的相位差,并从中选一个信号作为 参考,去补偿各个传输通道特性差异所造成的误差。此方法的问题是两个传感器信号的相 位差很小( 一般小于4度),故差动放大器的幅值很小,极易受到噪声干扰;补偿方法耗时 太多,因为计算一次相位差需要采集6路信号。
(3)基于自适应线性增强的方法 1996年9月10日授予H. V. Derby等人的美国专利US-5555190以及1998年8月 12日授予的中国专利CN-1190461A中设计了一个基于DSP的数字信号处理系统。在DSP中采用了自适应线性增强(ALE)技术和装置,准确地确定振动流管之间的频率和相位关系, 从而更精确地确定流经质量流量计的质量流量。Derby的专利有两个实施例,每一个实施例 信号处理环节都由三部分组成多抽一滤波、频率估计/线性增强和相位差计算。两实施例 的多抽一部分采用(8 : l和6 : l两级抽取),相位差计算采用改进的Goertzel算法。两 实施例只是频率估计/线性增强部分有所不同,第一个实施例的ALE是通过同时对两参数 估计的自适应陷波滤波器(ANF)来实现的,第二个实施例使用了四个自适应陷波滤波器, 在左信道和右信道分别串联两个陷波滤波器。Derby的专利的缺点是对第一实施例,对两 参数进行估计增加了算法的复杂性;第二实施例中采用两个级联的ANF,算法的复杂程度 比第一实施例更高,而且,由于第二级的ANF是以第一级的ANF为基础的,只有在第一级收 敛后第二级才会收敛,因此对于频率变化较大的情况下,收敛速度反而降低。同时,相位差 计算部分采用的Goertzel算法,用定点实现时有可能发生溢出。 针对这些问题,合肥工业大学设计了一种信号处理方法和装置,兼顾频率跟踪的 精度和算法收敛速度,又不明显增加算法的复杂程度,而且用定点实现时不易溢出(徐科 军,徐文福.基于AFF和SGA的科氏质量流量计数字信号处理系统,发明专利,专利号 ZL03108944. 5,申请日2003. 4. 4.,授权公告日2005.3.23.)。信号处理环节由三部分组 成多抽一滤波、频率估计/线性增强和相位差计算。频率估计/线性增强部分采用漏斗 型(Funnel)滤波器。滤波器有两个设计参数,对零极点进行了更强的限制,阶次也比同级 的ANF高。在相位差计算部分采用更易于定点实现的、且非常适合于时变正弦信号的滑动 Goertzel算法。但是,SGA算法的收敛过程还是较长,跟踪精度不够高,达不到科氏质量流 量计精度要求;同时,用于实际系统时,计算量大,不易实时实现。
发明内容
本发明为了解决上述问题,采用以下技术方案基于DSP的科氏质量流量变送器 包括放大滤波电路、模数转换器1、模数转换器2、电压基准源、电压跟随器、电流源、差分放 大器、模数转换器3、模拟驱动模块、数字信号处理器DSP最小系统、外扩静态随机存取存储 器(SARAM)、外扩EEPR0M(电可擦可编程只读存储器)、人机接口 、4 20mA电流输出及脉冲 输出、电源模块以及软件模块。模拟驱动模块激励科氏质量流量传感器内部的激振器,使流 量管以固有频率振动。位于流量管两侧的两个磁电式传感器输出两路正弦波信号,两路信 号经两路参数相同的调理电路放大、滤波后分别被两个相同型号的模数转换器同时采样并 转换为数字量,通过DSP的两个多通道缓冲串口送入DSP。 DSP采用数字滤波消除信号的噪 声,自适应格型陷波滤波器计算频率,再采用负频率修正的离散时间傅里叶变换(DTFT)算 法计算相位差,最终得到质量流量。 本发明专利的优点是提高相位差计算精度,縮短收敛时间,用DSP研制出工业界 可以接受和应用的系统,实时实现数字信号处理算法。
图1为本发明系统的硬件总体框图。 图2为本发明系统的信号调理、采集部分基准源。 图3为本发明系统的模拟驱动。
图4为本发明系统的信号调理、采集电路。 图5为本发明系统的温度补偿电路。 图6为本发明系统的DSP最小系统。 图7为本发明系统的外扩存储器及DSP启动方式选择。 图8为本发明系统的液晶和键盘电路。 图9为本发明系统的脉冲输出。 图10为本发明系统的4 20mA电流输出。 图11为本发明系统的软件总体框图。 图12为本发明系统的主监控程序流程图。 图13为本发明系统的INT1. 4中断示意图。 图14为本发明系统的INT7. 1与INT7. 2中断示意图。 图15为本发明系统的信号采集传输过程示意图。 图16为本发明系统的DMA中断服务程序流程图。 图17为本发明系统的循环长数组。 图18为本发明系统的算法处理流程图。 图19为本发明系统的自适应格型陷波算法的流程图。 图20为本发明系统的负频率修正的DTFT算法流程图。 图21为本发明系统的平均模块流程图。 图22为本发明系统的分段示意图。 图23为本发明系统的P丽波输出流程图。
具体实施例方式
本发明系统硬件框图如图1所示。本发明系统由科里奥利质量流量传感器(包括 磁电式速度传感器A、磁电式速度传感器B、激振器、电阻温度传感器RTD)、放大滤波电路、 模数转换器ADC1、模数转换器ADC2、电压基准源、电压跟随器、电流源、差分放大器、模数转 换器ADC3、模拟驱动模块、数字信号处理器DSP最小系统、外扩SARAM、外扩EEPROM、人机接 口、4 20mA电流输出及脉冲输出、电源模块组成。本发明系统按功能分为多个电路板,最 主要的是模拟板和数字板,前者包括传感器信号调理及采集电路、模拟驱动电路和温度补 偿电路;后者包括DSP最小系统及外扩存储器等。 本发明系统工作过程为模拟驱动模块激励科里奥利质量流量传感器(以下简称 科氏传感器)内部的激振器,使流量管以固有频率振动。位于流量管两侧的两个磁电式传 感器输出两路正弦波信号,两路信号经两路参数相同的调理电路放大、滤波后分别被两个 相同型号的ADC1和ADC2同时采样并转换为数字量,通过DSP的两个多通道缓冲串口 McBSP 口送入DSP计算两路信号相位差。DSP采用多抽一、自适应格型陷波滤波器对信号进行数字 滤波,再采用计及负频率的DTFT算法计算相位差。流体温度影响流量管角弹性模量,从而 影响测量值,所以需进行温度补偿。产生恒定电流流经科氏传感器内部温度传感器PtlOO, PtlOO两端电压经差分放大器放大后,被ADC3采样并转换为数字量送入DSP进行温度补偿 的相关计算。将相位差转换为质量流量并加入温度补偿,将最终值在LCD上显示,并配有 4 20mA电流输出及脉冲输出。
图2为信号调理、采集部分电压基准源。U10为基准源,其输出再经运放Ull组成 的电压跟随器,提高电流输出能力。C32、 C33为输入、输出滤波电容;电容C37与U10内部 电阻构成RC滤波器,对输出进行滤波;电容C34、 C35、 C36为输出滤波电容;C30、 C38为退 耦电容。 图3为模拟驱动电路。输入信号LP+经U16A、R31、R34构成的同相放大器放大后, 送至由U16B、 C51、 R29、 R27、 C47、 R26构成的带通滤波器滤波,R32、 C55用于吸收U16B输 出信号中的尖脉冲,电容C48、C50、C52、C53为退耦电容。U16B输出信号一路经U18B、R43、 R46构成的同相放大器放大后送至模拟乘法器U19的一个输入端Y1 ;另一路送至整流电路, 整流电路由U17A、 U17B、 R28、 R30、 R35、 R36、 R33、 C56、 Dl、 D2组成,将输入的交流信号整流 为直流信号,其值与交流信号幅值成正比,电容C49、C54为退耦电容。整流电路输出TPE送 至增益控制电路,增益控制电路由U18A、电阻R37、 R39、 R44、电位器Wl、电容C65组成,其 输出W随输入的增大而减小,反之亦然;电容C57、 C62为退耦电容。U18A的输出送至模拟 乘法器Ul的另一个输入端X1,U19输出为XI与Yl的乘积。增益控制电路控制XI,就能控 制U19的输出,当LP+减小时,XI增大;当LP+增大时,XI减小,达到稳定U19输出的目的。 R38、R41为限流电阻,C58、C60、C64、C66为退耦电容。C61、R40、R42构成隔直电路,隔直后 的信号经U20A、R45、R47构成的同相放大器放大,C59、C63为退耦电容,未使用的运放U20B 接成跟随器并将输入接地。U20A输出TPM送至由U21B、 U21A及外围器件构成的带振动过 强保护的放大电路,以避免驱动电压过大造成传感器损坏。整流电路输出TPE接至U21A反 相输入端,当TPE小于由电阻R50、电位器W2设定得值时,U21A的输出接近正电源电压,P 沟道结型场效应管Ql导通,电阻R48与R55并联到地,放大倍数为6倍;反之,当TPE大于 电阻R50、电位器W2的设定值时,U21A的输出接近负电源电压,Ql截止,放大倍数为l,起 到了保护传感器的作用。电阻R52、电容C75对输入信号TPE滤波,R51为限流电阻,U21B、 R49、R48、R55构成同相放大器,C73、R54为隔直电路,对输入信号TPM隔直,电容C67其滤波 作用,电容C68、 C70、 C74、 C76为退耦电容。U21B输出信号经C72、 R53构成的隔直电路后, 再经U22、 R56、 R57构成的功率放大器将电压放大2倍并提高输出功率后驱动激振器,电容 C69、C71、C77、C78为退耦电容。 图4是传感器信号调理、采集电路。信号RP+、 RP-以差分形式接至U2输入端,经 仪用放大器U2放大后送至由运放U3A及外围电阻、电容构成的二阶低通滤波器滤波后,再 经R7、 U4构成的限幅保护电路送入ADC Ul的输入端。通过R8、 R9将输入信号RP+、 RP-接 成差分形式,R2设置U2的放大倍数,C2、 C6、 C12、 C14为退耦电容,R5、 R6、 Rl、 R12、 C5、 C10 与运放U3A构成二阶低通滤波器,C3、C9、C11、C13为退耦电容,电容C90用来滤除Ul中高 频开关器件产生的高频干扰。 Ul为差分输入ADC1,信号接至AIN0(6脚),另一输入端AIN1(7脚)接2. 5V基准 源;U1所需基准取自外部2. 5V基准源,VREF(4脚)接2. 5V基准,VREFN(3脚)接地;U1的 数据传输接口与DSP的多通道缓冲串口McBSP 口连接时钟SCLK(18脚)接MCLKXA,数据输 入DIN(17脚)接MDXA,数据输出D0UT(16脚)接MDRA,片选己接MFSXA,其中串联的电阻 R3、R4、R10与Ul相应管脚输入寄生电容构成RC低通滤波,滤除尖峰脉冲;控制管脚,、 ^^接至DSP的GPIO 口 ;电容C7、C8为滤波电容,电容C1、C4、C15、C17为退耦电容。
另一路信号LP+、 LP-经过相同原理和结构的调理电路送到与U1相同型号的ADC2U6中,不再赘述。U1、U6的时钟采用相同的时钟源一外部有源晶振U9。 U9产生的时钟 经施密特触发器U5以提高驱动能力,然后分两路送至Ul和U6时钟输入管脚,磁珠Ll、电容 C29对电源滤波,电容C31和电阻R25用于滤除时钟信号中的高频尖脉冲,电阻Rll亦是用 于滤除尖脉冲。 图5为温度补偿电路。传感器内的温度传感器为Pt100。恒流源加到Ptl00上, 经差分放大后送至ADC3采样并转换为数字量送至DSP。 Pt100接至图中RTD+和RTD-处, U23 、 R61 、 U24、 R58 、 R59 、 R67 、 Q2 、 Q3产生恒流源流经Pt 100 。 R62和TP 1用于测试、校准,可 断开Pt100并短接TP1以进行测试及校准。Pt100两端电压经U26A、U26B、R64、R63、R65组 成的差分放大器放大后,送至差分输入的ADC3U25输入端AIN+(3脚)和AIN-(4脚)。R70、 C88及R71、 C89分别构成RC低通滤波器;电容C80、 C87为滤波电容;R60、 U27及R66、 U29 分别构成限幅保护电路;U25所需基准源由U28提供,C85、C86为输入输出滤波电容,C84与 U25内部电阻构成RC滤波器,对U28输出进行滤波。U25数字接口与DSP的SPI 口连接,时 钟SCLK(l脚)接SPICLKA,片选己(2脚)接SPISTEA,数据输入DIN(10脚)接SPISIMOA, 数据输出D0UT(9脚)接SPISOMIA。电容C79、 C81、 C82、 C83为退耦电容。
图6为DSP最小系统,包括晶振、JTAG、退耦电容等。主要使用了 DSP(U1)的SPI、 McBSP及多个通用输入输出管脚(GPIO),还外扩了 RAM,未使用的管脚均做了妥善处理。U2 为有源晶振,为DSP提供时钟,磁珠L3、电容C34对电源滤波,C35、 R7滤除时钟信号中的尖 峰脉冲;DSP Ul的142脚和25脚为功能管脚,复位时需分别置于有效和无效的状态,R1、R4 为上拉电阻;DS2为DSP工作指示灯,R22为限流电阻;U1的57脚接的电阻R3为偏置电流 提供通路,U1的55脚、56脚为内部ADC基准输出,需并联电容C27、C26到地;P1为JTAG接 口,R2、R5、R6均是手册中要求接的下拉、上拉电阻;磁珠L1隔离数字3. 3V和模拟3. 3V,磁 珠L2隔离数字1. 9V和模拟1. 9V ;电容Cl C25、 C28 C33为退耦电容。
图7为DSP外扩存储器及DSP启动方式选择。U4为外扩RAM,与DSP连接时,其地 址线、数据线均可打乱,片选己(6脚)接DSP的XZCS7n,丽(17脚)接XWEOn,丽接XRDn, C47、C48为退耦电容。U5为外扩EEPROM,与DSP的GPIO 口连接,C46为退耦电容,R14为下 拉电阻;电阻R13、R18、R15、R19、R16、R20、R17、R21与地址线XA15、XA14、XA13、XA12连接, R18、 R19、 R20、 R21是否焊接到PCB上决定DSP的启动方式。 图8为液晶及键盘电路。Pl为液晶接口,串联Dl将3. 3V电源电压降低以满足液 晶的供电要求,Pl的第4脚为地,第1、2和3脚分别为片选、时钟和数据输入脚,与DSP的 GPIO相连,由于电平与DSP电平不匹配,电阻R2 R8构成分压电路以匹配电平;P3为键盘 接口,第5脚为地,其余与DSP的GPIO相连,电阻R1、R4、R9、R10为限流电阻,电容C1、C2、 C3 、 C4用于硬件去抖动,系统掉电时,D2 、 D3 、 D4、 D5为电容上电荷的释放提供通路。
图9为脉冲输出电路。当输入信号Pulseln为高电平时,Q4导通,Ul导通,Q2截止, Q1、Q3截止,输出PulseOut为低电平;当Pulseln为低电平时,Q4截止,U1截止,Q2基极电 压被D1、D2箝位在1. 4V,Q2导通,电阻R8、R3上产生压降,导致Q1、Q3导通,输出PulseOut 为高电平,其电压值等于(R6+R10)或(R7+R9)上的压降,而这又与电阻R1、R8、R3、R4有关。 电阻Rll为基极限流电阻,R5为光耦Ul输入端限流电阻,R2为Ul输出端上拉电阻,D1、D2 为箝位二极管,电阻Rl、 R8、 R3、 R4决定流经Rl的电流大小,从而决定脉冲输出高电平的电 压值,电阻(R6+R10)和(R7+R9)上的压降即为脉冲高电平的电压值,电容C1、C2、C3为退耦
86/15页电容。 图10为4 20mA输出电路。U3为DAC,流量计算值(数字量)经U3转换为模拟 电压送至U2输入,U2将电压转换为4 20mA电流输出。R2、U4为U3提供电压基准源,C5、 C6为退耦电容。U2的12脚输出10V电压;Q3增加其电流输出能力;U1为LD0,提供3. 3V 电源;C3、C2为滤波电容;R1决定U2输入电压与输出电流的关系;电容C4使电路稳定;Q1、 Q2与U2内的运放组成电压/电流转换电路;电容Cl为退耦电容。
本发明专利的软件工作流程为 (1)系统上电后,一方面模拟驱动电路产生驱动信号来激励科氏流量计的振动,另
一方面DSP完成系统各个部分的初始化,然后启动并同步两路ADC的采样转换。 (2)数据转换好后,通过GPIO产生中断;中断服务程序将转换的结果传送到两路
多通道缓冲串口 McBSP的接收管脚上,之后启动直接存储器存取(DMA)传输,在不打扰CPU
工作的情况下,将McBSP的接收管脚上的数据通过DMA传输到内部存储空间的临时数组中;
当临时数组放满后,产生两个DMA接收中断,中断服务程序将两个临时数组中的数据存放
到外部SARAM中的两个循环缓冲数组中。 (3)到外部循环数组中取500点新的连续的数据,判断信号的大小,如果信号很 小,则表示驱动还没有稳定,继续等待;若信号大于设置的数值,则可以开始调用算法模块。
(4)对两路500点数据信号滤波进行预处理,滤除噪声提高增强信号质量;然后, 对两路滤波后的信号调用自适应格型陷波滤波器来分别估计两路传感器信号的基频,然后 对两路信号的频率值取平均,得到信号基频瞬时值,对频率进行平均处理,并设置一个比较 范围,得到的平均频率值变化幅度在比较范围内则不更新频率值,如果超出范围则更新频 率,这样就可以得到稳定而精准的频率值,结合系数即可以得到瞬时密度值;最后调用负 频率修正的DTFT算法来计算两路信号的相位差,并对结果进行平均,结合频率值得到时间 差,进而结合设定的仪表系数,得到瞬时流量值。 (5)读取温度传感器信号转换为温度值,根据被测流量计的材质得到相应的温度 补偿系数,对瞬时流量进行温度补偿。 (6)通过CPU定时器定时Is产生中断,在中断服务程序中累加瞬时流量得到累积 流量;同时,置位输出结果标志位。 (7)得到测量结果后,TMS320F28335 —方面通过LCD将累积流量、密度、温度等测 量值显示出来;另一方面根据得到的瞬时流量通过DA或eP丽模块向外输出相应的4 20mA电流以及P丽脉冲,以便上位机或者其他二次仪表计数。 (8)最后查询键盘标志位是否置位,若置位调用键盘服务子程序,若没有,重复 2-8的过程对流量进行实时测量。 本发明系统中数字信号处理系统的主要任务是对实时采样数据进行相应的数字 信号处理算法,以完成流量测量,并利用硬件资源,编写相应的程序进行功能扩展,满足用 户对仪表提出的要求。本发明系统除了测量流量,还需具备脉冲输出、电流输出、仪表系数 设定和人机接口 (即键盘功能和LCD显示)等功能。此外,为保证系统正常运行,在系统 中加入了错误检测、故障复位功能。因此,整个数字信号处理系统的功能较多,软件设计复 杂。为了便于系统的设计和维护,软件设计采取模块化设计方案,将完成特定功能或者类似 功能的子程序组合成功能模块,然后由一个主监控程序统一调用,当然这些功能模块之间也可以互相调用,中断模块处理一些特殊事件,可打断主程序的执行。软件总体框图如图11 所示,主要包括初始化模块、信号采集模块、算法模块、中断模块、结果输出模块、人机接口 模块、EEPROM操作模块、错误模块以及看门狗复位模块。每一个功能模块一般都包含一个 头文件和一个函数文件,从而使软件便于管理和移植。 图12的是系统主监控流程。主监控程序是整个信号处理系统的总调度程序,调用 各个模块中的子程序,实现仪表所要求的功能。它是一个死循环程序,系统一上电,主监控 程序自动运行,进入不断计算和处理的循环中。基本过程为系统上电后,立即进行初始化; 初始化后,开启ADC转换采样数据,然后调用计算模块,对信号采样序列采用信号处理算法 进行处理,计算出传感器信号频率以及两路的相位差、时间差;然后,根据所设定的仪表系 数,计算瞬时流量和累积流量;并对结果进行平均处理,以及对瞬时流量和累积流量进行温 度补偿;接下来调用系统输出模块,根据计算出的瞬时流量,向外发送相应的脉冲量和标准 的4 20mA的电流;完成输出后,主监控程序查询键盘操作标志位进行相应的处理,最后返 回,重新开始进行信号处理、计算流量和输出信号,不断循环。 本发明系统上电以后首先要需要对各个模块的软硬件资源进行初始化后才能进 入正常的流量测量过程。该模块负责系统内可编程器件和软件资源的初始化,主要包括DSP
芯片TMS320F28335初始化、外部可编程器件初始化、中断配置初始化以及软件资源初始化等。 TMS320F28335的初始化主要包括系统时钟初始化和系统用到的TMS320F28335内 部集成功能模块的初始化,如看门狗、系统外部接口 XINTF、增强型P丽模块中eP丽la、定时 器、直接存储器访问DMA模块、多通道缓冲串口 McBSP模块、Flash存储器以及通用数字复 用口 GPI0等。 外部可编程器件初始化包括两路采集流量传感器信号的ADC芯片以及一路采集 温度传感器信号的ADC3芯片的初始化、LCD初始化。ADC芯片的初始化主要是芯片工作模
式等控制字的写入。LCD初始化则包括控制引脚初始化、写模式命令字和初始化显示内容等。 中断配置初始化包括PIE控制寄存器初始化、中断向量表初始化以及系统中用到 的中断进行映射等。 软件资源初始化主要是用于各个模块的全局数据结构、数组、参数等的初始化。 软件中有些数据需要不断的使用,应配置成全局变量;另外,模块之间共享的数据,也应配
置成全局变量形式。根据初始化方式的不同,全局变量的初始化主要分为两类一类是通 过EEPR0M来进行初始化,主要是仪表参数和标定的固定偏差等;另一类则是直接复制初始 化,主要包括反映系统工作状态的状态变量和为了减少程序计算量、方便程序调用的常数
变量等。 TMS320F28335内部采用一个集中化的外设中断扩展控制器PIE来处理所有片内 外设和外部引脚中断的优先级以及中断的响应,这些中断被分为12组,每组有8个中断复 用一个CPU级中断即INT1-INT12,这12个核心级中断优先级固定且是可屏蔽的。本系统 采用了两个核心CPU级中断INT1和INT7。 INT1.4是一个外设中断源,来自采集两路传感 器信号的ADC之一,表示两路ADC转换数据完成,如图13所示,两路ADC的Ready信号接至 DSP的GPI08和GPI010上,由于本系统的要求,必须同时启动两路ADC转换,且两路ADC配置相同,因此转换数据的时间一致,这样Ready信号应该同时有效,为了简便,采取一路ADC 的Ready信号通过GPIO 口发送中断请求,如果在中断配置初始化中映射了该中断,且PIE, CPU中断都使能,CPU就会响应该中断,在中断服务程序中查询判断另一路ADC的Ready信 号是否有效,如果有效就执行下一步,如果无效,可以继续等待,但是如前面所述两路ADC 动作一致,不会等太长的时间,这样既减少了中断的数目,同时查询也不会浪费CPU时间, 确保两路ADC转换好的的信号都及时得到转移的,同时也提高了系统的效率。由于ADC采集 两路传感器信号是本系统工作的第一步,所以在外设中断中,该中断应该具有最高优先级, 因此映射到CPU的INTl。 INT1.7来自于CPU定时器TimeO的周期中断触发,用于定时计算累计流量、换算 瞬时流量对应的P丽波的频率值、换算瞬时流量对应的DAC输出的电压值、并置位输出标志 位,为调用输出模块做准备。由于该中断主要用于总流量的计算,因此为确保结果的正确 性,优先级也必须较高,因此采用CPUTimeO定时器,可以映射到CPU的INTl。
系统中一些实时性要求不高的定时处理没有分配处理器,而是采用延迟函数进行 软件定时,这样便于实现。例如定时键盘扫描、定时LCD刷新、定时读取温度值、设置模式下 的LCD数码管的定时闪烁以及GPIO模拟产生SPI的通信时序等。INT7. 1和INT7. 2由DMA 传输通道1和传输通道2的中断组成。如图14所示,两路DMA用于对DSP的多通道缓冲串 口 McBSP接收的两路ADC采样转换的科氏传感器信号进行传输,DMA在不打扰CPU的情况下 将数据传送到内部RAM中的ping_buffer或pong_buffer缓冲数组中,当缓冲数组满时就 会产生DMA接收中断,在中断服务程序中修改DMA传送地址以及将已满的ping_buffer或 p0ng_buffer中的数据读取到外部SARAM中的长的循环缓冲数组中供算法调用。因为整个 数字信号处理系统必须保证输入信号的实时、连续以及正确性,采用TMS320F28335的DMA 传输便可以实现将大量的实时数据正确转移,而不降低CPU的工作效率。DMA接收中断的优 先级要低于ADC中断。 信号采集模块包括两个部分科氏传感器信号数据采集和温度传感器信号采集。 传感器信号数据采集主要用于检查科氏的频率、两个通道的相位差,采集过程分为采集传 输过程和信号读取过程。 科里奥利质量流量计的数字信号处理是以两路传感器的信号为研究对象的,两路 信号要求必须同时采样,且要求将实时采样的数据连续保存下来供数字信号处理算法调用 去计算流量值。为了能及时保存大量的数据,采用了如图15所示的信号采集和传输的过 程。 由于本系统对算法精度要求非常高,因此必须选取一款性能优越的ADC。本系统选 择的是两个ADC来分别采样两个传感器信号,该ADC是一款低噪声、A E型的24位ADC,性 能能够满足我们的算法的要求,且具有SPI串行接口,便于与DSP传送数据。本系统应用两 路多通道缓冲串口 McBSP与两路AD通讯。 配置好ADC后,两路ADC就开始同步转换了 ,单个数据转换好后通过GPI08产生中 断(通过一个ADC的DRDY脚产生一个中断,在该中断服务程序中查询另一个AD的DRDY信 号),中断服务程序中为McBSPa 口与b 口接收数据提供时钟,两路24位采样数据就会到达 McBSPa 口与b 口的接收寄存器中,高位接收在DRR2中,低位在DRR1中,以32位整形数据 保存在McBSP的接收缓冲器中,如果这时候利用McBSP产生两路中断让CPU读取数据的话,CPU利用率太低,采样频率2kHz , 500ms就要中断一次读取数据,CPU根本没有将大部分的时 间用于算法以及其他系统功能上,这样根本无法实现整个系统。因此我们选择了 McBSP的 DMA传输功能,在不打扰CPU的情况下将数据及时传送到内部RAM中,而不会丢失或覆盖采 样数据,提高CPU的利用率。 28335中有的DMA可为ADC、 McBSP、 eP丽、XINTF以及SARAM服务,因此需要指定 DMA中断为McBSPa/b的接收中断。 注意,配置DMA必须在配置McBSP以及AD之前。这样,McBSP接收寄存器一旦有 数据就会自动开始DMA传输,分别将两路信号数据传送到DSP内部RAM的指定地方pingL_ buffer与pingR_buffer (buffer大小为40点)中,当buffer放满时两路DMA传输分别产 生中断,DMA中断服务程序中有两个任务一,修改buffer地址为pongL_buffer与pongR_ buffer (buffer大小仍为40点)(若为pong_buffer,地址修改为ping_buffer,交替使用), 防止AD采样数据丢失;二,将两路数据从放满数据的内部buffer中读出,放入位于外扩 SARAM的较长的循环数组中,并记录该循环数组的头指针、尾指针以及新数据的长度,为算 法取数据做准备。DMA中断服务程序流程图如图16所示。 信号读取是指从外部SARAM中的循环长数组channel—signal中读取连续数据的 过程,循环长数组的结构如图17所示,该数组设置了三个标志,即头指针Top—pointer、尾 指针Tail—pointer、新数据长度(所谓新数据就是指还没有用于信号处理算法的采样数 据)Newda—len。 DMA中断服务程序将buffer中数据放入循环数组时,Top_pointer++, Newda_ len++这样Newda—len记录了已有的采样数据,在主程序中判断Newda—len的长读,当有 500点数据时,就从循环数组中取500点数到signalLCH[500]及signalRCH[500]中并转换 整型数据到浮点型数据,为调用算法做准备,此时,取一点出来,1^11_。011^^++,取完数据 后即调用算法程序进行计算流量,500点算完后NewdaJen-500,进入下一轮循环。可以看 出,头指针Top—pointer用于表示有数据写入循环数组中,尾指针Tail—pointer用于表示 有数据读出循环数组中,新数据长度Newda—len用于表示有效的可用于算法的数据。
如果Newda—len > Sum_len,即表示存放数据速度比取出数据速度快,数据没来得
及取出便被覆盖了,此时表明取出数据做算法消耗时间过长,算法来不及算,需要简化算法 或者降低采样频率,此时就产生了溢出错误,标记overflow—error置位,对错误的处理是 重新初始化循环长数组,使Top_p0inter = Rail—pointer即可,同时还需改进算法或者降 低采样频率。 温度信号采集是直接在模拟信号输入调理电路后通过ADC3采样转换成数字量 的。ADC3是一款低功耗的、缓冲的24位A E型ADC,且采用SPI方式通信,通过DSP上的 SPI模块口来实现数据传递与控制。由于流量管介质的温度在一定时间内变化不大,温度 信息实时性要求并不高,因此没必要采取很高的SPI通信速率,我们配置ADC3工作在单个 转换模式下,即开启AD转换,ADC3转换好一个数据后就变为关闭休眠状态,直到CPU查询 DOUT/RDY有效并且有空来取数,重新唤醒ADC3后就可以转化下一个数据了 。这样系统就 可以在需要温度信息的时候去读取温度传感器信号,避免采集实时数据带来的资源浪费。 ADC3的采样速率比较低,同时,可以用一个延时软件函数来定时去读取温度,唤醒ADC3去 转换下一个数,这样就可以固定时间去更新温度信息了。
算法模块内包含了系统所进行的大部分数值运算子程序,主要有信号预处理、估 计传感器信号的基频、计算两路信号的相位差和时间差、对结果进行平均处理、瞬时流量计 算、流量的温度补偿。整个算法模快的处理流程如图18所示。 信号预处理指对采集的传感器信号进行滤波,滤除不必要的频率成分为后面的算 法打基础。信号预处理分两种情况一种是,对于A E型ADC来说,由于AD本身以很高的 采样频率1. 92MHz采样,之后内部带有滤波平均的处理,因此以2kHz传送到DSP的数字量 噪声已经比较低了,所以,软件滤波只需滤掉较高成分频率即可,简单的FIR低通滤波即可 满足后续算法的要求;另一种是,对于其他AD或者音频处理芯片Codec来说,则需要使用多 抽一滤波器,即为了增强对噪声的抑制,先用16kHz较高的采样频率对科氏流量计的输出 信号进行采样,然后用多抽一滤波器进行抗混叠滤波和抽取,一般需采用两级多抽一滤波 才能达到较好的效果,并且抽取之后减少了数据量,提高信号质量的同时没有增加后续的 计算负担。如果实际应用时信号中存在其他的频率的干扰,通过分析信号的频谱可以设计 陷阱深度和宽度可调的陷波器来具体处理实际中的干扰,提高整个算法的抗干扰能力。
数字滤波公式为 x(n) = (boU(n)+biU(n-l)+…b迈u(n-m)-aiX(n-l)-----akx (n-k))/a0 (1) 式中,u和x分别代表采样得到的原始信号序列和数字滤波之后的信号序列, {b。,…,bm,a。,…,aj为滤波器系数,m和k为滤波器的阶数。滤波器系数可根据现场状 况,通过系统面板进行设置。 经过预处理的信号就可以调用自适应格型陷波滤波来估计信号的基频了,由于科 氏质量流量计两个流量管的不一致性,导致两路传感器信号存在偏差,为了提高计算相位 差的精度,对两路信号分别经过两个不同的自适应格型陷波滤波器,分别估算两路信号的 频率,然后在平均得到一个折中的频率值传递给后面的算法。 格型IIR陷波器是由全极点和全零点两个格型滤波器级联而成,其传递函数如式 (2)所示。 = H2 (z)/f, (z) = ;~~^~~~^ (2)
1 +"0(1+ 0^)2 +£^2 Hjz)贡献为整个格型陷波器的极点部分,相当于AR模型,而Hjz)则贡献为整个
格型IIR陷波器的零点部分,是一个格型FIR滤波器。为了减少计算负担,通过将零点固定
在单位圆上,使得只调整一个参数就能达到自适应陷波的目的。将零点固定在单位圆上,即
令、=1,k。在经过一段时间自适应后收敛到-cos","是信号的归一化频率,a决定陷
阱的宽度,其自适应算法如下式(3)到式(10)所示。
,、 >"(")
= ~^-~~;-7 (3) l (") = ^ (" — 1) + (1 - (") (4) D(n)=入(n)D(n-l)+2(l-入(n))s2(n-l) (5) = -C(")/P(") (6) C(n) = A (n)C(n-l) + (l-A (n))s(n-l) [s(n)+s(n-2)] (7) = arccos(-《0 (")) (8)&(")>1 (9) 《0(")<-1 = ■ (") +2《仍—1)+ —2) (10) 其中,《。(")是k。(n)的估计值,L(")是&(w)经过平滑处理后的值,Y =0.5,
y(n)-x(n)即为去除噪声后的增强信号。由于科氏流量计流体的密度反映为频率的变化, 所以需要及时跟踪流体信号变化的频率,通过大量的仿真研究,发现通过调整P和A的终 值,适当地加大陷波器陷阱的宽度,也能够在保证精度的同时实现对频率变化的跟踪,如式 (11)和式(12)所示。 p (n) = 0. 98-0. 195X0. 99 (n—1) (11)
A (n) = 0. 98-0. 05X0. 99(n—D (12) 自适应格型陷波算法的流程图如图19所示。注意,格型陷波滤波是有滤波功能 的,能够得到只有信号频率的增强信号,但是由于两路信号使用的两个IIR型滤波器,增强 信号中的相位已经改变了,所以在后续算法中并没有使用增强信号,自适应格型陷波只用 于估计信号频率。 自适应格型陷波算法可用于跟踪变化的频率,且跟踪速度快,跟踪精度高,整个算 法的计算量较小,一路自适应格型滤波得到一点频率值的时间为10.5iis,跟踪精度优于 0. 01%。并且调整参数的终值以及变化步长即可调整格型跟踪频率的速度和精度,这样,该 算法可以灵活应用于突变、骤变的信号,比如两相流、批料流等应用。 在得到DTF乙omega频率值之后,连同500点信号数据传递到DTFT算法模块中,计 算两路信号的相位差。对于平稳流量信号来说,我们认为一定时间内比如选择2s时间内的 4000点数据基本保持不变,从第一个采样点开始不断增加数据长度来计算指定频率处的傅 里叶系数,4000点后重新开始计算,防止数值的溢出。同时由于DTFT收敛有一个过程,所以 4000点中我们只保存后面2500点的数据用于后面的平均处理。同时,为了提高计算精度, 对得到的相位差进行负频率的修正。 基于DTFT频谱分析的相位差测量方法在计算相位差时忽略了频谱中的负频率成 分。当信号频率很低或采样点数较少时,负频率成分的影响显著增大,导致DTFT递推算法 的相位差测量精度明显下降,甚至无法测量。这也是滑动Goertzel算法在计算相位差时存 在较长的收敛过程的主要原因之一。为此,采用一种负频率修正的DTFT递推算法来测量相 位差,其推导公式如式(13)至式(23)所示。sjt) = A丄cos(2 Ji f0t+ 9》(13-1)s2(t) = A2cos(2 Ji f0t+ 9 2)(13-2)s丄(n) = A丄cos (co t+ 9》(14-1)s2(n) = A2cos("t+9 2) , n = 0, 1,…,N-l, co=2 Ji f0/fs (14-2);(^) = Z 4 cos(柳AM力 /i=o 2W-l力力w—1 、力 W-l 么 rt=0么 M=0(15)
1
一l
14
S飼= i * e一— = & ( ) + <A0 *
n=0
tang--^,c^ty
c3 * tan a + c4
(16-1)
(16-2)
(17-1)
tan《-Ili-^,6;'
c3 *tanp2 +c4
c工=sin a pin a 2cos ( a 「 a 3) +sin a 3sin a 4cos ( a 4_ a 2)c2 = sin a pin a 2sin ( a 「 a 3) -sin a 3sin a 4cos ( a 4_ a 2)c3 = sin a pin a 2sin ( a 「 a 3) +sin a 3sin a 4sin ( a 4_ a 2)c = sin a pin a 2cos ( a 「 a 3) -sin a 3sin a 4cos ( a 4_ a 2)
(17-2)
(18)
(19)
(20)
(21)
i2 2 9 4 7
w,(tan^ 2 — tan
= arctan
j2 +w3(tan(Z>1 +tanp2)+/w4 tanp, tanp2
,<y <y,-
SIH QTj
sin 61^
(22)
(23) m, = iV(si—2 - (shm)2/jV (24-1)
w2 = iV(sin 6)2 + (sin or)2 /iV _ 2 sin 6 sin or cos(a — 6) (24-2)
w3 = 2 sin 6 sin a sin(ar - 6) (24-3)
附4 = iV(sin (5)2 + (sin or)2 /iV + 2 sin 6 sin ar cos(a - d)) (24-4)
& = (25)
归纳起来,计及负频率影响的DTFT递推算法的计算步骤如下
(1)求出"的估计值^ ,由格型陷波滤波器估计频率; (2)应用DTFT递推算法(如式(15)所示)分别计算sl(n)和s2 (n)在^处的DTFT,求出tan小1和tan小2,tan<t>l=Im[S1N(6)〗/Re[S1N(6)],tan(p2=Im[S2N(>)]/Re[S2N(^)]; (3)由6、N求出ml m4,并同tan小和tan小 一起代入式(25),求得相位差和时间差。 (4)当应用于实际系统时,随着N的不断增加,DTFT递推算法亦存在数值溢出的问题,因此需对采样点数设置最大值,超过最大值将所有变量清零重新计算,由于本发明专利的相位差测量方法在计算时收敛很快,因此重新计算带来的影响很小。通过实验发现,将最大值设置为2000时既能收敛到很高的精度,又能满足实时要求,当相位差发生变化时能很快跟踪上。 计及负频率影响的DTFT算法与滑动Goertzal算法在原理上是一致的,均通过不断增加计算序列的长度,实现指定频率处的傅里叶系数的快速计算,考虑到科式流量计相位差计算的实时性要求,需每采样一点计算一次傅里叶系数,DTFT的递推算法计算量要比
15滑动Goertzal算法小,且能很快收敛,具很高的计算精度。
整个算法流程图如图20所示。 为了防止数据统计变异性对相位差结果的影响,必须对若干个结果进行平均。科
氏流量计在小流量的时候信号较弱,信噪比降低,信号质量比较差,DTFT计算得到的相位差
波动比较大,必须采取平均措施,以便输出稳定的相位差值。 我们采取下面的加权平均方法来对结果进行后里
i~^171(26)
S= (X!伊")* A +卢"—敬 (27)2>=(5>)" + 1 (28)
式中,A为加权平均的遗忘因子,大小接近1,即相当于:^个点数在平均。入
1 一 乂
值小的话,表示平均的点数少,当相位差发生变化时,算法的响应速度会很快,但是由于平均点数少,数据的波动克服能力小,反之,如果A值取小的话,表示平均的点数增加,这样可以很好的克服数据的波动性,输出平稳的结果,但如果流量出现突变,这时需要计算那么多点才能反映流量的变化,这仍会造成测量误差,因此还需采取设置门限值的方法来解决。设置一个相位差突变门限phase—limit,如果连续计算出N个相位差值波动幅度都超过了phase_limit,则对这N个相位差值和之后算出的结果平均,而前面的值都不参加平均,从而快速的反应流量变化。N —般取5至10,理论上,门限phase—limit选择的越小对微小突变越敏感,但实际中门限值也不能取太小,因为本身DTFT算法就会在一定范围内波动。平均模块的具体流程图如图21所示。 科里奥利质量流量计的性能会受环境的影响,其中温度的影响较为突出,温度的变化会引起质量流量计对流量、密度的测量误差,在实际高精度使用场合中必须考虑温度效应,并对质量流量进行温度补偿。 流量计中的敏感管材料的弹性模量是随温度变化而变化的,一般认为材料的弹性模量的温度系数是确定的,可以适时检测温度利用计算机进行数字补偿。我们选取的流量计一次仪表敏感管材料为316L,根据资料流量斜率温度系数为5. 41% /10(TC。每2s输出一个瞬时流量,读取当下的温度值,根据温度得到补偿系数即可,瞬时流量的求取以及温度补偿如式(4)所示。
<formula>formula see original document page 16</formula>(29) 系统输出模块即远程信号发送操作模块,包含两个子操作,分别是4 20mA电流输出操作和脉冲输出操作。 4 20mA电流输出的基本原理为由于28335的1个SPI模块已被占用,所以使用内部通用GPIO 口来模拟SPI时序向DA7513转换器发送12位串行数据,由D/A完成数字量到模拟电压量转换,再通过一个V/I变换电路,将电压量转换为4 20mA电流量。因此,4 20mA电流输出软件操作为根据瞬时流量估计结果向DA7513写入相应数据即可。估计电压公式如式(5)和式(6)所示。<formula>formula see original document page 17</formula>
P丽输出功能是由DSP的eP丽模块中 一路P丽的比较输出功能来实现的,输出脉冲范围为10Hz-5kHz。由于科里奥利质量流量计可直接给出流体质量,所以P丽波输出脉冲的个数对应质量,本系统可测量的流速范围为lg/s-500g/s,那么要求ls输出P丽脉冲个数为1-500个即1个脉冲代表lg,也就是说P丽脉冲频率为1Hz-500Hz,由于28335P丽模块可输出最小频率为8. 9Hz (150000000/2/128/65536),因此将P丽脉冲频率扩大10倍,即10个脉冲代表lg,脉冲频率变为10Hz-5kHz。 由于算法计算的瞬时流量为浮点数,需取整换算周期寄存器和比较寄存器的值,取整会导致周期寄存器的值增加,进而有可能导致每输出一个P丽脉冲时会多计一个TBCLK,为了保证最后P丽不多输出一个脉冲,要求ls累加的TBCLK的个数小于比较寄存器值,即要求fPM < PRD/2,频率具体分段如图22所示。 为了尽量减少整数截断对输出P丽脉冲个数造成的影B向,设置了中间变量middle—fre用于累加本次P丽频率值和上次频率值取整后丢掉的小数部分,然后对middle_fre取整即得到本次输出P丽的频率值,所以,P丽输出函数流程图如图23所示。
系统扩展了 256X 16大小的EEPR0M型号为931X66,用来保存测量结果和仪表系数以及其他一些需要掉电保存的数据。通过DSP上的多功能复用GPIO 口模拟串行时序对EEPROM来进行数据读写和控制,典型的写数据的时间为10ms,因此读写EEPRM用于两种场合第一 用于系统初始化中的全局变量初始化;第二 与键盘合作,用于保存键盘设置的参数以及要保存的结果数据。 在配置好EEPR0M的GPI0 口后,在写数据之前,应该先发送控制字写使能,如果写入一个固定地址数据,最好先擦除该地址上原来的数据,然后指定8位地址、16位数据,写入要保存的数据,读取的时候,同样需要指定地址。本系统中需要保存三种数据仪表系数K、零点固定偏差(K要保存的累计流量Q。并给三种数据分配了固定的地址。在读写EPR0M过程中关键是数据格式的转化,写入数据时需要把浮点数转化为32位的整型数据,读取数据时又需要把32位整形数据转化为浮点型数据。 在仪表开始工作时,需要通过键盘来设置仪表系数K和零点固定偏差(K此时需要将两个参数保存,程序开始运行进入初始化阶段时,需要把这两个数据读出赋给相应的变量,然后开始算法过程,整个测量过程是不需要使用EEPROM操作的,测量完成后查询是否保存累计流量标志,如果标志置位,则需要写该结果数据到EEPR0M的指定地址中。
在测量过程中可能会出现一些异常,比如测量结果超出范围、数组越界、数据覆盖等等的情况,为了便于监测这些错误同时也为了方便调试,在系统软件中加入了错误模块,用来标记和记录程序执行过程中产生的异常情况。错误模块的设置非常简单,设置一个全局变量用于记录错误代码,以及使用宏定义一些错误代码标志和错误处理接口函数。这样其他模块只要包含错误模块后,如果发生错误,就可以调用宏定义函数报告错误状况,并置位错误标志,这样就可以清楚的知道运行中是否出现错误以及出现了哪类错误,便于监测和调试。错误模块只负责记录错误信息,对于错误的处理还需要各个模块中的具体函数去处理。 系统的人机接口模块由LCD和键盘组成,用于实现仪表测量结果的就地显示和仪表参数的修改。其软件实现包括LCD操作子程序和键盘处理的子程序。
权利要求
一种基于DSP的科氏质量流量变送器,包括放大滤波电路、模数转换器1(ADC1)、模数转换器2(ADC2)、电压基准源、电压跟随器、电流源、差分放大器、模数转换器3(ADC3)、模拟驱动模块、数字信号处理器DSP最小系统、外扩SARAM(静态随机存取存储器)、外扩EEPROM(电可擦可编程只读存储器)、人机接口、4~20mA电流输出及脉冲输出、电源模块和软件,其特征在于模拟驱动模块激励科氏流量传感器内部的激振器,使流量管以固有频率振动;位于流量管两侧的两个磁电式传感器输出两路正弦波信号,两路信号经两路参数相同的调理电路放大、滤波后分别被两个相同型号的ADC1和ADC2同时采样,并转换为数字量,通过DSP的两个多通道缓冲串口McBSP口送入DSP计算两路信号相位差;DSP采用数字滤波对信号进行滤波,自适应格型陷波滤波器计算信号的频率,再采用计及负频率的离散时间傅里叶变换(DTFT)算法计算相位差;流体温度影响流量管角弹性模量,产生恒定电流流经科氏质量流量传感器内部的温度传感器,温度传感器输出电压经差分放大器放大后,被ADC3采样并转换为数字量送入DSP进行温度补偿的相关计算;将相位差转换为质量流量,并加入温度补偿,将最终值在液晶显示器(LCD)上显示,并配有4~20mA电流输出及脉冲输出。
2. 如权利要求1所述的一种基于DSP的科氏质量流量变送器,其特征在于系统上电 后, 一方面模拟驱动电路产生驱动信号来激励科氏流量计的振动,另一方面DSP完成系统 各个部分的初始化,然后,启动并同步两路ADC的采样转换;数据转换好后,通过GPIO产生 中断;中断服务程序将转换的结果传送到两路多通道缓冲串口 McBSP的接收管脚上,之后 启动直接存储器存取(DMA)传输,在不打扰CPU工作的情况下,将McBSP的接收管脚上的数 据通过DMA传输到内部存储空间的临时数组中;当临时数组放满后,产生两个DMA接收中 断,中断服务程序将两个临时数组中的数据存放到外部SARAM中的两个循环缓冲数组中; 到外部循环数组中取500点新的连续的数据,判断信号的大小,如果信号很小,则表示驱动 还没有稳定,继续等待;若信号大于设置的数值,则可以开始调用算法模块。
3. 如权利要求1所述的一种基于DSP的科氏质量流量变送器,其特征在于对两路500点数据信号滤波进行预处理,滤除噪声提高增强信号质量;然后,对两路滤波后的信号调用 自适应格型陷波滤波器来分别估计两路传感器信号的基频,然后对两路信号的频率值取平 均,得到信号基频瞬时值,对频率进行平均处理,并设置一个比较范围,得到的平均频率值 变化幅度在比较范围内则不更新频率值,如果超出范围则更新频率,这样就可以得到稳定 而精准的频率值,结合系数即可以得到瞬时密度值;最后调用计及负频率影响的DTFT算法 来计算两路信号的相位差,并对结果进行平均,结合频率值得到时间差,进而结合设定的仪 表系数,得到瞬时流量值。
4. 如权利要求1所述的一种基于DSP的科氏质量流量变送器,其特征在于得到瞬时 流量值后,读取温度传感器信号转换为温度值,根据被测流量计的材质得到相应的温度补 偿系数,对瞬时流量进行温度补偿;通过CPU定时器定时2s产生中断,在中断服务程序中累 加瞬时流量得到累积流量;同时,置位输出结果标志位;得到测量结果后,DSP —方面通过 LCD将累积流量、密度、温度等测量值显示出来;另一方面根据得到的瞬时流量通过数模转 换器DAC和eP丽模块向外输出相应的4 20mA电流以及P丽脉冲,以便上位机或者其他 二次仪表计数。
5. 如权利要求1所述的一种基于DSP的科氏质量流量变送器,其特征在于信号RP+、RP-以差分形式接至U2输入端,经仪用放大器U2放大后送至由运放U3A及外围电阻、电容 构成的二阶低通滤波器滤波后,再经R7、U4构成的限幅保护电路送入ADC Ul的输入端;通 过R8、 R9将输入信号RP+、 RP-接成差分形式,R2设置U2的放大倍数,C2、 C6、 C12、 C14为 退耦电容,R5、R6、R1、R12、C5、C10与运放U3A构成二阶低通滤波器,C3、 C9、 Cll、 C13为退 耦电容,电容C90用来滤除Ul中高频开关器件产生的高频干扰;U1为差分输入ADCl,信号 接至AINO (6脚),另一输入端AIN1 (7脚)接2. 5V基准源;U1所需基准取自外部2. 5V基 准源,VREF(4脚)接2. 5V基准,VREFN(3脚)接地;U1的数据传输接口与DSP的多通道缓 冲串口McBSP 口连接一时钟SCLK(18脚)接MCLKXA,数据输入DIN(17脚)接MDXA,数据输 出DOUT (16脚)接MDRA,片选己接MFSXA,其中串联的电阻R3、R4、R10与Ul相应管脚输入 寄生电容构成RC低通滤波,滤除尖峰脉冲;控制管脚,、^接至DSP的GPIO 口 ;电容 C7、C8为滤波电容,电容C1、C4、C15、C17为退耦电容。
6. 如权利要求1所述的一种基于DSP的科氏质量流量变送器,其特征在于两路ADC 同步转换,单个数据转换好后通过GPI08产生中断,中断服务程序中为McBSPa 口与b 口接 收数据提供时钟,两路24位采样数据就会到达McBSPa 口与b 口的接收寄存器中,高位接收 在DRR2中,低位在DRR1中,以32位整形数据保存在McBSP的接收缓冲器中,采用McBSP的 DMA传输功能,在不打扰CPU的情况下将数据及时传送到内部RAM中,而不会丢失或覆盖采 样数据,提高CPU的利用率。
7. 如权利要求1所述的一种基于DSP的科氏质量流量变送器,其特征在于信号预处 理分两种情况一种是,对于A - E型ADC来说,由于ADC本身以很高的采样频率1. 92MSPS 采样,之后内部带有滤波平均的处理,因此以2kSPS的数据输出速率传送到DSP的数字量噪 声已经比较低了,用软件滤波只需滤掉较高成分频率即可,简单的FIR低通滤波即可满足 后续算法的要求;另一种是,以较高的数据输出速率传输数据到DSP,则需要使用多抽一滤 波器,即为了增强对噪声的抑制,先用较高的数据输出速率(如16kSPS)将数据送到DSP,然 后用多抽一滤波器进行抗混叠滤波和抽取,一般需采用两级多抽一滤波才能达到较好的效 果,并且抽取之后减少了数据量,提高信号质量的同时没有增加后续的计算负担。
8. 如权利要求1所述的一种基于DSP的科氏质量流量变送器,其特征在于经过预处 理的信号就可以调用自适应格型陷波滤波来估计信号的基频了,由于科氏质量流量计两个 流量管的不一致性,导致两路传感器信号存在偏差,为了提高计算相位差的精度,对两路信 号分别经过两个不同的自适应格型陷波滤波器,分别估算两路信号的频率,然后在平均得 到一个折中的频率值传递给后面的算法。
9. 如权利要求1所述的一种基于DSP的科氏质量流量变送器,其特征在于在实际系 统中,随着采样点数N的不断增加,DTFT递推算法也存在数值溢出的问题,因此需对采样点 数设置最大值,超过最大值将所有变量清零重新计算,由于本发明专利的相位差测量方法 在计算时收敛很快,因此重新计算带来的影响很小;通过实验发现,将最大值设置为4000 时既能收敛到很高的精度,又能满足实时要求,当相位差发生变化时能很快跟踪上。
全文摘要
本发明涉及流量检测领域,为一种基于DSP的科氏质量流量变送器,包括放大滤波电路、模数转换器1、模数转换器2、电压基准源、电压跟随器、电流源、差分放大器、模数转换器3、模拟驱动模块、数字信号处理器DSP最小系统、外扩SRAM、外扩EEPROM、人机接口、4~20mA电流输出及脉冲输出、电源模块以及软件。模拟驱动模块激励科氏质量流量传感器内部的激振器,使流量管以固有频率振动。位于流量管两侧的两个磁电式传感器输出两路正弦波信号,两路信号经两路参数相同的调理电路放大、滤波后分别被两个相同型号的模数转换器同时采样并转换为数字量,通过DSP的两个多通道缓冲串口送入DSP。DSP采用数字滤波消除信号的噪声,自适应格型陷波滤波器计算频率,再采用计及负频率的DTFT算法计算相位差,最终得到质量流量。
文档编号G01F1/84GK101706299SQ200910185560
公开日2010年5月12日 申请日期2009年11月20日 优先权日2009年11月20日
发明者侯其立, 徐科军, 朱永强, 李叶, 李苗 申请人:合肥工业大学