董 萍
(三門峽職業(yè)技術(shù)學(xué)院 信息傳媒學(xué)院,河南 三門峽 472000)
?
基于nRF2401A的家庭智能系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
董萍
(三門峽職業(yè)技術(shù)學(xué)院 信息傳媒學(xué)院,河南 三門峽 472000)
摘要:從家庭智能系統(tǒng)的發(fā)展現(xiàn)狀及存在問題出發(fā),結(jié)合nRF2401A的特點(diǎn),指出目前nRF2401A與家庭智能系統(tǒng)結(jié)合的必要性及其存在的優(yōu)勢(shì)。并從硬件和軟件方面對(duì)nRF2401A無線通信系統(tǒng)進(jìn)行開發(fā),重點(diǎn)從系統(tǒng)BOOTLOADER的移植、Linux內(nèi)核驅(qū)動(dòng)開發(fā)、nRF2401A內(nèi)核驅(qū)動(dòng)開發(fā)三個(gè)方面闡述了設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)及其實(shí)現(xiàn)過程,并對(duì)系統(tǒng)進(jìn)行了分析與測(cè)試。
關(guān)鍵詞:nRF2401A;家庭智能;ARM;節(jié)點(diǎn)
1引言
隨著人們生活水平的不斷提高以及計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)、通信技術(shù)、物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,智能化的家庭智能系統(tǒng)越來越受到人們的歡迎,正逐漸走向人們的生活中,不斷改善著人們的生活水平和生活方式,以人為本、舒適、便利、智能化已成為家庭智能系統(tǒng)的重要設(shè)計(jì)理念,也成為必然的趨勢(shì)。在房地產(chǎn)產(chǎn)業(yè)快速發(fā)展的今天,人們對(duì)于住宅的舒適度、安全性、智能化也提出了更多要求,希望將與家庭生活有關(guān)的各種應(yīng)用子系統(tǒng)有機(jī)地結(jié)合起來,更大化的優(yōu)化人們的生活方式,為居住者提供安全、便利、高效、舒適的家庭環(huán)境?!耙匀藶楸?、舒適、便利、智能化”已成為家庭系統(tǒng)的重要設(shè)計(jì)理念,家庭智能的出現(xiàn)得益于現(xiàn)代計(jì)算機(jī)技術(shù)、通訊網(wǎng)絡(luò)技術(shù)和自動(dòng)控制技術(shù)的飛速發(fā)展。家庭智能系統(tǒng)就是在這個(gè)背景下產(chǎn)生的[1]。
2家庭智能系統(tǒng)的定義、發(fā)展現(xiàn)狀及存在的問題
家庭智能系統(tǒng)是利用計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)、自動(dòng)化等技術(shù),有機(jī)結(jié)合與人們?nèi)粘>幼…h(huán)境中有關(guān)的不同子模塊,通過無線節(jié)點(diǎn)進(jìn)行統(tǒng)一管理,使居住者通過各類通信手段從中獲取各類控制指令,并能夠根據(jù)網(wǎng)絡(luò)提供的信息做出智能判斷和執(zhí)行,達(dá)到使人們的生活更加便利、舒適和具有安全性的目的[2]。家庭智能系統(tǒng)能夠額外提供高品位、舒適宜人和安全的家居生活方式,由原來的用戶主動(dòng)參與管理轉(zhuǎn)變?yōu)樽詣?dòng)能動(dòng)的自動(dòng)化管理方式,因而能夠?yàn)榫幼≌咛峁└尤娴男畔?,并為居住者制定日程?jì)劃,增強(qiáng)家居生活的合理性,控制家中各類能源和電器的使用[3]。
20世紀(jì)80年代,一些經(jīng)濟(jì)比較發(fā)達(dá)的國(guó)家提出了“智能住宅”的概念。歐美、加拿大、日本和澳大利亞等世界上的發(fā)達(dá)國(guó)家鑒于居住條件的進(jìn)步,先后提出了種類繁多的智能家居解決方案。美國(guó)電子工業(yè)協(xié)會(huì)提出并完善了世界上首個(gè)智能家居的解決方案,以及其電氣化協(xié)議標(biāo)準(zhǔn)。發(fā)達(dá)國(guó)家的智能家居解決方案在本國(guó)內(nèi)均被廣泛的采用,目前已經(jīng)有近 10 年的發(fā)展歷史,最初采用家庭網(wǎng)絡(luò)體系結(jié)構(gòu)[4-5]。目前家庭智能系統(tǒng)主要有基于TCP/IP網(wǎng)絡(luò)、EIB 智能控制系統(tǒng)、基于無線控制系統(tǒng)、基于電力載波控制系統(tǒng)四大類,但是國(guó)內(nèi)很多從事家庭智能的廠家基本上還是采用來自國(guó)外的技術(shù),具有規(guī)模小、沒有形成主流標(biāo)準(zhǔn)的特點(diǎn)。家庭智能今后的發(fā)展趨勢(shì)主要為智能化、網(wǎng)絡(luò)化、綠色化。
家庭智能系統(tǒng)存在以下幾個(gè)方面的問題[1]。
(1)成本過高。家庭智能系統(tǒng)的主要問題在于其成本高昂,由于部署范圍較小,開發(fā)成本居高不下。因此,目前最主要的問題是如何將成本降下來,而本設(shè)計(jì)的主要目的也是從這一點(diǎn)出發(fā);
(2)系統(tǒng)擴(kuò)展困難。目前的家庭智能系統(tǒng)的另一個(gè)主要問題是目前各類在售系統(tǒng)功能較為簡(jiǎn)單,且擴(kuò)展十分麻煩。本設(shè)計(jì)的主要設(shè)計(jì)創(chuàng)新點(diǎn)在于加入了可擴(kuò)展性,系統(tǒng)在剛推出時(shí)可以較少功能,隨著開發(fā)進(jìn)度可以不斷的推出新的功能并可隨時(shí)并入用戶家中,連續(xù)不斷的推出新產(chǎn)品也可以增加用戶的接受度。
(3)系統(tǒng)安全性不高。如果家庭智能系統(tǒng)被黑客劫持,就會(huì)給用戶帶來非常嚴(yán)重的后果。目前的家庭智能系統(tǒng)的安全性一般采用簡(jiǎn)單的加密方式,對(duì)黑客防范性不高,本設(shè)計(jì)對(duì)此點(diǎn)進(jìn)行了技術(shù)改進(jìn),引入了加密算法,有效的提升了對(duì)黑客的抵抗力。
3嵌入式Linux及與家庭智能系統(tǒng)結(jié)合的必要性
嵌入式Linux系統(tǒng)包括輸入/輸出功能和控制邏輯,具有開發(fā)性能高、穩(wěn)定性強(qiáng)、多任務(wù)、獨(dú)立性高、安全性能高的特點(diǎn),系統(tǒng)采用模塊化設(shè)計(jì)方法,能夠基于用戶的需求合理的增減系統(tǒng)功能,增強(qiáng)操作系統(tǒng)的可伸縮性。
嵌入式Linux操作系統(tǒng)具有能使不同用戶擁有相應(yīng)權(quán)限的多用戶權(quán)限,它的出現(xiàn)為家庭智能的發(fā)展提供了新的方向。充分挖掘嵌入式 Linux 操作系統(tǒng)的優(yōu)勢(shì)能夠改善家庭智能的弊端,不僅實(shí)現(xiàn)存儲(chǔ)海量數(shù)據(jù)、設(shè)計(jì)美觀的界面、操作的方便和便于與網(wǎng)絡(luò)上的其他計(jì)算機(jī)信息共享,而且能實(shí)現(xiàn)家庭系統(tǒng)的智能化,自動(dòng)化,舒適化。
4嵌入式Linux的開發(fā)
4.1.1系統(tǒng)功能劃分
本設(shè)計(jì)將智能家居系統(tǒng)分為中央控制節(jié)點(diǎn)和外圍傳感器子節(jié)點(diǎn)兩大部分。
中央控制節(jié)點(diǎn)的主要工作分為兩部分:查詢和接收來自子節(jié)點(diǎn)的信息和接收來自用戶的操作指令。在子節(jié)點(diǎn)設(shè)計(jì)過程中,主要包括以下幾個(gè)節(jié)點(diǎn)。
(1)安防子節(jié)點(diǎn)。該子節(jié)點(diǎn)主要安裝于各個(gè)窗戶部位, 采用紅外線做為安防信號(hào),一旦中央節(jié)點(diǎn)發(fā)出駐防命令,該子節(jié)點(diǎn)就會(huì)激活,開始發(fā)射紅外線組成紅外光柵。一旦光柵被阻斷,就會(huì)立即向中央節(jié)點(diǎn)發(fā)送警報(bào),并根據(jù)系統(tǒng)設(shè)定決定是否激活聲音報(bào)警器。
(2)安全子節(jié)點(diǎn)。該子節(jié)點(diǎn)的主要功能是監(jiān)測(cè)室內(nèi)的空氣中是否有可燃?xì)怏w或者處于火災(zāi)狀態(tài)。一旦室內(nèi)煙霧或燃?xì)馑匠^閾值,本子節(jié)點(diǎn)就會(huì)向中央控制節(jié)點(diǎn)發(fā)送報(bào)警信息,并根據(jù)系統(tǒng)設(shè)定決定是否立即關(guān)閉室內(nèi)電源系統(tǒng)。
系統(tǒng)整體架構(gòu)如圖1所示。
圖1 系統(tǒng)整體架構(gòu)如圖
4.1.2系統(tǒng)硬件系統(tǒng)選型
本設(shè)計(jì)的智能家居系統(tǒng)中央控制節(jié)點(diǎn)采用ARM720T處理器SEP4020,該處理器具有價(jià)格低廉、可靠性高、且具備MMU、能夠支持嵌入式Linux系統(tǒng)、資源豐富的特點(diǎn),能夠用于用戶交互設(shè)備和控制系統(tǒng)中。集成了LCD控制器、網(wǎng)卡控制器、DMA控制器、多通道定時(shí)器、內(nèi)嵌EMI接口、海量外部中斷。SEP4020處理器能夠?yàn)橛脩籼峁┖?jiǎn)化的硬軟件設(shè)計(jì),并提供豐富的開發(fā)接口。
本設(shè)計(jì)為中央控制節(jié)點(diǎn)設(shè)計(jì)了LCD、矩陣鍵盤、GSM模塊、DS18B20溫度模塊和nRF2401A無線收發(fā)模塊。這些模塊與ARM處理器的架構(gòu)圖如圖2所示。
圖2 中央節(jié)點(diǎn)外部模塊連接圖
其中LCD和矩陣鍵盤由SEP4020的廠家提供SDK開發(fā)環(huán)境支持,本設(shè)計(jì)為實(shí)現(xiàn)用戶遠(yuǎn)程操作加入了GSM模塊和nRF2401A無線模塊。nRF2401A是由Nordic公司生產(chǎn)的單芯片無線收發(fā)芯片,工作于2.4—2.5 GHz的全球免申請(qǐng)(ISM)頻率上,使用SPI端口與CPU通信,并且自帶了硬件CRC校驗(yàn)協(xié)議、突發(fā)跳頻傳輸、可編程硬件地址等設(shè)計(jì),極大的簡(jiǎn)化了軟件設(shè)計(jì),并且降低了工作功耗,是非常適合于工作在家庭環(huán)境中的一款無線芯片[6]。
在本設(shè)計(jì)中,用戶是通過短信進(jìn)行遠(yuǎn)程操作的,因此需安裝短信模塊。GSM模塊與ARM處理器通過UART接口連接,ARM處理器通過AT指令控制GSM模塊。本設(shè)計(jì)選擇SIM300作為GSM模塊。
智能家居系統(tǒng)的軟件系統(tǒng)分為兩部分。
第一部分是中央控制節(jié)點(diǎn)軟件系統(tǒng)。中央控制節(jié)點(diǎn)為了實(shí)現(xiàn)較為復(fù)雜的軟件功能,例如LCD顯示、鍵盤控制、身份識(shí)別等,采用了Linux作為軟件系統(tǒng)平臺(tái)。如圖3所示,中央控制節(jié)點(diǎn)的軟件總體架構(gòu)圖主要分為以下幾個(gè)層次。
圖3 中央節(jié)點(diǎn)軟件總體架構(gòu)圖
(1)應(yīng)用層。本層中主要實(shí)現(xiàn)和運(yùn)行Linux應(yīng)用程序,例如minigui、鍵盤程序、密碼識(shí)別程序等,這些應(yīng)用程序不參與硬件操作,僅實(shí)現(xiàn)對(duì)應(yīng)的應(yīng)用功能。應(yīng)用程序可以從內(nèi)核驅(qū)動(dòng)層獲取來自硬件的所需數(shù)據(jù)。
(2)Linux內(nèi)核驅(qū)動(dòng)層。本層位于Linux系統(tǒng)內(nèi)核中,主要對(duì)應(yīng)于對(duì)應(yīng)的硬件操作平臺(tái),代碼高度匹配硬件操作。
(3)HAL層。本層是位于Linux操作系統(tǒng)內(nèi)核(包含驅(qū)動(dòng))與硬件電路之間的接口層,其目的在于將硬件進(jìn)行抽象,以便隱藏硬件平臺(tái)的細(xì)節(jié),能夠?yàn)樯蠈榆浖_發(fā)者提供統(tǒng)一接口,從而實(shí)現(xiàn)上層軟件的硬件無關(guān)性,增強(qiáng)其通用性。而如果從軟件測(cè)試的角度出發(fā),硬件的抽象化使得軟硬件測(cè)試工作能夠并行進(jìn)行,進(jìn)而提高的項(xiàng)目的開發(fā)效率。
第二部分是各子節(jié)點(diǎn)的軟件系統(tǒng)。子節(jié)點(diǎn)由于硬件資源有限,無法運(yùn)行大型操作系統(tǒng),因此軟件采用前后臺(tái)模式在ARM7處理器上運(yùn)行,其軟件架構(gòu)如圖4所示。子節(jié)點(diǎn)的軟件架構(gòu)分前臺(tái)程序和中斷后臺(tái)程序兩部分組成。前臺(tái)程序主要進(jìn)行輪詢操作,應(yīng)答來自中央節(jié)點(diǎn)的操作指令并由硬件執(zhí)行。
圖4 子節(jié)點(diǎn)軟件架構(gòu)圖
5設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)與實(shí)現(xiàn)
軟件系統(tǒng)是家庭智能系統(tǒng)的核心和基礎(chǔ),設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)關(guān)系著軟件系統(tǒng)的成功與否。在基于ARM體系的嵌入式系統(tǒng)中,在存儲(chǔ)器的起始地址處,會(huì)有一小段稱為Bootloader的系統(tǒng)引導(dǎo)代碼,其作用主要用于在系統(tǒng)加電啟動(dòng)時(shí),對(duì)相關(guān)硬件進(jìn)行初始化,建立內(nèi)存管理功能,為L(zhǎng)inux或其他操作系統(tǒng)準(zhǔn)備好使用環(huán)境。同時(shí),具有能夠使用Flash讀寫、TFTP協(xié)議棧數(shù)據(jù)的傳輸功能的作用,能極大的提高系統(tǒng)的傳輸速率。
本設(shè)計(jì)在U-Boot的基礎(chǔ)上,根據(jù)硬件平臺(tái)和SEP4020的支持系統(tǒng),進(jìn)行了Uboot系統(tǒng)的裁剪和配置,得到適用的Uboot程序。Uboot移植主要分為以下三個(gè)階段。
第一個(gè)階段是開啟網(wǎng)絡(luò)支持,能夠使用TFTP協(xié)議傳輸文件。
設(shè)計(jì)中采取DM9000的支持代碼的網(wǎng)卡設(shè)計(jì)。按照在Uboot代碼路徑:include/configs/sep4020.h中添加對(duì)DM9000的支持、在/drivers/net/dm9000.c中的eth_init函數(shù)中屏蔽掉MII接口所使用的代碼部分、在/drivers/net/dm9000.c中將函數(shù)dm9000_halt()中的所有內(nèi)容刪除、在讀取IMR寄存器時(shí),重新設(shè)置一下地址指針?biāo)膫€(gè)步驟完成。以上四個(gè)步驟完成后,Uboot的網(wǎng)絡(luò)功能與TFTP功能就能夠正常使用。
第二個(gè)階段是添加NAND Flash驅(qū)動(dòng)。
這部分需要完成兩部分的信息修改工作(1)Nand_scan()函數(shù)處于驅(qū)動(dòng)程序的最底層,能夠用于識(shí)別Flash的容量、大小、塊大小和總塊數(shù)等信息。修改本函數(shù)內(nèi)的K9F1208U0C芯片信息。(2)修改board_nand_init()中關(guān)于SEP4020的Flash控制器部分的初始化、Flash時(shí)序控制和寄存器設(shè)置相關(guān)的部分。完成以上兩個(gè)步驟后,NAND Flash驅(qū)動(dòng)程序的移植工作就完成了。
第三個(gè)階段是NAND Flash的啟動(dòng)控制。
在board_nand_init()中加入SYS_SETUP1的電平判斷代碼,用來實(shí)現(xiàn)對(duì)NAND啟動(dòng)的功能。
根據(jù)圖2中央節(jié)點(diǎn)外部模塊連接圖,可知,中央控制節(jié)點(diǎn)需要實(shí)現(xiàn)LCD顯示、5x5矩陣鍵盤、文件系統(tǒng)、DS18B20溫度傳感系統(tǒng)和nRF2401A五個(gè)模塊。其中LCD、矩陣鍵盤與文件系統(tǒng)的驅(qū)動(dòng)程序SEP4020的SDK已經(jīng)提供,可以通過內(nèi)核裁剪的方式加入;而DS18B20與nRF2401A的驅(qū)動(dòng)則缺失,需要進(jìn)行自行開發(fā)設(shè)計(jì)。
Linux內(nèi)核驅(qū)動(dòng)程序通過module_init()和module_exit()兩個(gè)系統(tǒng)接口進(jìn)行注冊(cè)和注銷。一旦驅(qū)動(dòng)程序模塊在系統(tǒng)注冊(cè),應(yīng)用程序就可以通過VFS虛擬文件系統(tǒng)提供的read、write、seek等系統(tǒng)接口對(duì)驅(qū)動(dòng)程序進(jìn)行操作,通過驅(qū)動(dòng)程序操作硬件。
nRF2401A的驅(qū)動(dòng)程序需要完成以下四個(gè)步驟。
(1)通過修改Kconfig配置腳本為nRF2401A在內(nèi)核中建立配置項(xiàng)。程序代碼如下。
config SPI_NRF2401
tristate "Device driver for SPI NRF2401A"
depends on SPI
default y
(2)然后在Makefile中加入nRF2401A的編譯語(yǔ)句。
obj-$(CONFIG_SPI_NRF2401A) += sep4020_nrf2401a.o
此時(shí),make就會(huì)根據(jù)配置項(xiàng)CONFIG_SPI_NRF2401A的值來決定是否編譯nRF2401A的驅(qū)動(dòng)程序。
(3)編寫實(shí)現(xiàn)nRF2401A的驅(qū)動(dòng)程序代碼。
(4) nRF2401A的內(nèi)核驅(qū)動(dòng)程序的實(shí)現(xiàn),以程序流程圖的方式進(jìn)行闡述。
如圖5所示,nRF2401A的內(nèi)核驅(qū)動(dòng)分為發(fā)送和接收兩個(gè)流程。發(fā)送時(shí)將CE片選設(shè)置為1,然后寫入數(shù)據(jù);讀取時(shí)需要判斷DR1是否為0來判斷數(shù)據(jù)是否讀取完畢。
圖5 nRF2401A的內(nèi)核驅(qū)動(dòng)發(fā)送/接收流程圖
6分析與測(cè)試
本系統(tǒng)使用串口調(diào)試接口連接中央節(jié)點(diǎn)和任意一個(gè)子節(jié)點(diǎn),設(shè)定初始化測(cè)試字符串0218進(jìn)行發(fā)送和接收,來檢測(cè)nRF2401A的驅(qū)動(dòng)程序是否工作正常。
如圖6所示,nRF2401A能夠正常接收到來自對(duì)方的數(shù)據(jù),說明驅(qū)動(dòng)程序工作正常。該系統(tǒng)具備良好的通用性和穩(wěn)定性的優(yōu)點(diǎn),能滿足用戶對(duì)現(xiàn)代家居環(huán)境的需求。
圖6 nRF2401A測(cè)試結(jié)果圖
7結(jié)束語(yǔ)
以改善人們的生活質(zhì)量,為人們提供更加舒適、簡(jiǎn)便、安全、高效的生活方式為目的,以高性能的ARM 微處理器為控制核心,筆者從硬件和軟件方面對(duì)嵌入式Linux進(jìn)行開發(fā),重點(diǎn)闡述了設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)與實(shí)現(xiàn)過程,并對(duì)系統(tǒng)進(jìn)行分析與測(cè)試。目前,三門峽市建業(yè)壹號(hào)城邦、天鵝堡小區(qū)已經(jīng)采用該智能系統(tǒng),系統(tǒng)為解決河南省其它地市小區(qū)的智能化作出了初步嘗試,對(duì)于家庭智能系統(tǒng)的推廣是極為有益的,對(duì)省內(nèi)其他小區(qū)智能化問題的解決具有參考價(jià)值。
參考文獻(xiàn):
[1]黃力,周新蓮.無線傳感網(wǎng)絡(luò)基于簇的數(shù)據(jù)傳輸可靠性研究[J].計(jì)算機(jī)應(yīng)用與軟件,2010(8):70-74.
[2]晉保霞.家庭智能的無線傳感器網(wǎng)絡(luò)路由協(xié)議的研究[D].重慶:重慶大學(xué).2012.
[3]李明亮,劉小龍,牟宏磊,徐憲清.基于ARM11的家庭智能設(shè)計(jì)與實(shí)現(xiàn)[M].北京:北京航空航天大學(xué)出版社,2013.
[4]王淑華,陳國(guó)定,趙國(guó)炳.一種無線傳感器網(wǎng)絡(luò)能耗模型及有效性分析[J].計(jì)算機(jī)應(yīng)用與軟件,2011,(2):112-116.
[5]Samsung NAND Flash Memory [Z].Memory Product & Technology Division,2000.
[6]董萍.基于無線傳感器網(wǎng)絡(luò)的智能家庭系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].三門峽職業(yè)技術(shù)學(xué)院學(xué)報(bào).2013,12(4):106-110.
Design and implementation of smart home system based on nRF2401A
DONGPing
(Information Institute of Media,Sanmenxia Polytechnic, Sanmenxia 472000,China)
Abstract:This paper begins with the current developing situation and the existing problems from smart home management system, points out the necessity and the existing advantages of combining with the nRF2401A and smart home management system, focuses on the development of the nRF2401A communication system from the aspects of hardware and software, and formulates mainly the design and realization from three aspects of the BOOTLOADER transplantation, Linux driver development and nRF2401A development, and analyzes and tests the system.
Key words:nRF2401A;smart home;ARM;node
DOI:10.3969/j.issn.2095-7386.2015.02.021
文章編號(hào):2095-7386(2015)02-0092-06
基金項(xiàng)目,湖北省教育廳科學(xué)研究計(jì)劃項(xiàng)目(D20141703).
通信作者:陸海軍(1979-),男,副教授,E-mail: lhjwhpu@163.com.
作者簡(jiǎn)介:董祎挈(1991-),男,碩士研究生,E-mail: dyqwhpu@163.com.
收稿日期:2014-12-02.修回日期:2015-03-30.
中圖分類號(hào):TN 919
文獻(xiàn)標(biāo)識(shí)碼:A