姜曉峰
摘 要:探討了基于Android手機(jī)終端的智能家居控制系統(tǒng),分別從系統(tǒng)整體設(shè)計(jì)、系統(tǒng)硬件平臺(tái)設(shè)計(jì)、OPC片上系統(tǒng)設(shè)計(jì)和Android客戶端設(shè)計(jì)四個(gè)方面作了詳細(xì)、系統(tǒng)的論述,以期能為相關(guān)人員提供借鑒。
關(guān)鍵詞:Android;智能家居;控制系統(tǒng);控制平臺(tái)
中圖分類號(hào):TP273.5 文獻(xiàn)標(biāo)識(shí)碼:A DOI:10.15913/j.cnki.kjycx.2015.20.091
伴隨著生產(chǎn)力的不斷發(fā)展,人們的物質(zhì)生活水平不斷提高,傳統(tǒng)的家居系統(tǒng)成本高、安全性差,人們已經(jīng)不再滿足現(xiàn)在的這種同工業(yè)革命時(shí)期相差無幾的生活方式了。近年來,智能家居的出現(xiàn)滿足了人們的生活需求?;诖?,本文就Android手機(jī)終端的智能家居控制系統(tǒng)設(shè)計(jì)進(jìn)行了探討。
1 系統(tǒng)整體設(shè)計(jì)
在以CycloneIII系列芯片為核心的FPGA硬件控制平臺(tái)上開展設(shè)計(jì)和研發(fā),其中包括了蜂鳴器、按鍵、數(shù)碼管等基本外設(shè)。實(shí)現(xiàn)過程是:通過在FPGA芯片內(nèi)部嵌入NIOSII軟核作為通信和控制核心,從而構(gòu)建SOPC片上系統(tǒng)。
2 系統(tǒng)硬件平臺(tái)設(shè)計(jì)
考慮到現(xiàn)實(shí)的需求,硬件需由WIFI模塊、FPGA控制平臺(tái)、繼電器模塊組成,具體如圖1所示。
由圖1可知,手機(jī)通過無線WIFI將控制信息傳遞給位于同一AP熱點(diǎn)下的WIFI模塊,WIFI模塊將接收到的控制信號(hào)由串口傳遞給FPGA,F(xiàn)PGA則根據(jù)接收到的指令控制相應(yīng)的繼電器工作,從而實(shí)現(xiàn)對(duì)家電的控制。同時(shí),F(xiàn)PGA還可以將家電的工作狀態(tài)和室內(nèi)的環(huán)境狀況通過WIFI模塊再次反饋給手機(jī)。下面將詳細(xì)闡述硬件設(shè)計(jì)中各構(gòu)成模塊的功能實(shí)現(xiàn)。
2.1 FPGA控制平臺(tái)
FPGA控制平臺(tái)是硬件系統(tǒng)的核心,主要負(fù)責(zé)接收和處理控制指令、控制動(dòng)作電路、監(jiān)測(cè)和反饋狀態(tài)信息等??紤]到設(shè)計(jì)需求和系統(tǒng)成本,我們選擇了CycloneIII系列中性價(jià)比更為優(yōu)越的EP3C5E144C8N。該款芯片內(nèi)部包含5 136個(gè)邏輯單元、95個(gè)標(biāo)準(zhǔn)用戶I/O口、46個(gè)九位嵌入式乘法器和2個(gè)鎖相環(huán),可以流暢運(yùn)行NIOSII軟核。存儲(chǔ)芯片則選擇了三星公司的K4S561632E-UC75動(dòng)態(tài)存儲(chǔ)芯片,容量為256 Mb,位寬16 bits。為了方便使用,核心板上還設(shè)計(jì)了一款容量為16 Mb的FPGA專用配置芯片EPCS16。同時(shí),考慮到控制平臺(tái)的通用性、可移植性和可擴(kuò)展性,平臺(tái)上又進(jìn)一步設(shè)計(jì)了4個(gè)LED、兩位共陰極數(shù)碼管、1個(gè)蜂鳴器、4個(gè)撥碼開關(guān)和8個(gè)按鍵開關(guān)等基本外設(shè),而且電源芯片選用了ASM1117-2.5、ASM1117-3.3和LM317,這三款芯片可分別為FPGA提供2.5 V、3.3 V和1.25 V電壓。另外,F(xiàn)PGA所有用戶I/O口都已引出,以便擴(kuò)展。
2.2 傳輸協(xié)議模塊
在智能家居中的應(yīng)用原則中,TCP和UDP是目前最常用的網(wǎng)絡(luò)通信協(xié)議。TCP是基于連接的協(xié)議,UDP是一個(gè)無連接的、不可靠的協(xié)議。相對(duì)于基于流傳輸?shù)腡CP而言,UDP是基于消息傳輸?shù)?,整體上具有傳輸速度快等優(yōu)點(diǎn)。通過研究可以看出,家用電器的控制信息特點(diǎn)是數(shù)據(jù)量小、控制信息短,適合用于傳送少量數(shù)據(jù)、對(duì)可靠性要求不高的應(yīng)用環(huán)境,因此更適合采用簡(jiǎn)單的、面向數(shù)據(jù)報(bào)的UDP協(xié)議。
2.3 無線WIFI模塊
無線WIFI模塊采用的是深圳市海凌科電子有限公司的HLK-RM04。該模塊是基于通用串行接口且符合網(wǎng)絡(luò)標(biāo)準(zhǔn)的嵌入式模塊,內(nèi)置TCP/IP協(xié)議棧,能夠?qū)崿F(xiàn)用戶串口、以太網(wǎng)、無線網(wǎng)(WIFI)三個(gè)接口之間的轉(zhuǎn)換。在本次研發(fā)設(shè)計(jì)中,該模塊的主要作用是將WIFI無線信號(hào)通過串口與FPGA控制中心相互通信。
2.4 Zigbee模塊
采用CEL公司的ZICM2410芯片,其內(nèi)核芯片結(jié)構(gòu)如圖2所示。CEL公司的ZICM2410是兼容ZigBee和IEEE802.15.4的完整單片無線解決方案。它包含1個(gè)帶有基帶調(diào)制解調(diào)器的RF收發(fā)器、硬連線MAC和1個(gè)帶有內(nèi)部閃存的嵌入式8051微控制器。該器件提供了多個(gè)通用I/O引腳、定時(shí)器和UART等外圍設(shè)備功能,并且是第一個(gè)提供嵌入式聲音CODEC的器件,因此是超低功耗應(yīng)用的理想選擇。
2.5 RFID 模塊
RFID模塊采用CY-14443A-P系列射頻模塊,利用SPI總線與控制器通信。CY-14443A系列射頻讀寫模塊采用基于ISO14443標(biāo)準(zhǔn)的非接觸卡讀卡機(jī)專用芯片。模塊引腳如圖3所示。
2.6 繼電器模塊
由于智能家居系統(tǒng)的控制對(duì)象是普通家電,都屬于強(qiáng)電用電器。因此,使用控制平臺(tái)操控時(shí),就需要通過繼電器來實(shí)現(xiàn)間接控制。繼電器采用的是松樂繼電器。為保證繼電器的順利閉合,本模塊采用了達(dá)林頓晶體管ULN2003L來增加FPGA的驅(qū)動(dòng)能力。
3 OPC片上系統(tǒng)設(shè)計(jì)
在FPGA內(nèi)部設(shè)計(jì)NIOSII片上系統(tǒng)主要包括兩個(gè)方面:①在FPGA芯片內(nèi)部設(shè)計(jì)硬件電路;②編寫基于NIOSII的軟件程序。
3.1 硬件電路設(shè)計(jì)
硬件系統(tǒng)由時(shí)鐘、NIOSII軟核、音效模塊組成。NIOSII軟核和音效模塊所需要的時(shí)鐘頻率不同,因此需要利用FPGA內(nèi)部的一個(gè)嵌入式鎖相環(huán)對(duì)時(shí)鐘進(jìn)行分頻和倍頻,這樣可使整個(gè)系統(tǒng)實(shí)現(xiàn)頻率同步。在此基礎(chǔ)上配置NIOSII軟核,由其完成指令的下達(dá)和數(shù)據(jù)的輸入、輸出。而音效模塊則是家庭音響,主要由Android客戶端實(shí)現(xiàn)控制。
3.2 基于NIOSII的軟件設(shè)計(jì)
NIOSII支持C語言開發(fā)程序代碼,并提供強(qiáng)大的硬件抽象層系統(tǒng)庫(kù)(HAL)。NIOSII處理器的外圍器件允許用戶通過HAL的API接口直接訪問底層硬件。同時(shí),HAL系統(tǒng)庫(kù)定義了一組基本功能,使設(shè)計(jì)者可以直接初始化和訪問常用器件,而不再需要考慮底層硬件,這大大簡(jiǎn)化了程序的設(shè)計(jì)流程。程序運(yùn)行燒寫至FPGA內(nèi)部的NIOSII軟核中,主要功能除了接收WIFI無線模塊傳來的串口信息、譯碼并控制電路外,還能接收和處理各模塊的狀態(tài)信息,并反饋給WIFI無線模塊。
4 Android客戶端設(shè)計(jì)
本客戶端是在Windows7操作系統(tǒng)下構(gòu)建的。Android客戶端是用戶與控制系統(tǒng)溝通信息的交互界面??蛻舳说墓δ芫褪菍?shí)現(xiàn)設(shè)計(jì)用戶界面與Socket之間的成功通信。通過Socket通信,即打開網(wǎng)絡(luò)套接字,由WIFI網(wǎng)絡(luò)傳遞信息。將Android客戶端安裝在用戶手機(jī)中,手機(jī)和系統(tǒng)的WIFI模塊連接到同一個(gè)AP熱點(diǎn)。Android客戶端通過套接字向網(wǎng)絡(luò)(WIFI模塊)提供發(fā)送請(qǐng)求或者應(yīng)答請(qǐng)求,觸發(fā)后臺(tái)應(yīng)用程序。應(yīng)用程序分析操作指令后發(fā)送相應(yīng)的控制信息,并通過路由器傳遞給WIFI模塊,WIFI模塊再將接收到的信息轉(zhuǎn)換為串口信息傳遞給FPGA內(nèi)部的NIOSII軟核,NIOSII軟核處理接收到信息后控制相應(yīng)的引腳動(dòng)作,進(jìn)而由引腳控制繼電器的吸合和斷開,由此實(shí)現(xiàn)對(duì)普通家電的完整控制。
Android客戶端的用戶界面文件包含了若干個(gè)TextView(文本框)控件和1個(gè)Button(按鈕)控件,用戶可以通過界面中的按鍵實(shí)施相應(yīng)操作。功能清單文件AndroidManifest.xml是對(duì)應(yīng)用程序的全局描述,也是應(yīng)用程序不可或缺的一個(gè)重要文件。所有應(yīng)用程序所使用到的組件均存在于AndroidManifest.xml文件中,并且發(fā)表了與其有關(guān)的特性和要求聲明。程序代碼由JAVA語言編寫,交互界面之間的切換與顯示則由TabHost控件實(shí)現(xiàn)與維護(hù)。Android軟件通過“套接字”向網(wǎng)絡(luò)(WIFI模塊)提出發(fā)送請(qǐng)求或者應(yīng)答請(qǐng)求。設(shè)計(jì)程序時(shí),需著重考慮Socket通信。
5 結(jié)束語
綜上所述,目前智能家居正朝著無線遠(yuǎn)程與近程控制相結(jié)合,集多媒體、游戲娛樂功能于一身和快速、便利等方向發(fā)展,而基于Android手機(jī)終端的智能家居則正好滿足了人們的生活需求,相信通過不斷的探索和應(yīng)用,智能家居肯定會(huì)有更好的發(fā)展。
參考文獻(xiàn)
[1]王清清,李曉勇,余強(qiáng)國(guó).基于Android手機(jī)終端的智能家居遠(yuǎn)程控制系統(tǒng)[J].中國(guó)科技信息,2013(12).
[2]楊堤.基于物聯(lián)網(wǎng)的智能家居控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子世界,2012(21).
〔編輯:王霞〕