摘 要:通過(guò)Internet實(shí)現(xiàn)對(duì)智能家居的遠(yuǎn)程監(jiān)控是當(dāng)前技術(shù)研究的熱點(diǎn)。為此分析智能家居系統(tǒng)的組成和結(jié)構(gòu),提出通過(guò)Internet對(duì)智能家居系統(tǒng)進(jìn)行遠(yuǎn)程監(jiān)控的方案,給出基于微控制器SX52的智能家居控制終端的硬件設(shè)計(jì)方案和實(shí)現(xiàn)方法,介紹控制終端軟件實(shí)現(xiàn)的原理和流程,在對(duì)TCP/IP協(xié)議分析的基礎(chǔ)上,闡述控制終端中協(xié)議處理的原理和實(shí)現(xiàn)方法。這些原理和方法對(duì)智能家居系統(tǒng)的設(shè)計(jì)具有參考價(jià)值。
關(guān)鍵詞:SX52;嵌入式系統(tǒng);智能家居;控制終端軟件
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1004373X(2008)1610903
Design and Implementation of Internetbased Smart Home Control Terminal
ZHONG Jianguo
(Xi′an University of Finance and Economics,Xi′an,710061,China)
Abstract:It is a crucial research field to realize the smart home remote control through the Internet.Hence,this paper analyses the composition and structure of the smart home,proposes remote monitoring program through Internet for smart home,gives the smart home control terminal hardware design and implementation methods based on the microcontroller SX52,introduces the principles and processes of the control terminal software,and based on the TCP / IP protocol analysis,describes the principle and method of protocol dispose in the terminal control.This principle and method have an important reference value for the smart home system design.
Keywords:SX52;embedded system;smart home;control terminal software
1 引 言
隨著科學(xué)技術(shù)的發(fā)展和居民生活水平的提高,人們對(duì)居住環(huán)境的要求越來(lái)越高。能夠提供安全、舒適、智能、通訊與信息服務(wù)的所謂的“智能家居”正成為人們追求的居住目標(biāo)和技術(shù)研究的熱點(diǎn)。智能家居(smart home),又稱智能住宅,它是利用先進(jìn)的計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)通訊技術(shù)、智能控制技術(shù)、傳感器技術(shù)、綜合布線技術(shù),通過(guò)家居中的信息與控制中心,把與家居生活有關(guān)的安防、環(huán)境控制、通訊、智能家電等各種子系統(tǒng)有機(jī)地結(jié)合在一起的復(fù)雜系統(tǒng)。對(duì)智能家居系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程信息查詢和狀態(tài)控制是其必須具備的一項(xiàng)功能,傳統(tǒng)的產(chǎn)品大多采用無(wú)線通訊、電話通訊、手機(jī)通訊、電力載波等方式實(shí)現(xiàn)。隨著嵌入式Internet技術(shù)不斷地發(fā)展和成熟,通過(guò)Internet實(shí)現(xiàn)對(duì)智能家居的遠(yuǎn)程監(jiān)控正成為業(yè)界技術(shù)發(fā)展的方向。這種方式具有成本低、控制地域廣、可靠性高、通訊速度快、操作簡(jiǎn)單等優(yōu)點(diǎn)。其基本工作原理是把智能家居系統(tǒng)中的信息與控制中心設(shè)備(簡(jiǎn)稱控制終端)設(shè)計(jì)成Web服務(wù)器,通過(guò)遠(yuǎn)程計(jì)算機(jī)上的瀏覽器軟件對(duì)嵌入式Web服務(wù)器的訪問(wèn)實(shí)現(xiàn)遠(yuǎn)程的監(jiān)控。因此實(shí)現(xiàn)這種系統(tǒng)的關(guān)鍵就是要設(shè)計(jì)能夠接入Internet的嵌入式控制終端。
2 智能家居的總體框架
智能家居系統(tǒng)由信息家電、環(huán)境控制、安防報(bào)警三個(gè)子系統(tǒng)和一個(gè)控制終端組成,如圖1所示。
各子系統(tǒng)與控制終端通過(guò)現(xiàn)場(chǎng)總線相連??刂平K端是智能家居系統(tǒng)的核心設(shè)備,其主要功能是:對(duì)子系統(tǒng)各功能模塊實(shí)施分布式管理和控制;借助現(xiàn)場(chǎng)網(wǎng)絡(luò)與各模塊實(shí)現(xiàn)信息交換與共享;作為嵌入式Web服務(wù)器,通過(guò)Internet實(shí)現(xiàn)遠(yuǎn)程通訊和監(jiān)控。
智能家居現(xiàn)場(chǎng)總線是智能家居系統(tǒng)的重要組成部分之一,通過(guò)它可以把住宅內(nèi)與信息和控制相關(guān)的各個(gè)通訊設(shè)備、家用電器和家庭安防裝置都并入到智能家居網(wǎng)絡(luò)系統(tǒng),從而進(jìn)行集中的管理和控制。目前智能家居現(xiàn)場(chǎng)總線的規(guī)范和標(biāo)準(zhǔn)有很多,如LonWorks,X10,CEBus,HBS,CAN, RS 485等,但還沒(méi)有形成業(yè)界統(tǒng)一的標(biāo)準(zhǔn)。選擇總線的原則應(yīng)當(dāng)是:成本低、應(yīng)用簡(jiǎn)單、通訊可靠、擴(kuò)展性強(qiáng)、能適應(yīng)傳統(tǒng)的低端設(shè)備的連接。按照以上原則,考慮到目前智能家居系統(tǒng)中各終端設(shè)備相對(duì)低端且通訊接口不統(tǒng)一的現(xiàn)狀,系統(tǒng)中采用RS 485作為現(xiàn)場(chǎng)總線。子系統(tǒng)中各功能模塊可分為信息終端(如信息家電)和非信息終端(如照明報(bào)警控制)2類。信息終端一般帶有標(biāo)準(zhǔn)的通訊接口,但往往不全支持所選擇的總線協(xié)議,因此需要進(jìn)行接口和協(xié)議的轉(zhuǎn)換;非信息終端一般不具有標(biāo)準(zhǔn)的通訊接口功能,因此需要通過(guò)通訊擴(kuò)展模塊實(shí)現(xiàn)接入總線的功能,如圖2所示。
系統(tǒng)的工作原理是智能控制終端根據(jù)從現(xiàn)場(chǎng)或遠(yuǎn)程網(wǎng)絡(luò)接受到的指令,對(duì)各功能模塊實(shí)行分布式輪循管理與控制,同時(shí)把智能家居系統(tǒng)的狀態(tài)信息傳送到遠(yuǎn)程控制端??刂平K端與遠(yuǎn)程計(jì)算機(jī)通過(guò)B/S模式工作,控制終端作用相當(dāng)于一個(gè)嵌入式Web服務(wù)器,遠(yuǎn)程計(jì)算機(jī)則作為瀏覽器工作。
3 控制終端的硬件設(shè)計(jì)
3.1 系統(tǒng)的組成
控制終端硬件組成原理如圖3所示。系統(tǒng)采用Ubiocm公司的SX52芯片作為微控制器。SX52是Ubiocm公司利用先進(jìn)的CMOS技術(shù)開(kāi)發(fā)的一款可編程的、高速的、能方便地實(shí)現(xiàn)因特網(wǎng)接入功能的、8位通信控制芯片。SX52采用RISC結(jié)構(gòu),支持流水線作業(yè),具有高速計(jì)算能力,在100 MHz晶振的驅(qū)動(dòng)下指令執(zhí)行速度可高達(dá)100 MIPS。芯片內(nèi)部自帶FLASH程序存儲(chǔ)器,支持在線編程調(diào)試。該芯片最大的特點(diǎn)是支持“虛擬外設(shè)”功能,即用戶可以對(duì)SX52微控制器的5個(gè)I/O端口進(jìn)行靈活配置,并通過(guò)執(zhí)行虛擬軟件來(lái)模塊實(shí)現(xiàn)諸如I.2C,SPI,UART,CallerID,F(xiàn)SK以及Modem等接口功能。同時(shí)芯片最吸引人之處在于通過(guò)使用虛擬軟件包提供的代碼可以方便地實(shí)現(xiàn)TCP/IP協(xié)議中常用到的協(xié)議棧,如HTTP,SMTP,POP3,TCP,UDP,ICMP,IP,PPP等。以太網(wǎng)接口采用臺(tái)灣REALTEK公司生產(chǎn)的高集成度、全雙工以太網(wǎng)控制器芯片RTL8019AS實(shí)現(xiàn)。該芯片支持IEEE802.3 MAC子層協(xié)議,可工作在10BASET,10BASE2和10BASE5等介質(zhì)環(huán)境下,它同時(shí)具有曼徹斯特編碼、沖突檢測(cè)和重發(fā)的功能,可以與很少的外圍電路一起完成10 Mb/s速率的數(shù)據(jù)收發(fā)功能。FB2022為耦合隔離濾波器。系統(tǒng)中Web服務(wù)器的網(wǎng)頁(yè)數(shù)據(jù)和資源存放在由Atmel公司生產(chǎn)的64 kB串行E.2PROM存儲(chǔ)器AT24C512之中。RS 485總線接口是通過(guò)MAXIM公司的MAX485實(shí)現(xiàn)。系統(tǒng)采用液晶觸摸屏作為輸入輸出人機(jī)接口界面。觸摸屏的輸入控制采用BurrBrown公司推出的新一代4線制觸摸屏控制芯片ADS7846實(shí)現(xiàn)。當(dāng)屏幕上有觸摸發(fā)生時(shí),ADS7846可通過(guò)采樣保持、逐位逼近式A/D變換等功能模塊迅速得到觸摸點(diǎn)的位置信息,從而使應(yīng)用軟件實(shí)現(xiàn)在觸摸屏表面上尋址的功能。對(duì)液晶屏的顯示控制是通過(guò)SEIKO EPSON公司出品的液晶顯示控制器SED1335實(shí)現(xiàn)。SED1335硬件結(jié)構(gòu)由外部接口、內(nèi)部控制和液晶模塊驅(qū)動(dòng)3部分組成,其特點(diǎn)是:I/O緩沖器功能強(qiáng)大、功能及控制指令豐富、可實(shí)現(xiàn)4位數(shù)據(jù)并行發(fā)送。
3.2 系統(tǒng)功能的實(shí)現(xiàn)
整個(gè)硬件系統(tǒng)的功能是通過(guò)由以太網(wǎng)接口、RS 485接口、觸摸屏接口分別組成的3條數(shù)據(jù)傳輸通道來(lái)實(shí)現(xiàn)的。由SX52,RTL8019AS,F(xiàn)B2022組成的以太網(wǎng)數(shù)據(jù)通道可以使得用戶通過(guò)互聯(lián)網(wǎng)對(duì)智能家居系統(tǒng)實(shí)施監(jiān)控。其過(guò)程是用戶通過(guò)瀏覽器軟件向控制終端發(fā)出服務(wù)請(qǐng)求,信息通過(guò)RJ45送至RTL8019AS,RTL8019AS負(fù)責(zé)將以太網(wǎng)幀的首、尾部信息剝離,將處理后的數(shù)據(jù)包送入SX52的TCP/IP協(xié)議棧以及應(yīng)用層軟件處理。同時(shí)控制終端的網(wǎng)頁(yè)數(shù)據(jù)又可經(jīng)過(guò)相反的方向傳送至遠(yuǎn)程的用戶端進(jìn)行顯示。由SX52,RS 485組成的現(xiàn)場(chǎng)總線是控制終端對(duì)智能家居各控制設(shè)備進(jìn)行信息交換與控制的通道,通過(guò)主從輪詢的方式按設(shè)備地址實(shí)現(xiàn)管理和控制。由SX52,ADS7846,SED1335組成的人機(jī)交互通道可以實(shí)現(xiàn)控制信息的輸入和狀態(tài)信息的輸出。
4 控制終端的協(xié)議與軟件實(shí)現(xiàn)
4.1 軟件的總體流程
控制終端的軟件總流程如圖4所示。由MCU SX52組成的硬件系統(tǒng)資源有限,沒(méi)有實(shí)時(shí)多任務(wù)操作系統(tǒng)的資源可以利用,所以應(yīng)用軟件和協(xié)議的實(shí)現(xiàn)必須通過(guò)直接面對(duì)SX52硬件的編程完成。系統(tǒng)采用順序執(zhí)行和硬件中斷相結(jié)合的程序結(jié)構(gòu),把實(shí)時(shí)性要求較低、執(zhí)行起來(lái)較費(fèi)時(shí)的應(yīng)用層處理任務(wù)和TCP/IP協(xié)議棧處理任務(wù)放在主程序順序循環(huán)結(jié)構(gòu)中實(shí)現(xiàn),而把實(shí)時(shí)性要求較高的按鍵處理及定時(shí)處理等任務(wù)放在中斷處理程序中完成。系統(tǒng)初始化后,進(jìn)入主程序循環(huán)部分。主程序循環(huán)包括3大功能:對(duì)接收到的以太網(wǎng)數(shù)據(jù)幀進(jìn)行解包和TCP/IP協(xié)議處理;對(duì)欲發(fā)送的Web數(shù)據(jù)進(jìn)行IP封裝并發(fā)送;實(shí)現(xiàn)對(duì)控制終端硬件資源以及智能家居系統(tǒng)各控制模塊的管理與控制。協(xié)議的處理首先從對(duì)網(wǎng)絡(luò)接口控制芯片RTL8019AS的狀態(tài)查詢開(kāi)始,其工作原理為:當(dāng)軟件檢測(cè)到有以太網(wǎng)幀收到時(shí),程序就把數(shù)據(jù)讀入處理緩沖區(qū),通過(guò)判斷幀中長(zhǎng)度類型域(第13,14字節(jié))的值,可確定數(shù)據(jù)域中所攜帶的數(shù)據(jù)所使用的協(xié)議,從而決定是進(jìn)行ARP(類型碼為0806H)協(xié)議處理還是IP(類型碼為0800H)協(xié)議處理。同樣通過(guò)判斷IP數(shù)據(jù)報(bào)的協(xié)議字段(第10字節(jié))的值,又可確定IP數(shù)據(jù)報(bào)中所攜帶的數(shù)據(jù)所使用的協(xié)議類型,從而分別進(jìn)行ICMP協(xié)議(類型碼為01H)和TCP協(xié)議(類型碼為06H)的處理。
4.2 TCP/TP協(xié)議的實(shí)現(xiàn)
控制終端要通過(guò)互聯(lián)網(wǎng)進(jìn)行遠(yuǎn)程監(jiān)控,軟件上必須要實(shí)現(xiàn)TCP/IP的功能。標(biāo)準(zhǔn)的TCP/IP協(xié)議是由多個(gè)協(xié)議組成的協(xié)議簇,其功能強(qiáng)大、機(jī)制復(fù)雜、占用系統(tǒng)資源較大,最初旨在網(wǎng)絡(luò)中具有完整功能的計(jì)算機(jī)上使用。為了能在系統(tǒng)資源相對(duì)匱乏的嵌入式系統(tǒng)中實(shí)現(xiàn)TCP/IP協(xié)議,必須根據(jù)具體應(yīng)用對(duì)標(biāo)準(zhǔn)的、龐大的TCP/IP協(xié)議簇進(jìn)行裁剪。因此如何根據(jù)具體應(yīng)用在控制終端中裁減協(xié)議、實(shí)現(xiàn)協(xié)議是軟件實(shí)現(xiàn)的關(guān)鍵??刂平K端中需要實(shí)現(xiàn)的協(xié)議分別有:ARP協(xié)議、IP協(xié)議、ICMP協(xié)議和TCP協(xié)議。
ARP協(xié)議,具體可分為請(qǐng)求和應(yīng)答2類,在本系統(tǒng)中只需實(shí)現(xiàn)應(yīng)答功能。具體實(shí)現(xiàn)原理為:當(dāng)SX52從以太網(wǎng)幀接收到ARP數(shù)據(jù)包時(shí)首先應(yīng)根據(jù)其操作類型碼確定是一個(gè)ARP請(qǐng)求報(bào)文還是應(yīng)答報(bào)文。若為ARP請(qǐng)求報(bào)文則比較目標(biāo)IP地址與自己的IP地址是否相同,如果相同,則要封裝自己的MAC地址并發(fā)送應(yīng)答報(bào)文,否則作丟棄處理。
IP協(xié)議是TCP/IP協(xié)議簇中最為核心的協(xié)議。控制終端中必須實(shí)現(xiàn)其基本的尋址、封裝、路由、解封裝、檢驗(yàn)等功能??紤]到本系統(tǒng)傳輸?shù)臄?shù)據(jù)一般都是一些數(shù)據(jù)量比較小的狀態(tài)信息或者控制信息,故可裁減掉IP的分片和重組功能。IP協(xié)議的處理流程是:當(dāng)系統(tǒng)接收到IP數(shù)據(jù)報(bào)后,首先應(yīng)判斷該數(shù)據(jù)報(bào)的IP頭部中目的IP地址是否與本機(jī)IP地址一致,若不一致則對(duì)數(shù)據(jù)報(bào)作丟棄處理,否則先進(jìn)行IP頭部版本號(hào)、校驗(yàn)和字段檢查,當(dāng)確認(rèn)數(shù)據(jù)傳輸正確無(wú)誤后,去掉IP數(shù)據(jù)報(bào)頭部,取出數(shù)據(jù)域中的數(shù)據(jù),根據(jù)IP頭部中的協(xié)議字段類型決定是交給ICMP協(xié)議、還是TCP協(xié)議作上層處理。發(fā)送進(jìn)程的任務(wù)是:對(duì)ICMP報(bào)文、或TCP報(bào)文進(jìn)行封裝,對(duì)IP數(shù)據(jù)報(bào)進(jìn)行路由選擇,將IP數(shù)據(jù)報(bào)交給數(shù)據(jù)鏈路層進(jìn)行裝幀發(fā)送。
ICMP協(xié)議主要用來(lái)傳輸差錯(cuò)報(bào)文和控制報(bào)文,其中最常用到的是ICMP請(qǐng)求/應(yīng)答報(bào)文對(duì),控制終端只要能夠被動(dòng)地回應(yīng)其他主機(jī)測(cè)試網(wǎng)絡(luò)連通性的請(qǐng)求命令即可,因此可只需實(shí)現(xiàn)ICMP中類型號(hào)為0和8的報(bào)文,其他功能可被剪裁掉。
TCP協(xié)議機(jī)制復(fù)雜,實(shí)現(xiàn)時(shí)保留諸如可靠地建立與關(guān)閉連接、應(yīng)答確認(rèn)等最基本的功能,而簡(jiǎn)化掉一些如窗口流量控制等復(fù)雜的狀態(tài)機(jī)部分。具體可通過(guò)建立與關(guān)閉連接、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)3個(gè)進(jìn)程加以實(shí)現(xiàn)。TCP協(xié)議的建立與關(guān)閉連接都是通過(guò)“3次握手”完成。具體是通過(guò)在3次TCP報(bào)文中設(shè)置不同的SYN,ACK,F(xiàn)IN控制位的值來(lái)實(shí)現(xiàn)。TCP數(shù)據(jù)收發(fā)進(jìn)程采用了簡(jiǎn)單的應(yīng)答確認(rèn)方式,為了兼容與具有滑動(dòng)窗口流量控制功能的主機(jī)的通信,可使用作為特例的單一窗口方式進(jìn)行應(yīng)答。
5 結(jié) 語(yǔ)
基于SX52的智能家居遠(yuǎn)程控制終端具有設(shè)計(jì)思路新、實(shí)現(xiàn)成本低、適應(yīng)范圍廣、遠(yuǎn)程操作方便的特點(diǎn),因此可用于一般的智能家居系統(tǒng)。同時(shí)通過(guò)對(duì)軟件模塊的移植它也可以應(yīng)用于一般的遠(yuǎn)程測(cè)控系統(tǒng)。
參 考 文 獻(xiàn)
[1]向軍,謝贊福.基于嵌入式Internet/Intranet的智能家居系統(tǒng)模型及實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2005,26(9):2 4252 427,2 496.
[2]楊晨.嵌入式智能家居控制系統(tǒng)的研究[D].哈爾濱:哈爾濱理工大學(xué),2007.
[3]方霆.基于SX52單片機(jī)的web服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)[D].蘭州:蘭州理工大學(xué),2004.
[4]郝慶濤.嵌入式系統(tǒng)的以太網(wǎng)接入技術(shù)[D].濟(jì)南:山東大學(xué),2006.
[5]Ubicom SX Family USER′S Manual[S].Ubicom Corporation,2000.
[6]RTL8019AS Data Sheet[S].Realtek Semiconductor Corporation,2001.
[7]闕建榮.嵌入式Internet體系結(jié)構(gòu)研究[J].微型機(jī)與應(yīng)用,2004,19(3):46.
[8]婁莉,劉天時(shí).一種嵌入式TCP/IP協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)[J].微型計(jì)算機(jī)信息,2006,22(35):3840.
[9]龍鵬飛,宮蓉蓉.一種新的嵌入式TCP/IP協(xié)議棧的研究與實(shí)現(xiàn)[J].微計(jì)算機(jī)應(yīng)用,2007,28(4):372375.
[10]鐘建國(guó).嵌入式Internet系統(tǒng)中TCP/IP協(xié)議的實(shí)現(xiàn)[J].陜西師范大學(xué)學(xué)報(bào),2008,36(4):1619.
[11]Jan Axelson.嵌入式Ethernet 和Internet通信設(shè)計(jì)技術(shù)[M].駱麗,張?jiān)缽?qiáng),歐小龍,譯.
北京:北京航空航天大學(xué)出版社,2006.
作者簡(jiǎn)介 鐘建國(guó) 男,1963年出生,陜西子洲人,高級(jí)工程師,碩士。研究方向?yàn)橛?jì)算機(jī)測(cè)控系統(tǒng)。