硬件描述语言(VHDL)和可编程ASIC器件的广泛应用第一次打破了硬件和软件的屏障。基于VHDL语言、以EDA技术作为开发手段、采用现场可编程门阵列FPGA(Field Porogrammable Gate Array)作为控制核心实现的与电话线连接的智能拨号远程报警器,与传统设计相比较,不仅简化了接口和控制,提供了系统的整体性能和工作可靠性,也为进一步提高系统集成创造了条件。
1 系统原理及组成
系统组成原理框图如图1所示。系统的控制核心是一片FPGA芯片,它由3个功能模块构成:电话信号音识别模块,DTMF收发时序仿真模块和摘机/挂机控制模块。3个模块的功能分别为识别电话系统送来的信号音、控制DTMF拨号电路自动拨号、控制摘挂机电路完成摘挂机操作。
系统工作原理:当有人进入室内时,人体检测
2 PFGA功能模块设计
智能拨号报警器的控制核心FPGA的三个功能模块皆用VHDL语言编程实现,下面主要介绍FPGA的三个功能模块的设计。
2.1 电话信号音识别模块JUDGE
信号音判断的实现原理是:由于电话系统信号音的拨号音、回铃音和忙音的音源频率均为450Hz(±25Hz)的正弦波,只是断续比不同且在时间上有明显的差异(拨号音为450Hz±25Hz连续信号,忙音为 0.35s通0.35s断,回铃音为1s通4s断)。要判断信号音,首先应将处理DTMF信号的MT8880芯片设置为呼叫处理模式,使电话呼叫过程中的各种信号音经MT8880滤波、限幅后得到方波,并由MT8880的IRQ端输出。然后对MT8880输出的IRQ信号计数5秒,拨号音的计数下限为(450-25)×5=2125,计数上限为(450+25)×5=2375,即计数范围为2125~2375。同理,忙音的计数范围为 1041~1212,回铃音的计数范围为425~475,无信号音的计数应为零。但在实际编程中,需要考虑一定的计时计数误差,并且使程序简化,因此采用不同信号音相邻计数界限的中间值为区分不同的信号音。同时,为合理利用FPGA硬件资源,中间值应尽量选为2的n次方(整数)。最后设定为计数值大于 1792为拨号音,在1024~1791之间的忙音,在256~1023之间的回铃音,小于255为无信号音。
基于此原理设计的信号音识别模块JUDGE如图2所示。CLK为时钟信号输入端;IRQ与MT8880芯片的IRQ输出端相连接,是IRQ信号的计数输入端;PICK是摘机信号输入端;BUSY为电话忙状态标志信号输出端;DIAL是拨号使能信号端。该模块的功能为:在摘机信号PICK产生大约1s后,即 MT8880芯片被设置为呼叫处理模式后启动该模块。在该模块的内部,设置了两个计数器。一个为对CLK时钟信号进行计数,产生5s控制信号;另一个对 IRQ送来的脉冲进行计数。两个计数器由摘机信号PICK启动,5s后判断第二个计数器的计数值。如果计数值大于1792,则说明电话交换机系统处于可拨号的状态,DIAL置为有效、BUSY置为无效,以触发DTMF收发时序仿真模块进行拨号操作。否则,电话处于不可拨号的状态,DIAL无效、BUSY有效,驱动摘/挂机模块产生挂机信号。拨号音识别的部分VHDL程序如下:
process(irq,pick,stop)
variable cnt:integer;
constant lm_1792:integer:=1792;
begin
if(pick=‘0’);
dial<=‘0’;
cnt:=0;
elsif(stop and cnt<=lm_1792) then
dial<=‘0’;/*电话遇忙,发忙状态标志*/
busy<=‘1’;
elsif(stop and cnt>=lm_1792) then
dial<=‘1’;/*电话通,拨号使能有效*/
busy<=‘0’;
elsif(irq)''event and irq=‘1’) then
cnt:=cnt+1;/*电话音检测计数*/
end if;
end process;
2.2 DTMF收发时序仿真模块RECEI-SEND
MITEL 公司生产的集成芯片MT8880是专门用于处理DTMF信号的专用集成电路,具有接受和发送DTMF信号的双重功能。在本系统中,MT8880的作用是:把电话系统送来的DTMF信号处理成FPGA能够识别的逻辑信号;将FPGA送出的用于拨号的TTL逻辑信号转换成电话系统能够识别的DTMF信号。
[page]
RECEI- SEND用于控制MT8880以实现按DTMF方式自动拨预定的电话号码。RECEI-SEND模块与MT8880芯片的互连接口如图3所示。二者的接口信号线直接连接并由RECEI-SEND模块
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语言,综使我们得以脱离底层电路,站在更高的层次上考虑各种逻辑和时序关系,从而快速完成设计。
上一篇:让防盗解码技术失灵 隐形战警隆重上市
下一篇:春节将至防盗报警装置如何保卫家居安全
- 热门资源推荐
- 热门放大器推荐
- 宁德时代巧克力换电生态大会将举行,什么是“巧克力换电”?1.5分钟换电能实现吗?
- 新型生物材料与高端医疗器械广东研究院、远诺技术转移中心加入面向初创企业的 MathWorks
- S5PV210 Linux字符驱动之PWM蜂鸣器驱动
- 尼得科机床新增可实现高效加工的高速主轴产品线
- Gartner发布2025年影响基础设施和运营的重要趋势
- 智谱清言英特尔酷睿Ultra专享版发布,离线模型玩转AIPC
- Bourns推出全新高效能、超紧凑型气体放电管 (GDT) 浪涌保护解决方案
- S5PV210之UBOOT-2011.06启动过程解析
- 六个理由告诉您为什么应该将模拟无线麦克风更换为数字无线麦克风
- S5PV210启动过程分析