官方博客  中文版 | ENGLISH

客服热线:0517-86930968;
               13951262528

当前位置:首页 > 技术文章 
基于NIOS_的超声波明渠流量计设计
更新时间:2019-6-5 9:52:39 浏览:1555 关闭窗口 打印此页
 [导读] 嵌入式系统因其高可靠性、低成本、低功耗、软硬件可裁剪而广泛应用于智能式仪表测量领域。通过在FPGA中的SOPC定制外围设备,提出了一种基于NIOSⅡ软核处理器的明渠流量测量系统,阐述了人机交互、数据处理、串行通讯等模块功能并进行相应的软件程序设计。实验结果表明,该流量计不仅抗干扰能力强、测量精度高、稳定性好,而且因其可定制性提高了系统的灵活性及易维护性。
 
    流量测量在工矿企业、农田河流、环境保护等许多领域中占有非常重要的位置。作为流量监测的重要组成部分,明渠流量测量广泛应用于工业企业、河流、农业用水中给、排水槽流量测量,由于多数场合被测液体均有较多杂质和一定的腐蚀性,故采用非接触法测量,从而超声波流量计得到大量应用。
 
    目前多数超声波流量计都是以MCU作为主控芯片,其输出信号频率较低且可升级性差、精度低。文中采用在FPGA中构建NIOSⅡ软核的方法实现对超声波明渠流量计的核心控制,在设计过程中由于SOPC(可编程片上系统)的可定制性,使其硬件设计灵活可靠。
 
    1 超声波明渠流量计的基本原理
 
    明渠流量计是在非满管状敞开渠道测量自由表面自然流的流量仪表。非满管状态流动的水路称作明渠,测量明渠中水流流量的仪表称作明渠流量计(openchannelflowmeter)。明渠流通剖面除圆形外,还有U字形、梯形、矩形等多种形状。按测量原理大体可分为堰法、测流槽法、流速-水位计算法和电磁流量计法。实际应用最为广泛的是堰式和槽式流量计[1]。以超声法检测明渠液位并进而计算流量的仪器仪表称为超声波明渠流量计。图1为超声波明渠流量计原理图。
 
 
 
图1 超声波明渠流量计原理图
 
    当被测介质全部通过流量槽(Parshall-巴歇尔槽,无喉道槽)或堰(直角三角形缺口薄壁堰、矩形缺口薄壁堰)形成自然流动时,其流量Q与流量槽上流水位H就有如下关系式:
 
        (1)
 
    式中K、n为流量系数,对于不同规格的槽或堰有不同的值,H是液位高度(m)。
 
    气介质超声波液位传感器在微处理机系统的控制下,进行超声发射和接收,由超声波的传播时间T来计算传感器与液面之间的距离h:
 
        (2)(2)
 
    式中C为超声波在空气介质中传播速度(m/s),设传感器至流量槽堰零液位时距离为hmax,则液位高度。在得知液位高度H=hmax-h后便可以通过计算求的液体的流量了。
 
    2 SOPC硬件系统设计
 
    图2为系统SOPC结构图[2]。主要由32位NIOSⅡ软核处理器、Avalon数据总线、串行通讯控制器、EPCS串行Flash控制器、数据存储控制器、LCD显示控制器、键盘交互控制器、RS485通讯控制器、超声波信号处理控制器、实时时钟控制器、电流环输出电路控制器组成,整个控制系统在一片现场可编程逻辑阵列(FPGA)上实现。
 
 
 
图2 系统的SOPC框图
 
    FPGA发送超声波控制信号给超声波收发电路,等待收到超声波信号,放大、处理经超声波信号处理控制器得到实时流量,分别送到LCD显示器显示和数据存储器存储,键盘电路可以查询之前记录的流量值和设置时钟、通讯等相关参数;RS485串行通讯和电流环输出电路用于上位数据采集及异地显示联网。由于FPGA掉电丢失数据,故将程序存储于EPCS串行flash中,FPGA上电后从flash中加载程序执行。
 
    SOPC系统通过AlteraQuartusⅡ软件中的SOPCBuilder构建。在SOPCBuilder中提供了NIOSⅡCPU、Flash存储器接口、SPI控制器、定时器等IP核,其他模块自定义设计[3]。如图3为通过SOPCBuilder开发工具定制本系统的SOPC硬件系统。添加完FPGA引脚编译后得到的原理图文件如图4所示。
 
 
 
图3 系统的SOPC硬件系统
 
 
 
图4 编译后得到的原理图
 
    3 基于NIOSⅡ软件设计
 
    在进行NIOSⅡ软件设计前,应先将上面产生的.sof下载到FPGA中,而后所有的软件开发任务就在NIOSⅡIDE上完成,其中包括驱动程序和应用程序[4]。部分模块驱动程序如下。
 
    3.1 工程LCD接口驱动
 
    本设计用到的LCD是一种具有3线串行接口方式,内含国际一级、二级简体中文字库的图形液晶显示模块,通过CS、SCLK、SLD三线控制LCD的显示。
 
    图5为LCD读写时序图。
 
 
 
图5 LCD读写时序图
 
    部分驱动程序如下:
 
    
 
    3.2 数据存储控制模块
 
    设计中采用FM31256来实现数据存储[5]和实时时钟功能,该芯片是通过I2C串行控制线操作完成的[3]。I2C总线上的所有操作都是由SDA和SCL两个脚的状态确定的。在传送数据时有三种类型信号:开始信号、结束信号和应答信号。开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据;结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据;应答信号:接收信号的IC收到8位数据后,向发送数据IC发出低电平脉冲。图6为I2C总线时序图。
 
 
 
图6 I2C总线时序图
 
    其I2C的部分驱动程序如下:
 
    
 
    3.3 DAC控制模块
 
    本系统4~20mA电流环的硬件电路使用AD42芯片,在NIOSⅡIDE中控制4~20mA电流输出。Clock信号上升沿输出数据按从高到低顺序输出到AD421中,并在LATCH信号上升沿将上面输入到AD421的数据传送到DAC输出端[4],其控制时序图如图7所示。
 
 
 
图7 DAC控制时序图
 
    3.4 程序总流程
 
    系统上电后,FPGA及各外围模块初始化,根据检测环境对系统参数进行设置,启动采样,超声波发射脉冲,产生激励文件,经过噪声门限脉宽检测分析信号最大值及过零点后,计算发送和接收的传播时间,并进行修正处理。之后进入超声波明渠流量计主程序,采用Altera公司的NIOSIIIDE开发环境,通过软硬件协调设计,自顶向下设计方法,实现了程序时序控制及中断处理、流量计算与修正、数据存储与上位机通讯等功能。其流程图如图8所示。
 
 
 
图8 软件流程图
 
    4 实验结果
 
    SOPC建立的软核编译后下载到FPGA目标板上,然后通过USBBlaster将软件程序下载到系统中,得到的流量测量数据如表1所示,该数据是由时差法测量得到的。多次实验测量其误差小于±3mm(准确度3%),小于国家流量测量标准5%,且掉电不丢失数据。从而验证了系统的正确性和稳定性。
 
表1 实验数据
 
 
 
    5 结论
 
    本文采用基于NIOSⅡ的嵌入式软核技术,使得系统软件开发过程简便快捷,在此基础上实现了超声波明渠流量计的工作要求,有效地提高了超声波流量计的可靠性、稳定性及精度。在实际应用中,对于不同水质的测量超声波明渠流量计采用非接触测量使得保持传感器不受污染,并且测量结果不受被测介质的影响,从而提高了流量计的寿命和易于维护性。
上一篇文章: 基于GPRS的超声波...
下一篇文章: 双路低功耗超声明...
在线客服系统