王颋,吴兆云,田于财,王利民,王慧鑫
(重庆邮电大学 网络控制技术与智能仪器仪表教育部重点实验室,重庆400065)
电力线通信(Power Line Communication)技术是指把载有信息的高频加载于电流,利用既有电力线进行传输,通过调制解调器将高频信号从电流中分离出来,传送给计算机或其他信息家电,以实现信息传递。
利用电力载波通信技术,系统网络无需另外布线,降低了成本。电力网是覆盖范围最大的网络,只要是接入电力线的电力设备就能进行通信。每个导电插座都是网络的接入点,数目多而且比较方便。无需拨号,只要导电就能接入网络,具有灵活、方便、速率快等优点,适合对家庭设备的控制和监控。
智能家居控制系统控制和监视着家庭中各种设备的运行,如空调、微波炉等设备的开关及工作状态的调节。本文综合智能家居系统的功能和要求,研究了一套基于电力线通信的智能家居控制系统方案,系统总体结构如图1所示。
该控制系统主要分上层网络和底层网络两个部分。底层网络是指家庭内部的电力线网络,将家中的所有家电、照明设备、各种报警探头和水表等设备通过电力线终端连接到住宅中的220V电力线上,继而通过μC/OS系统控制器,构成基于电力线载波的家庭内部网络,用以实现家庭各种开关设备、电器设备以及各种仪器仪表的控制。上层网络是指家庭内部网络与外部以太网的连接,家庭内部网接入以太网以实现设备数据的存储、PC端和手机终端的远程控制和Android监控功能。
图1 智能家居控制系统结构图
μC/OS控制器是整个系统的控制核心,主要有现场控制和远程控制两种方式。现场控制时,通过人机交互界面,实现设备控制和信息显示。远程控制时,通过以太网与远程PC机服务器建立连接,接收发来的各种控制和查询命令,并通过电力线将这些命令传送到控制节点,控制相应的设备执行动作。μC/OS系统控制器还能够监测各控制节点的状态,家庭中的设备定时向μC/OS系统控制器发送状态信息,如发现故障或者不正常的操作时,控制器将做一些紧急的处理,如关闭电源等,并发出故障报警信号给服务器,通过服务器将报警信号转发给远程Android手机终端。
家庭内部设备通过控制节点连接到220V电力线上。控制节点不但能够实现对电器设备的本地控制,还能接收μC/OS系统控制器发来的控制命令,根据编码地址控制对应地址的设备发生动作。每个家电、设备、仪表都有自己唯一的地址来标识,从而保证控制的唯一性。各控制节点对从电力线传过来的载波信号进行解析和地址判定。若地址与本节点所连设备相符,则执行机构执行相应命令,继电器进行吸合或者释放动作,实现对目标的开/关控制,同时返回目标的开/关状态。控制节点还可以向μC/OS系统控制器上传所采集设备实时状态,如开/关状态、电压、电流等,同时还会定时上传各种仪表的实时采集信息。
在μC/OS系统控制器和各控制节点上都内嵌有电力线载波通信模块,它们之间通过电力线载波通信模块进行通信。它们承担系统的模拟量、脉冲量和开关量采集任务。户内的温度控制器、水浸控制器等设备中加装的模块进行模拟量采集,控制节点处的电力线载波通信模块将输入的模拟量转换为电平信号,以0、1数字量通过单片机写入数字帧,再经调制解调芯片转换为载波信号,通过电力线发送给μC/OS系统控制器处的电力线载波通信模块。采用类似原理,将接收的载波信号解调出数字帧,还原为数字量发给μC/OS系统控制器。各种开关设备以及模拟量上传设备均通过该原理实现。
μC/OS系统控制器和控制节点内部均有电力线载波通信模块,两者通过该模块进行通信。控制节点处的载波通信模块把从家庭设备中采集到的开关量、模拟量处理后通过电力线传输到控制器的载波通信模块,经过解调处理后还原为初始信号,再通过串口发送给μC/OS系统控制器,进行相应的数据处理。同样,μC/OS控制器向下发送控制命令时,先通过控制器上的载波通信模块进行调制、处理,再经过控制节点的载波通信模块进行解调转换后再发送给相应的设备,实现控制。
μC/OS系统控制器采用ARM7TDMI内核的微控制器,外接电源模块、电力线载波通信模块、GPRS无线收发模块、LCD模块、触摸屏模块、Flash模块等,硬件模块结构示意图如图2所示。
图2 系统控制器硬件结构示意图
微控制器是系统的主控点,向下通过电力线载波通信模块与各控制节点进行通信,实现家庭内部网的本地监控;向上通过GPRS无线收发模块与局域网相连,进而通过以太网与远程主机连接起来,实现了系统的远程监控功能。微控制器采用Atmel公司的AT91RM40008芯片,一款基于ARM7TDMI内核的32位控制器,工作频率为66MHz,其片内集成了256KB RAM,可以将代码直接运行在片内RAM上,使得应用程序的设计可以采用任务查询方式,增强了系统的稳定性。两个全双工通用同步/异步收发器(UART)与外围控制器PDC连接,整段数据交给硬件自动收发处理,比单字节处理大大减轻系统处理压力,保证了系统的实时性。电路图略——编者注。
μC/OS系统控制器界面显示采用7寸LCD屏幕,800×480像素分辨率,提供了良好的人机交互界面。驱动控制采用SSD1963Q芯片,可以显示16×16、32×32等汉字和字符。触摸屏模块中采用TI公司的ADS7843芯片,它是12位取样模/数转换器,具有功耗低的优点,适合用于该核心控制器。电路图略——编者注。
电力线载波通信芯片是电力线载波通信系统的核心,在该控制系统中,选用了力合微公司生产的LME2980芯片,该芯片具有抗干扰能力强、灵敏度高等优点,集成了看门狗等电路,确保了工业环境下的可靠性。电力线载波通信电路设计如图3所示。
图3 PLC电路设计图
μC/OS系统控制器的软件设计可以分为3层:应用层、中间层和驱动层。驱动层是整个软件控制系统工作的基础,主要包括LCD驱动、定时器驱动、CPU驱动等;中间层主要实现中间层对底层不同设备的兼容和向上层提供各类应用程序开发的统一接口,主要包括一些C库函数、底层功能函数以及μC/OS系统调用接口;应用层通过调用中间层提供的接口,完成界面控制、网络通信、串口通信等功能用以控制智能家居设备。控制器的软件模块层次图如图4所示。
图4 软件模块层次图
载波通信过程中,载波通信控制单元发送完一位扩频数据后,自动产生一次中断,允许下一位数据发送。根据捕获和同步过程需要,首先发送至少42位的全“1”数据,本文中发送45位全“1”数据;然后按位发送同步帧头0xA5;之后根据用户的有关通信协议按位发送通信地址、数据长度、数据体、校验等字节。数据全部发送完后,载波通信模块即可转为接收态。但为确保待发送数据的最后一位发送成功,必须在发送完最后一位数据后的下一次发送中断到来后,才可以转换载波发送态到接收态。载波发送过程中,CPU必须使计数器复位,避免自动复位提前进入载波接收态。
为了保证命令数据传输的实时性,将协议设计如下:设备地址+数据包+数据包类型+命令长度+命令设备+设备子命令+命令参数+校验和。设备地址为命令上传或者下发时从设备的物理地址;数据包根据数据的传输方向分为请求数据包和响应数据包,分别对应于处理器向下发送命令和子设备回复数据包;命令长度表示了后续命令包的长度;命令设备、设备子命令和命令参数等表示针对不同的子设备,需要发送的命令格式也不同;校验和是指所有帧数据的数据和。
接在电力线上的子设备主要分为两类:一类是需要上传状态信息的设备,主要包括空调、微波炉、冰箱、热水器和洗衣机等;还有一类就是开关型设备,只需实时查询即可,无需上传状态信息,如日光灯等开关型设备。
为了给用户提供良好地交互操作,在μC/OS系统控制器中还设计实现了人机互操作界面。当系统启动以后,系统会先进行初始化,并要求用户输入正确的账号和密码。在正确输入密码后,用户就可以通过控制界面对家庭中子设备发送查询、控制等命令了。如果输入密码错误次数超过3次,系统将自动上锁,12小时内用户将无法通过界面对设备进行控制。界面设计流程如图5所示。
随着物联网及互联网在智能家居中的应用以及智能手机操作系统Android的不断发展,结合2G/3G/WiFi网络通信方式,通过Android系统的手机终端实现远程控制家庭设备已经成为现实。
系统主要包含了网络连接、数据传输、消息包截取、消息包解析、消息包处理、用户界面6个子模块。当用户启动了该手机终端控制系统之后,首先和网关建立通信连接,为后续的数据传输奠定基础。数据传输模块是作为一个单独的线程出现的一方面,主要是考虑到网络数据传输的时间不确定性,避免阻塞主UI线程;另一方面,独立出来是为了将来传输协议更改之后,数据传输不受影响,提高了代码的重用性。由于接收到的数据都是字节流的,因此需要根据消息包的约定方式从数据中截取正确的消息包,同时根据消息包的类型和消息名调用相应的函数进行处理。用户界面模块则为用户提供了一个友好操作的平台。各模块具体介绍如下。
图5 界面设计流程图
网络连接模块:系统在启动后,连接上网络,然后通过网络与服务器端的网关模块建立通信连接,进而传输用户所选择的查询或者控制命令。
数据传输模块:该系统一方面要发送各种请求包向服务器请求房间、节点等状态信息,发送一些控制包去管理各个节点设备的状态,另一方面也要接收从服务器端返回来的各种向用户显示的数据包。
消息包截取模块:在接收到从服务器返回的数据之后,由于数据是字节流的,所以要根据约定按照包头、包长和包尾从中截取出可用的正确消息包。
消息解析包模块:在截取消息包之后,根据约定好的包组装字段对消息包进行解析,从中得到包类型、消息名和附带的消息数据,以便后续模块进行相应的处理。
消息包处理模块:依据解析得到的包类型和消息名,对包中的数据进行处理,取得所需要的控制节点的相关状态信息。
用户界面模块:提供一个简单易用的用户界面,这里主要有以下几个子界面,首先用户看到的是软件的欢迎及启动界面;第2个是房间选择界面,根据房间号码选择所要进行操作的房间;第3个是控制节点选择界面,用户选定节点,接着选择对各种设备是进行控制还是查询,若是查询则把从服务器接收到的内容显示到状态显示界面,如果是控制命令则将控制命令发送给网关,由网关转发给控制器。
通过Android系统远程控制设备时的软件界面如图6所示。
图6 终端控制软件界面
本文立足于电力线载波通信技术,基于μC/OS实时控制系统和Android终端控制系统,研究开发了基于电力线载波通信的智能家居控制系统,介绍了高可靠、高稳定、强实时性的良好软件设计和符合国内发展现状的硬件设计,通过电力线载波通信方式为用户提供安全、舒适、便利、信息畅通的高效居住和生活环境。经过实际测试,系统满足运行要求,在进一步测试和优化后可投入市场。
编者注:本文为期刊缩略版,全文见本刊网站www.mesnet.com.cn。
[1]唐伟,周德祖.嵌入式智能家居系统网关设计[J].武汉理工大学学报:信息与管理工程版,2009,31(3):391 393.
[2]葛炎风,林苏斌,缪希仁.基于电力线载波通信技术的智能家居控制系统设计[J].现代建筑电气,2011,3(2),15 19.
[3]黄益华,肖贵元,蒋承延.电力线载波数字通信技术上网研究[J].重庆电力高等专科学校学报,2008,13(1):6 9.
[4]宋倩,李祥珍.基于电力线通信技术的智能家居系统[J].电力系统通信,2004(12):3 4.
[5]孙静.基于以太网智能家居控制器的研究与实现[D].西安:西安科技大学,2006:3 4.