基于電力線載波的嵌入式家庭網(wǎng)關設計
摘要:為了組建一個家庭電能網(wǎng)絡監(jiān)測和管理各種電器,使所有的電器協(xié)調(diào)運行而達到節(jié)能最大化的目的,提出了一種基于電力線載波的嵌入式家庭網(wǎng)關的設計方案,并完成了系統(tǒng)的軟硬件設計。該網(wǎng)關以ATmega128為主控制器,集成了IT700PIM電力線載波通信芯片和ENC28J60網(wǎng)卡芯片,移植了uIP協(xié)議棧,在智能家庭網(wǎng)關的硬件平臺上實現(xiàn)了嵌入式的web server功能。實驗結果表明,該網(wǎng)關達到了設計要求,滿足智能家居的要求。
關鍵詞:電力線載波;家庭網(wǎng)關;電能管理;嵌入式web server
引言
在我國,大量電子產(chǎn)品及電器的使用造成了家庭和辦公領域能源消耗的急劇增長,節(jié)能問題迫在眉睫。因此組建一個電能網(wǎng)絡對用戶的電器進行監(jiān)測并優(yōu)化各電器的運行,從而達到節(jié)約電能的目的,顯然是十分必要的。與此同時,隨著數(shù)字家庭和智能樓宇的發(fā)展,電力線載波(Power Line Communication,PLC)技術重新得到了重視,它不需要重新架設網(wǎng)絡就可以進行數(shù)據(jù)傳送,并且在一個家庭或一個樓宇范同內(nèi)充分屏蔽了PLC的局限性,非常適用于組建家庭和辦公領域用戶的電能網(wǎng)絡。
本文設計的基于電力線載波通信的嵌入式家庭網(wǎng)關,可以通過電力線載波通信組成用戶電能網(wǎng)絡,用戶可以隨時以各種方式登錄Intern et對家電進行控制并可以隨時查詢家電的各種狀態(tài),根據(jù)電能消費情況制定合理的用電方案,最大限度地減少電能支出,實現(xiàn)家庭的電能管理。
1 總體設計方案
家庭網(wǎng)關的總體設計方案如圖1所示。系統(tǒng)以AVR單片機ATmega128作為核心控制器,負責控制和協(xié)涮IT700PIM電力線載波通信模塊、以太網(wǎng)模塊的工作,實現(xiàn)各家用電器的控制和電能信息的采集,并在電能網(wǎng)關中實現(xiàn)嵌入式的webserver功能,以便用戶內(nèi)部網(wǎng)絡與Internet進行信息交互。
2 硬件設計
2.1 ATmega128控制核心
采用Atmel公司生產(chǎn)的AVR系列單片機中的ATmega128作為PLC節(jié)點的控制核心。與普通的8位單片機相比,ATmega128具有運算速度快、資源豐富、功耗低等特點。ATmega128的最高運行速度可達16 MIPS,具有53個I/O接口、128 KB的Flash、4 KB的EEPROM、4 KB的SRAM、1個SPI接口、2個USART串行接口,很適合用于控制和通信。在ATmega128應用過程中,首先沒計了ATmega128核心板,其他功能模塊與ATmega128核心板進行捅接即可完成網(wǎng)關電路的設計。ATmega128的晶振電路、復位電路等基本電路和JTAG調(diào)試端口連接較為簡單,在此不作詳述。
2.2 供電電源
網(wǎng)關采用220 V轉(zhuǎn)5 V的AC/DC,其最大功率為5 W的供電電源,并使用REG1117芯片完成5 V轉(zhuǎn)3.3 V供電電源的沒計。網(wǎng)關中核心控制器ATmega128采用5 V電源供電,以太網(wǎng)模塊采用3.3 V電源供電。網(wǎng)關供電電源電路如圖2所示。
2.3 IT700PIM電力線載波通信模塊
IT700PIM是以色列Yitran公司生產(chǎn)的以高度集成的系統(tǒng)級電力線載波通信芯片IT700為核心的電力線載波通信模塊。IT700PIM采用DSCK調(diào)制方式,集成的模擬前端為其提供了不同的線路驅(qū)動能力,使數(shù)據(jù)傳輸更加穩(wěn)定可靠。IT700芯片整合了極其強大的物理層(PHY)、高性能的數(shù)據(jù)鏈路層(DLL)以及穩(wěn)定的網(wǎng)絡層(Y-Net)協(xié)議。同時IT700芯片還為協(xié)議棧配備了一個256KBFlash的8051微控制器,另外還有24個通用I/O端口供實際應用。IT700PIM配有專用的AC/DC電源模塊,內(nèi)部集成信號耦合器,該電源模塊的功率為2.5 W,可為IT700PIM模塊提供3.3 V直流電源及電力線通信接口,同時還提供5 V直流電源為其他功能模塊供電。
IT700PIM的所有輸入引腳均兼容5 V電平,只需給IT700PIM輸出到ATmega128單片機的串口信號電平做電平轉(zhuǎn)換即可,電平轉(zhuǎn)換采用4-2輸入與門芯片74 HCT08進行通信。IT700PIM模塊的外圍電路如圖3所示。
2.4 以太網(wǎng)模塊
本設計中使用已經(jīng)開發(fā)完成的以太網(wǎng)模塊,包括網(wǎng)卡芯片ENC28J60、HR911102A以及相關的外圍電路,其中HR911102A內(nèi)置隔離變壓器和RJ45以太網(wǎng)接口。網(wǎng)卡芯片采用ENC28J60,經(jīng)HR911102A內(nèi)置的隔離變壓器和RJ45以太網(wǎng)接口,實現(xiàn)電能網(wǎng)關的Internet接入。
該模塊通過SPI接口與電源和控制器相連,網(wǎng)卡芯片ENC28J60采用3.3 V供電電源,ENC28J60的所有引腳均兼容5 V電平,只需要74HCT08完成ENC28J60輸出3.3 V電平向5 V電平的轉(zhuǎn)換。以太網(wǎng)模塊與ATmega128的連線如圖4所示。
3 軟件設計
為了實現(xiàn)以太網(wǎng)和電力線載波網(wǎng)絡的信息交互,家庭網(wǎng)關需要實現(xiàn)uIP協(xié)議棧,并和多主站網(wǎng)絡管理協(xié)議、Y-Net協(xié)議協(xié)調(diào)丁作,其軟件架構如圖5所示。在家庭網(wǎng)關的以太網(wǎng)通信部分,web servet通過uIP協(xié)議棧和網(wǎng)卡驅(qū)動程序完成以太網(wǎng)數(shù)據(jù)包軟件部分的收發(fā),用戶可以通過客戶端web瀏覽器查看web server中定制的能量信息和向web server發(fā)送控制用戶電器供電及斷電的信息。在用戶內(nèi)部的電力線載波通信網(wǎng)絡中,通過多主站網(wǎng)絡管理協(xié)議和Y-Net協(xié)議實現(xiàn)電能網(wǎng)關和各電器的組網(wǎng)。
3.1 網(wǎng)關的各節(jié)點通信
主程序中確定了節(jié)點上電后的運行過程,通過調(diào)用IT700PIM模塊初始化子程序,IT700網(wǎng)絡層協(xié)議信息處理子程序,IT700網(wǎng)絡層協(xié)議地址請求子程序,IT700串口接收數(shù)據(jù)子程序,IT700發(fā)送數(shù)據(jù)報文子程序,來實現(xiàn)網(wǎng)關與各節(jié)點的聯(lián)網(wǎng)與通信。
3.2 uIP協(xié)議的移植
uIP是嵌入式TCP/IP協(xié)議棧,只保留了TCP/IP協(xié)議不可或缺的部分,將設計重心置于IP(網(wǎng)際協(xié)議)、TCP(傳輸控制協(xié)議)、UDP(用戶數(shù)據(jù)包協(xié)議)、ARP(地址解析協(xié)議)、ICMP(Internet控制報文協(xié)議)這些網(wǎng)絡層和傳輸層協(xié)議之上,簡化了通信的流程,保證了代碼的通用性及結構的穩(wěn)定性。uIP可以看作一個在其內(nèi)部實現(xiàn)TCP/IP協(xié)議的機器,通過一些API同底層驅(qū)動和上層應用程序進行交互。
為了實現(xiàn)uIP協(xié)議在ATmega128的移植,本設計使用了uIP協(xié)議棧文件中uip和unix目錄下的7個子文件:其中uip.c和uip.h作為協(xié)議棧的核心部分負責TCP、IP、ICMP協(xié)議的實現(xiàn);uip_arp.c和uip_arp.h負責ARP協(xié)議的實現(xiàn);uip_arch.c和uip_arch.h提供IP校驗和函數(shù);ui popt.h用于對協(xié)議棧的各種參數(shù)進行配置。其中包括IP地址、支持的IP地址類型、MAC地址、允許的最大連接數(shù)等參數(shù)的設定。在服務器端,uIP協(xié)議棧通過調(diào)用uip_listen()函數(shù)偵聽來自端口的被動連接請求。
3.3 ENC28J60驅(qū)動程序設計
ENC28J60通過SPI與ATrrtoga128實現(xiàn)接口,ATmega128通過SPI接口向ENC28J60發(fā)送命令,以訪問和設置相關寄存器、讀寫接收/發(fā)送數(shù)據(jù)緩沖區(qū)以及執(zhí)行其他相關操作。ENC28J60驅(qū)動程序流程圖如圖6所示。
ENC28J60主要為上層應用提供3個函數(shù):
①網(wǎng)卡初始化函數(shù):主要完成網(wǎng)卡芯片與控制器SPI接口的初始化;設置接收/發(fā)送數(shù)據(jù)緩沖器的起始地址及大??;初始化網(wǎng)卡的工作模式;設置網(wǎng)卡的MAC地址。
②讀包函數(shù):當網(wǎng)卡的接收緩沖器接收到數(shù)據(jù)包時,對數(shù)據(jù)包進行讀取,將接收到的數(shù)據(jù)包放入全局緩存區(qū),釋放網(wǎng)卡接收緩沖器的內(nèi)存,并返回數(shù)據(jù)包的長度。
③發(fā)包函數(shù):當全局緩存區(qū)有數(shù)據(jù)包需要發(fā)送時,將數(shù)據(jù)包送入發(fā)送數(shù)據(jù)緩沖器進行發(fā)送。
4 測試結果
為測試該家庭網(wǎng)關的聯(lián)網(wǎng)效果,搭建PLC網(wǎng)絡通信實驗平臺,它由4個普通節(jié)點、一個網(wǎng)關節(jié)點和PC機構成。每個普通節(jié)點包含一個AVR控制器模塊和一個IT700PIM電力線載波通信模塊。實驗中網(wǎng)關的PLC模塊直接與PC機通過串口相連,PC機使用Yitran公司開發(fā)的IT700PLCStu dio軟件,在線監(jiān)視PLC網(wǎng)絡的運行,測試各節(jié)點能否成功聯(lián)網(wǎng)及聯(lián)網(wǎng)所需時間。為了驗證PLC網(wǎng)絡通信的抗干擾能力,加干擾后測試各節(jié)點能否成功聯(lián)網(wǎng)及聯(lián)網(wǎng)所需時間。
測試結果如表1所列,各節(jié)點在兩種情況下均可成功聯(lián)網(wǎng)并且測試聯(lián)網(wǎng)時間滿足家庭各電器的通信要求。
利用Dreamweaver網(wǎng)頁設計平臺完成了家庭電能管理系統(tǒng)登陸界面和主界面網(wǎng)頁的設計,在家庭能量管理系統(tǒng)主界面中,可以查看各個節(jié)點的相關信息,同時還可以對各節(jié)點進行控制。
本設計中,通過網(wǎng)頁左上角節(jié)點1、節(jié)點2等按鈕查看各個節(jié)點的能量信息;通過左下角的圖片按鈕控制各節(jié)點供電;通過右邊的網(wǎng)絡示意圖顯示各節(jié)點是否正常組網(wǎng)。在瀏覽器中輸入電能網(wǎng)關IP地址后,首先進入登陸界面,輸入用戶名和密碼后進入家庭能量管理系統(tǒng)主頁面,如圖7所示。從頁面的效果可以看出,本設計實現(xiàn)了家庭能量管理系統(tǒng)的基本功能,主頁面正確顯示了相應的信息,完成了預期的目標。
結語
本文采用ATmega128處理器和IT700PIM電力線載波通信芯片以及ENC28J60網(wǎng)卡芯片,實現(xiàn)了家庭網(wǎng)關的沒計。系統(tǒng)設計方案具有結構簡單、成本低、工作方式靈活可靠、通信距離較遠、抗干擾能力強等特點。
實驗證明:該網(wǎng)關可以通過電力線載波通信組成用戶電能網(wǎng)絡,從而控制優(yōu)化各個房問家用電器的運行,最終達到節(jié)約電能的目的,可以廣泛地應用到智能家庭和智能樓宇系統(tǒng)中。
評論