朱欣穎 陳曦
摘 要:針對人們對智能家居的要求,對智能家居控制系統(tǒng)進行分析和研究,提出一種低成本、易擴展、方便實用的家居控制系統(tǒng)。采用Android智能手機作為家居控制終端,并利用FPGA構建NIOS II軟核,建立智能家居硬件控制平臺。該系統(tǒng)可用于普通的住宅家庭用戶,實現(xiàn)了家用電器的WIFI無線控制。
關鍵詞:Android;FPGA;智能家居;WIFI
中圖分類號: TP39 文獻標識碼:A 文章編號:2095-2163(2014)06-
Abstract: For peoples requirement of intelligent household, the paper make an analysis and research to the control system of smart home, and puts forward a kind of low cost, easy extension, convenient and practical home control system. Android smartphones as household control terminal, and by using FPGA build NIOS II soft core, intelligent household hardware control platform is established. The system can be used for ordinary residential home users, and has realized the WIFI control of household appliances.
Key Words:Android; FPGA; Smart Home; WIFI
0引 言
隨著社會的不斷進步和信息技術的迅猛發(fā)展,自動控制技術和信息家電相結(jié)合的智能家居系統(tǒng)正悄然走進人們的日常生活。智能家居主要是通過物聯(lián)網(wǎng)技術將各種家電連接到一起,可對家庭照明、窗簾、暖通進行遙控,同時還具有防盜報警、環(huán)境狀況監(jiān)測和定時控制等高端功能[1]。近年來WIFI技術的日趨成熟,決定了基于Android平臺的智能手機獲得了大規(guī)模的普及與推廣[2],這就使得通過智能手機作為控制終端對家電進行無線控制進入了現(xiàn)實可行階段,而且在相當程度上還可使智能家居系統(tǒng)更加方便靈活。與此同時,SOPC片上系統(tǒng)也因其具有的較高設計效率和較強靈活性,而被業(yè)界稱為“半導體產(chǎn)業(yè)的未來”。若利用FPGA構建SOPC片上系統(tǒng),鑒于FPGA具有的較強復雜邏輯控制能力和強大的并行執(zhí)行優(yōu)勢[3],利用FPGA構建嵌入式硬件平臺進行系統(tǒng)設計也隨之表現(xiàn)了良好的應用前景和廣闊的市場價值。
本文即以Android智能手機作為家居控制終端,在FPGA發(fā)板上設計基于NIOS II的片上系統(tǒng)作為網(wǎng)絡互聯(lián)接口,并在其基礎上通過WIFI無線通信方式實現(xiàn)了智能家居終端與家電的成功互聯(lián)[4]。
1 系統(tǒng)整體設計
本課題以Cyclone III系列芯片為核心的FPGA硬件控制平臺開展研發(fā)和設計,其中包括了按鍵、蜂鳴器、數(shù)碼管等基本外設。實現(xiàn)過程是:通過在FPGA芯片內(nèi)部嵌入NIOS II軟核作為通信和控制核心,從而構建SOPC片上系統(tǒng)。同時,又利用Eclipse開發(fā)平臺設計基于Android的客戶端軟件,手機客戶端則通過Socket套接字向處于同一WIFI網(wǎng)絡下的硬件控制平臺發(fā)送信息,硬件平臺將根據(jù)接受的信息對家電進行控制。另外,控制平臺還可以監(jiān)測家電的工作狀態(tài)及室內(nèi)的環(huán)境條件,而且將相關信息傳遞給手機客戶端,使用戶對室內(nèi)狀況保持良好的信息透明度。
2 系統(tǒng)硬件平臺設計
硬件平臺是系統(tǒng)具有良好穩(wěn)定性的基礎和前提。考慮到現(xiàn)實的實際需求,硬件需由FPGA控制平臺、WIFI模塊、繼電器模塊組成,具體如圖1所示。
下面將對硬件設計中各構成模塊的功能實現(xiàn)給出詳細解析和闡述。
2.1 FPGA控制平臺
FPGA控制平臺是硬件系統(tǒng)的核心,主要負責接收和處理控制指令、控制動作電路、監(jiān)測及反饋狀態(tài)信息等。兼顧設計需求及系統(tǒng)成本,F(xiàn)PGA選擇了Cyclone III系列中性價比更為優(yōu)越的EP3C5E144C8N,該款芯片內(nèi)部包含5 136個邏輯單元、95個標準用戶I/O口、46個九位嵌入式乘法器以及兩個鎖相環(huán),可以流暢運行NIOS II軟核[5]。存儲芯片則選擇了三星公司的K4S561632E-UC75動態(tài)存儲芯片,容量為256Mb,位寬16bits。為了使用方便,核心板上還設計了一款容量為16Mb的FPGA專用配置芯片EPCS16[6]。同時,考慮到控制平臺的通用性、可移植性及可擴展性,平臺上又進一步設計了四個LED、兩位共陰極數(shù)碼管、一個蜂鳴器、四個撥碼開關和八個按鍵開關等基本外設。而且,電源芯片選用了ASM1117-2.5、ASM1117-3.3和LM317,這三款芯片可分別為FPGA提供2.5V、3.3V、和1.25V電壓。另外,F(xiàn)PGA所有用戶I/O口都已引出,以便擴展。
2.2 無線WIFI模塊
無線模塊采用的是深圳市海凌科電子有限公司的HLK-RM04,該模塊是基于通用串行接口且符合網(wǎng)絡標準的嵌入式模塊,內(nèi)置TCP/IP 協(xié)議棧,能夠?qū)崿F(xiàn)用戶串口、以太網(wǎng)、無線網(wǎng)(WIFI)三個接口之間的轉(zhuǎn)換。在本次研發(fā)設計中,該模塊的主要作用是將WIFI無線信號通過串口與FPGA控制中心實現(xiàn)相互通信。
2.3 繼電器模塊
由于智能家居系統(tǒng)的控制對象是普通家電,都屬于強電用電器,因此使用控制平臺發(fā)揮操控作用時就需要通過繼電器來實現(xiàn)間接控制。繼電器采用的松樂繼電器。為保證繼電器能夠順利閉合,本模塊采用了達林頓晶體管ULN2003L來增加FPGA的驅(qū)動能力,實現(xiàn)原理如圖2所示。
在FPGA內(nèi)部進行NIOS II片上系統(tǒng)設計主要包括兩個方面:(1) 在FPGA芯片內(nèi)部進行硬件電路設計, (2)編寫基于NIOS II的軟件程序。下面將分別展開詳細論述。
3.1 硬件電路設計
硬件系統(tǒng)由時鐘、NIOS II軟核、音效模塊組成。NIOS II軟核以及音效模塊所需要的時鐘頻率均不相同,因此就需要利用FPGA內(nèi)部的一個嵌入式鎖相環(huán)對時鐘進行分頻和倍頻,這樣可使整個系統(tǒng)達到頻率同步。在此基礎上,配置NIOS II軟核,由其完成指令的下達,數(shù)據(jù)的輸入輸出。而音效模塊則是家庭音響,主要由Android客戶端實現(xiàn)控制。
3.2 基于NIOS II的軟件設計
NIOS II支持C語言開發(fā)程序代碼,并且提供強大的硬件抽象層系統(tǒng)庫(HAL)。NIOS II處理器的外圍器件允許用戶通過HAL的API接口對底層硬件進行直接訪問[7-8]。同時,HAL系統(tǒng)庫定義了一組基本功能,使設計者可以對常用器件直接進行初始化和訪問,而不再需要考慮底層硬件,如此就大大簡化了程序的設計流程。程序運行燒寫至FPGA內(nèi)部的NIOS II軟核中,主要功能除了接收WIFI無線模塊傳來的串口信息、譯碼并控制電路產(chǎn)生相應動作外,還包括接收和處理各模塊的狀態(tài)信息、以及反饋給WIFI無線模塊。
4 Android客戶端設計
本客戶端是在Windows 7 操作系統(tǒng)下完成構建的。Android 的客戶端是用戶與控制系統(tǒng)進行信息溝通的交互界面。客戶端的功能體現(xiàn)就是要設計用戶界面和Socket 之間的成功通信。通過Socket 通信,即打開網(wǎng)絡套接字,由 WIFI網(wǎng)絡傳遞信息。Android客戶端安裝用戶手機,手機和系統(tǒng)的WIFI模塊連接到同一個AP熱點。Android客戶端通過“套接字”向網(wǎng)絡(WIFI模塊)提供發(fā)送請求或者應答請求,觸發(fā)后臺應用程序,應用程序?qū)Σ僮髦噶钸M行分析后發(fā)送相應的控制信息并通過路由器傳遞給WIFI模塊,WIFI模塊再將接收到的信息轉(zhuǎn)換為串口信息,又傳遞給FPGA內(nèi)部的NIOS II軟核,NIOS II軟核對接收到的信息進行處理后則控制相應的引腳動作,進而由引腳控制繼電器的吸合和斷開,由此而實現(xiàn)對普通家電的完整控制過程。開發(fā)后的客戶端界面如圖3所示。
Android客戶端的用戶界面文件包含了若干個TextView(文本框)控件和一個Button(按鈕)控件,用戶可以通過界面中的按鍵產(chǎn)生相應的操作。功能清單文件AndroidManifest.xml是對應用程序的全局描述,也是應用程序不可或缺的一個重要文件,所有應用程序所使用到的組件均存在于AndroidManifest.xml文件中,并且發(fā)表而與其有關的特性和要求聲明。程序代碼由JAVA語言編寫,交互界面之間的切換與顯示則由TabHost控件實現(xiàn)與維護。Android軟件通過“套接字”向網(wǎng)絡(WIFI模塊)提出發(fā)送請求或者應答請求,程序設計時,對Socket通信將必需給予著重和相當?shù)目紤]。
5 結(jié)束語
本設計實現(xiàn)了用Android智能手機對普通家電的終端控制。將Android客戶端應用軟件成功安裝,經(jīng)反復實驗測試,本系統(tǒng)性能穩(wěn)定。而且,可以通過家庭內(nèi)部網(wǎng)絡實現(xiàn)對家居設備的無線控制。本控制系統(tǒng)使用智能手機軟件與無線網(wǎng)絡相結(jié)合的方法, 并采用SOPC系統(tǒng)進行設計,使得設計的效率和靈活性大大提高。同時,這種方式還實現(xiàn)了良好的通用性,且易于移植和擴展。因此本設計就具有很強的實用性和良好的普適性。
參考文獻:
[1] 張語涵.基于WIFI網(wǎng)絡智能家居系統(tǒng)的設計與實現(xiàn)[D]. 天津:天津工業(yè)大學,2012.
[2] 王朝華,陳德艷,黃國宏,等.基于Android的智能家居系統(tǒng)的研究與實現(xiàn)[J]. 計算機技術與發(fā)展,2012,22(6),225-228.
[3] 吳厚航.愛上FPGA開發(fā)[M]. 北京:北京航空航天大學出版社,2011:13-40.
[4] 申慶華.基于WIFI的嵌入式家庭無線網(wǎng)的研究與設計[D]. 桂林:桂林理工大學,2010:2-10.
[5] ALTERA Corporation.Cyclone III Device Handbook[M].2008.
[6] ALTERA Corporation.Cyclone III EP3C10 Device Pin-Out[M].2008.
[7] 袁海林.基于Nios II的嵌入式智能網(wǎng)絡家居系統(tǒng)的設計[J]. 湖北民族學院學報,2007,25(1),57-60.
[8] 赫建國,倪德克,鄭燕.基于Nios II內(nèi)核的FPGA電路系統(tǒng)設計[M]. 北京:電子工業(yè)出版社,2010.