论文部分内容阅读
【摘要】文章在QuartusII开发环境下釆用VHDL语言,设计了水表抄表器。设计采用VHDL的结构描述风格,依据功能将系统分为四个模块,控制模块、计数模块、存储模块和显示模块,整体生成采用图形输入法。
【关键词】水表抄表器;VHDL;QuartusII
1.引言
随着科学技术水平不断的提升,以及人民群众对物质需求不断提高,“高科技小区”这种新型的概念已经被列入到普通小区的建设工程之中。在这之中,最典型的系统就是自来水、煤气、电表的查询系统,各公司对水、煤气、电费的收缴问题也变成了一种负担,传统的计量器采用各自独立的感应式计量表,传统的水、电、煤气抄表有很多弊端,诸如必须逐门入户抄表,收费困难,易造成漏抄、误抄或多抄,需投入大量的抄表统计人员,而且存在抄表效率、低速度慢、成本高等问题。不仅工作量大、数据统计麻烦,而且容易出错,费用收缴工作也极其麻烦。随着我国通信技术以及物联网技术的飞速发展,以可编程逻辑器件为核心设计制作的全电子式计量表一定将取代传统的指针式计量表。尤其是集群式、模块化、全电子数字化多用户计量表,将会成为民用主导产品。
水表抄表系统,可把多用户的水量用量集中记录在一部表中,而且采用多用户联网的形式,进行集中抄写,数据统计简单,费用收缴周期可以大幅度的缩减,并且避免出现用户逃避缴款的现象。系统包括远传检测表头、数据抄表器、上位控制器等三个部分,其中核心部分数据抄表器,主要功能是采集检测表头数据,累积表头数据,通过系统总线上传至上位控制器。本设计主要针对数据抄表器进行研究,抄表器接受处理完毕的脉冲信号,以一定数量的脉冲记为1度,一个抄表器可以记录一户或多户的用水量,同时循环显示各个用户现在的用水量。
2.水表抄表器的设计与实现
对于FPGA来说,它只能实现数字电路,因此输入信号的整形电路不能用FPGA来实现,所以整形电路需外加。从而可以假设FPGA接受的都是经过整形电路整形、变换后的规则信号。设计在QuartusII环境中采用自顶向下的设计方法。首先把系统化为几个模块,然后在分别用VHDL实现,最后把各个模块连接起来,构成整个系统。本设计分为以下四个模块:控制模块、计数模块、存储模块、显示模块。控制模块是整个系统的控制部分,接受系统外部的复位信号,从而产生系统内的复位信号去复位其他模块,控制着测量的开始。计数模块是整个测量系统的核心,进行计数,计数结果送到存储模块。存储模块的复位信号由控制模块提供,它从计数模块接受到新的计数结果,存储到内部寄存器后,产生一个标志信号,送到控制模块,以便新的一轮的脉冲测量,从而实现连续不间断测量。测量结果经存储后送模块显示,显示模块从存储模块得到结果,进行连续实时显示,其复位信号同样由控制模块提供。
将抄表器系统的四个模块按照其相互间的信号连接关系组合起来就构成了整个抄表器,如图1所示,clk为系统输入的基准时钟信号,ceclk为系统输入的被测信号,reset为系统输入的复位信号,sysstar为系统输入的开始测量脉冲信号,gate1-gate3为系统输出的各个数码管选通信号,即显示模块输出信号,digitout为系统输出的数据信号,sda、scl为系统输出的总线信号。
控制模块(control)作为系统的控制部分,实现了一般系统所需的复位,开始测量等的功能,并通过存储模块反馈的标志信号实现了连续不间断的测量。在QuartusII开发环境下,VHDL语言程序如下:
计数模块(counter)利用计数器对被测时钟计数,从而完成测量工作。模块从控制模块接受复位信号reset,向存储模块输出结果,输出信号tkeep和outen,复位信号reset用于模块的复位操作,使能信号outen在测量结果输出信号tkeep输出后才变为高电平,以允许存储模块读取测量结果。
存储模块(memory)主要是对计数模块的测量结果进行存储。模块从控制接受开始信号start,模块还从计数模块接受使能信号wren,rden和结果信号datain,模块输出的信sda送到eeprom器件存储,标志信号flag的输出意味存储模块已经从测量信号datain上读完了数据,送到控制模块后启动新的一轮存储。
显示模块(display)把存储模块输出的测量结果用数码管适时显示出来,模块的主要工作是生成数码管显示所需的控制信号和数据信号。从控制模块接受的输入复位信号sysrst用于对模块进行复位操作。由外加晶振提供的基准时钟clkdisp经分频生成频率为100K的时钟,用于数码管的循环显示。从存储模块接受的用二进制表示的测量结果信号binput先被转换成用bcd码表示的形式,然后才被用于数码管显示。gate1-gate3为模块输出的各个数码管的选通信号,digitout为显示模块输出的数据信号。模块进行显示时,先输出gate1=‘1’,选通个数位数码管,则个位数数码管根据digitout进行操作。个位数数码管显示完毕后,模块输出gate2=‘1’,选通十位数数码管,个位数码管进行同样的操作。接着模块输出gate3=‘1’,依次类推,当3个数码管都显示完毕后,模块重新从个位数数码管开始显示。就这样反复循环,不断刷新,使3个数码管看上去是同时显示。此外,显示模块实现了测量结果的实时显示,只要测量结果发生变化,则数码管的显示会相应发生变化。
3.结束语
本设计在QuartusII环境下,采用用自顶向下的设计方法,利用VHDL语言设计了水表抄表器的四个模块:控制模块、计数模块、存储模块、显示模块,每个模块完成其逻辑功能。在后续工作中,还需完成系统软件上的仿真,加载到FPGA进行硬件调试。
参考文献
[1]潘松.EDA技术实用教程[M].北京:科学出版社,2013,08.
[2]冯福生.数字逻辑与VHDL程序设计[M].北京:电子工业出版社,2012,06.
[3]林承超.基于VHDL的电表抄表器设计[J].广东:广东自动化与信息工程,2006,01.
作者简介:赵蕾,男,北京人,研究方向:通信技术。
【关键词】水表抄表器;VHDL;QuartusII
1.引言
随着科学技术水平不断的提升,以及人民群众对物质需求不断提高,“高科技小区”这种新型的概念已经被列入到普通小区的建设工程之中。在这之中,最典型的系统就是自来水、煤气、电表的查询系统,各公司对水、煤气、电费的收缴问题也变成了一种负担,传统的计量器采用各自独立的感应式计量表,传统的水、电、煤气抄表有很多弊端,诸如必须逐门入户抄表,收费困难,易造成漏抄、误抄或多抄,需投入大量的抄表统计人员,而且存在抄表效率、低速度慢、成本高等问题。不仅工作量大、数据统计麻烦,而且容易出错,费用收缴工作也极其麻烦。随着我国通信技术以及物联网技术的飞速发展,以可编程逻辑器件为核心设计制作的全电子式计量表一定将取代传统的指针式计量表。尤其是集群式、模块化、全电子数字化多用户计量表,将会成为民用主导产品。
水表抄表系统,可把多用户的水量用量集中记录在一部表中,而且采用多用户联网的形式,进行集中抄写,数据统计简单,费用收缴周期可以大幅度的缩减,并且避免出现用户逃避缴款的现象。系统包括远传检测表头、数据抄表器、上位控制器等三个部分,其中核心部分数据抄表器,主要功能是采集检测表头数据,累积表头数据,通过系统总线上传至上位控制器。本设计主要针对数据抄表器进行研究,抄表器接受处理完毕的脉冲信号,以一定数量的脉冲记为1度,一个抄表器可以记录一户或多户的用水量,同时循环显示各个用户现在的用水量。
2.水表抄表器的设计与实现
对于FPGA来说,它只能实现数字电路,因此输入信号的整形电路不能用FPGA来实现,所以整形电路需外加。从而可以假设FPGA接受的都是经过整形电路整形、变换后的规则信号。设计在QuartusII环境中采用自顶向下的设计方法。首先把系统化为几个模块,然后在分别用VHDL实现,最后把各个模块连接起来,构成整个系统。本设计分为以下四个模块:控制模块、计数模块、存储模块、显示模块。控制模块是整个系统的控制部分,接受系统外部的复位信号,从而产生系统内的复位信号去复位其他模块,控制着测量的开始。计数模块是整个测量系统的核心,进行计数,计数结果送到存储模块。存储模块的复位信号由控制模块提供,它从计数模块接受到新的计数结果,存储到内部寄存器后,产生一个标志信号,送到控制模块,以便新的一轮的脉冲测量,从而实现连续不间断测量。测量结果经存储后送模块显示,显示模块从存储模块得到结果,进行连续实时显示,其复位信号同样由控制模块提供。
将抄表器系统的四个模块按照其相互间的信号连接关系组合起来就构成了整个抄表器,如图1所示,clk为系统输入的基准时钟信号,ceclk为系统输入的被测信号,reset为系统输入的复位信号,sysstar为系统输入的开始测量脉冲信号,gate1-gate3为系统输出的各个数码管选通信号,即显示模块输出信号,digitout为系统输出的数据信号,sda、scl为系统输出的总线信号。
控制模块(control)作为系统的控制部分,实现了一般系统所需的复位,开始测量等的功能,并通过存储模块反馈的标志信号实现了连续不间断的测量。在QuartusII开发环境下,VHDL语言程序如下:
计数模块(counter)利用计数器对被测时钟计数,从而完成测量工作。模块从控制模块接受复位信号reset,向存储模块输出结果,输出信号tkeep和outen,复位信号reset用于模块的复位操作,使能信号outen在测量结果输出信号tkeep输出后才变为高电平,以允许存储模块读取测量结果。
存储模块(memory)主要是对计数模块的测量结果进行存储。模块从控制接受开始信号start,模块还从计数模块接受使能信号wren,rden和结果信号datain,模块输出的信sda送到eeprom器件存储,标志信号flag的输出意味存储模块已经从测量信号datain上读完了数据,送到控制模块后启动新的一轮存储。
显示模块(display)把存储模块输出的测量结果用数码管适时显示出来,模块的主要工作是生成数码管显示所需的控制信号和数据信号。从控制模块接受的输入复位信号sysrst用于对模块进行复位操作。由外加晶振提供的基准时钟clkdisp经分频生成频率为100K的时钟,用于数码管的循环显示。从存储模块接受的用二进制表示的测量结果信号binput先被转换成用bcd码表示的形式,然后才被用于数码管显示。gate1-gate3为模块输出的各个数码管的选通信号,digitout为显示模块输出的数据信号。模块进行显示时,先输出gate1=‘1’,选通个数位数码管,则个位数数码管根据digitout进行操作。个位数数码管显示完毕后,模块输出gate2=‘1’,选通十位数数码管,个位数码管进行同样的操作。接着模块输出gate3=‘1’,依次类推,当3个数码管都显示完毕后,模块重新从个位数数码管开始显示。就这样反复循环,不断刷新,使3个数码管看上去是同时显示。此外,显示模块实现了测量结果的实时显示,只要测量结果发生变化,则数码管的显示会相应发生变化。
3.结束语
本设计在QuartusII环境下,采用用自顶向下的设计方法,利用VHDL语言设计了水表抄表器的四个模块:控制模块、计数模块、存储模块、显示模块,每个模块完成其逻辑功能。在后续工作中,还需完成系统软件上的仿真,加载到FPGA进行硬件调试。
参考文献
[1]潘松.EDA技术实用教程[M].北京:科学出版社,2013,08.
[2]冯福生.数字逻辑与VHDL程序设计[M].北京:电子工业出版社,2012,06.
[3]林承超.基于VHDL的电表抄表器设计[J].广东:广东自动化与信息工程,2006,01.
作者简介:赵蕾,男,北京人,研究方向:通信技术。