《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于电力载波通信的家电控制系统设计与实现
基于电力载波通信的家电控制系统设计与实现
来源:微型机与应用2012年第1期
孙 萍,马维华
(南京航空航天大学 计算机系,江苏 南京 210016)
摘要: 设计并实现了一种利用电力载波通信的家用电器智能控制系统。该系统以ARM Cortex-M0为主控制器,集成了电力线载波芯片BWP08、传感器、红外学习与发送电路以及基本外围接口等电路,实现了家用电器的集中化和自动化控制。该系统通过PC或者智能终端发出控制命令,经载波芯片和调制电路耦合传送到各个接收终端,由微控制器进行命令解析与执行,实现家电的集中控制,微控制器亦可根据传感器上传的数值对家电进行自动化控制。实验结果表明,该系统方便、稳定、可靠。
Abstract:
Key words :

摘  要: 设计并实现了一种利用电力载波通信的家用电器智能控制系统。该系统以ARM Cortex-M0为主控制器,集成了电力线载波芯片BWP08、传感器红外学习与发送电路以及基本外围接口等电路,实现了家用电器的集中化和自动化控制。该系统通过PC或者智能终端发出控制命令,经载波芯片和调制电路耦合传送到各个接收终端,由微控制器进行命令解析与执行,实现家电的集中控制,微控制器亦可根据传感器上传的数值对家电进行自动化控制。实验结果表明,该系统方便、稳定、可靠。
关键词: 电力载波通信;Cortex-M0;传感器;红外学习;智能家居

 电力载波通信PLC(Power Line Communication)是电力系统特有的通信方式。它是利用现有电力线,通过载波方式将模拟或数字信号进行高速传输的技术。由于其自身的一些局限性,如配电变压器对电力载波信号有阻隔作用;不同的信号耦合方式对电力载波信号损失不同;电力线上的固有的脉冲干扰对信号的高度削减,因此,PLC的生存空间不断地被其他接入方式压缩,但在远程抄表上还是有着广泛的应用。随着数字家庭和智能楼宇的广泛应用,PLC技术重新得到了重视,它不需要重新架设网络就可以进行数据传送,并且在一个家庭或一个楼宇范围内充分屏蔽PLC的局限性,因此,PLC在智能家居系统中的应用越来越广泛。本文利用PLC设计了一个基于ARM Cortex-M0的家电集中化与自动化控制系统,使用户可以通过PC或定制的智能终端对家用电器进行监视与控制。
1 系统结构
 家用电器的智能控制系统由检测模块(亮度传感器、温湿度传感器等)、微控制模块、电力载波模块、红外学习与控制模块以及上位机软件组成,系统结构图如图1所示。

 用户通过智能家居终端(PC或定制终端)下发控制命令,命令通过电力载波芯片BWP08以及耦合电路耦合到电力线上进行传输,接收端(由BWP08及耦合电路组成)接收到电力线上的高频信号后将数据解调并发送至微控制器(MCU),微控制器经数据验证后,对命令进行解析,通过红外或是其他控制方式对家用电器进行控制,实现了对家电的集中控制。同时,微控制器可接收亮度传感器和温湿度传感器的检测数值(光强度、温湿度),根据光强度与用户设定的阈值进行比较进行百叶窗的自动调节及灯光控制,根据温、湿度与阈值的比较进行空调或供暖系统的自动控制,从而制造了一个自适应的舒适环境,实现了家用电器的自动控制。控制的阈值可通过命令写入微控制器,微控制器也可以把传感器采集数据及命令操作后的结果传输至上位机数据库,供用户查询与设定自动控制条件。
2 硬件电路设计
2.1 微控制器模块

 微控制器是整个系统中最重要的模块,需进行数据的实时采集、家电状态监控、红外遥控器功能学习,家电控制等任务。微控制器选用NuMicro M051系列中的M0516LAN(以下简称M0),它是基于ARM Cortex-M0内核的32 bit微控制器,提供多种通信接口,包括多组GPIO、UART、SPI、I2C,可直接与各类外接设备通信,内建8 KB Flash存储器,4 KB非易失性数据存储区,可用于存储各类红外遥控器编码。微控制器模块除了电源模块、时钟电路、复位电路、调试接口等基本电路,还包括与检测模块接口电路、灯具控制电路、红外学习与发送电路以及与载波芯片的连接电路,M0的电源模块、时钟电路等基本外围电路如图2所示。电源采用5 V电源输入,经AMS1117-3.3转为稳定3.3 V数字电压输出供芯片工作,并经电感滤除高频干扰可得模拟电压3.3 V;时钟电路采用12 MHz晶振电路;复位电路使用按键复位降低成本。

2.2 检测模块接口电路
 温度传感器采用DHT11,它是一款集温度、湿度为一体的数字传感器,包括一个电阻式测湿元件和一个 NTC测温元件,可以实时采集本地环境的湿度和温度,提供单总线方式与控制器通信,设计中使用M0的I/O口与之通信,传输距离可达20 m。为了准确全面获取室内空间的温湿度,可连接多个DHT11。
 光强传感器使用ROHM公司的16 bit串行输出型环境光亮度传感器BH1710FVC,拥有优异的分光感度特性,无论是暗处还是在阳光直射下都近似于人类视觉感应,能够进行大范围的亮度测定,提供I2C接口。而M0拥有数据传输率高达1 Mb/s的I2C总线,通过限流电阻R4、R5与上拉电阻R1、R2分别与BH1710FVC的SCL、SDA相连,时钟信号由主机M0提供,利用主从通信方式进行测量命令的写入与测量结果的读出。传感器与M0硬件连接图如图3所示。

 

 

2.3 控制模块接口电路
 家电智能控制系统可以用来集中控制提供控制接口的电器以及一些仅有开、关状态的电器,如普通灯具、饮水机。对于机械式开关的电器及插座,通过M0的I/O口控制继电器,从而控制电器的上电、断电,使用一组I/O便可控制一组灯具的开关。而电视、空调、百叶窗提供红外控制接口,本系统实现了万能遥控器的功能,不但可红外遥控不同品牌的同种电器,也可对不同电器进行控制。只需先运行一次M0的红外学习功能,将不同遥控器的不同功能的编码学习到M0中,即可实现万能遥控。红外学习硬件电路设计如图4(a)所示,仅由红外接收器HS0038b及滤波电容电阻组成。HS0038b可接收主要的传输码,解调信号通过OUT脚上传至微处理器解码,根据高低电平持续时间长短判断为0或1。编码由引导码、功能编码、结束码组成,将编码与功能对应存储到M0的Flash存储器中。当微控制器接收上位机的操作命令时,查找功能编码表,将对应编码通过I/O脚电平发出、低频电平信号经过红外发射电路变为高频信号,受控的电器接收后即可执行相应操作。对电器而言,这一操作无异于原配的遥控器操作。红外发射电路如图4(b)所示,电平信号经过低频放大器9013与高频放大器8050,即可将信号变为红外发射频段,由红外发射二极管发出红外线。

2.4 电力载波模块
 上位机下达控制命令到微控制器,微控制器上传数据到上位机,传输介质使用家中已布好的电力线。为使信号能在电力线上传输,需要电力载波芯片及耦合电路。本系统选用深圳必威尔科技有限公司专门针对智能家居及灯饰控制市场研发设计的专业电力线载波产品BWP08,其核心芯片采用专用电力载波集成电路,采用扩频编码方式,通信速率高,通信可靠,抗杂波干扰能力强,通信距离远,产品体积小。BWP08提供UART和SPI两种接口与控制器通信,电力线上高频信号由SIN脚进入芯片,片内集成电路进行解调,解调后的数据经UART或SPI接口输出。同理,输入的低频信号经电路调制变为高频信号由VO脚输出,载波频率可调。EN50065-1标准规定,用户可使用的载波频率范围为95 kHz~148.5 kHz,BWP08提供65 kHz、88 kHz、113 kHz、140 kHz、170 kHz和202 kHz这6种载波频率,使用113 kHz载波频率即可。BWP08与电力线及微控制器连接电路如图5所示。

 BWP08与微控制器通过UART相连,连接读写数据比SPI简单方便。与电力线的连接相对复杂些。第2管脚F连接100 μF的滤波电容,在输入输出脚上并接调谐电路,选择电感线圈与电容大小,使LC谐振电路谐振点在载波频率附近,此时的电路电阻达到最大值,信号可输入或输出,当有噪音干扰信号传来时将过滤到大地。输出信号经过三极管BD237使电流放大输入到变压器耦合电路前端,在12 V的工作电路中将传输信号耦合到变压器后端的220 V电力线上。电力线上有压敏电阻、保险丝等保护电路。电路中P6Ke20CA、P6Ke30CA可抑制雷击等瞬态高压对电路造成的侵害。BWP08电力载波模块不能跨相传输数据,所有相互通信的模块必须处于同一相中。如果用户无法确认相互通信的模块是否处于同一相中,可在主控模块处增加一个三相耦合器,确保主控模块与三相下的任意一个模块进行通信。由于PC提供标准RS232接口,BWP08与PC连接时需增加串口电平转换芯片MAX232进行电平转换。
3 软件设计
3.1 通信协议

 本系统中,多个设备安装在同一条电线上,又是异步半双工的工作方式,为确保数据的可靠传输,采用主从通信方式,每次通信由上位机发起,从机中断接收,然后将数据反馈给主机,主机收到反馈数据后再发起新的一轮通信。BWP08模块提供固定字节长度和固定帧长度两种数据传输格式:固定字节长度指接收模块每次收到数据帧头后,只接收预设长度的用户数据;固定帧长度指接收模块每次可以接收小于或者等于预设帧长度的数据,但如果在数据接收时,数据帧尾丢失,那么接收模块必须收满预设最大帧长度为止。帧头和帧尾是载波模块自动加入的,用户不可见,固定字节长度传输模式无需帧尾,且数据字节数可任意定,而固定帧长度格式最小帧长度为32 B。在本系统中,主机下达给从机的命令有开关灯、开关空调、调节温度、调节百叶窗及相应的红外命令学习等;下位机上传至上位机的数据有温湿度、光强、灯状态、空调工作状态、红外学习编码等,在一次控制家电操作中,所要传输的数据量较少,因此选择固定字节长度格式。为避免电力线上的杂波信号被当作有用数据被本系统主机或从机所误接收,发送数据加上固定字头和字尾,各占1 B,主机、从机地址占1 B,控制命令或反馈数据占4 B,校验码是对此码前所传送的所有数据进行加法,进位溢出保留尾数1 B,接收方接收数据后进行数据的正确性验证,数据传输共8 B,格式如表1所示。

 BWP08模块提供1 200 b/s、2 400 b/s、4 800 b/s及9 600 b/s 4种串口波特率。实验间隔1 ms连续发送数据,采用1 200 b/s波特率进行传输,数据无丢包、错乱,因此系统的PC端、M0控制端和BWP08传输端全部将波特率设置为1 200 b/s。
3.2 上位机软件实现
 上位机采用VC++6.0作为开发环境,Windows系统提供的API函数可以简单地实现Socket、串口编程与多线程技术,通过人机交互轻松地实现串口通信与后台服务处理。界面开发使用MFC,数据库使用Access。MFC框架与Access同为微软开发,Access为微软Office中提供的一个轻量级数据库,适合个人使用;同时,MFC中封装了对Access的直接访问控件ADO Data Control,通过该控件可以轻松地访问数据库中的数据;MFC使用Win API实现串口通信。通信软件中,主线程负责通过串口控制对微型控制器下发命令,多个下发命令需排队等待发送;子线程负责监听微控制器的返回上报请求,收到反馈数据后唤醒主进程队列进行发送。
3.3 下位机软件实现
 上电后,M0516LAN进行串口初始化、定时器初始化等,然后定时读取温湿度数据、光强度数据,连续读满10次。去掉干扰数据后进行数据处理,将数据打包等待发送。串口利用中断接收,当收到数据时,收满8 B数据,若为本机地址,进行数据校验,否则丢弃。校验正确后,通知M0接收到命令。主循环判断是否接收到上位机命令,进行命令解析并执行,然后将M0准备好的数据及命令执行后的状态返回给上位机。M0的软件流程图如图6所示。

 上位机发送的命令有三类:(1)设定系统为自动控制方式,M0根据采集的温湿度、光强度进行家电的自动控制,上位机定时获取采集数据;(2)设定系统为集中控制方式,家电的控制命令皆由上位机发送;(3)开启红外学习,上位机发送学习要求,M0保存收到的红外编码,将两者形成表格存储在M0中,上位机可以把整张表格取走,发送给其他M0。
 实验证明,PC机可以利用电力载波通信技术与微控制器进行数据传输,从而达到控制各个房间家用电器的目的,做到家电集中控制与自动控制,给人提供一种舒适、智能的家居环境。系统选用的Cortex-M0资源广泛、性能可靠、成本低廉,可留作以后更多的功能扩展。例如,可以增加网络模块使家电网络化,扩展音频模块可语音控制家电,使得智能家居真正智能化。在实际环境测试中,交流电网干扰因素较多,应从系统的软硬件同时改进以减少干扰带来的数据错误与控制错误。电力载波通信的优势在家庭应用中日益显现,同时也广泛应用于无线抄表、远程路灯控制等。
参考文献
[1] 谢昆.基于电力载波通讯的智能家居控制系统[EB/OL].[2005-07].www.ecnchina.com
[2] 许文香,蔡丽娟,张文勇.基于电力载波的教室电器智能节能系统设计[J].现代电子技术,2008(8):189-191.
[3] 朱兆优.低压电力载波通信中的抗干扰设计[J].电器应用,2006,25(3):75.
[4] SWANKE J E. Visual C++ MFC扩展编程实例[M].前导工作室,译.北京:机械工业出版社,2000.
[5] 范云龙,方安平,李宁.Cortex-M0处理器初探[J].单片机与嵌入式系统应用,2010(6):78-81.

此内容为AET网站原创,未经授权禁止转载。