基于可编程逻辑器件实现数字化水费计量芯片的设计

时间:2025-04-26  作者:Diven  阅读:0

1 引言

基于可编程逻辑器件实现数字化水费计量芯片的设计

FPGA是新型的可编程逻辑器件,能够将大量的逻辑功能集成于单个器件中,所提供的门数从几百门到上百万门,符合系统芯片(SOC—System On Chip)的发展要求,具有高度集成、低功耗、硬件升级等优点,可以满足不同的需要。

随着电于技术和网络技术的不断发展,以可编程逻辑器件为核心设计制作的全电子式计量表必将取代传统的感应式计量表。尤其是集群式、模块化、全电子数字化计量表,将会成为民用主导产品。

利用电子技术和传感技术,对传统水表加以改进,本设计主要是用 FPGA设计水费计量芯片,芯片接受已处理好的脉冲信号,每 1000个脉冲记为 1 吨。

2 基于 FPGA的水表设计

2.1基于 FPGA水表的结构图要设计的水费计量芯片主要功能如下:能对用水吨位计数,在动态扫描电路显示用水吨数,为了结构清晰,这里只设计显示用

水吨数的十位、个位、十分位、百分位。

能对用水水费分段计费。这样做的目的是为了提高人们的节水意识,在我国的有些地区已实行了水费的分段计费。当用水量不足一定数字时(如每年每户 40吨),水费费用较低(如每吨 1.2元),当用水量超过一定数字时,水费费用较高(如每吨 2.2元),计费结果送动态扫描电路显示,为了结构清晰,这里只设计显示水费的百位、十位、个位、十分位。

首先把系统分为几个模块,然后再分别用 VHDL实现。最后把各个模块连接起来,构成整个系统。本设计分为以下三个模块:用水量计数模块、水费计数模块、动态扫描电路显示模块。两个计数模块是整个测量系统的核心,进行计数,计数结果送到动态扫描电路模块进行连续实时显示。整个系统模块结构框图如图一所示。

2.2用水量计数模块

用水量计数模块是水费计量芯片的核心部分,通过对被测脉冲计数来进行测量。计数模块在每次测量前,接受复位信号 RESET,对模块进行复位,清除上次的测量结果,为新的一次测量做准备。计数结果送到动态扫描电路模块进行连续实时显示。

主要程序如下:(为了结构清晰,对部分内容进行了删减)

……

begin

process(clk,reset)

variable kg : std_logIC_vector (11 downto 0);

begin

if reset=‘0’ then

kg:=“000000000000”;

elsif clk‘event and clk=’1‘ then

if kg(3 downto 0)=“1001” then

kg:=kg+7;else kg:=kg+1; end if;

if kg(7 downto 4)=“1010” then

kg:=kg+“01100000”; end if;

if kg(11)=’1‘ and (not(kg(10 downto 9)=“00”)) then

kg:=kg+“011000000000”; end if;

end if;

count1《=kg(3 downto 0);

count2《=kg(7 downto 4);

count3《=kg(11 downto 8);

……

2.3水费计数模块

水费计数模块也是水费计量芯片的核心部分,通过对被测脉冲计数来进行测量,并接收处理用水量计数模块的计数结果,水费计数模块在每次测量前,也接受与用水量计数模块相同的复位信号 RESET,对模块进行复位,清除上次的测量结果,为新的一次测量做准备。计数结果同样送到动态扫描电路模块进行连续实时显示。

主要程序如下:(为了结构清晰,对部分内容进行了删减) ……

……

begin

money《=“00100010” when ((judge(3)=’1‘) or (judge(2)=’1‘)) else “00010010”;

process(clk,reset)

variable mm : std_logIC_vector (15 downto 0);

begin

if reset=’0‘ then

mm:=“0000000000000000”;

elsif clk’event and clk=‘1’ then

mm:=mm+money;

if mm(3)=‘1’ and (not(mm(2 downto 1)=“00”)) then

mm:=mm+6; end if;

if mm(7)=‘1’ and (not(mm(6 downto 5)=“00”)) then

mm:=mm+“01100000”; end if;

if mm(11)=‘1’ and (not(mm(10 downto 9)=“00”)) then

mm:=mm+“011000000000”; end if;

if mm(15)=‘1’ and (not(mm(14 downto 13)=“00”)) then

mm:=mm+“0110000000000000”; end if;

end if;

count1《=mm(3 downto 0);

count2《=mm(7 downto 4);

count3《=mm(11 downto 8);

count4《=mm(15 downto 12);

mcount《=mm;

……

2.4动态扫描电路显示模块

动态扫描电路将水量计数模块及水费计数模块的计数结果用七段显示数码管显示出来,所连接的数码管共用一个数据端,由片选信号依次选择输出,轮流显示。其程序比较常见,这里省略。

3 仿真

在 MAX+PLUS II中建立水费计数模块 RESET=‘1’时的仿真波形如图二。图二中 RESET为复位信号,当 RESET=‘0’时,系统复位,当 RESET=‘1’时,各计数器正常计数。judge(3)和 judge(2)是用水量计数模块输出结果 count3的最高两位二进制数,当有一个值为‘1’时,表示用水量大于 40吨。count1、count2、count3、count4分别对应水费的十分位、个位、十位、百位,在程序中用 8421BCD码给出,为清楚起见,在仿真时用十进制数给出,图中虚线左侧水费每吨 1.2元,当用水量达到 40吨时,judge(3)=1,在图中虚线右侧水费每吨 2.2元,水费从 48.0元跳变到 50.2元。

在 MAX+PLUS II中用图形输入法形成的顶层设计如图三所示。通过编译、仿真后,下载到 EP1K30TC144-3目标芯片中实际测试并获得了满足设计要求的结果。

4

本文设计了基于 VHDL语言的水表的几个模块:用水量计数模块、水费计数模块、动态扫描电路显示模块。每个模块都通过了功能仿真和时序仿真,生成了可综合的网表文件,并下载到 EP1K30TC144-3芯片中。仿真和测试的结果表明每个模块均完成了其逻辑功能。

利用可编程逻辑器件丰富的内部资源,借助EDA工具把水表电路集成在一片FPGA芯片内,从而减小了电路的体积、提高了系统的可靠性。具有设计周期短、设计费用和风险低、功能灵活的特点。

猜您喜欢

倒角机作为现代加工设备中不可少的一部分,具有多项显著优势。倒角机能有效提高加工精度,确保每个角度的倒角都符合设计要求,减少了人工操作的误差。倒角机的高效率使得生...
2010-02-13 00:00:00

雕刻刀是雕刻艺术中不可少的工具,其种类繁多,各具特色。根据刀头形状的不同,雕刻刀可以分为平刀、圆刀、V型刀和尖刀等。平刀适合大面积的削平和粗雕,圆刀则常用于细致...
2023-03-19 00:00:00

消防安全是每个建筑和场所都必须高度重视的问题,而消防设备的稳定运行则是保障消防安全的重中之重。在讨论消防设备电源是否需要在末端切换这个问题之前,我们需要先了解什...
2024-03-16 00:00:00

现代电子设备中,连接器的作用不可忽视。不仅连接不同的电路和组件,还影响着设备的性能与稳定性。CONN_11X3MM_SM作为高性能连接器,因其优越的特性和的应用...
2025-04-20 01:00:39

0402贴片电阻,指的是尺寸为0.4mm x 0.2mm的矩形片状电阻器。它以其极小的体积,广泛应用于各种电子产品中,从智能手机、平板电脑到笔记本电脑、可穿戴设...
2025-04-14 15:02:21

「20R0」是贴片电阻上常见的标识,它表示该电阻的阻值为20欧姆。 让我们来解读一下这个标识:「20」: 代表有效数字,也就是阻值的主要部分,这里是20。「R」...
2024-11-26 11:29:36

电容焊接是重要的焊接技术。用于电子元件的连接。本文将介绍电容焊接的操作步骤和注意事项。准备工具和材料开始之前,需准备好工具。焊接机是必备的。还需要电容、导线及焊...
2025-03-23 07:30:35

现代电子设备中,连接器的选择对整体性能和稳定性非常重要。TERMINAL_15X7.8MM_TM作为一种高性能连接器,因其独特的设计和卓越的性能而受到广泛关注。...
2025-03-07 12:43:54

针对高速运动平台弹速补偿的实时性要求,在基于距离徙动校正(Range Cell Migration Compensation,RCMC) 的思想上提出了一种弹速...
2019-03-30 09:56:00

贴片排阻是电子元件中常见的一种,应用于各种电子设备中。正确的焊接方法不仅可以提高电路板的性能,还能延长电子元件的使用寿命。本文将详细介绍贴片排阻的焊接技巧及注意...
2025-03-17 22:31:07