由W3100A構成嵌入式網(wǎng)關的家庭智能系統(tǒng)
當今社會逐漸入網(wǎng)絡時代,因特網(wǎng)已成為重要的基礎信息設施。目前,大部分網(wǎng)絡終端仍以PC的形式出現(xiàn),但是從計算機應用普及的情況看,嵌入式系統(tǒng)更為普及,過去大量的浩如煙海的8位/16位單片機的嵌入式設備,已經(jīng)到了享受網(wǎng)絡方便的時候了。近來的統(tǒng)計證明:PC機CPU的產(chǎn)量僅是MCU產(chǎn)量的1/100,并且由于MCU的成本低廉,應用非常普及。在工業(yè)測控、智能儀器、智能家庭領域,MCU應用系統(tǒng)已無處不在。在這些場合中,以MCU為核心的設備同樣也需要解決接入因特網(wǎng)的問題。本文在分析嵌入式系統(tǒng)與常規(guī)計算機系統(tǒng)研發(fā)不同點的基礎上,介紹一種新型家庭智能系統(tǒng)。
1 家庭智能系統(tǒng)的體系結構
家庭智能系統(tǒng)體系結構的總體框圖如圖1所示。從大的方面看,家庭智能系統(tǒng)可由三部分組成:家庭自動化外部接口模塊、家庭自動化圖像模塊、家庭智能化內部無線收發(fā)與控制模塊。未來的家庭中,多件家用電器與各種報警器將組成一個家庭的內部網(wǎng),并通過內部網(wǎng)的網(wǎng)關接入因特網(wǎng)。一方面,內部網(wǎng)中的家電可以通過網(wǎng)關訪問因特網(wǎng)上資源。如網(wǎng)絡電視機每天早晨自動訪問用戶喜歡的某個電視臺的網(wǎng)站,自動下載晚上的節(jié)目表。另一方面,用戶可以在因特網(wǎng)任務一點通過瀏覽器對家里的家用電器與報警器進行遠程控制。如用戶出門在外,可以在外地上網(wǎng),通過瀏覽器,啟動家里的攝像機實時監(jiān)察家里的安全。家庭自動化內部無線網(wǎng)模塊要由消息處理模塊和基于工頻的無線收模塊(NRF401)構成。它將成為Internet網(wǎng)的發(fā)展沃土,順應“網(wǎng)絡服務”向“網(wǎng)絡應用”擴展的大潮。本文主要介紹嵌入式網(wǎng)關,以及如何在遠程訪問具有靜態(tài)或動態(tài)IP地址嵌入式網(wǎng)關的技術。
2 嵌入式網(wǎng)關
目前,國內外嵌入式網(wǎng)關的設計有二種方案:第一種方案,是基于軟件來實現(xiàn)TCP/IP協(xié)議棧;第二種是直接利用TCP/IP協(xié)議棧芯片。本文介紹的嵌入式網(wǎng)關采用第二種方案,它由W3100A、RTL8201、MCU組成,如圖2所示。
圖2中,DLC為數(shù)據(jù)鏈路控制,MAC為媒體訪問控制,IP為網(wǎng)際協(xié)議,ICMP為因特網(wǎng)控制報文協(xié)議,TCP為傳輸控制協(xié)議,UDP為用戶數(shù)據(jù)攝協(xié)議,DPRAM為雙端口存儲器。
第一種方案在大批量生產(chǎn)時,具有成本低的優(yōu)點,因為用軟件設計的TCP/IP協(xié)議棧,是一次投交多次使用;但開始投次比較大且設計復雜,因為需要實時操作系統(tǒng)的支持,而第二種方案,盡管在大指生產(chǎn)時成本高,因為每個智能設備都要嵌入TCP/IP協(xié)議棧芯片;但是在非大批量生產(chǎn)時具有投次比較大,設計簡單、靈活的特點,因為不需要實時操作系統(tǒng)的支持。本文采用的TCP/IP協(xié)議棧芯片是W3100A.它有如下特點:首先,它自帶TCP/IP協(xié)議棧(如TCP、UDP、Ipver.4、ICMP、ARP、DLC、MAC協(xié)議);其次,它能同時支持四個獨立的連接通道,具有高速傳輸速率(如網(wǎng)關的MCU用Atmel 8951,那么網(wǎng)關的傳輸速率是200b/s;若用Intel386,那么網(wǎng)關的傳輸速率是3Mb/s)同時,它具有與MCU和物理層電路接口。從圖2可以看到;W3100A除了具有上述特點外,還提供了Socket應用程序編程接口,為那種需要進行因特網(wǎng)連接的智能設備,提供了一種簡便、廉價、高效的方案,只要將W3100嵌入智能設備就可以了。這樣,大大減少了軟件研發(fā)費用,減輕了MCU的工作量,同時便利該產(chǎn)品具有競爭力,并符合嵌入式系統(tǒng)設計原則:①價格。由于嵌入式設備對價格非常敏感,通常要求價廉質優(yōu),故在設計產(chǎn)品時,在滿足功能要求的情況下盡量降低成本。②環(huán)境。在功能要求滿足的同時,要考慮到該產(chǎn)品在惡劣環(huán)境下,能否正常工作,比如溫度、電源功耗等等。③使用。用戶在使用時,操作應盡量簡單。
RTL8201是單口10/100Mb/s以太網(wǎng)收發(fā)器,超低耗和少于180mA/3.3V操作電壓,支持全雙工和半雙工操作,提供一個LED顯示器指示一個網(wǎng)絡回環(huán)存在。由于上述的優(yōu)點,該嵌入式網(wǎng)關可以用在IP電話、網(wǎng)絡MP3、網(wǎng)絡相機和工業(yè)控制總線上。圖3是嵌入式網(wǎng)關的原理圖。
3 軟件設計思想
為了適應分組到達的隨機性,系統(tǒng)必須具有能夠從網(wǎng)絡接口讀取分組的能力,故本系統(tǒng)采用“軟件中斷”的機制。當一個分組到達時,產(chǎn)生一個硬件中斷,設備驅動程序接收分組重置接口設備。在中斷返回之前,設備驅動程序會通知硬件安排下一個較低優(yōu)先級的中斷;在此次硬件中斷結束后,低優(yōu)先級的中斷會繼續(xù)執(zhí)行。下面結合“軟件中斷”的機制、動態(tài)主機配置協(xié)議(DHCP)和域名系統(tǒng)(DNS),來說明如何在遠程訪問具有靜態(tài)或動態(tài)IP地址嵌入式網(wǎng)關的技術(主要說明如何在遠程訪問具有動態(tài)IP地址嵌入式網(wǎng)關的技術)。在介紹該技術前,先介紹幾個概念。
(1)DHCP原理
當一臺設置為自動獲取IP地址的計算機在登錄網(wǎng)絡時,會向網(wǎng)絡上發(fā)送“租”一個IP地址的請求,專門負責提供IP地址的DHCP服務器回應這個請求,為這臺計算機提供一個空閑的IP地址。DHCP的主要用途是:通過服務器的伺服進程協(xié)助來控管各個主機(執(zhí)行中的用戶端)上不可缺少的網(wǎng)絡連線參數(shù)。
(2)DNS
DNS(Domain Name System,域名系統(tǒng))是一種組織成域層次結構的計算機和網(wǎng)絡服務命名系統(tǒng),用于TCP/IP網(wǎng)絡。它主要是通過用戶親切而友好的名稱代替枯燥而難記的IP地址,以定位相應的計算機和相應服務。DNS就是完成在名稱和IP地址之間的映射。對于動態(tài)分配IP,做一個DHCP程序來綁定用戶網(wǎng)關的MAC地址和IP地址,然后再根據(jù)不同IP設定權限,防止IP地址盜用。
?。?)HTTP協(xié)議的作用原理
WWW是以Internet作為傳輸媒介的一個應用系統(tǒng),WWW網(wǎng)上最基本的傳輸單位是Web網(wǎng)絡。WWW的工作基于客戶機/服務器計算模型,由Web瀏覽器(客戶機)和Web服務器(服務器)構成,兩者之間采用超文本傳送協(xié)議(HTTP)進行通信。HTTP協(xié)議是基礎TCP/IP協(xié)議之上的協(xié)議,是Web瀏覽器來Web服務器之間的應用層協(xié)議,是通用的、無狀態(tài)的、面向對象的協(xié)議。
根據(jù)上述HTTP協(xié)議的作用原理,本文實現(xiàn)了基于瀏覽器/嵌入式Web服務器模式的家庭智能系統(tǒng)。首先初始化W3100ATRTL8201,通過UDP傳輸DHCP報文,獲取動態(tài)IP地址,再得到DNS服務器支持,由DNS服務器負責建立IP地址與域名(別名)映射;同時,創(chuàng)建進程負責IP地址與域名(別名)映射更新,確保通過別名就可以訪問該嵌入式設備。初始化完成后,遠程瀏覽器就可以進行TCP鏈接了。建立TCP鏈接后,服務器等待遠程瀏覽器的請求,是一個被動的設備。當接收到建立TCP鏈接的請求后,來識別隨后收到的來自遠程客戶機瀏覽器的數(shù)據(jù)包。通過軟件中斷,監(jiān)聽W3100A、等待、接受客戶機連接到RTL8201后,在W3100A體現(xiàn)出來的標志;創(chuàng)建與Socket字相關聯(lián)的輸入流和輸出流;然后讀取客戶機的請求信息。在用戶登錄前,遠程瀏覽器必須獲得存儲在Flash內部的網(wǎng)頁,由此才能進行登錄和控制。GET為其請求數(shù)據(jù)包中的第一個詞,表示這個請求是用來接收Web資源的。該服務器僅對HTTP請求的第一行Get/home.html/HTTP.1進行檢查和解釋。因為除了數(shù)據(jù)外,所有響應信息數(shù)據(jù)都是常量。服務器的響應數(shù)據(jù)包已經(jīng)由程序定制好,存放在服務器中。響應的HTTP數(shù)據(jù)頭和資源一起存放在Flash中。服務器與瀏覽器鏈接建立后,服務器檢查接收的請求數(shù)據(jù),然后調用8051內部的程序模塊,將相應的home.html發(fā)送給遠程瀏覽器。Web頁的存儲范圍為0000H~7FF0H,大約32KB,而8字節(jié)的用戶名和8字節(jié)的密碼可以存放在外圍Flash存儲區(qū)未端。在處理瀏覽器提交的數(shù)據(jù)信息時,按照兩個步驟進行程序設計。首先,服務器根據(jù)遠程瀏覽器傳送過來的數(shù)據(jù)信息,決定服務器的HTTP服務的方式。其實,將Web資源發(fā)送給遠程瀏覽器或使用函數(shù)來處理瀏覽器提交的數(shù)據(jù),并將此數(shù)據(jù)傳遞給消息處理模塊。該消息處理模塊根據(jù)所要控制設備類型查表,然后啟動無線收發(fā)模塊將表中的消息發(fā)送出去。每個智能設備根據(jù)此消息啟動相應的操作,并借助于設計合理的數(shù)據(jù)結構和函數(shù)實現(xiàn)軟件設計。上述過程可用圖4和圖5形象地說明。
結語
本文介紹的嵌入式網(wǎng)關有很大的發(fā)展前途,它以以太網(wǎng)為通信媒介,利用嵌入式網(wǎng)關進行家庭內外信息交換;通過瀏覽器對家庭的各種信息進行實時、有效的管理和調度,為現(xiàn)代家庭生活提供智能服務
評論