摘要:为了组建一个家庭电能网络监测和管理各种电器,使所有的电器协调运行而达到节能最大化的目的,提出了一种基于电力线载波的嵌入式家庭网关的设计方案,并完成了系统的软硬件设计。该网关以ATmega128为主控制器,集成了IT700PIM电力线载波通信芯片和ENC28J60网卡芯片,移植了uIP协议栈,在智能家庭网关的硬件平台上实现了嵌入式的web server功能。实验结果表明,该网关达到了设计要求,满足智能家居的要求。
关键词:电力线载波;家庭网关;电能管理;嵌入式web server
引言
在我国,大量电子产品及电器的使用造成了家庭和办公领域能源消耗的急剧增长,节能问题迫在眉睫。因此组建一个电能网络对用户的电器进行监测并优化各电器的运行,从而达到节约电能的目的,显然是十分必要的。与此同时,随着数字家庭和智能楼宇的发展,电力线载波(Power Line Communication,PLC)技术重新得到了重视,它不需要重新架设网络就可以进行数据传送,并且在一个家庭或一个楼宇范同内充分屏蔽了PLC的局限性,非常适用于组建家庭和办公领域用户的电能网络。
本文设计的基于电力线载波通信的嵌入式家庭网关,可以通过电力线载波通信组成用户电能网络,用户可以随时以各种方式登录Intern et对家电进行控制并可以随时查询家电的各种状态,根据电能消费情况制定合理的用电方案,最大限度地减少电能支出,实现家庭的电能管理。
1 总体设计方案
家庭网关的总体设计方案如图1所示。系统以AVR单片机ATmega128作为核心控制器,负责控制和协涮IT700PIM电力线载波通信模块、以太网模块的工作,实现各家用电器的控制和电能信息的采集,并在电能网关中实现嵌入式的webserver功能,以便用户内部网络与Internet进行信息交互。
2 硬件设计
2.1 ATmega128控制核心
采用Atmel公司生产的AVR系列单片机中的ATmega128作为PLC节点的控制核心。与普通的8位单片机相比,ATmega128具有运算速度快、资源丰富、功耗低等特点。ATmega128的最高运行速度可达16 MIPS,具有53个I/O接口、128 KB的Flash、4 KB的EEPROM、4 KB的SRAM、1个SPI接口、2个USART串行接口,很适合用于控制和通信。在ATmega128应用过程中,首先没计了ATmega128核心板,其他功能模块与ATmega128核心板进行捅接即可完成网关电路的设计。ATmega128的晶振电路、复位电路等基本电路和JTAG调试端口连接较为简单,在此不作详述。
2.2 供电电源
网关采用220 V转5 V的AC/DC,其最大功率为5 W的供电电源,并使用REG1117芯片完成5 V转3.3 V供电电源的没计。网关中核心控制器ATmega128采用5 V电源供电,以太网模块采用3.3 V电源供电。网关供电电源电路如图2所示。
2.3 IT700PIM电力线载波通信模块
IT700PIM是以色列Yitran公司生产的以高度集成的系统级电力线载波通信芯片IT700为核心的电力线载波通信模块。IT700PIM采用DSCK调制方式,集成的模拟前端为其提供了不同的线路驱动能力,使数据传输更加稳定可靠。IT700芯片整合了极其强大的物理层(PHY)、高性能的数据链路层(DLL)以及稳定的网络层(Y-Net)协议。同时IT700芯片还为协议栈配备了一个256KBFlash的8051微控制器,另外还有24个通用I/O端口供实际应用。IT700PIM配有专用的AC/DC电源模块,内部集成信号耦合器,该电源模块的功率为2.5 W,可为IT700PIM模块提供3.3 V直流电源及电力线通信接口,同时还提供5 V直流电源为其他功能模块供电。
IT700PIM的所有输入引脚均兼容5 V电平,只需给IT700PIM输出到ATmega128单片机的串口信号电平做电平转换即可,电平转换采用4-2输入与门芯片74 HCT08进行通信。IT700PIM模块的外围电路如图3所示。
2.4 以太网模块
本设计中使用已经开发完成的以太网模块,包括网卡芯片ENC28J60、HR911102A以及相关的外围电路,其中HR911102A内置隔离变压器和RJ45以太网接口。网卡芯片采用ENC28J60,经HR911102A内置的隔离变压器和RJ45以太网接口,实现电能网关的Internet接入。
该模块通过SPI接口与电源和控制器相连,网卡芯片ENC28J60采用3.3 V供电电源,ENC28J60的所有引脚均兼容5 V电平,只需要74HCT08完成ENC28J60输出3.3 V电平向5 V电平的转换。以太网模块与ATmega128的连线如图4所示。
3 软件设计
为了实现以太网和电力线载波网络的信息交互,家庭网关需要实现uIP协议栈,并和多主站网络管理协议、Y-Net协议协调丁作,其软件架构如图5所示。在家庭网关的以太网通信部分,web servet通过uIP协议栈和网卡驱动程序完成以太网数据包软件部分的收发,用户可以通过客户端web浏览器查看web server中定制的能量信息和向web server发送控制用户电器供电及断电的信息。在用户内部的电力线载波通信网络中,通过多主站网络管理协议和Y-Net协议实现电能网关和各电器的组网。
3.1 网关的各节点通信
主程序中确定了节点上电后的运行过程,通过调用IT700PIM模块初始化子程序,IT700网络层协议信息处理子程序,IT700网络层协议地址请求子程序,IT700串口接收数据子程序,IT700发送数据报文子程序,来实现网关与各节点的联网与通信。
3.2 uIP协议的移植
uIP是嵌入式TCP/IP协议栈,只保留了TCP/IP协议不可或缺的部分,将设计重心置于IP(网际协议)、TCP(传输控制协议)、UDP(用户数据包协议)、ARP(地址解析协议)、ICMP(Internet控制报文协议)这些网络层和传输层协议之上,简化了通信的流程,保证了代码的通用性及结构的稳定性。uIP可以看作一个在其内部实现TCP/IP协议的机器,通过一些API同底层驱动和上层应用程序进行交互。
为了实现uIP协议在ATmega128的移植,本设计使用了uIP协议栈文件中uip和unix目录下的7个子文件:其中uip.c和uip.h作为协议栈的核心部分负责TCP、IP、ICMP协议的实现;uip_arp.c和uip_arp.h负责ARP协议的实现;uip_arch.c和uip_arch.h提供IP校验和函数;ui popt.h用于对协议栈的各种参数进行配置。其中包括IP地址、支持的IP地址类型、MAC地址、允许的最大连接数等参数的设定。在服务器端,uIP协议栈通过调用uip_listen()函数侦听来自端口的被动连接请求。
3.3 ENC28J60驱动程序设计
ENC28J60通过SPI与ATrrtoga128实现接口,ATmega128通过SPI接口向ENC28J60发送命令,以访问和设置相关寄存器、读写接收/发送数据缓冲区以及执行其他相关操作。ENC28J60驱动程序流程图如图6所示。
ENC28J60主要为上层应用提供3个函数:
①网卡初始化函数:主要完成网卡芯片与控制器SPI接口的初始化;设置接收/发送数据缓冲器的起始地址及大小;初始化网卡的工作模式;设置网卡的MAC地址。
②读包函数:当网卡的接收缓冲器接收到数据包时,对数据包进行读取,将接收到的数据包放入全局缓存区,释放网卡接收缓冲器的内存,并返回数据包的长度。
③发包函数:当全局缓存区有数据包需要发送时,将数据包送入发送数据缓冲器进行发送。
4 测试结果
为测试该家庭网关的联网效果,搭建PLC网络通信实验平台,它由4个普通节点、一个网关节点和PC机构成。每个普通节点包含一个AVR控制器模块和一个IT700PIM电力线载波通信模块。实验中网关的PLC模块直接与PC机通过串口相连,PC机使用Yitran公司开发的IT700PLCStu dio软件,在线监视PLC网络的运行,测试各节点能否成功联网及联网所需时间。为了验证PLC网络通信的抗干扰能力,加干扰后测试各节点能否成功联网及联网所需时间。
测试结果如表1所列,各节点在两种情况下均可成功联网并且测试联网时间满足家庭各电器的通信要求。
利用Dreamweaver网页设计平台完成了家庭电能管理系统登陆界面和主界面网页的设计,在家庭能量管理系统主界面中,可以查看各个节点的相关信息,同时还可以对各节点进行控制。
本设计中,通过网页左上角节点1、节点2等按钮查看各个节点的能量信息;通过左下角的图片按钮控制各节点供电;通过右边的网络示意图显示各节点是否正常组网。在浏览器中输入电能网关IP地址后,首先进入登陆界面,输入用户名和密码后进入家庭能量管理系统主页面,如图7所示。从页面的效果可以看出,本设计实现了家庭能量管理系统的基本功能,主页面正确显示了相应的信息,完成了预期的目标。
结语
本文采用ATmega128处理器和IT700PIM电力线载波通信芯片以及ENC28J60网卡芯片,实现了家庭网关的没计。系统设计方案具有结构简单、成本低、工作方式灵活可靠、通信距离较远、抗干扰能力强等特点。
实验证明:该网关可以通过电力线载波通信组成用户电能网络,从而控制优化各个房问家用电器的运行,最终达到节约电能的目的,可以广泛地应用到智能家庭和智能楼宇系统中。