钱洁玲,郭阳宽,祝连庆,刘 超,孟晓辰
(北京信息科技大学光电测试技术北京市重点实验室,北京 100192)
四路油罐液位信号处理子系统的设计
钱洁玲,郭阳宽,祝连庆,刘 超,孟晓辰
(北京信息科技大学光电测试技术北京市重点实验室,北京 100192)
为提高大型油库的液位测量系统中信号处理的精密性和实时性,设计了以CPLD为核心的准确、高速的四路油罐液位信号处理子系统,可同时完成四路油罐液位信号的滤波、计数和鉴相以及通信。详细描述了CPLD中各个模块的实现方法,用Verilog HDL实现各模块并在QuartusⅡ开发软件中进行仿真和分析。实验表明,该子系统能够实时高效准确的完成四路油罐液位信号的处理。
油罐液位;信号处理;CPLD
在石油产业,有大量存储油品的储罐,需同时对油罐进行监测,油品储罐的精密测量与自动控制是关系到生产安全的重要问题[1-2]。长期以来,国内多数油罐采用机械式液位测量,靠人工记录和判断,其工作效率低、误差大,无法实现自动化的控制和管理[3]。近年来发展的借助于超声波、激光等新技术的测量方法,测量系统结构复杂,价格昂贵,数据处理难度较大,存在一定的局限性。
设计的应用于大型油罐区的全光纤测量系统,主要包括信号采集、信号传输和信号控制单元。测量系统的总体框图如图1所示。
图1 油罐液位测量系统的总体框图
油罐液位信号处理子系统是整个测量系统的核心,液位信号的处理、分析直接影响着测量的精度,对大型油罐区的大量油罐的自动化监控起着关键性的作用[4]。对油罐液位系统中的信号进行数据处理时,一般通过门级电路搭建的电路板、单片机和低端可编程器件等方法来实现。由于使用电路板、单片机和低端可编程器件的方法通用性差、编译复杂、电路板庞大、实时性差,影响电路的稳定性和可靠性[5],而且单路的数据处理系统不能满足多个油罐的液位信号处理[6]。因此设计了基于CPLD技术的四路油罐液位信号处理子系统,实现四路液位数据的采集、处理、传输,适用于实时性高、多通道数据采集与处理场合。
计量液位变化的位移和方向,须对四路油罐的液位信息同时进行处理,从而获得精确代表位移的方波个数和方向。在该子系统中,将其内部结构按功能分为滤波模块、倍频计数和鉴相模块、通信模块。该信号处理子系统的结构组成如图2所示。每个子系统主控四路油罐,放大、整形后的8路信号送入该子系统中,在CPLD的内部经过滤波模块滤波,D触发器完成对信号的状态存储,四倍频以后通过一系列的逻辑电路,完成对信号的四倍频方波信号的输出,对四路四倍频后的方波信号进行计数鉴相,最后通信模块将计数和鉴相的数值传送给单片机。信号处理子系统进行不间断的计数、鉴相和传输,判断油罐液位的变化情况,即液位变化的方向和大小。
图2 信号处理子系统结构图
前端电路对PIN管转换输出的电信号进行放大、滤波、整形后,输出的两路脉冲SA1、SB1是相位相差90°的方波信号[7](如图3所示),SA1、SB相的一个脉冲代表着油罐液位变化导致光电编码器旋转1.5°,检测的方波信号的脉冲值与油罐液位值之间的转换关系为:
式中:L为液位值;L0为初始液位值;ΔN为脉冲数;N为码盘的总栅格数;C为码盘转动一周的液位值。
SA1、SB1两者的相位关系则代表着被测对象旋转的方向,若SA1相超前SB1相,编码器转动方向为正转(如图a),即油罐的液位为上升状态;若SB1相超前SA1相,转动方向为反转(如图b),液位为下降状态[8]。四路油罐的液位变化状态以及输入信号、处理模块均相同。
(a)正转波形
(b)反转波形
图3 CPLD输入波形
根据需求,设计的子系统采用的是CPLD芯片EPM3128atc100,该芯片基于先进的MAX3000A架构的CPLD器件,具有低成本、上电即用、非易失、功耗小、可靠性高等特点
[9]
。信号处理子系统内部逻辑图如图4所示。
图4 信号处理子系统内部逻辑图
2.1 滤波模块设计
油罐在注油和放油的情况下,液面存在着一定程度的微弱波动,即输入信号中有干扰脉冲的存在;采集区存在机械部件,部件的固有物理机构导致在工作的情况下光电编码器的振动或者转轴不稳都会引起子系统接收的方波信号包含有波动与毛刺,导致计数错误[10]。在多次实验的研究过程中,发现虽然信号经过了前期的放大整形电路,但在多数情况下仍存在着干扰,大大降低了计数的准确性,影响系统的精度。需要在子系统中设计一个滤波模块来消除抖动,提高计数的准确性来提高液位测量系统的精度。
利用Verilog HDL语言设计来实现消除干扰的电路,滤波模块采用3级移位寄存器和一个与门实现滤波。以系统的时钟脉冲为频率基准,3级移位寄存器组成一个数据队列,每个时钟上升沿移动一次,形成新旧数据的移入移出,实现3次采样。若三次采样均为高电平或低电平,则视为该次采样有效,否则视为干扰,对其进行滤除再计数,以免误计数。将滤波后的信号传输给D触发器存储并参与后续的数据处理。在设计滤波模块需要注意的是干扰脉冲的脉宽须小于等于时钟周期的2倍。在一些干扰信号频率较低的情况下,需将时钟脉冲进行分频方可满足需要,故在不同的应用领域无需修改电路,只需修改时钟的分频系数即可满足不同的系统的需求。滤波模块设计的原理如图5所示。
图5 滤波模块原理图
其中,sig_b为油罐1输出的一路方波信号SB1,clk_in为系统时钟信号,rst为系统复位信号,sig_b[2..0]为信号SB1的3个状态,即3次采样值,当前状态sig_b0,前一时钟周期状态sig_b1和前两个时钟周期状态sig_b2,采用移位寄存器存储3次的状态信息,sig_b0<=sig_b;sig_b1<=sig_b0;sig_a2<=sig_b1,将3次采样的状态信号值进行相与(d_inb=sig_b2&sig_b1&sig_b0)后作为D触发器输入,由此可以滤除干扰信号来提高系统测量的精度。对于4路油罐的液位信号存在相同的干扰,需要滤除干扰,故该系统中需要在每一路信号处理模块中加上滤波模块,即有8个滤波模块来滤除干扰。
2.2 倍频计数、鉴相模块的设计
为保证计数的准确性,在子系统中对方波信号4倍频增频[11]。无论液位是上升还是下降,SA、SB两相脉冲在一个周期都有4个状态,即00、01、10、11,在每次状态变化时对信号进行计数。在一个周期内的SA、SB相2路输入信号共产生4个跳变沿,鉴别这四个跳变沿即可实现信号的4倍频,使系统的分辨率提高4倍。鉴别方波信号沿的原理是将SA、SB信号的上一次信号存储与当前信号相异或后得到新的方波信号pulse_delay,该方波的频率为SA或SB相的4倍,检测新方波信号的上升沿即实现四倍计数。在子系统中只要保证时钟信号的频率大于SA(SB)信号频率的4倍以上就能实现4倍细分。
不仅要对液位信号计数,还需通过光电编码器的转动方向来判断液位上升或下降。在正转时,SA、SB有4种状态:00→10→11→01;反转时亦有4种状态:00→01→11→10。根据SA、SB相位的变化判断转动方向。在信号处理子系统中,将经滤波和4倍频后的信号qa、qb的前一周期和前两周期值采集组成当前信号状态state_all[3:0],state_all[3]<=sig_qa2;state_all[2]<=sig_qb2;state_all[1]<=sig_qa1;state_all[0]<=sig_qb1;因此对应的四种状态为:
正转:4’b0010,4’b0100,4’b1011,4’b1101:dir<=1’b1;
反转:4’b0001,4’b1000,4’b0111,4’b1110:dir<=1’b0;
2.3 通信模块设计
大型油库油罐数量较多,为实现对所有油罐液位信息进行处理后传送至人机交互界面显示和存储,若信号处理子系统直接与计算机进行通信,CPLD和计算机的处理速度达不到处理大量液位信号的要求,且传输错误发生率较高,故通过单片机来建立CPLD与计算机的通信,提高通信速度,保证传输的速率以及可靠性。
经计数、鉴相后的方波个数和方向数据,由子系统的通信模块传输给单片机。MCU是通过两位地址总线,读取对应油罐的液位数据。由单片机给CPLD发送地址信息,CPLD根据地址信息add2add1读取对应油罐液位信息,当地址addr为00时读取油罐1的液位信息,01为油罐2,10为油罐3,11为油罐4。dir为各油罐的液位升降情况,cnt为四路油罐的液位信息,data[6..0]为传输至单片机的方波计数值,dire为传输给单片机的方向信息,通信模块如图6所示。当单片机给信号处理子系统发送地址信号后,系统内部判断数据处理是否完成,完成后给单片机发送数据使能信号data_en,由单片机读取相应位的电平信号,即可快速的得到相应的各路油罐的液位信息,即完成了CPLD与单片机的通信,否则等待。
图6 通信模块
设计的四路油罐液位信号处理子系统通过在计算机软件仿真来理论实现。对子系统中单路的滤波模块进行了仿真,图中sig_a,sig_b为滤波前具有干扰信号的输入信号波形,qa,qb为滤波以后的波形,从图7中可以看出滤波模块将输入信号中的干扰信号完全滤除,滤波效果较好。
图7 滤波模块仿真图形
软件仿真了油罐1的液位上升和油罐3的液位下降情况,如图8(a)、图8(b)所示。图8(a)中在时钟脉冲下,复位信号至1即不复位,在8路信号输入端SA[1..4]、SB[1..4]即四路油罐都有信号的情况下,读取地址信号为00,即此时读取油罐1的液位变化情况,dir输出液位变化的方向,为上升状态;cnt为变化方波四倍频后个数,在上位机中可转换为相应的液位变化值。同样,在图8(b)中读取地址信号为10,液位为下降状态。由此可知该系统能对油罐液位的变化进行准确的计数、鉴相和通信,而完成一个单位的液位变化仿真仅需要10 μs。
(a)液位上升仿真波形
(b)液位下降仿真波形图8 计数、鉴相仿真波形
将设计的处理电路应用于油罐的液位测量中,实时监测油库的液位信息。通过观察实验结果,完成一次四通道油罐的巡检需要3.25 s,能实时、高精度、准确的显示各油罐的液位信息。证明本系统能够准确的对4路油罐的液位信息进行计数、鉴相和传输,经换算可准确得到油罐的液位信息。
设计的子系统很好地实现了对四路油罐液位信息的四倍频、鉴相和计数、传输工作,并可与其它MCU直接通讯。同时,满足了液位信号处理的数量庞大、实时性高的要求。将大部分处理工作集中在CPLD芯片中,在实际应用中可以根据现场的具体情况,对CPLD的内部配置进行修改、调试。这种数据处理系统可适用于多种多路数据处理的应用场合,是一种比较理想的多路实时数据处理系统。
[1] 袁朝庆,谌飞翔,徐松芝,等.储罐液位检测方法综述.无损检测,2011(12):90-92.
[2] 徐驰,孙长库,王鹏,等.液位实时自动跟踪测量系统.传感技术学报,2011(10):1506-1510.
[3] 郑平,吴明,张国忠.油罐计量中的光纤传感检测系统.石油化工设备,2010,39(2):70-73.
[4] 肖博,李剑锋,陈洪芳,等.多通道绝对式光电编码器数据采集系统.仪表技术与传感器,2013(1):27-29.
[5] 李正岱,刘文怡.多路信号采集器的硬件电路设计.微计算机信息,2008,24(2):220-222.
[6] 张宝宜.基于CPLD的高精度位移测量电路的设计与实现.仪表技术与传感器,2006(7):35-37.
[7] LI L X,DING D K.Design of multi-channel high-precision data acquisition system based on AD574A.IEEE Ind.Electron.Soc.Conf,2011,15(7):1199-1201.
[8] TSAI M F,CHEN C P.Design of a quadrature decoder/counter interface IC for motor control using CPLD.IEEE Ind.Electron.Soc.Conf,2002,3(3):1936-1944.
[9] 吴继华,王诚.Altera FPGA/CPLD设计(高级篇).北京:人民邮电出版社,1999.
[10] LEONG C,BENTO P,LOUSA P,et al.Design and test issues of an FPGA based data acquisition System for medical imaging using PEM.Proceedings of SPIE,2003,12 (9):53-58.
[11] 贾龙,林岩.基于DSP和FPGA的高速数据采集系统的设计及实现.电子测量技术,2007,30(5):95-97.
Design of Four Tank Level Signal Processing Subsystem
QIAN Jie-ling,GUO Yang-kuan,ZHU Lian-qing,LIU Chao,MENG Xiao-chen
(Beijing Key Laboratory for Optoelectronic Measurement Technology,Beijing Information Science and Technology University,Beijing 100192,China)
Accurate high-speed four tank liquid level signal processing subsystem with CPLD as the core was designed to improve precision and real-time performance of the large oil level measurement signal processing subsystem,which can finish filtering,counting and phase detecting,and communication of four tank liquid level signal at the same time.The realization method of each module in the CPLD was described in detail by using Verilog HDL to realize each module and simulation and analysis were finished in the QuartusⅡ.The experimental results show that the subsystem can finish four tank liquid level signal processing efficiently and accurately.
tank level;signal processing;CPLD
长江学者和创新团队发展计划资助(IRT1212);北京市属高等学校创新团队建设与教师职业发展计划项目(IDHT20130518);北京信息科技大学校科研基金项目(1425002)
2014-11-03 收修改稿日期:2015-03-07
TB938.1
A
1002-1841(2015)08-0041-04
钱洁玲(1988—),硕士研究生,精密仪器及机械。 E-mail:jennyqian1988@163.com 郭阳宽(1964—),教授,研究生导师,博士,主要从事生物医疗器械的研究。E-mail:guoyk2004@163.com