智能家居控制系统的设计与实现 [2009-03-18 06:41] ;;; 摘要:介绍了以PC(个人计算机)、MCU(单片机AT89C52)、双音多频编解码集成电路MT8880C、语音录放芯片ISD4004和无线数据收发芯片nRF401为核心,通过现有的电话网络终端或者互联网网络终端实现远程控制的智能家居系统,给出了该系统的电路原理和办硬件设计与实现方法。;;; 关键词:远程控制 双音多频 网络通讯 无线通讯 家庭自动化21世纪是信息化的世纪,各种电信和互联网新技术推动了人类文明的巨大进步。数字化家居控制系统的出现使得人们可以通过手机或者互联网在任何时候、任意地点对家中的任意电器(空调、热水器、电饭煲、灯光、音响、DVD录像机)进行远程控制;也可以在下班途中,预先将家中的空调打开、让热水器提前烧好热水、电饭煲煮好香喷喷的米饭……;而这一切的实现都仅仅是轻轻的点几下鼠标,或者打一个简单的电话。此外,该系统还可使家庭具有多途径报警、远程监听、数字留言等多种功能,如果不幸出现某种险情,您和110可以在第一时间获得通知以便进一步采取行动。舒适、时尚的家居生活是进步的标志,智能家居系统能够在不改变家中任何家电的情况下,对家里的电器、灯光、电源、家庭进行方便地控制,使人们尽享高科技带来的简便而时尚的现代生活。1系统的总体结构及工作过程智能家居系统由系统主机、系统分机、Internet服务器和网络接口等部分组成。其中系统主机通过服务器(个人)连入Internet,并通过自己的PSTN�公用电话交换网接口电路连入PSTN。其结构图如图1所示。主机与分机通过无线传输组成星形拓扑结构。系统主机通过本地无线传输网络同系统分机进行通讯、传输控制命令和反馈信息。该系统正常工作时,用户可以通过screen.width-400)this.style.width=screen.width-400;>Internet和PSTN两种网络进行访问,当通过Internet访问时,本系统可提供一个界面友好的终端软件,用户只需登陆到运行在家中的服务器即可对家中的设备进行远程控制;当通过PSTN访问时,本系统将为用户提供语音操作界面。其工作流程如图2所示。2系统的硬件构成本系统的硬件主要有系统主机与系统分机两大部分。系统主机由单片机AT89C52和各种接口电路组成,如图3所示。系统分机由单片机AT89C52和各种接口电路、传感器单元电路、固态继电器控制电路组成,并由固态继电器控制具体设备,具体硬件组成框图如图4所示。通过系统主机的各种接口电路可将主机CPU从繁忙的计算中解脱出来,以便把主要精力运用在控制和信息传递上。系统主机主要依照各个功能电路的输出结果进行判断和控制命令的输出。系统分机的各种接口电路和主机相似,只是根据设备的不同(传感器单元)有着细节上的变化。下面主要介绍系统主机的各种接口电路。2.1 nRF401 无线数据传输电路无线数据传输电路由Nordic公司的单片UHF无线数据收发芯片nRF401及其外围电路构成。nRF401采用FSK调制解调技术,其工作效率可达20kbit/s,且有两个频率通道供选择,并且支持低功耗和待机模式。它不用对数据进行曼彻斯特编码,其天线接口设计为差分天线,因而很容易用PCB来实现。screen.width-400)this.style.width=screen.width-400;>;;; 2.2 看门狗电路看门狗电路由MAX813L及其外围元件组成。通常,在单片机的工作现场,可能有各种干扰源。这些干扰源可能导致程序跑飞、造成死机或者程序不能正常运行。如果不及时恢复或使系统复位,就容易造成损失。看门狗电路的作用就是在程序跑飞或者死机时,能有效地使系统复位以使系统恢复正常运转。因此,在程序中定期给P1.5送入看门狗信号,就可以保证在程序运行异常时,由MAX813L使单片机复位。2.3 DS1307时钟接口电路DS1307时钟芯片是美国DALLAS公司生产的I2C总线接口实时时钟芯片。DS1307可以独立于CPU工作,它不受晶振和电容等的影响,并且计时准确,月积累误差一般小于10秒。此芯片还具有掉电时钟保护功能,可自动切换到后备电源供电。同时还具有闰年自动调整功能,可以产生秒、分、时、日、月、年等数据,并将其保存在具有掉电保护功能的时间寄存器内,以便CPU根据需要对其进行读出或写入。由于单片机AT89C52没有I2C总线接口,因此,要驱动DS1307,就必须采用单主机方式下的I2C总线虚拟技术。在此方式下,以单片机为主节点(主器件),主器件永远占有总线而不出现总线竞争,且可以用两根I/O口线来虚拟I2C总线接口。I2C总线上的主器件(单片机)可在时钟线(SDL)上产生时钟脉冲,在数据线(SDA)上产生寻址信号、开始条件、停止条件以及建立数据传输的器件。任何被选中的器件都将被主器件看成是从器件。在这里,DS1307作为I2C总线的从器件。I2C总线为同步串行数据传输总线,其内部为双向传输电路,端口输出为开漏结构,因此,需加上拉电阻。2.4 MT8880C双音频编解码电路由于单片机是通过MT8880C芯片得到PSTN网络的双音频信号解码输出,也就是说,单片机可以识别来自PSTN网络的控制信号,用户可以根据系统的语音提示进行按键选择以实现用户身份的识别与远程控制。因此,利用MT8880C的双音频编码功能,系统可以在紧急时刻将用户预置的紧急电话打到PSTN网络,从而把损失减少到最低。2.5 ISD4004语音录放电路ISD4004是美国ISD公司生产的一种语音录放芯片。它可录制8~16分钟的语音信号。该芯片可提供SPI标准接口和单片机进行接口,其语音的录放控制均通过单片机来实现。该芯片的一个最大特点是可以按地址编程录放,因而可由ISD4004和单片机编程控制来构系统与PSTN网络用户的语音平台。由于ISD4004的INT和RAC脚输出为开漏结构,因此需要加上拉电阻。screen.width-400)this.style.width=screen.width-400;>2.6 MAX202串行通讯电路通讯电路可由串行通讯专用芯片MAX202组成,通过此电路可以方便地与PC机进行串行通讯。2.7 铃流检测与摘挂机控制电路当系统被呼叫时,电话交换机发出铃流信号。振铃为25±3V的正弦波,失真小于10%,电压有效值为90±15V。振铃信号以5秒为周期,即1秒送,4秒断。由于振铃信号电压比较高,所以先要通过高压稳压二极管进行降压,然后输入至光耦。再经光耦隔离转换后,从光耦输出时通时断的正弦波,最后经RC回路进行滤波以输出标准的方波。该方波信号可以直接输出至单片机的定时器1进行计数,以实现对铃流的检测。由于程控电话交换机在电话摘机时电话线回路电流会突然变大(约30mA),因此,交换机检测到回路电流变大就认为电话机已经摘机。自动摘挂机电路可以通过单片机的P1.7来控制一个固态继电器,固态继电器的控制端应连接一个大约300Ω的电阻后再接入电话线两端,从而完成模拟摘挂机。3系统软件编制本系统软件主要由系统主机和系统分机的C51程序和系统与Internet网络通讯程序组成。3.1 系统主机程序的编制系统主机程序主要用于实现系统的总体功能。包括无线数据传输程序、看门狗程序、时间戳程序、双音频编解码程序、语音录放程序、串行通讯程序、铃流检测与摘挂机控制程序、系统初始化程序、意外事件处理程序等。程序编制以消息驱动为主导思想。消息由计数器中断1、外部中断0和串行中断产生,在中断服务程序中,应将相应的状态位置位,而在消息循环中则应按相应的状态位调用功能函数,然后由功能函数将相应的状态位清0并完成所需功能,并最后返回到消息循环中。其程序流程如图5所示。该系统的分机程序和主机类似,故此不再详述。screen.width-400)this.style.width=screen.width-400;>3.2 系统与Internet网络通讯程序的编制这部分通讯程序分为服务器和客户端两个程序,主要通过Internet网络完成用户的控制功能。服务器程序主要完成客户端与系统主机通讯的中转,即将客户端发来的控制或者查询命令成系统主机能识别的格式,或者将系统主机收到的报警等信息上传到客户端。服务器程序使用Socket与客户端进行Internet通讯。客户端程序是运行在远端用户的控制界面,主要用于完成家居内状态的显示以及对家居内电器的远程控制,同时使客户端直接连接到服务器。4结论本系统充分利用了现有的网络资源。通过在实际电话网络和Internet网络中的试运行证明:该系统能够达到设计初期的各项要求。相信将在信息家电、智能小区等方面得到广泛应用。