基于以太网和PSTN的智能家居远程控制系统
随着互联网的日益普及,信息共享程度在不断提高,各种仪器仪表,家电设备以及工业生产中的数据采集与控制正慢慢走向网络化。数字化家居系统的产生,使人们可以通过互联网对家用电器进行远程控制及安防报警,目前,很多智能家居产品还停留在电话语音控制或互联网控制上,前者存在信息反馈及可视化的问题,后者需要家庭网关的支持,随着嵌入式网络产品的问世,通过嵌入式以太网控制芯片和pctn链路,实现家居数据的网络共享和远程监控已成为未来智能家居的发展趋势,本文对智能家居系统的远程控制技术进行了分析,提出了基于以太网和pstn链路的双冗余控制系统,充分发挥了两种网络的优势互补。
1 系统功能与结构
该系统以pc系列单片机pic16f877为核心,由防盗报警探测单元、继电器输出单元、pstn处理单元和以太网络接口单元组成,防盗报警探测单元完成防火、防盗等信号的探测任务,pstn处理单元负责电话链路的连接和语音处理,完成报警信息以及远程控制信息的解码任务,而以太网络接口单元用来完成网络接口任务,负责网络信息的双向传递,系统结构如图1所示。

2 系统硬件构成
2.1 单片机系统
单片机采用microchip公司的pic16f877。它是pic系列的中级产品,采用精简指令集和指令与数据分离的哈佛总线结构,功耗低,运行速度高,代码压缩率高,与其他8位单片机相比具有较大的优势,该单片机集成度高,外围接口电路简单,内部集成看门狗电路,a/d转换电路、捕捉/比较/脉宽调制电路、主同步串行端口mssp模块,并可以通过控制字方便的开启和关闭。
2.2 以太网络接口设计
该电路主要由rj45接口、10m/100m耦合器隔离滤波器tg110-s050n2和以太网控制芯片rtl8019as组成。rtl8019as与单片机的接口电路如图2所示。

rtl8019as是realtek公司全双工以太网控制芯片,支持pnp自动探测,内嵌16kb sram,用于收发缓冲。内部集成了介质访问控制子层(mac)和物理层的性能,兼容ethernetⅱ和ieee802.3的10base2和10baset。
rtl8019as是针对isa总线设计的,在pc上用来实现网络的物理层协议,主要包括网卡与网络电缆的物理连接、介质访问控制、数据帧的拆装、帧的发送与接收、错误校验、数据信号的编解码、数据的串并行转换等功能,这些设置需要对rtl8019as的若干寄存器进行设置。
rtl8019as有三种工作方式:跳线方式,芯片的i/o和中断由跳线决定,即插即用方式,软件自行配置,免跳线方式,芯片的i/o和中断由外接存储器内容决定,在嵌入式应用场合,为降低成本,减小连接,采用第一种方式,所以jp引脚接高电平。
rtl8019as可以兼容8位和16位工作模式。图2中,iocs168是16位i/o选择引脚,如果rtl8019as上电复位时该引脚为低电平,rtl8019as将选择8位模式;如果该引脚为高电平,将选择16位工作模式,由于pic16f877单片机为8位数据总线,因此要工作在8位模式,所以该引脚接地。此时,rtl8919as只需8根数据线sd0-sd7。
pic16f877的b口rb0-rb4与rtl8019as的低五位地址线sa0-sa4相连;re0-re2作为控制线分别与iorb、iowr、reset相连;d口与rtl8019as的低8位数据线sd0-sd7相连。
rtl8019as的4个引脚tpin+,tpin-,tpout+和tpout-,分别和耦合隔离滤波器tg110-s050n2对应输入端口相连,最后与rj45接口相连。
24lc256是串行eeprom存储器,采用cmos工艺,兼容i2c总线,这里通过pci内部硬件接口模块mssp(rc3、rc4引脚)与其相联,用来存储web服务器的配置信息。
2.3 时钟和wdt
为保证单片机时钟精度,设计采用外接时钟源从osc1引脚输入[1],这里采用集成电路74f04,电阻和晶振构成串联谐振式时基振荡器,如图3所示。

pic16f877内置的看门狗是一个拥有独立时钟源、计时周期约18ms、自由运行的计时器,其工作无需任何外围器件,单片机执行程序期间,一旦wdt超时溢出,将使单片机产生复位操作,即使单片机处于睡眠状态,其溢出也将使单片机被唤醒,恢复正常运行状态。
看门狗的启用通过系统配置字wdte位实现,即wdte=1时,看门狗将永久启用。因此,需要在用户主循环程序中将看门狗计时器清零(使用专用命令clrwdt)使它无法计时到最大值。
2.4 pstn处理单元
目前,在该方面的研究较多,相关元器件电路和理论比较成熟,本设计中该单元主要由mc145436双音频解码芯片、apr9600语音录放芯片,振铃检测和模拟摘挂机电路组成。
由电话线传来的双音多频及直流混合信号,经耦合器滤除电话线上的直流信号,然后送入放大器,再经过耦合电容,送入mc145436双音频解码芯片。接解码后,dv信号变为高电平,同时输出4位代码,对因电话键盘上的按键。
为使用户能够通过电话链路及时了解受控家用电器的信息,使产品达到交互与智能化,系统采用apr9600语音录放芯片完成的语音的录放工作,该芯片具有多种手动控制方式、分段管理方便、多段控制电路简单、采样速度和录放的时间可调,支持串行和并行控制。本系统中,apr9600被设置成8段并行控制模式,即msel1、msel2和m8这3个引脚均设为高电平,当re设为录音状态,按下m1开始录第一段,松开键录音停止,按下m2键开始录第二段,松开键停止,如此循环,直到录完8段,而相应的语音播放则由软件控制,sp+和sp-引脚与电话线相接,将语音信号反馈到听筒里。
我国公众电话网的传输线为双线模拟线路,采用直流环路信号方式,平时挂机时的馈电电压一般为-48v,振铃的铃流电压为75±15v,25赫兹的交流电压,用户的摘挂机状态是通过对直流环路上的电流通断来实现的。挂机状态时,直流环路断开,馈电电流为0,摘机后,直流环路接通,馈电电流在20ma以上。
在设计振铃检测与模拟摘挂机电路中,为避免高压振铃信号机线路及其他高压噪声对解码电路和语音信号的危害,系统采用专用芯片tca3385作为铃流检测核心部件。该芯片是一种性能稳定的振铃信号转换、检测器件,能够承受较高电压的冲击,当远程控制系统离线时,只有该芯片与电话线相连,保证了系统的完全性。
3 软件设计
系统的软件部分主要分为:电话远程控制部分和网络监控部分。网络监控部分的核心和难点在于对网络芯片的处理及tcp/ip协议栈的实现,其中包括对rtl8019as的初始化、数据发送和接收,对rtl8019as的初始化主要是对其控制寄存器进行初始化设置,这里用到其ne2000寄存器组,网卡的初始化首先要进行网卡复位,复位完成后要对网卡的工作参数进行设置,主要是对命令寄存器cr的设置,cr主要用于选择寄存器页,启动或停止远程dma操作以及执行命令,该寄存器内容如表1所列[2]。

网卡数据的发送和接收是通过dma来读写网卡内部的16kb ram来实现的。
以上对网络芯片的处理完成了以太网的mac层和物理层的协议,要真正实现嵌入式系统与以太网上其他设备进行通信, 需要在系统上实现tcp/ip协议,面向嵌入式应用系统的tcp/ip协议,需要在不违背协议的标准的前提下对系统的tcp/ip协议加以剪裁、改写和移植,使其占用的存储空间尽可能小,这里使用微芯公司提供的tcp/ip协议栈,该协议栈支持arp、ip、tcp、icmp、http及ieee802.3协议,为嵌入式应用系统提供低廉的网络接入能力,对于数据量不大的系统较为实用。协议栈采用模块化的设计思路,使用户可以针对单个协议进行修改,简化了协议的开发过程。
评论