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