X10协议是一种国际通用的智能家居电力载波协议。基于这种协议的产品大体分为3类: 向电力线上发射X10控制信号的发射器系列、接收X10信号并执行相应操作的接收器系列,以及系统保障设备系列。其中,接收器系列的产品又分为两线式和三线式。两线式接收器在供电及信号处理上比三线式要难得多,但相比于三线式,它无需重新布线,使用方便,可与普通开关互换,因而市场前景更为良好。本文设计了一种廉价、可靠的两线式接收器。
1 接收器整体概述
1.1 功能简介
接收器模块安装时无需重新布线,直接串入控制回路,可直接替换原有的普通开关。该模块可以完成对白炽灯的开、关、调暗、调亮等操作,这些操作既可以通过控制器发射的X10报文来完成,也可以通过模块上的两个按钮来完成。接收器接收X10报文的地址可以通过控制器在线设定。
1.2 硬件组成
模块基于一块Microchip公司的PIC16F630单片机,外接了一个7.68 MHz的晶振。其他外围电路包括过零点检测电路、120 kHz信号的解调电路、按钮(2个)输入电路以及1个基于可控硅的调光电路。另外,还有一个LED灯,用于指示该模块当前所处的状态。
2 接收器的技术实现
2.1 具体硬件电路
2.1.1 供电及信号采集电路
因为模块与负载串联在220 V的交流电上,在模块的输入端串入1个12 V稳压管和1个限流电容后,经78L05稳压三极管稳压供电。同时,该回路中还串有一个中周和电感,用于载波信号的采集(见图1)。
2.1.2 可控硅的驱动电路
通过一个晶体管C33725可以实现可控硅的移相触发,如图1所示。
图1 检测及控制电路
2.1.3 过零点检测电路
通过在电力线与MCU的引脚间接入一个4.7 MΩ的限流电阻,再经过后期的软件处理,即可完成过零点的检测(见图1)。
2.1.4 信号放大电路
电力上的信号经过中周后,低频的信号基本上被滤去,剩余的基本上是X10的信号,但是这个信号比较弱,需要进行放大处理。为了获得较高的放大倍数,本文选用了信号选频放大电路,如图2所示。
图2 信号选频放大电路
图3 检波器电路
放大后的信号再通过一个检波器,检波器的输出信号经过一个非门缓冲后连接到PIC16F630的RC0引脚上,如图3所示。只要电力线上出现120 kHz的信号,该引脚就会为高电平。
2.2 软件处理
软件处理主要包括: 过零点的判断、X10报文的解码、报文命令的执行、按钮的输入以及在线地址学习。
2.2.1 过零点的判断
经电阻采集的同步信号接至RA0引脚,由于引脚内部与GND和VCC间都接有钳位二极管。当引脚上的电平高于VCC时,会被钳位在高电平;而低于GND时,则被钳位在低电平。
(1) 当可控硅关断时
在交流电的正半周期内,RA0上的电压被钳位在VCC;而在负半周期则被钳位在GND。所以,这时RA0上的信号是与交流电电压相同步的方波信号,电平变换的时刻即过零点的时刻,通过A口的电平变化中断即可找到过零点的时刻,如图4所示。
图4 可控硅关断时RA0引脚上的电压
(2) 当可控硅移相触发时
由图1可知,当可控硅移相触发导通后,与RA0相连的电阻的另一端与12 V稳压管的正极相连,因此RA0上为高电平。实际测得的RA0上的信号如图5和图6所示。
图5 可控硅移相触发时RA0引脚上的电压(移相角较小时)
图6 可控硅移相触发时RA0引脚上的电压(移相角较大时)
为了保证供电,可控硅不能在过零点后立即触发。从图5和图6中可以看出,在反向过零后,可控硅触发之前,RA0上的信号为一段平稳的低电平。根据这种情况,可以由RA0的电平反向变化引起的中断找到反向过零点时刻。此外,由于在正向过零点及可控硅在正半周期触发时刻会对RA0上的信号有脉冲干扰,所以要想通过电平变化中断找到反向过零点,还必须在进入中断后再进行数字滤波。在找到反向过零点时刻后,通过10 ms的定时中断即可找到正向的过零点。
2.2.2 X10报文的解码
在找到过零点后,对RC0上的信号数字滤波后判断一下高低。为高,表示此次过零点处有120 kHz的信号,表示收到数据1;为低,则表示没有信号,表示收到数据0。这样便可知道每次过零点的数据。
单片机内有一个由4个8位寄存器组成的FIFO队,用于存放最近32次过零点收到的X10报文数据。每次检测到过零点后,将FIFO队头的数据移出,将剩余的数据全部向队头移1位,然后将此次过零点处的数据送至队尾。当队头的4位的值为“1110”时,表明该队中存放的为一个完整的报文,可根据X10的协议提取出相应的地址和指令。
2.2.3 报文命令的执行
该模块可接受6种报文命令,分别为Unit On、Unit Off、Bright、Dim、All Units On、All Units OFF。通过这些命令可以实现灯的模块及调光功能。
2.2.4 按钮的输入
按钮有2个,按钮动作有2种,分别是点触和按住。点触时可完成灯的开和关,按住按钮则可进行调光。此外,在灯关闭的状态下,按住关灯按钮几秒后则进入地址学习状态,在此状态下可以设定模块的地址。
2.2.5 在线地址学习
当模块进入地址学习状态后,灯会点亮,表明进入地址学习状态。此时,通过控制器向电力线上发送一封完整的X10报文,则模块会将报文中的地址设为自己的地址并存入EEPROM中,然后自动将灯关闭。在进入地址学习状态后30 s内,如果学不到正确的地址,模块会自动退出该状态,然后自动将灯关闭。
结语
从国内家庭自动化的发展现状来看,系统的价格仍是很大的决定因素。本载波模块的设计具有廉价、实用的特点,能从根本上避开专用载波芯片的各种限制,技术实现简单且能满足家庭自动控制的需要。但是受某些条件的限制,该方案设计出来的模块只能用于普通白炽灯的控制,而无法用于日光灯和节能灯的控制。因此,如何在此方案的基础上,增加对日光灯和节能灯的支持,是需要进一步研究的地方。