電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 1961|回復(fù): 0
收起左側(cè)

嵌入式linux編程學(xué)習(xí)_由W3100A構(gòu)成嵌入式網(wǎng)關(guān)的家庭智能系統(tǒng)

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級(jí)會(huì)員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-8-3 11:18:16 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
嵌入式linux編程學(xué)習(xí)_由W3100A構(gòu)成嵌入式網(wǎng)關(guān)的家庭智能系統(tǒng),   

摘要:主要從嵌入式系統(tǒng)自身的特點(diǎn)出發(fā),介紹一種新型的基于嵌入式網(wǎng)關(guān)的家庭智能系統(tǒng)。系統(tǒng)以以太網(wǎng)為通信媒介,利用嵌入式網(wǎng)關(guān)進(jìn)行家庭內(nèi)外信息交換,通過(guò)瀏覽器對(duì)家庭的各種信息進(jìn)行實(shí)時(shí)、有效的管理和調(diào)度,為現(xiàn)代家庭生活提供智能服務(wù)。

    關(guān)鍵詞:W3100A 嵌入式網(wǎng)關(guān) DNS DHCP

引言

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

1 家庭智能系統(tǒng)的體系結(jié)構(gòu)


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

2 嵌入式網(wǎng)關(guān)

目前,國(guó)內(nèi)外嵌入式網(wǎng)關(guān)的設(shè)計(jì)有二種方案:第一種方案,是基于軟件來(lái)實(shí)現(xiàn)TCP/IP協(xié)議棧;第二種是直接利用TCP/IP協(xié)議棧芯片。本文介紹的嵌入式網(wǎng)關(guān)采用第二種方案,它由W3100A、RTL8201、MCU組成,如圖2所示。  

圖2中,DLC為數(shù)據(jù)鏈路控制,MAC為媒體訪問(wèn)控制,IP為網(wǎng)際協(xié)議,ICMP為因特網(wǎng)控制報(bào)文協(xié)議,TCP為傳輸控制協(xié)議,UDP為用戶數(shù)據(jù)攝協(xié)議,DPRAM為雙端口存儲(chǔ)器。

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

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

3 軟件設(shè)計(jì)思想

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

     (1)DHCP原理

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

(2)DNS

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

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

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

圖4 基于嵌入式網(wǎng)關(guān)的服務(wù)器與遠(yuǎn)程瀏覽器的請(qǐng)求與應(yīng)答示意圖

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

結(jié)語(yǔ)


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

發(fā)表回復(fù)

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表