基于PLC和Internet的嵌入式X-10智能家庭网关
2008-05-29
作者:吴 巍, 吴明光
摘 要:通过嵌入式家庭网关" title="家庭网关">家庭网关的设计,实现了户内基于220V电力线载波" title="电力线载波">电力线载波X-10智能家居协议、户外基于以太网精简TCP/IP" title="TCP/IP">TCP/IP协议的智能家居系统" title="智能家居系统">智能家居系统。重点介绍了包含ARM7TDMI内核的S3C4510B嵌入式微控制器的硬件模块和过零检测电路、电力线载波调制及解调电路的设计,通过嵌入式操作系统uCLinux 内核和web应用软件,实现了X-10信息家电和Internet的互连控制。
关键词:智能家居 X-10 PLC Thin TCP/IP 嵌入式
随着科技的进步,智能家居系统(Smart Home System)接入Internet将成为未来智能家居的发展趋势。目前全世界约有40多种楼宇现场总线,如CE-Bus、Lonworks、X-10、HBS、DeviceNet、EIB等[1]。由于各种总线协议标准互不兼容,接入Internet的方式也各不相同。如何将现有的X-10智能家居系统接入Internet,目前国内尚无研究。基于此,本文设计了远程基于以太网TCP/IP协议、户内基于电力线载波通信X-10协议的嵌入式智能家庭网关。利用现有家庭网络,无需另外布线,具有很好的可移植性和兼容性;而且绿色环保,无电磁辐射和穿透射线污染,是智能家居发展的一个新方向。
1 X-10智能家居系统
X-10协议是一种目前广泛应用于智能家居和楼宇自动化领域的电力线载波通信(PLC)协议,由英国的皮可公司(Pico E1ectronics Ltd)在1976年提出[2],它利用家中现有的电力线路控制家庭内部电器开关以及进行照明调光、供水供暖、安防警报的智能化设备。其产品长期占据着美国智能家居市场的主导地位,在国内市场也应用广泛。
X-10信号是加载在家用220V电力线上、满足X-10通信协议的脉冲群。其发送时刻为交流电正弦波的过零点,过零点处有幅值为5V、频率为120kHz的脉冲时表示二进制1,无则表示0。一条完整的X-10指令由间隔三个电力线周期的两部分数据帧组成,如图1所示。
图1中前一部分为寻址帧,包括起始码(START CODE)、房间码(HOUSE CODE)和单元码(UNIT CODE);后一部分为命令帧,包括起始码、房间码和命令码。为降低误码率,寻址帧和命令帧都传输两遍[3]。由于信号衰减和干扰噪声的影响,X-10信号在电力线上传输距离有限(约200米),32位ARM微控制器(MCU)和嵌入式Linux技术解决了如何将Internet接入X-10智能家居系统,并实现远程控制的问题。
2嵌入式X-10智能家庭网关
2.1系统总体结构
智能家居产品公司提供基于家庭用户名和密码的Web Server,用户在接入以太网的计算机上登陆Web页面。用户的远程操作指令由服务器发送到对应的IP地址,经嵌入式X-10智能家庭网关转换为X-10信号,对本地X-10家电进行控制。
2.2 嵌入式X-10智能家庭网关的硬件结构
嵌入式X-10网关的MCU和主要外围结构如图2所示,使用Samsung公司的嵌入式微控制芯片S3C4510B。它是基于以太网应用系统的高性价比32位RISC芯片,内含ARM7TDMI RISC处理器核,支持实时多任务操作系统(RTOS),适合于对价格及功耗敏感的应用场合[4]。
嵌入式X-10网关的MCU和主要外围结构具体为:
(1)MCU外围扩展模块:包括片外扩展FLASH存储器、SDRAM存储单元和JTAG调试接口。
(2)载波模块:主要包含过零检测电路、载波信号调制电路和信号解调" title="信号解调">信号解调电路。
(3)用户层面:LCD和键盘接口提供了家庭用户对各X-10信息家电和网络IP等数据的本地设置界面。
(4)网络接口:对宽带网用户和电话拨号上网用户提供两种接入方式——Ethernet PHY和嵌入式modem接口。使用S3C4510B的UART单元提供两个独立的异步串行I/O口实现和Internet的数据通信。
2.3 X-10载波收发模块的电路设计
X-10电力线载波模块由零点检测、信号调制、信号解调、灯光驱动、地址设定和开/关按钮电路组成。过零检测电路检测220V交流电正弦波的过零点,通知MCU同步发送或接收信号。
2.3.1 X-10电力线载波信号调制电路
如图3所示,X-10电力线载波信号调制电路包括载波信号发生、信号放大、信号耦合等几部分。
图3采用幅值调制,通过一个CMOS多谐振荡器实现载波信号发生。当PLCOUT为高电平时,或非门A输出低电平,B输出高电平,C输出低电平,三极管Q6不导通;发送信号时,PLCOUT为低电平,或非门A和B产生自激振荡,调整R11与C13的值,使振荡频率为120kHz。振荡周期T或粗选R、C的元件参数可由式(1)估算,最后通过实验调整确定。
T=RCln4≈1.4RC (1)
三极管Q6增加U3C的驱动能力,120kHz的信号通过可调电感T3耦合到电源线上。变压器T3实现了高压与低压的隔离。电容C14阻断低频的高压,防止变压器饱和;调节T3副边的电感,使其与C16在120kHz时发生谐振,从而提高了信号的输出功率。
2.3.2 X-10电力线载波信号解调电路
X-10电力线载波信号解调电路如图4所示,包括检波和解调两部分。T1为可调电感,实现强弱电隔离并与C1组成谐振电路,电容C2起高通滤波作用。经三极管Q2交流放大后的信号为120kHz、5V的方波信号,持续时间为1ms,无信号时输出为低电平。由于R3的阻值选得较大,使电容C3充电快,放电慢。当电容充电超过0.7V时,三极管Q3输出低电平。
3 嵌入式X-10智能家庭网关的软件实现
嵌入式X-10智能家庭网关系统需要移植μClinux操作系统到目标平台[5], μClinux是对标准Linux内核裁剪形成的高度优化、代码紧凑的嵌入式系统,具有稳定性好、可移植性强、支持多种典型的处理器构架和多种网络协议的优点。使用精简TCP/IP协议[6](Thin TCP/IP),将传统TCP/IP的开放系统互连(OSI) 模型简化为四层:应用层、传输层、网络层、链路层,舍弃了多余数据和功能,集中解决了MCU的上网问题。
嵌入式X-10网关需要建立起设备地址命令和X-10码的转换表,如表1所示。表1中,X-10智能家居系统最多可控制256组设备,每个设备地址分为房间号(A,B,C,…P)和单元号(1,2,…16),如A1、C9等。用户可随意改变家中设备的地址,并对其进行控制。
发送X-10码时,采用载波侦听多路访问(CSMA)协议解决信道竞争问题。当发送模块检测到电源线上连续4个周期无信号时,认为信道为空,开始发送数据;若检测到有信号,则随机等待几个周期后再重新侦听总线。为防止数据发送过程中的信道竞争,发送模块在发送二进制“0”时,侦听总线上是否有信号,若有,则立即中止此次发送,随机等待4、5个周期后再重新发送信号。
4 调试结果及结论
经调试,在远程Web页面选择了熄灭家中地址为A1的灯的指令:Light A1 OFF。
在本地示波器上得到的家中信息家电收到的X-10信号如图5所示。图5中CH1为50Hz家用电力线的过零点同步方波信号,CH2为电力线上滤波后的X-10信号。将其译成X-10码为:寻址段:11100(1)1(0)1(0)0(1)0(1)0(1)1(0)1(0)0(1)0(1) 11100(1)1(0)1(0)0(1)0(1)0(1)1(0)1(0)0(1)0(1)命令段:11100(1)1(0)1(0)0(1)1(0)0(1)0(1)1(0)1(0)1(0)11100(1)1(0)1(0)0(1)1(0)0(1)0(1)1(0)1(0)1(0) 。除去补码,对照图1,1110为起始码,011001100为地址A1,00111为指定灯关命令。执行结果与远程Web页面的指令完全一致。
该嵌入式网关成功解决了TCP/IP协议和X-10协议的转换问题,实现了以太网和现有X-10信息家电的互连控制。
参考文献
1 廖玲玲,刘桂雄,罗 奕等.智能家居中IP技术的方案和关键问题[J].机电工程技术,2004;33(6):63
2 刘志斌.X-10协议及其在智能家居系统中的应用[J].微电子学与计算机,2004;(3):5~8
3 Kingery P. Digital X-10.Advanced Control Technologies.Inc,2000
4 马忠梅,马广云,徐英慧. ARM嵌入式处理器结构与应用基础[M] . 北京:北京航空航天大学出版社,2002
5 李 岩.基于S3C44BOX嵌入式UCLINUX系统原理及应用[M].北京:清华大学出版社,2005
6 程耕国,高厚礼.基于TCP/IP协议单片机上网的设计与实现[J].武汉科技大学学报( 自然科学版),2004;27(2):174~175