基于VHDL语言的智能拨号报警器的设计
2.3 摘/挂机控制模块PICK
电话摘/挂机的实现是由摘/挂机控制模块PICK控制摘/挂机电路来完成的。设计的PICK模块如图7所示。CLK是系统时钟输入;EN是人体检测传输器采集的盗窃信号输入;RESET是系统复位信号输入;STOP为拨号完成的挂机控制信号输入;BUSY为遇忙信号输入;PICK为摘/挂机信号输出。当有盗窃发生时,EN输入信号有效,该模块使摘机输出信号PICK有效,从而驱动摘/挂机电路产生摘机动作。如果摘机后电话信号音识别模块JUDGE送来的是系统忙的信号,即UBSY输入信号有效时,输出挂机信号PICK。两秒钟后重新启动摘机,直到电话信号音为可拨号状态。拨号完成后,STOP信号有效, PICK模块产生挂机信号。当RESET有效时,挂机输出信号有效。摘/挂机控制模块PICK的部分VHDL程序如下:
process(clk,stop,busy,en,delay)
begin
if(clk'event and clk='1') then
if(reset='1' or stop='1') then
/*复位或拨号完成后挂机*/
pick='0';
elsif(en='1') then /*报警信号触发摘机*/
if(busy='0') then
pick='1';
elsif(delay='1') then /*遇忙延时后重新摘机*/
pick='1';
else
pick='0'; /*遇忙挂机*/
end if;
end if;
end if;
end process;
3 系统设计和逻辑仿真
FPGA 中的3个功能模块用VHDL语言描述进行综合仿真后,连接起来的系统电话原理图如图8所示。系统的工作过程:STEAL报警信号输入PICK模块,产生 PICK摘机信号,控制摘机/挂机电路。摘机后,RECEI-SEND模块将呼叫处理控制字写入MT8880芯片中,将MT8880设置为叫处理模式。然后电话信号音识别模块JUDGE对MT8880芯片的输出信号IRQ计数,判别电话音是否为拨号音。若非拨号音,产生电话忙信号BUSY至PICK模块,输出挂机信号PICK,电话挂机。然后摘机后重判,若为拨号音,则JUDGE模块输出拨号信号DIAL至RECEI-SEND模块,RECEI-SEND 模块模拟与MT880直接接口进行数据通讯的DTMF收发时序,控制MT8880按预先设置的电话进行自动拨号。拨号后延时,由JUDGE模块判别电话音是否为电话回铃音,若为电话回铃音电话回铃音,则延时挂机。若不是电话回铃音,则挂机重拨。
本系统采用的FPGA芯片为XILINX公司的XCS30/XL,逻辑门数为1.3万门,用FOUNDATION2.1软件工具开发。设计输入完成后,进行整体的编译和逻辑仿真,然后进行转换、布局、布线、延时仿零点生成配置文件,最后下载至FPGA器件,完成结构功能配置,实现其硬件功能。FPGA的系统逻辑功能仿真波形如图9所示。各信号的逻辑功能和时序配合完全达到设计要求。
本系统是用FPGA实现的智能报警器,全部通过编译仿真和系统测试。由于系统的很多逻辑功能由一片FPGA实现,外围器件很少,所以系统体积小、可靠性高,且器件的可编程性使得系统功能易于完善。随着可编程ASIC器件的应用范围不断扩大,越来越多的产生在开发过程中都使用VHDL语言,综使我们得以脱离底层电路,站在更高的层次上考虑各种逻辑和时序关系,从而快速完成设计。
- 基于MSP430单片机的家用烟雾报警器的设计(10-22)
- 对于气体报警器的分线与总线的区别的探讨(09-12)
- 基于MCS-51单片机的定时报警器电路原理图(01-17)
- PIC单片机控制的遥控防盗报警器(01-09)
- 智能小区和c的系统设计(07-15)
- 基于Proteus的温控报警器设计(05-16)