基于FPGA的电话远程控制系统设计_家用电器远程控制系统的设计
摘要:随着科技发展,信息化愈发成为本世纪的发展方向。本文介绍一种基于公共电话通信网络实现远程控制的智能控制系统。本设计采用FPGA作为控制器,通过电话网络传输密码与指令操作码,实现有用户权限的远程操作。具有可配置性强,控制信号多,系统可靠稳定等特点。
关键词:远程控制;现场可编程逻辑阵列;用户权限
中图分类号:TP27 文献标识码:B
Design of Phone Remote Control System Based on FPGA
Abstract: Along with the development of science and technology。 information application has become the way of development in this century. This article describes a kind of intelligent remote control system based on public telephone network. This design use FPGA as controller。 to realize remote operation with user jurisdiction. This system uses public telephone network to transmit password and instruction operational code. It has the characteristics of being highly configurable。 controllable and reliable.
Key words: Remote Control; FPGA ; User jurisdiction
1引言
随着社会的进步以及科技的进步,人们越来越期望科技能给人们带来更多的便捷。其中在家电领域,为了适应这种时代发展的潮流,家用电器的智能化及可远程控制化越来越受到人们的关注。海尔前几年就提出了智能家居的概念,并且已经研制出了相关的产品。信息家电的产生和发展将对传统家电、计算机和通信业产生深远影响。
基于这样的背景,本文设计了一个电话远程控制系统,本系统可以利用家庭电话,使得用户可以通过电话控制与系统相连的电热水器、空调、电饭锅等各种受控电器的开、关及温度设定等,实现远程控制。
2系统硬件介绍
本系统的硬件设计框图见图1所示。
本系统主要由以下几个部分组成:
铃流检测电路: 负责检测电话呼叫铃流。判断是否摘机;
摘/挂机电路: 负责电话机接通与挂断。实现系统与远程电话通信连接与断开;
DTMF解码电路: 负责对接收到的DTMF控制信号解码。并将解码数据传送至FPGA;
EEPROM: 基于SPI协议的存储器,负责存储密码等用户信息;
语音提示电路: 主要用来存储及播放语音以提示用户执行相关操作;
FPGA: 本系统的控制核心,用来控制电话摘机,接收用户输入,控制语音播放等一系列操作;
FPGA配置芯片: 用来对FPGA进行上电配置,因为FPGA是基于RAM的存储结构,数据掉电易失,所以采用基于PROM的FPGA配置芯片,在系统上电时,对FPGA进行配置。
下面分别介绍各个部分的具体实现,图2所示为本系统的关键部分电路原理图(FPGA下载等部分忽略):
(1)铃流检测电路
当正弦电话铃流信号到来时,信号经过电容C10滤去直流分量后,经过光电耦合,由四个施密特触发器构成整流电路,并将整流后的方波信号传送给FPGA。
(2)摘/挂机电路
该电路直接与电话并联连接,当FPGA完成对铃流信号检测,并满足摘机条件后,FPGA的摘机信号Tele_on信号输出高电平,使得晶体管T3导通,从而改变电路的电阻值,模拟电话摘机,实现本机与远程电话通信连接;挂机则由FPGA将Tele_on信号置低。
(3)DTMF解码电路
本电路核心是DTMF解码芯片HT9170,HT9170是HOLTEK公司生产的18脚DIP-SOP封装的DTMF信号接收解码芯片,它具有工作电压低,静态工作电流小,外围电路简单,使用元件少且无需外部滤波器等优点,可对接收到的16种DTMF信号进行检测和解码。
此电路负责将由本机输入的密码或控制码等DTMF信息转变成4位的数字信号,并将其输入到FPGA中,FPGA根据输入信号执行相关操作。
(4)EEPROM
本系统采用的是基于SPI串行通信协议的EEPROM芯片: X5045。X5045芯片内含512字节存储单元,10万次可靠写,数据保持时间100年。对X5045的操作是通过4根口线CS、SCK、SI和SO进行同步串行通信来完成。SCK是外部输入的同步时钟信号。在对芯片定改指令或数据时,时钟前沿将SI引脚信号输入;在读取数据时,时钟后沿将数据位输出到SO引脚上。数据的输入/输出都是高位在先。
本系统采用EEPROM的用意在于存储密码等用户信息,因为FPGA是基于RAM编程,掉电易失,所以必须将用户密码、电话等信息存储在存储器中。当用户输入密码后,FPGA读取EEPROM中的密码信息,与用户输入密码进行比较。如果正确则给用户操作权限,否则将用户锁定,不给此用户工作权限。
(5)语音提示电路
本部分电路主要由ISD1420系列芯片及其外围附件组成。本电路的作用是在用户进行操作的过程中进行相关的语音提示,这部分电路的硬件并不复杂,但提示音的播放需要程序参与。本系统采用ISD1420实现语音提示的存储与播放提示。分别在FPGA的控制下提示用户输入密码,输入操作码,修改密码等一系列操作。本部分电路还有一个可开关的喇叭,可用来提示现场。
(6)FPGA及其配置电路
本部分是本系统设计中最关键部分。整个系统都是在此FPGA的调度下完成相关操作。本设计采用的是ALTERA公司生产的Cyclone系列FPGA: EP1C3T144C8芯片。其配置芯片采用的是EPCS1系列配置芯片,系统上电后,EPCS1通过主动串行模式对FPGA进行配置。
EP1C3系列FPGA采用了144管脚的扁平封装,用户IO管脚高达89个,逻辑规模达到5万门,用户资源比较丰富,完全可以满足中等复杂情况下的应用要求。在本系统中,FPGA的109-144管脚被用来作为系统控制端口,分别作为铃流输入端,自动摘机控制端,DTMF数据输入端,EPPROM控制端,语音电路控制端以及控制信号输出端口。其余管脚通过扩展端口引出,可以在以后的开发中进行功能扩展。
3系统工作流程
如图3所示为本系统的具体工作流程:
本系统的工作流程是:当用户拨打与系统相连的电话机后,铃流检测电路将正弦铃流信号转成数字脉冲信号,并传输给控制器FPGA,FPGA判断符合条件后控制电话摘机,并产生提示音提示用户输入密码;当用户输入密码后,DTMF解码电路将输入的DTMF密码信号转变成4位数字信号,并输入到FPGA中,FPGA接收完密码数据后,通过SPI串行通信方式从EEPROM中读取用户预设密码,并与用户输入密码进行比较:
(1)如果密码正确,FPGA控制语音部分向用户进行语音提示,提示用户输入操作码:
操作码1:语音提示用户输入控制码;
操作码2:语音提示输入修改的密码;
通过DTMF解码电路将后续操作码传输给FPGA,FPGA根据操作码执行相关操作;
(2)如果密码错误,FPGA控制语音电路向用户进行语音提示,提示用户密码错误,重新输入,并记录错误次数,当用户输入密码错误次数达到3次,则FPGA将电话挂机,禁止用户操作。
4FPGA控制器设计
根据设计的操作流程,本系统采用Verilog HDL硬件描述语言编写了FPGA控制器的代码以及测试文件(testbench),并且在Modelsim_SE环境下进行了设计代码的编译与功能仿真。
在功能仿真阶段,笔者用testbench仿真了铃流,各种操作码以及密码的输入。按照操作流程分别输入错误密码及正确密码,直至实现摘机;在其后的工作环境下仿真各种操作码输入,观察控制器对应的操作。经过完备的仿真分析,证明控制器代码设计是正确的。其中部分关键信号仿真结果如图4所示。
硬件描述部分主要分三个模块,分别是主控制器模块,铃流判断模块以及DTMF码接收处理模块。代码在Synplify环境下的综合结果如图5所示。
铃流判断功能模块负责采集并判断铃流信号,在满足接通条件后,产生使能信号,以通知控制模块实现电话连接。
DTMF码接收处理模块的主要功能是防止误操作。在此部分功能模块设计中,我们在模块内部设计了一个移位寄存器实现不间断数据采样,在数据最稳定的阶段,即采样数据全1或全0情况下,才采用握手信号通知控制器采集DTMF解码数据,以确保防止由于数据不稳定或者外部干扰等情况引起的误操作,保证系统可靠与稳定。
主控制器模块主要功能是实现系统的调度与操作。此功能模块采用复杂的状态机设计来实现操作。其主要实现的功能有摘机,语音播放,密码修改,读/写EEPROM,接收密码与操作码,输出操作指令,挂机等一系列操作。
5系统调试
在完成理论设计与软件仿真、综合等工作后,笔者进一步完成了PCB板设计,并完成了系统的电路板设计。在现场调试过程中,笔者经过不断调整与修改软硬件设计,最终实现了系统的功能。如图6所示为系统实物图。
6结束语
本系统经过现场调试,完成了预期的功能。而且采用低成本FPGA设计,其作为集成电路设计产业的重要应用,实现了集成电路设计与应用系统设计的紧密结合。同时其较丰富的用户资源,确保了本系统具有可扩展性和可升级性,用户完全可以根据需要定制不同的功能操作。
本文创新点:系统具有密码控制,使得用户必须有权限方可实现操作。同时采用基于SPI协议的EEPROM存储用户信息,用户可以修改密码等信息,保证系统的安全性。采用FPGA设计,Verilog HDL硬件描述语言描述的硬件控制器,摒弃了传统设计的不可更改,可根据需要设计相应的硬件控制器,非常方便用户在日后使用中的升级与自配置。
参考文献
[1] 基于智能手机的电脑远程控制系统设计
[2] 刘恩科 朱秉升 半导体物理学 北京:电子工业出版社 2003.8
[3] Behzad Razavi 模拟CMOS集成电路设计 西安 西安交通大学出版社 2000.7
[4] Model TechnologyModelSim SE User’s Manual 美国 2007.2
[5] 沈云红 Synplify pro 综合 西安:电子科技大学SOC设计中心 2005.9
