<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > 由W3100A構(gòu)成嵌入式網(wǎng)關(guān)的家庭智能系統(tǒng)

          由W3100A構(gòu)成嵌入式網(wǎng)關(guān)的家庭智能系統(tǒng)

          作者: 時間:2008-04-09 來源: 收藏
          引言

            當(dāng)今社會逐漸入網(wǎng)絡(luò)時代,因特網(wǎng)已成為重要的基礎(chǔ)信息設(shè)施。目前,大部分網(wǎng)絡(luò)終端仍以的形式出現(xiàn),但是從計算機(jī)應(yīng)用普及的情況看,嵌入式系統(tǒng)更為普及,過去大量的浩如煙海的8位/16位單片機(jī)的嵌入式設(shè)備,已經(jīng)到了享受網(wǎng)絡(luò)方便的時候了。近來的統(tǒng)計證明:機(jī)CPU的產(chǎn)量僅是MCU產(chǎn)量的1/100,并且由于MCU的成本低廉,應(yīng)用非常普及。在工業(yè)測控、智能儀器、智能家庭領(lǐng)域,MCU應(yīng)用系統(tǒng)已無處不在。在這些場合中,以MCU為核心的設(shè)備同樣也需要解決接入因特網(wǎng)的問題。本文在分析嵌入式系統(tǒng)與常規(guī)計算機(jī)系統(tǒng)研發(fā)不同點的基礎(chǔ)上,介紹一種新型。


            1 的體系結(jié)構(gòu)

            體系結(jié)構(gòu)的總體框圖如圖1所示。從大的方面看,家庭智能系統(tǒng)可由三部分組成:家庭自動化外部接口模塊、家庭自動化圖像模塊、家庭智能化內(nèi)部無線收發(fā)與控制模塊。未來的家庭中,多件家用電器與各種報警器將組成一個家庭的內(nèi)部網(wǎng),并通過內(nèi)部網(wǎng)的網(wǎng)關(guān)接入因特網(wǎng)。一方面,內(nèi)部網(wǎng)中的家電可以通過網(wǎng)關(guān)訪問因特網(wǎng)上資源。如網(wǎng)絡(luò)電視機(jī)每天早晨自動訪問用戶喜歡的某個電視臺的網(wǎng)站,自動下載晚上的節(jié)目表。另一方面,用戶可以在因特網(wǎng)任務(wù)一點通過瀏覽器對家里的家用電器與報警器進(jìn)行遠(yuǎn)程控制。如用戶出門在外,可以在外地上網(wǎng),通過瀏覽器,啟動家里的攝像機(jī)實時監(jiān)察家里的安全。家庭自動化內(nèi)部無線網(wǎng)模塊要由消息處理模塊和基于工頻的無線收模塊(NRF401)構(gòu)成。它將成為Internet網(wǎng)的發(fā)展沃土,順應(yīng)“網(wǎng)絡(luò)服務(wù)”向“網(wǎng)絡(luò)應(yīng)用”擴(kuò)展的大潮。本文主要介紹,以及如何在遠(yuǎn)程訪問具有靜態(tài)或動態(tài)IP地址的技術(shù)。

            2

            目前,國內(nèi)外嵌入式網(wǎng)關(guān)的設(shè)計有二種方案:第一種方案,是基于軟件來實現(xiàn)TCP/IP協(xié)議棧;第二種是直接利用TCP/IP協(xié)議棧芯片。本文介紹的嵌入式網(wǎng)關(guān)采用第二種方案,它由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)點,因為用軟件設(shè)計的TCP/IP協(xié)議棧,是一次投交多次使用;但開始投次比較大且設(shè)計復(fù)雜,因為需要實時操作系統(tǒng)的支持,而第二種方案,盡管在大指生產(chǎn)時成本高,因為每個智能設(shè)備都要嵌入TCP/IP協(xié)議棧芯片;但是在非大批量生產(chǎn)時具有投次比較大,設(shè)計簡單、靈活的特點,因為不需要實時操作系統(tǒng)的支持。本文采用的TCP/IP協(xié)議棧芯片是W3100A.它有如下特點:首先,它自帶TCP/IP協(xié)議棧(如TCP、UDP、Ipver.4、ICMP、ARP、DLC、MAC協(xié)議);其次,它能同時支持四個獨立的連接通道,具有高速傳輸速率(如網(wǎng)關(guān)的MCU用Atmel 8951,那么網(wǎng)關(guān)的傳輸速率是200b/s;若用Intel386,那么網(wǎng)關(guān)的傳輸速率是3Mb/s)同時,它具有與MCU和物理層電路接口。從圖2可以看到;W3100A除了具有上述特點外,還提供了Socket應(yīng)用程序編程接口,為那種需要進(jìn)行因特網(wǎng)連接的智能設(shè)備,提供了一種簡便、廉價、高效的方案,只要將W3100嵌入智能設(shè)備就可以了。這樣,大大減少了軟件研發(fā)費用,減輕了MCU的工作量,同時便利該產(chǎn)品具有競爭力,并符合嵌入式系統(tǒng)設(shè)計原則:①價格。由于嵌入式設(shè)備對價格非常敏感,通常要求價廉質(zhì)優(yōu),故在設(shè)計產(chǎn)品時,在滿足功能要求的情況下盡量降低成本。②環(huán)境。在功能要求滿足的同時,要考慮到該產(chǎn)品在惡劣環(huán)境下,能否正常工作,比如溫度、電源功耗等等。③使用。用戶在使用時,操作應(yīng)盡量簡單。

            RTL8201是單口10/100Mb/s以太網(wǎng)收發(fā)器,超低耗和少于180mA/3.3V操作電壓,支持全雙工和半雙工操作,提供一個LED顯示器指示一個網(wǎng)絡(luò)回環(huán)存在。由于上述的優(yōu)點,該嵌入式網(wǎng)關(guān)可以用在IP電話、網(wǎng)絡(luò)MP3、網(wǎng)絡(luò)相機(jī)和工業(yè)控制總線上。圖3是嵌入式網(wǎng)關(guān)的原理圖。

            3 軟件設(shè)計思想

            為了適應(yīng)分組到達(dá)的隨機(jī)性,系統(tǒng)必須具有能夠從網(wǎng)絡(luò)接口讀取分組的能力,故本系統(tǒng)采用“軟件中斷”的機(jī)制。當(dāng)一個分組到達(dá)時,產(chǎn)生一個硬件中斷,設(shè)備驅(qū)動程序接收分組重置接口設(shè)備。在中斷返回之前,設(shè)備驅(qū)動程序會通知硬件安排下一個較低優(yōu)先級的中斷;在此次硬件中斷結(jié)束后,低優(yōu)先級的中斷會繼續(xù)執(zhí)行。下面結(jié)合“軟件中斷”的機(jī)制、動態(tài)主機(jī)配置協(xié)議(DHCP)和域名系統(tǒng)(DNS),來說明如何在遠(yuǎn)程訪問具有靜態(tài)或動態(tài)IP地址嵌入式網(wǎng)關(guān)的技術(shù)(主要說明如何在遠(yuǎn)程訪問具有動態(tài)IP地址嵌入式網(wǎng)關(guān)的技術(shù))。在介紹該技術(shù)前,先介紹幾個概念。


            (1)DHCP原理

            當(dāng)一臺設(shè)置為自動獲取IP地址的計算機(jī)在登錄網(wǎng)絡(luò)時,會向網(wǎng)絡(luò)上發(fā)送“租”一個IP地址的請求,專門負(fù)責(zé)提供IP地址的DHCP服務(wù)器回應(yīng)這個請求,為這臺計算機(jī)提供一個空閑的IP地址。DHCP的主要用途是:通過服務(wù)器的伺服進(jìn)程協(xié)助來控管各個主機(jī)(執(zhí)行中的用戶端)上不可缺少的網(wǎng)絡(luò)連線參數(shù)。

            (2)DNS

            DNS(Domain Name System,域名系統(tǒng))是一種組織成域?qū)哟谓Y(jié)構(gòu)的計算機(jī)和網(wǎng)絡(luò)服務(wù)命名系統(tǒng),用于TCP/IP網(wǎng)絡(luò)。它主要是通過用戶親切而友好的名稱代替枯燥而難記的IP地址,以定位相應(yīng)的計算機(jī)和相應(yīng)服務(wù)。DNS就是完成在名稱和IP地址之間的映射。對于動態(tài)分配IP,做一個DHCP程序來綁定用戶網(wǎng)關(guān)的MAC地址和IP地址,然后再根據(jù)不同IP設(shè)定權(quán)限,防止IP地址盜用。

           ?。?)HTTP協(xié)議的作用原理

            WWW是以Internet作為傳輸媒介的一個應(yīng)用系統(tǒng),WWW網(wǎng)上最基本的傳輸單位是Web網(wǎng)絡(luò)。WWW的工作基于客戶機(jī)/服務(wù)器計算模型,由Web瀏覽器(客戶機(jī))和Web服務(wù)器(服務(wù)器)構(gòu)成,兩者之間采用超文本傳送協(xié)議(HTTP)進(jìn)行通信。HTTP協(xié)議是基礎(chǔ)TCP/IP協(xié)議之上的協(xié)議,是Web瀏覽器來Web服務(wù)器之間的應(yīng)用層協(xié)議,是通用的、無狀態(tài)的、面向?qū)ο蟮膮f(xié)議。

            根據(jù)上述HTTP協(xié)議的作用原理,本文實現(xiàn)了基于瀏覽器/嵌入式Web服務(wù)器模式的家庭智能系統(tǒng)。首先初始化W3100ATRTL8201,通過UDP傳輸DHCP報文,獲取動態(tài)IP地址,再得到DNS服務(wù)器支持,由DNS服務(wù)器負(fù)責(zé)建立IP地址與域名(別名)映射;同時,創(chuàng)建進(jìn)程負(fù)責(zé)IP地址與域名(別名)映射更新,確保通過別名就可以訪問該嵌入式設(shè)備。初始化完成后,遠(yuǎn)程瀏覽器就可以進(jìn)行TCP鏈接了。建立TCP鏈接后,服務(wù)器等待遠(yuǎn)程瀏覽器的請求,是一個被動的設(shè)備。當(dāng)接收到建立TCP鏈接的請求后,來識別隨后收到的來自遠(yuǎn)程客戶機(jī)瀏覽器的數(shù)據(jù)包。通過軟件中斷,監(jiān)聽W3100A、等待、接受客戶機(jī)連接到RTL8201后,在W3100A體現(xiàn)出來的標(biāo)志;創(chuàng)建與Socket字相關(guān)聯(lián)的輸入流和輸出流;然后讀取客戶機(jī)的請求信息。在用戶登錄前,遠(yuǎn)程瀏覽器必須獲得存儲在Flash內(nèi)部的網(wǎng)頁,由此才能進(jìn)行登錄和控制。GET為其請求數(shù)據(jù)包中的第一個詞,表示這個請求是用來接收Web資源的。該服務(wù)器僅對HTTP請求的第一行Get/home.html/HTTP.1進(jìn)行檢查和解釋。因為除了數(shù)據(jù)外,所有響應(yīng)信息數(shù)據(jù)都是常量。服務(wù)器的響應(yīng)數(shù)據(jù)包已經(jīng)由程序定制好,存放在服務(wù)器中。響應(yīng)的HTTP數(shù)據(jù)頭和資源一起存放在Flash中。服務(wù)器與瀏覽器鏈接建立后,服務(wù)器檢查接收的請求數(shù)據(jù),然后調(diào)用8051內(nèi)部的程序模塊,將相應(yīng)的home.html發(fā)送給遠(yuǎn)程瀏覽器。Web頁的存儲范圍為0000H~7FF0H,大約32KB,而8字節(jié)的用戶名和8字節(jié)的密碼可以存放在外圍Flash存儲區(qū)未端。在處理瀏覽器提交的數(shù)據(jù)信息時,按照兩個步驟進(jìn)行程序設(shè)計。首先,服務(wù)器根據(jù)遠(yuǎn)程瀏覽器傳送過來的數(shù)據(jù)信息,決定服務(wù)器的HTTP服務(wù)的方式。其實,將Web資源發(fā)送給遠(yuǎn)程瀏覽器或使用函數(shù)來處理瀏覽器提交的數(shù)據(jù),并將此數(shù)據(jù)傳遞給消息處理模塊。該消息處理模塊根據(jù)所要控制設(shè)備類型查表,然后啟動無線收發(fā)模塊將表中的消息發(fā)送出去。每個智能設(shè)備根據(jù)此消息啟動相應(yīng)的操作,并借助于設(shè)計合理的數(shù)據(jù)結(jié)構(gòu)和函數(shù)實現(xiàn)軟件設(shè)計。上述過程可用圖4和圖5形象地說明。



          結(jié)語

          本文介紹的嵌入式網(wǎng)關(guān)有很大的發(fā)展前途,它以以太網(wǎng)為通信媒介,利用嵌入式網(wǎng)關(guān)進(jìn)行家庭內(nèi)外信息交換;通過瀏覽器對家庭的各種信息進(jìn)行實時、有效的管理和調(diào)度,為現(xiàn)代家庭生活提供智能服務(wù)


          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();