可编程逻辑
1、引言
FPGA是新型的可编程逻辑器件,能够将大量的逻辑功能集成于单个器件中,它所提供的门数从几百门到上百万门,符合系统芯片(SOC—System On Chip)的发展要求,具有高度集成、低功耗、硬件升级等优点,可以满足不同的需要。
随着电于技术和传感技术的不断发展,使得可编程逻辑器件在现代数字系统和微电子技术应用中起着越来越重要的作用,本文主要研究利用FPGA器件和MAXPLUSⅡ工具软件设计温控定时喷灌系统。文中还涉及到模数转换器ADC0804、温度传感器AD590的应用。
2、系统的硬件结构
温控定时喷灌系统的硬件结构如图一所示,由数字温度表和FPGA两部分组成。数字温度表测量范围为0一100℃.AD590温度传感器的感测能力是,温度每升高1K就增加1μA的电流量,该电流流入1OKΩ的电阻后,将会产生1μA×1OKΩ=10mV的电压。而00C(等于273 K)时,输出电流273μA,流入1OKΩ的电阻后,产生273μA×10 KΩ = 2.73 V的电压。如果测到电压为XXV,则可由公式(XXV -2.73V)÷ 10 mV得到要测的温度。温度传感器AD590串接1OKΩ
的电阻,然后经一个运算放大器后,将电压引入ADC0804的Vin(+)管脚。ADC0804是8位模数转换器,测量精度为0.02 V,当ADC 0804的转换值为XXH时,所测温度为T=(XXH×0.02 V-2.73V) ÷lOmV=XXH ×2-273。
3、FPGA功能模块的设计
FPGA器件设计采用自顶向下的设计方法,将任务分解为三大功能模块,最后将各功能模块连接形成顶层模块,完成整体设计。三大功能模块可用VHDL语言编程实现,也可通过图形输入法设计,FPGA是系统的核心,本系统选用了Altera公司的EP1K30TC144-3芯片,在MAXPLUSⅡ开发平台上,实现三大功能模块: 数据处理模块TDATA、时钟模块clock、喷灌控制模块CONTROL。完成三个子模块的设计后,用图形输入法形成的顶层设计如图二所示。
3.1 时钟模块
用图形输入法形成的时钟模块clock如图三,其中包括两个模60计数器cntm60,一个模12计数器cntm12,它们输出的信号分别对应时、分、秒的各位。时钟模块亦可由VHDL语言编写,该程序比较常见,这里省略。
3.2 数据处理模块
数据处理模块TDATA完成温度数据的处理,实现T=(XXH×0.02 V-2.73V) ÷lOmV=XXH ×2-273的运算,将接收到的转换值调整成对应的数字信号,在读 取 到 ADC0804的转换数据后,先将转换数据左移1位(相当于数值乘2),然后减去“100010001” (273的二进制表示)。当温度大于某一数值时(如25℃),数据处理模块TDATA输出的使能信号和清零信号为1,它们作为时钟模块的输入端,控制时钟是否开始计时。主要程序如下:(为了结构清晰,对部分内容进行了删减)
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity tdata is
port (data:in std_logic_vector (7 downto 0);
t :out std_logic_vector (8 downto 0);
en:out std_logic;
clear:out std_logic);
end tdata ;
architecture aa of tdata is
signal datain : std_logic_vector (8 downto 0);
signal tin : std_logic_vector (8 downto 0);
begin
process(data)
begin
datain《=data&‘0’;
tin《=datain-“100010001”;
if(tin 》= “000011001”) then
en《=‘1’;
clear《=‘1’;
else en《=‘0’;
clear《=‘0’;
end if;
end process;
t《=tin;
……
3.3 喷灌控制模块
该模块的输入信号来自数据处理模块和时钟模块的输出,当温度大于等于某一数值时(如25℃),喷灌控制模块的输出信号控制喷灌开关自动打开一定时间(如2小时)。主要程序如下:(为了结构清晰,对部分内容进行了删减)
……
begin
process(hour,t)
begin
if(t 》= “000011001” and hour 》= “0000” and hour 《=“0010”) then
control《=‘1’;
else control《=‘0’;
end if;
end process;
……
4、 仿真
本文设计的VHDL语言程序已在MAXPLUSⅡ工具软件上进行了编译、仿真和调试,通过编程器下载到了EP1K30TC144-3芯片中实际测试并获得了满足设计要求的结果。
数据处理模块的功能仿真结果如图四所示。当转换数据为95H,计算所测温度为95H× 2-273=25℃,仿真结果正确。
喷灌控制模块的功能仿真结果如图五所示。可以看到,当温度大于等于25℃时,喷灌控制模块的输出信号控制喷灌开关自动打开2小时。
5、 结论
通过以上对温控定时喷灌系统的设计,看到应用FPGA器件和EDA技术,不仅缩短了系统的设计周期,还减少了系统体积,提高了系统的可靠性。具有设计周期短、设计费用和风险低、功能灵活的特点。本文给出的设计思想也适用于其它基于PLD器件的系统设计。
本文设计了基于VHDL 语言的温控定时喷灌系统的几个模块:数据处理模块TDATA、时钟模块clock、喷灌控制模块CONTROL。每个模块都通过了功能仿真和时序仿真,生成了可综合的网表文件,并下载到EP1K30TC144-3芯片中。仿真和测试的结果表明每个模块均完成了其逻辑功能。
责任编辑:gt
全部0条评论
快来发表一下你的评论吧 !