智能家居控制系統(tǒng)中家庭網(wǎng)關(guān)的設(shè)計 18953223233 家庭網(wǎng)關(guān)的設(shè)計是智能家居控制系統(tǒng)的設(shè)計一個重要組成部分,它是連接家庭網(wǎng)絡(luò)與外界網(wǎng)絡(luò)的橋梁,是家庭內(nèi)外信息交流的樞紐。
它的主要功能是支持家庭內(nèi)部設(shè)備與互聯(lián)網(wǎng)之間的通信工作。
家庭網(wǎng)關(guān)既是家庭網(wǎng)絡(luò)中的一個節(jié)點,也是互聯(lián)網(wǎng)進入家庭的入口節(jié)點。
所以它在家庭網(wǎng)絡(luò)中的位置是很重要的。
它完成的工作有以下幾點: (1)運行支持TCP/IP協(xié)議,提供HTIT服務(wù),可以通過網(wǎng)絡(luò)瀏覽器為遠程訪問的用戶提供服務(wù);(2)Intemet接入功能包括路由、地址轉(zhuǎn)換等等;(3)家庭網(wǎng)絡(luò)中各種不同通信協(xié)議之間的協(xié)議轉(zhuǎn)換,以及家庭網(wǎng)絡(luò)系統(tǒng)與,I℃P/Ⅲ協(xié)議之間的轉(zhuǎn)換;(4)運行家電管理軟件,以將使用不同通信協(xié)議的家用電器都接入到家庭網(wǎng)絡(luò)中,并統(tǒng)一管理起來。
考慮到家庭網(wǎng)絡(luò)通信需要的協(xié)議簡單,而嵌入式系統(tǒng)具有體積小、專業(yè)化強、配置要求低、使用簡單、實時性強、成本低廉等特點,提出一種用嵌入式網(wǎng)關(guān)來實現(xiàn)家庭網(wǎng)絡(luò)與Intemet互聯(lián)的方案,采用的是89C-5l單片機和網(wǎng)卡TE-2008的主芯片舢19AS來研究單片機在以太網(wǎng)卡數(shù)據(jù)通信中的應用。
1原理分析 由于家庭網(wǎng)關(guān)解決家庭局域網(wǎng)絡(luò)和互聯(lián)網(wǎng)的通信問題,而互聯(lián)網(wǎng)是按照TCP/IP協(xié)議來進行數(shù)問題就是實現(xiàn)TCP/IP協(xié)議,并解決數(shù)據(jù)的封裝、編碼及發(fā)送等問題。
嵌入式網(wǎng)關(guān)就是把rI℃P/IP協(xié)議棧固化在單片機內(nèi),使單片機具有以太網(wǎng)接人功能的一種廉價的網(wǎng)絡(luò)接入裝置。
只要微控制器對網(wǎng)絡(luò)接口芯片進行控制和通信,并通過自主開發(fā)TCP/IP協(xié)議棧,把標準網(wǎng)絡(luò)技術(shù)(TCP/IP)運用到嵌入設(shè)備中,就能在網(wǎng)絡(luò)環(huán)境下在任何時間從任何地點對它進行監(jiān)控,利用傳統(tǒng)的Web和因特網(wǎng)機制對遠程監(jiān)視數(shù)據(jù)和運行情況控制。
2家庭網(wǎng)關(guān)的硬件設(shè)計 家庭網(wǎng)關(guān)的微處理器采用16位89C-51單片機,負責承載網(wǎng)絡(luò)層以上的協(xié)議及提供網(wǎng)絡(luò)訪問服務(wù);以太網(wǎng)控制器芯片采用 Realtek公司生產(chǎn)的RT璐019As,負責物理層和鏈路層的協(xié)議和進行互聯(lián)網(wǎng)的數(shù)據(jù)傳輸工作;和家用計算機的連接采用RS232接口有線連接,和家庭網(wǎng)關(guān)及各個智能控制節(jié)點的連接采用無線收發(fā)模塊進行無線連接。
3軟件設(shè)計與實現(xiàn)軟件部分主要包括以太網(wǎng)控制器接口軟件的設(shè)計和嵌入式TCP/IP協(xié)議棧的開發(fā)。
3.1 以太網(wǎng)控制器軟件設(shè)計 以太網(wǎng)控制器RTLS019AS接口軟件的設(shè)計部分是主要用來實現(xiàn)以太網(wǎng)控制器的數(shù)據(jù)發(fā)送和數(shù)據(jù)接收。
程序主要分三大部分: 3.1.1初始化過程 網(wǎng)絡(luò)接口控制芯片RTLS019AS有兩種復位方法,一是可以通過把其復位引腳RSTDRV置高為電平進行冷復位;--是可以通過讀寫其復位端口RSTPORI進行熱復位。
復位后,中斷狀態(tài)寄存器的RST標志位為l,此時為離線工作狀態(tài),即不能發(fā)送或接收數(shù)據(jù)幀。
為了使接口控制芯片啟動并處于準備接收或發(fā)送數(shù)據(jù)的狀態(tài),需要進行一系列初始化工作。
3.1.2接收過程 將RTL8019AS內(nèi)置存儲空間的一部分*為緩沖環(huán)的地址空間。
頁起始地址由PSTART寄存器*,頁終止地址由PSTOP寄存器來*,頁起始地址與頁終止地址相鄰,構(gòu)成循環(huán)隊列式的緩沖環(huán)結(jié)構(gòu)。
CURB寄存器指向新接收到的幀存放的起始頁,作為本地DMA的寫指針;BNRY寄存器指向未讀的幀的起始頁,作為遠程DMA的讀指針。
當CURB寄存器追上BNRY寄存器,表示接收緩沖環(huán)已滿,后續(xù)接收到的幀會被丟棄;當BNRY寄存器追上CURB寄存器,表示接收緩沖環(huán)已空。
接收幀時。
首先RTLS019AS接收網(wǎng)絡(luò)上的數(shù)據(jù)幀,然后通過本地DMA通道將接收到的數(shù)據(jù)幀放在接收緩沖環(huán)中。
當無錯誤的接收到一幀數(shù)據(jù)后,RTLS019AS將中斷狀態(tài)寄存器ISR中的RDC位置為0,通過此標志位的狀態(tài)可判斷遠程DMA讀操作是否結(jié)束。
數(shù)據(jù)幀的接收可采用中斷或查詢方式進行,采用查詢式接收幀的程序流程。
CR寄存器中的RD2,RDI,RDO這3個位組合起來設(shè)定DMA的有關(guān)操作。
001則啟動遠程讀操作;010則啟動遠程寫操作:011則發(fā)送網(wǎng)卡數(shù)據(jù)包;1奉宰則終止或結(jié)束DMA的讀寫操作。
3.1.3發(fā)送過程發(fā)送幀時,發(fā)送方將待發(fā)送的數(shù)據(jù)按幀格式要求封裝成幀,再通過處理器的I/O通道和網(wǎng)絡(luò)接口控制器的遠程DMA通道將數(shù)據(jù)寫入本地發(fā)送緩沖。
當遠程DMA寫操作完成后,RTLS019AS將中斷狀態(tài)寄存器ISR中的RDC位置0,通過此標志位的狀態(tài)可判斷遠程DMA寫操作是否結(jié)束。
然后網(wǎng)絡(luò)接口控制器將數(shù)據(jù)幀發(fā)送到網(wǎng)絡(luò)的傳輸線上,由接收方接收。
在發(fā)送完畢,測試發(fā)送狀態(tài)寄存器TSR中的各標志位來檢驗是否數(shù)據(jù)幀已經(jīng)無錯發(fā)送完成。
發(fā)送幀的程序流程如圖4所示。
RsARO和RSARI寄存器是用來*遠程DMA寫操作時數(shù)據(jù)存放的緩沖區(qū)首地址。
遠程字節(jié)計數(shù)寄存器RBCRO和RBCRI用來指明本次遠程DMA操作時傳輸數(shù)據(jù)的字節(jié)數(shù)。
3.2 TCP/IP協(xié)議棧 由于在家庭網(wǎng)絡(luò)中應用嵌入式設(shè)備功能比較單一,在上述網(wǎng)絡(luò)接口控制芯片接口程序的基礎(chǔ)上只需要使用簡化的嵌入式協(xié)議棧,即可滿足大部分情況下的應用要求。
針對單片機設(shè)備的實用性、存儲能力、處理能力的局限性,在實現(xiàn)TCP/IP協(xié)議時包括以下方面:地址識別協(xié)議一ARP/RARP協(xié)議,基本數(shù)據(jù)傳輸協(xié)議一IP協(xié)議,差錯控制協(xié)議一ICMP協(xié)議,可靠數(shù)據(jù)傳輸控制協(xié)議TOP協(xié)議,超文本文件傳輸協(xié)議HrItrP協(xié)議。
3.2.1 IP協(xié)議 IP(Intemet Protoc01)協(xié)議是網(wǎng)絡(luò)層TCP/IP協(xié)議的基礎(chǔ)。
不同網(wǎng)絡(luò)的主機之間在進行發(fā)送數(shù)據(jù)包操作時,都是在數(shù)據(jù)前添加IP協(xié)議頭,使每個數(shù)據(jù)報具有了尋址能力。
在接收到IP包后,微處理器檢驗IP頭部的版本、目的地址、校驗和正確,就解析出協(xié)議類型字段,然后交給相應的高層協(xié)議處理。
發(fā)送IP包時,將緩沖區(qū)內(nèi)的源地址與目的地址互換,設(shè)置校驗和,然后交給下層協(xié)議處理。
不符合要求,則將此包丟棄。
IP數(shù)據(jù)包*為65K,可以分段傳輸,而在嵌入式系統(tǒng)里根本無法容納如此大的數(shù)據(jù)包,因此一般是不支持分段的。
限制MCU發(fā)送數(shù)據(jù)包的方式和接收的有效數(shù)據(jù)分組地格式以避免分段,從而減少程序復雜度。
3.2.2 TCP協(xié)議 TCP協(xié)議是傳輸層面向連接的、端對端的可靠 通信協(xié)議。
它采用了許多機制來保證傳輸可靠性,例如:通過序列號來解決通信時的丟失、重復、失序問題;通過校驗和來解決數(shù)據(jù)誤碼問題等等。
在設(shè)計嵌入式WEB服務(wù)時,系統(tǒng)中TCP協(xié)議上只支持H11甲協(xié)議,嵌入式系統(tǒng)把數(shù)據(jù)采集、運行參數(shù)等當前實時數(shù)據(jù)存人存儲器中網(wǎng)頁相關(guān)的位置。
對任何TCP連接,每次只是支持HTTP協(xié)議發(fā)送網(wǎng)頁服務(wù),并且把每個網(wǎng)頁大小限制在一個數(shù)據(jù)包內(nèi),而不要出現(xiàn)IP包的分拆。
對依靠TCP連接的HTTP服務(wù)來說,嵌入式服務(wù)僅僅在服務(wù)器端響應客戶端請求,所接收的報文一個數(shù)據(jù)包即可傳輸完成,故不需考慮失序問題。
在三次握手建立連接的過程中,嵌入式系統(tǒng)作為*狀態(tài)的服務(wù)端,始終為被動方,相當于被動打開后的LISTEN狀態(tài),等待對方發(fā)起連接。
嵌入式TCP設(shè)計中沒有記憶TCP 連接所處的當前狀態(tài),也沒有分開建立多個TCP連接,同時不記憶TCP連接的序列號,不能識別重復報文,把此重復報文的處理工作交給對方處理。
3.2.3 HTTP協(xié)議 應用層的超文本傳輸協(xié)議mⅥ,每一次的交互是由一個ASCII碼請求跟著一個MIME的應答組成。
協(xié)議包括從瀏覽器到服務(wù)器的請求集和從另一方向來的應答集。
其中GET方法請求服務(wù)器發(fā)送一頁面,因為本嵌入式系統(tǒng)中的WEB頁面中的相關(guān)數(shù)據(jù)總是實時更新的,因此每次解析出的GET方法,都是發(fā)送當前網(wǎng)頁。
從TCP協(xié)議傳人HrI’I甲請求時,解析出GET命令和目的網(wǎng)頁,根據(jù)目的網(wǎng)頁的名字,確定要發(fā)送的數(shù)據(jù),文件名字錯誤,則為index.htm,將數(shù)據(jù)傳人網(wǎng)絡(luò)接口控制器的發(fā)送緩沖區(qū),同時計算當前校驗和:裝配H1TP協(xié)議包頭部,根據(jù)TCP的當前狀態(tài),裝配TCP協(xié)議頭部,確定校驗和等字段,將TCP協(xié)議頭部傳人發(fā)送緩沖區(qū);再裝配IP協(xié)議包頭部和以太包頭部傳入發(fā)送緩沖區(qū),最后將數(shù)據(jù)幀發(fā)出,完成H11甲回應。
4結(jié)束語 家庭網(wǎng)關(guān)在智能家居網(wǎng)絡(luò)中具有重要地位,本文從硬件和軟件兩個方面對家庭網(wǎng)關(guān)進行了設(shè)計,并對其原理、對其軟件流程、通信協(xié)議進行了分析。
隨著家庭網(wǎng)關(guān)技術(shù)的逐步發(fā)展和完善,智能家居必將成為未來家庭的主流和趨勢。
標簽: ? ? 青島市智能家居 ? 青島市智能家居廠家

山東 青島市青島市智能家居廠家
供應智能家居控制系統(tǒng)中家庭網(wǎng)關(guān)的設(shè)計