新聞中心

EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > MC68VZ328的智能家庭網(wǎng)關(guān)的解決方案

MC68VZ328的智能家庭網(wǎng)關(guān)的解決方案

作者: 時間:2008-02-26 來源: 收藏

  引言

本文引用地址:http://butianyuan.cn/article/79227.htm

  智能家庭網(wǎng)絡(luò)是信息時代帶給人們的又一個高科技產(chǎn)物。它借助現(xiàn)有的計算機網(wǎng)絡(luò)技術(shù),將家庭內(nèi)部的各種家電和設(shè)備連網(wǎng),通過網(wǎng)絡(luò)為人們提供各種豐富、多樣、個性、方便、舒適、安全和高效的服務(wù)。家庭網(wǎng)絡(luò)化也是整個社會信息化的一個重要的部分。智能家庭網(wǎng)絡(luò)系統(tǒng)的基本結(jié)構(gòu)如圖1所示。

  

智能家庭網(wǎng)絡(luò)系統(tǒng)的基本結(jié)構(gòu)

 

  實現(xiàn)家庭內(nèi)部信息與家庭外部信息的交換,無疑是家庭連網(wǎng)的目的所在,其實現(xiàn)需要設(shè)計一個理想的家庭網(wǎng)關(guān)。

  1 家庭網(wǎng)關(guān)

  家庭網(wǎng)關(guān)作為家庭網(wǎng)絡(luò)與Internet間的接口,如圖2所示。家庭網(wǎng)關(guān)應(yīng)具有以下的基本功能:

  

家庭網(wǎng)關(guān)作為家庭網(wǎng)絡(luò)與Internet間的接口

 

 ?、僮鳛樗型獠拷尤刖W(wǎng)連接到家庭內(nèi)部,同時將家庭內(nèi)部網(wǎng)絡(luò)連接到外部的一種物理接口;

 ?、谑棺≌脩艨梢垣@得各種家庭服務(wù)(包括現(xiàn)有的和未來可能出現(xiàn)的服務(wù))的平臺;

  ③為家庭內(nèi)部網(wǎng)絡(luò)中的設(shè)備分配IP地址,每個家庭網(wǎng)絡(luò)中的設(shè)備必須擁有唯一的IP地址(僅限于家庭網(wǎng)絡(luò)內(nèi)部使用),對于這種僅限于家庭內(nèi)部使用的IP只能由家庭網(wǎng)關(guān)來配置;

 ?、苈酚晒δ?,家庭網(wǎng)絡(luò)的復(fù)雜性使得內(nèi)部可能存在多個具有不同物理協(xié)議的子協(xié)議,家庭網(wǎng)關(guān)必須具有路由的功能,將來自Internet的帶寬 信息發(fā)送給相應(yīng)的設(shè)備,同時也可實現(xiàn)設(shè)備間通信及分工合作;

  ⑤共享寬帶連接,使家庭內(nèi)部的多個PC及其它信息設(shè)備有效地共享寬帶接入。

  2 智能家庭網(wǎng)關(guān)的實現(xiàn)

  2.1 智能家庭網(wǎng)關(guān)的硬件體系結(jié)構(gòu)

  智能家庭網(wǎng)關(guān)的硬件體系結(jié)構(gòu)如圖3所示.

  

智能家庭網(wǎng)關(guān)的硬件體系結(jié)構(gòu)

 

  智能家庭網(wǎng)關(guān)硬件系統(tǒng)選用Motorola公司的68VZ328處理器芯片,配合4MB的Flash和2MB的SDRAM存儲器,對外提供RS232/RS485、USB、I/O和以太網(wǎng)接口,并可以方便地擴展多種智能家庭網(wǎng)絡(luò)物理接口。

  2.2 智能家庭網(wǎng)關(guān)的軟件體系結(jié)構(gòu)

  軟件體系結(jié)構(gòu)如圖4所示。

  

軟件體系結(jié)構(gòu)

 

  在家庭網(wǎng)關(guān)的軟件系統(tǒng)中,選用Motorola提供的PPSM系統(tǒng)。由于PPSM系統(tǒng)沒有提供窗口系統(tǒng),因此根據(jù)家庭網(wǎng)關(guān)系統(tǒng)中的實際需要作出適當?shù)男薷暮?,設(shè)計出一套窗口操作系統(tǒng);又由于PPSM系統(tǒng)中沒有實現(xiàn)網(wǎng)絡(luò)功能,因此在對PPSM系統(tǒng)進行修改時添加了TCP/IP協(xié)議棧,這樣就可以在這個操作系統(tǒng)中實現(xiàn)網(wǎng)絡(luò)功能了。

  3 嵌入式TCP/IP協(xié)議棧開發(fā)

  嵌入式系統(tǒng)中對TCP/IP協(xié)議棧的實現(xiàn)方式有硬件固化和軟件實現(xiàn)兩種。硬件方式是指TCP/IP協(xié)議棧用硬件的方式實現(xiàn),嵌入式系統(tǒng)中直接與TCP/IP協(xié)議棧硬件芯片連接,由它實現(xiàn)協(xié)議的轉(zhuǎn)換,從而使之與互聯(lián)網(wǎng)相連接。但這無疑增加了硬件成本,對一些功能單一的嵌入式設(shè)備,連接一個完整的TCP/IP硬件議棧,是一個極大的浪費,而且所增加的成本費用是難以議棧,是個極大的浪費,而且所增加的成本費用是難以接受的。因此在該系統(tǒng)中,選用軟件方式實現(xiàn)嵌入式TCP/IP協(xié)議具有更大的優(yōu)勢。

  高級的操作系統(tǒng)可支持TCP/IP協(xié)議族,但我們選用的PPSM系統(tǒng)是不支持的,因此必須根據(jù)該系統(tǒng)的實際需要添加對TCP/IP協(xié)議族的支持功能。在添加TCP/IP協(xié)議族時,根據(jù)系統(tǒng)的特點和功能設(shè)計出獨特的TCP/IP協(xié)議族,實現(xiàn)與需要有關(guān)的部分,對不需要的協(xié)議則不予支持;其次,對于使用的協(xié)議根據(jù)具體應(yīng)用作出了必要修改。

  在該系統(tǒng)中,嵌入式TCP/IP協(xié)議棧實現(xiàn)ARP、IP、ICMP、TCP、UDP、HTTP等協(xié)議?;镜膮f(xié)議處理程序如力所示。

  

基本的協(xié)議處理程序

 

  結(jié)合該系統(tǒng)的實際情況,構(gòu)建嵌入式TCP用于控制動作的有限機模型如圖6所示。在一些對于嵌入式系統(tǒng)不必要的地方做了修改、簡化,但仍保持與標準TCP協(xié)議的一致性。

  

構(gòu)建嵌入式TCP用于控制動作的有限機模型

 

  在設(shè)計嵌入式Web服務(wù)器,時系統(tǒng)中TCP中上只支持HTTP協(xié)議,嵌入式系統(tǒng)把數(shù)據(jù)采集、運行參數(shù)等當前實時數(shù)據(jù)存入存儲器中網(wǎng)頁的相關(guān)位置。對任何TC連接,每次只是支持HTTP協(xié)議發(fā)送風頁服務(wù),并且把每個網(wǎng)頁大小限制在一個數(shù)據(jù)包內(nèi),而不會出現(xiàn)IP包的分拆。作為嵌入式Web服務(wù)器,TCP連接時只處于被動服務(wù)的狀態(tài),所以可以將標準TCP有限狀態(tài)機主動創(chuàng)建連接的SYN-ENT狀態(tài)、主動關(guān)閉連接的FIN-AIT1、FIN-AIT2、CLOSING、TIME-AIT狀態(tài)省去。在設(shè)計中,還去掉了CLOSED狀態(tài),讓它一開始就處于LISTEN狀態(tài),來監(jiān)聽客戶端的連接請求,避免了主動或被動打開的操作,對此嵌入式場合,更加高效。

  在三次握手建立連接的過程中,嵌入式系統(tǒng)作為監(jiān)聽狀態(tài)的服務(wù)器端,始終為被動方,相當于被動打開后的LISTEN狀態(tài),等對方發(fā)起連接。當它接收到SYN數(shù)據(jù)片,它發(fā)出SYN+ACK數(shù)據(jù)片并確認它已接收到對方的SYN,此時變?yōu)镾YN+RECIVED狀態(tài)。再接收到對方返回的一個僅含ACK的空數(shù)據(jù)片,則三次握手完成,進入ESTABLISHED狀態(tài),之后可以進行TCP數(shù)據(jù)通信。

  在操作系統(tǒng)中,為防止舊的重復(fù)連接請求引起混亂,可以用復(fù)位RESET控制攝文對這種情況進行處理。收到復(fù)位RESET信號后,若處于非同步狀態(tài)(SYNRECIVED、SYN-SEND),則回到LISTEN狀態(tài);若處于任意一種同步狀態(tài),它就異常終止連接并通知它的用戶在該系統(tǒng)中取消了CLOSE狀態(tài),所以收到復(fù)位RESET控制報文時,回到LISTEN狀態(tài)。實際處理時并沒有記憶當前的狀態(tài),所以不需要作任何操作,并因為始終處于被動狀態(tài)而從不發(fā)復(fù)位RESET報文。

  在操作系統(tǒng)中,將端口號、IP地址、序列號、窗口尺寸等和響應(yīng)的傳輸控制塊TCB結(jié)構(gòu)表示不同的連接,為不同的客戶請求建立多個連接,一一對應(yīng),并發(fā)執(zhí)行。而在嵌入式TC宮實現(xiàn)如此復(fù)雜的操作并不現(xiàn)實,故設(shè)計中沒有記錄TCP連接所處的當前狀態(tài),也沒有分開建立多個TCP連接。分析如下:每從下層協(xié)議傳來一個報文后,并不能比較報文段中的信息和TCP中的信息來進行處理,因為并沒有記憶過去所建連接的有關(guān)信息,所以并不知道此連接是否存在及所處狀態(tài)等,僅僅根據(jù)接收包內(nèi)的有關(guān)信息(控制位和有無數(shù)據(jù)),來判斷所處連接狀態(tài)來進行回應(yīng)。連接的概述在一定程度上,只是對客戶端PC來說的,給它維持一個連接存在的假象。而嵌入式報務(wù)器端因為不存儲連接的信息,相當于沒有連接的存在,對所有連接都響應(yīng),才可以在有限系統(tǒng)資源的條件下實現(xiàn)了多連接。

  在TCP的連接中,一方由于崩潰等原因造成異常終止或關(guān)閉一個連接,會產(chǎn)生半開連接的問題,由于異常的一方丟失了存儲的信息,若任一方發(fā)數(shù)據(jù)去,對方會回復(fù)復(fù)位信號,連接復(fù)位。對嵌入式系統(tǒng)來說,當客戶機異常且嵌入式系統(tǒng)發(fā)數(shù)據(jù)時,會被回復(fù)復(fù)位信號;當嵌入式系統(tǒng)異常后,又重新開始時,由于它本來就無存儲信息,故沒有什么影響。

  當網(wǎng)絡(luò)出現(xiàn)超時、丟失包時,一般用超時重傳機制間來重發(fā),而嵌入式系統(tǒng)發(fā)包之后,并未保存此包,此不考慮重發(fā)問題。當丟包后,繹方接不到確認包,為自己的所發(fā)的包丟失,超時重發(fā),而嵌入式系統(tǒng)此時再響應(yīng)并發(fā)包,仍可保證可靠性。

  嵌入式系統(tǒng)不記憶TCP連接的序列號,除了第一次建立連接時初始化序列號外,是根據(jù)對方發(fā)包中的值來確定序列號,因此它不能識別重復(fù)報文,而照?;貞?yīng)。把此重復(fù)報文的處理工作交給對方處理,仍可滿足基本工作要求。對依靠TCP連接的HTTP服務(wù)來說,嵌入式服務(wù)器僅僅在服務(wù)器端響應(yīng)客戶端請求,所接收的一個報文數(shù)據(jù)報即可傳輸完成,故不需要考慮失序問題。

  在設(shè)計實現(xiàn)TCP有限狀態(tài)機時,使用過程驅(qū)動方案為每個輸入狀態(tài)啟動一個過程。當某一事件發(fā)生時,TCP利用當前狀態(tài)來選取一個適當?shù)倪^程。該過程處理輸入事件并更新當前狀態(tài)變量值,即每個狀態(tài)對應(yīng)一個過程,當一個輸入報文段到達時,TCP調(diào)用當前狀態(tài)對應(yīng)的過程,進行處理。程序主要如下:

  …

  if(SYN_IN && port_right)tcp_send_SYN_ACK 0;

  else if(SYN_IN && port_num_wrong)tcp_send_RST_ACK 0;

  else if(ACK_IN && port_num_right && have_data)http_process (tcp_ACK);

  else if(FIN_IN && port_num_right && have_data)http_process

  (tcp_FIN);

  else if(FIN_IN && port_num_right && no_data)tcp_send_FIN 0;

  else

  …

  4 總結(jié)

  該解決方案中只實現(xiàn)了家庭網(wǎng)關(guān)的網(wǎng)絡(luò)控制功能,在下一步中將逐漸加入使用電話對家庭網(wǎng)關(guān)的控制功能。這樣就使人們在不能上網(wǎng)的情況下只需要使用電話,就能通過智能家庭網(wǎng)關(guān)實現(xiàn)人們只有在網(wǎng)上才能實現(xiàn)的功能。

tcp/ip相關(guān)文章:tcp/ip是什么




關(guān)鍵詞: MC68VZ328

評論


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

關(guān)閉