可编程逻辑 > 详情

基于FPGA芯片实现水轮机组转速测量系统的设计

发布时间:2024-01-31 发布时间:
|

随着工业生产与科学技术的发展,大型水轮机组的自动化水平也在不断提高。而这些设备一旦发生故障,将会给人们的生活和生命财产造成极大的威胁。因此,对其运行状态进行监测,及时发现故障征兆具有重要意义。现场可编程门阵列(FPGA,Field Programmable Gate Array )的出现是超大规模集成电路计算机辅助设计技术发展的结果。它具有集成度高、多功能、低功耗、开发周期短等特点,而且可以很方便地对设计进行在线修改,因此获得了广大用户的青睐,应用范围也越来越广。本文首先介绍了ALTERA公司推出的低价位、高性能CYCLONE系列FPGA器件EP1C6Q的特点和内部结构,然后结合在水轮机组状态监测开发系统中遇到的实际问题,给出了相应的解决方案,最后就开发过程中遇到的一些实际问题,提出了自己的看法。

1、EP1C6Q的结构特点

EP1C6Q是ALTERA公司低价位CYCLONE系列FPGA的一种。它采用1.5V内核电压,内嵌92106位存储区间,可提供两个锁相环和双倍数据传输速率(DDR)的接口电路。其具体特点如下:

●采用240个引脚的FPQF封装形式,能提供185个IO用户引脚和5980个逻辑单元。

●具有20个4608位的RAM存储区,最高可支持200MHz的数据传输。每个存储区均包括单口或双口RAM、ROM、FIFO等各类存储器件,并支持8位、16位、32位、36位等数据存储类型。

●片上的锁相环电路可以提供输入时钟的1~32分频或倍频、156~417ps移相或可变占空比的时钟输出,输出时钟信号的特性可直接在开发软件QUARTUS2里设定。经过锁相环输出的时钟信号既可以作为内部的全局时钟,也可以输出到片外供其它电路使用。

●多功能的IO结构支持差分和单端输入,并与3.3V、32位、66MHz的PCI局部总线兼容;IO输出可以根据需要调整驱动能力,并具有压摆率控制、三态缓冲、总线状态保持等功能;整个器件的IO引脚分为四个区,每一个区可以独立采用不同的输入电压,并可提供不同电压等级的IO输出。

2、在水轮机组转速测量中的应用

水轮机组的工作效率是系统状态监测中的一项重要指标,而机组的工作效率与当前时刻的转速密切相关。转速测量的关键是对六十五路脉冲信号周期的测量。采用了EP1C6Q器件内部的65个计数器同时工作的测量方法。

2.1 水轮机组转速测量原理

该水轮机组转速测量装置如图1所示,它由六十五个微型机械传感器组成,其中六十四个传感器分布在对称的四个转轴上,第六十五个传感器在轴的中心交点。流经管道的水流将带动传感器的旋转。当传感器旋转一周后,触发电子线路产生一个脉冲信号。管道中水流的速度越快,脉冲信号的间隔越短;管道中水流的速度越慢,脉冲信号的间隔越长。这样?就可以根据脉冲信号的间隔或者说两个信号上升沿的时间长短来计算流速的大小,从而依据相应的公式计算水轮机组转速的大小。

2.2 整体设计方案及工作原理

该水轮机组系统设计方案的整体框图如图2所示。水轮机组状态监测系统采用LonWorks现场总线技术,神经元芯片是构成系统采集节点的核心,它内部包括三个微处理器,即MAC处理器、网络处理器、应用处理器,而11个输入/输出引脚则可根据不同的外部设备来灵活配置。收发器是节点之间通信的桥梁。

由于水轮机组转速比较慢,传感器发出的脉冲信号的时间间隔较长?因此?对缓变信号周期的测量应采用测周的办法。首先是将输入的脉冲信号经去抖、限幅后变成符合EP1C6Q输入信号特性要求的信号,然后当EP1C6Q接到神经元信号的测量命令后,再捕捉输入信号的上升沿。为了保证所有的通道在神经元芯片读取数据之前已经锁存,读取数据的时间间隔应保证不小于两个信号周期。神经元芯片将每个通道的计数值存储到片内RAM区,并将计算得到的转速值送到信号处理模块,以计算水轮机组的工作效率。由于流速测量传感器的分布特点是边缘传感器的信号周期比内部传感器的信号周期长,因此,笔者选择一个最靠边的传感器作为标志传感器,并由标志传感器产生读取数据的标志位信号。

2.3 硬件实现

(1) 信号调理电路

由于EP1C6Q输入/输出逻辑高电平仅能支持4.1V,而不能直接与标准的TTL电平信号相连,因此,神经元芯片和EP1C6Q之间的连接以及脉冲输入电路都必须加限幅电路。芯片的设计已经考虑到与5V设备的连接问题,其解决方法是在连接线路中串接一个162Ω电阻

(2) EP1C6Q和神经元间的物理连接

在转速测量模块中,EP1C6Q主要起信号边沿检测、脉宽测量以及实现神经元芯片外围逻辑电路的作用。由于许多功能是在EP1C6Q内部利用软件实现的,所以二者之间的连接很简单。控制信息的传递主要有两个途径:一是通过神经元芯片的I/O引脚,由于I/O引脚较长的建立时间会影响系统的实时性,因此,设计电路仅使用IO0、IO1两个通道来作为整个系统的异步清零(clr)和读取数据标志(read_time);另外一个途径是通过神经元芯片的数据总线(D0~D7)和地址总线?A0~A15?,即在EP1C6Q的内部设立状态寄存器,并由神经元芯片向寄存器中写入不同的数据,然后由寄存器根据写入的数据来使相应的控制信号有效。

2.4 软件设计

a.EP1C6Q内部程序

EP1C6Q的内部程序是在QUARTUS2开发软件中实现的。QUARTUS2能够支持原理图输入和硬件描述语言两种编程方式。整个程序包括译码电路、分频电路、计数控制电路、计数器模块和数据的锁存和读取等五个部分。具体如下:

(1)计数控制电路

EP1C6Q内部的程序是在神经元芯片的控制下运行的。其控制部分电路如图3所示。信号fin代表六十五路脉冲输入信号的一路,clk0代表标准的计数时钟。在clr信号由低电平变为高电平、且start置为高电平后,脉冲信号fin输入有效。当第一个上升沿到来后,计数器的PUL引脚变为高电平,此时,计数器开始计数;当第二个上升沿到来后,PUL变为低电平,计数器停止计数;而当第三个上升沿到来后,read_time信号变高电平,数据锁存。

(2)计数器的设计

由于水轮机组的转速比较慢,产生的脉冲信号频率一般在0.01Hz~10Hz之间,因此,转速快和转速慢时的信号周期差别比较大。为满足±1/10000个计数时钟的精度要求,计数器的计数位数应设计为20位。计数器的最大设定值为1000000,这样,当脉冲信号周期在10Hz~0.1Hz之间时,计数时钟为100kHz;而当脉冲信号的周期在0.1Hz~0.01Hz之间时,计数时钟自动转换为10kHz。计数时钟的自动切换是由计数器的溢出标志控制的,当计数器的计数值超出设定的最大值(1000000)后,溢出标志由低电平变为高电平,这样,经过全局时钟分频计数的时钟分频次数也会相应地扩大10倍,从而保证了计数器不会再次溢出。

(3)状态寄存器设计

为了减小神经元芯片控制功能对IO引脚的依赖,EP1C6Q在其内部设立了两个状态寄存器。这两个状态寄存器可根据神经元芯片写入的控制字来使相应的控制信号有效。使用的控制信号如下:

start:通过神经元芯片要求EP1C6Q进入信号采集状态控制,高电平有效。

lck:数据锁存信号,低电平有效。当EP1C6Q的输出信号read_time有效后,神经元芯片向状态寄存器写入命令字以使lck信号有效。为了保证所有通道的计数器已经停止工作,神经元芯片接收到read_time后将延迟ΔT时间后再锁存计数器的数据。

h1?h2:计数值高八位、中八位、低八位的选择控制。为了满足系统要求的测量精度, EP1C6Q内部采用二十位计数器对每一路信号进行计数,而神经元芯片的数据总线是八位,因此需要分三次读出。

(4)译码电路设计

神经元芯片一般采用内存映象法进行数据的传递。所谓内存映象法,是指给芯片外部的寄存器、存储器或IO单元分配一个物理地址,以便于对外设操作,这相当于对该物理地址的操作。译码电路主要提供FLASH、状态寄存器和六十五个计数器的片选信号。系统的地址分配如下:

E800~EFFF?数据存储区,用于保存各个通道的计数值。

0000~7FFF?外围FLASH区。

8000~8040?六十五个计数器的内存地址。

8041~8042?状态寄存器的内存地址。

8042~E7FF?用户备用空间。

(5)分频电路

计数器单元的计数时钟是把输入的全局时钟分频得到的。12MHz的有源晶振输出通常可作为全局时钟,分频电路采用VHDL语言设计,分频次数设定值的变换由计数器的溢出标志控制。

b.神经元芯片的内部编程

本编程设计主要用于完成与系统的同步和控制EP1C6Q程序的运转。当接到信号处理模块发来的数据请求信号后,该程序将启动EP1C6Q内部程序并开始计数,以将最终的计数值读到内部RAM区。

3、注意事项

在整个设计方案的实现过程中,应仔细考虑以下两点:

第一是芯片的选择。与普通电路开发不同的是,本设计方案的前期编译和仿真验证不需要拘泥于某一具体型号的芯片,只要满足方案所需的逻辑单元的数量、控制时序的精度和存储区间的大小等要求,就可以在软件开发工具中编译仿真。可到方案成熟后,再考虑一些细节问题,如芯片以及所需电源和配置芯片是否容易买到,提供的IO接口类型是否满足需要,芯片的封装形式是否会影响到PCB板的制作等问题。

第二是时序电路和组合电路的转化。在一个系统中,时序电路和组合逻辑电路一般同时存在。两种类型的电路都作为输入时,为避免毛刺现象,可以在组合逻辑的输入之前加D触发器,以将组合逻辑电路转化为时序电路。在多级时钟系统中,为了满足建立和保持时间的要求,往往需要在低频时钟信号驱动的逻辑电路的输出端加一级高频时钟信号驱动的D触发器,以实现时钟之间的同步。但这样做会增加输入和输出之间的时间延迟,严重时可能通不过编译软件的时序验证。因此,可以将其转化为简单的组合逻辑电路,以使其比较容易实现。

4、结束语

该方案已经通过了实验验证,测量结果能够满足设计要求。考虑到成本问题,选择的芯片不能与5V系统直接相连,这使得多路输入信号给整个电路的设计带来了一定的困难。如果排除这些因素,该方案还可以得到进一步的改善。

 


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
针对FPGA的GTP信号 PCB设计过程中需要考虑到以下因素