家庭网络控制器的实现
摘要:文章介绍的家庭网络控制器,可用于解决当前家居中大量存在的传统家电设备的互联问题,使之成为一个系统以实现家居的集中监控管理,同时提供PPP拨号方式,通过PSTN电话网实现远程访问。
对智能家居系统的研究是当前的热点问题,众多的家电开发商也积极致力于信息家电的研发,但是这种超前的技术显然成本过高,不符合当前绝大多数家庭的实际需要。同时在当前家庭中大量存在的是传统的家电设备,各种设备管理混乱,设备提供的接口不一。因此实现对家庭中现有设备的互联使之成为一个系统进行集中统一的监控,显然是符合实际需要的。解决设备的互联,首先必须在家居中形成一个控制网络,构建一个家庭信息处理平台即家庭集中控制器,以完成对所有设备集中统一的监控和管理,同时家庭控制器能提供一个外部以太网或Internet的接口以便摆脱传统的单机运作模式,实现远程或异地的监控和访问,如三表数据远传等。
1 解决方案的提出
家庭网络中的控制器的实现是基于一个微控制器MCU或微处理器MPU。考虑家庭网络控制器主要是实现一个家庭内部的控制网络,因此选用性价比较高的8位MCU显然可以满足要求。为实现控制器和家居中所有设备通信,必须解决控制器对内部家庭设备的接口问题。考虑到家庭中存在的设备接口情况多以串行总线或红外为主,因此解决控制网络构建方式采用RS232和红外两种方式相结合的方法。同时为实现控制器对外的远程交互,依据当前具体情况,选用PPP拨号方式通过电话线连入PSTN电话网进行数据远程传送和接收。因此整个控制器的内部结构和工作环境如图1所示。
控制器给家庭内部设备提供两种接口,一是RS232串行总线,二是红外无线接口。所以家庭内部的控制网络整体上构架成有线和无线结合的方式。同时控制器还内置Modem来实现和远程终端的数据通信。考虑到单片机开发图形化界面是不现实的,因此结合当前家庭中已经比较普及的PC机实现对家庭内部所有设备的友好的人机操作为界面和信息显示。图1中的数据采集部分则是用于完成诸如安防检测和三表数据的采集。三表数据采集时,MCU只是接收到原始电表转换而来的脉冲信号实现计数完成三表数据用量的获取。安防情况则是检测脉冲信号的方式,如门磁开关上的传感器检测到异常的情况可以直接进行提示或转入电话报警等。整个控制器功能主要是四个部分:(1)和上位PC机通信;(2)和家庭内部设备实现通信;(3)完成远程拨号的操作;(4)实现数据的检测和采集。
2 控制器的具体实现
2.1 硬件设计
控制器具体实现,基于如下几点考虑:
(1)核心处理器MCU需提供两个RS232串口实现对内部设备的控制以及完成对PC机的数据传送。所以器件选择上选用的是双串口的MCUW77E58,其中一个串口专门提供给PC机,另外一个串口提供给内部设备和Modem的通信,内部设备实现地址编码的方式进行环网通信。每个设备均分配了地址以实现唯一的确认;
(2)为了实现控制器和远程终端的双向操作,因此采用调制解调芯片MSM7512B和DTMF收/发器MT8888C相结合的方式完成和外部终端的拨号连接。MSM7512B为OKI公司推出的FSK模式调制解调器芯片,MT8888C为DTMF收/发器,控制器内部采用中
断方式检测DTMF振铃信号;
(3)控制器要实现和红外设备的无线通信,控制器内部完成了红外编码发射电路的设计,信号通过212串行编码芯片HTl2A调制后经红外发射二极管送出。
内置Modem的拨号电路原理图如图2所示。
通过设置MSM7512B的引脚MOD2和MODl来选择该芯片的四种工作模式的一种。MT8888C作为DTMF接收器,DTMF信号从IN+和IN-输入,一旦信息被写入到接收寄存器中,MT8888C将从置位状态寄存器中接收寄存器满标志位和IRQ/CP端电平来通知控制器准备接收数据。MT8888C作为DTMF发送器时,数据被写入发送寄存器,经内部转换合成DTMF信号从TONE端输出。此外,MCU微控制器W77E58提供了一个串口,如图中所示以RXD_B、TXD_B、CTS_B、RTS_B来实现和PC机的连接,但实际和PC机通信时须加上MAX232芯片作为MCU和PC间的电平转换。
其余电路实现相对简单,此处不阐述。
2.2 软件设计
软件设计的主要工作包括:
(1)MCU微控制器W77E58的初始化工作,包括:双串口操作设置、初始化拨号回路芯片MSM7512B和MT8888C;
(2)MCU单片机和PC机之间的串口通信程序;
(3)家庭内部设备数据采集以及控制命令对家庭不同接口设备的发送。
以下给出软件实现的部分C51程序。
/*双串口初始化程序*/
TCON=Ox40H;//Timer1使能
TMOD=0x20H;//Timerl为定时器,8位自动重装THl到TLl
CKCON=0x30H;//Timerl和Timer2时钟为1/12CLOCK
SCON=0x50H;//串口0模式1,波特率由Timer2决定
IE=0xDIH;//使能中断(串口1和串口2以及INT0)
SCONI=0x50H;//串口1模式1,波特率由Ttimerl决定
T2CON=0x34H;//Timer2自动重装RCAP2L到TL2,RCAP2H到T2H
WDCON=0x02H;//Watchdog 复位使能
TLl=0xFDH:THl=OxFDH;TL2=0xFDH;TH2=0x00H;RCAP2L=0xFAH;RCAP2H=Ox00H;
/*初始值设置,设置串口1和串口2的波特率为9600bps*/
Reset_mt8888();//复位MT8888C
P1∧=I;P0=0x00H;//使能MSM7512B,选择模式1
/*外部中断0的服务程序*/
voidservice_int0()interrupt 0
整个网络控制器的工作过程是:首先初始化,进入主程序循环,循环检测数据采集部分、远程拨号连接请求以及PC串口通信有无中断请求,一旦有中断,则进入相应中断处理程序。
3 控制器工作环境的要求
工作环境主要要解决的问题是PC机上数据信息的接收以及远程终端的软件实现,PC机与MCU单片机之间的数据通信技术比较成熟,可以直接在PC上利用VB的Mscomm控件完成对串口数据的读取并将数据信息显示到统一的操作界面上。另外远程终端通过拨号方式连接,同样可以采用VB的Mscomm控件实现对数据的接收。对家居内部的红外设备和串行接口设备在通信时应注意的是网络的构建问题。本文在系统功能实现上借鉴了令牌环网的思想,将所有串行总线上的设备构成一个环网,通过各个设备手上的令牌来实现通信时的控制。
4 模拟实验分析
图3是模拟实验中的家居系统在PC机上的控制界面。
图4为模拟实验中电表数据远传的工作示意图。前端数据检测主要将电表转盘的转数变为脉冲信号,该信号被输入到网络控制器中,完成计数后得到使用量数据,再经PSTN电话网送至远程抄表中心。此处网络控制器通过其拨号芯片实现和远程抄表中心的连接,远程抄表运用VB开发出自己的应用程序实现数据的接收。
如下为远程抄表中心的VB开发环境中MMscomm控件的部分初始化程序:
With MSComml
.CommPort=2 ‘使用COM2
.Setting=”9600,N,8,1” ‘设置通信口参数
.InBufferSize=40 ‘设置MSComml接收缓冲区为40字节
.OutBufferSize=2 ‘设置MSComml发送缓冲区为2字节
.InputMode=comlnputModeBinary ‘设置接收数据模式为二进制形式
.InputLen=1 ‘设置Input一次从接收缓冲读取字节数为1
.SThreshold=1 ‘设置Output一次从发送缓冲读取字节数为1
.InBufferCount=0 ‘清除接收缓冲区
.OutBufferCount=0 ‘清除发送缓冲区
End With
5 结束语
本文所提出的家庭网络控制器符合当前多数家庭的实际需要,解决了当前家庭中存在大量传统家电设备的互连的问题,同时通过电话线实现对PSTN的拨号接入,可完成数据远传和异地控制。该控制器具有很大的市场价值和广阔的应用前景。
参考文献
1 MITEL.Datasheet OfMT8888C.
2 OKI Semiconductor.Datasheet OfMSM7512B.