基于NiosII的便携式超声波流量计设计
系统超声波换能器驱动信号是由微处理器产生的,微处理器产生一个200 kHz的矩形脉冲信号,经光耦隔离后进入功率放大电路。根据换能器的特点,该矩形脉冲信号占空比为2%。超声波换能器激励信号如图3所示。本文引用地址://m.amcfsurvey.com/article/187622.htm
2.2 超声波信号处理电路
超声发射换能器发射的超声波信号,经过管壁和流体,衰减比较大,因此超声波接收换能器接收的信号比较微弱,通常只为几十mV数量级,这时放大器的噪声对测量精度的影响也比较大。同时,由于超声波流量计中使用的超声波频率较高,所以要求运算放大的增益带宽积足够高,因此该级电路采用低噪声高速运算放大器。本系统中选用MAX410作为放大器。
在超声波流量计工作的过程中,由于振动、流动及工业现场的管道噪声和变频设备的电噪声等电子干扰,会引起周期性的噪声信号出现,并导致在相关图上出现周期性波峰。当其叠加到流动噪声的相关曲线上,会使真实的渡越时间对应的波峰不明显,甚至被其他的波峰掩盖,无法得到正确的测量结果。通过低噪声高速运算放大器对信号进行放大后还需要对信号进行滤波。本系统中的滤波电路为带通滤波。系统中换能器发射接收的超声波中心频率为200 kHz,所以需要设计一个中心频率为200 kHz的带通滤波器,它可以使200 kHz的超声波信号顺利地通过,而阻止或衰减非200 kHz的超声波信号及其他干扰信号。
另外,超声波信号在管道中传输时,由于各个声道长度不同,传感器特性存在差异,气体介质不同以及测量时气体流速的变化,导致每次测量时传感器接收信号的幅度也不同。为了后端进行高精度的计时,需要自动增益控制对接收信号的大小进行调节,使接收信号有一个稳定的幅度,从而满足系统测量高精度的要求。
3 数字电路设计部分
3.1 概述
本系统数字电路设计部分的核心是FPGA。在本系统中FPGA主要实现两部分功能:一是实现高精度计时,为准确测量流速提供保证;二是通过构建软核CPUNioslI来实现对整个系统的控制。本系统选用Altera公司Cyclone II系列的EP2C8Q208C8N芯片。
关于计时这里不再赘述,主要就是通过MEGA WIZARD调用PLL模块实现倍频到200 MHz然后供给计数器模块来计数,计数结果通过移位寄存器来上传给CPU,再通过CPU处理后传给上位机。
NiosII是32位RISC嵌入式处理器,它是Altera公司的第二代FPGA嵌入式处理器,其性能超过200DMIPS,在Altera FPGA中实现仅需35美分。特别是,NioslI系列支持使用专用指令。专用指令是用户增加的硬件模块,它增加了算术逻辑单元(ALU)。用户能为系统中使用的每个NiosII处理器创建多达256个专用指令,这使得设计者能够细致地调整系统硬件以满足性能目标。NiosII系列支持60多个外设选项,开发者能够选择合适的外设,获得最合适的处理器、外设和接口组合,而不必支付根本不使用的硅片功能。基于其嵌入式的特点以及其成本,NiosII特别适用于便携式仪表方面的应用。
3.2 SOPC的硬件构建
通过Quartus中的SOPC Builder来构建SOPC系统。首先要添加一个CPU。为了节省片上资源,选用经济型的CPU,外部晶振是50 MHz。程序运行内存直接选用0n-Chip Memory,因为EP2C8Q208C8N片上的RAM空间大概有20 KB左右,通过优化,片上内存完全能够满足程序的需要,这样就不必添加外接的SDRAM芯片,减少了PCB板的面积,大大降低了成本。代码优化方法是通过NioslI IDE里面的System Library Proper-ties来设置:依次选中Program Never Exit,Small C Library,Reduced Device Drivers,Lightweight Device Drivers API,取消选中
Support C++并设定Optimize Size为-0s级,这样就可以有效的缩减程序代码。
另外,为了向上位机传递测试数据,需要添加UART。这里添加的UART只是一个协议,与上位机实现通信,还需要在外围添加电平转换芯片MAX232以实现与上位机的正常通信。
为保证系统正常运行,添加内部定时器实现看门狗功能,另外需要添加的就是一些PIO接口。能够产生中断的PIO口注意要分给一定的中断号。CPU的Reset Vectot。地址和Exception Vector地址都设为On-Chip Memory,并让系统自动分配基地址以及中断。点击Generate生成整个SOPC,图4即为整个SOPC的构成图。
3.3 用Niosll IDE编写整个系统的控制程序
NiosII IDE(Integrated Development Environment,集成开发环境)提供了完整的C/C++软件开发套件,包括编辑器、项目管理器和构建工具、调试器和兼容CFI(Common Flash Interface)的Flash编程器。调试器连接多种目标系统,包括FPGA硬件(通过JTAG电缆)、NioslI指令集仿真器和Modelsim-Altera软件,因而能够提供最灵活的调试方案。
为了方便用户编程,NiosII为用户提供了设备驱动程序,也就是硬件驱动层数据库HAL。软件编写人员只要利用HAL提供的各种函数就能编写应用程序,从而方便地与底层硬件进行通信,而无需关心底层硬件的实现细节。HAL系统库可在IDE创建一个新工程时,由系统自动生成。
评论