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

          新聞中心

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

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

          作者: 時(shí)間:2008-02-26 來(lái)源: 收藏

            引言

          本文引用地址:http://www.ex-cimer.com/article/79227.htm

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

            

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

           

            實(shí)現(xiàn)家庭內(nèi)部信息與家庭外部信息的交換,無(wú)疑是家庭連網(wǎng)的目的所在,其實(shí)現(xiàn)需要設(shè)計(jì)一個(gè)理想的家庭網(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)部,同時(shí)將家庭內(nèi)部網(wǎng)絡(luò)連接到外部的一種物理接口;

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

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

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

           ?、莨蚕韺拵нB接,使家庭內(nèi)部的多個(gè)PC及其它信息設(shè)備有效地共享寬帶接入。

            2 智能家庭網(wǎng)關(guān)的實(shí)現(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存儲(chǔ)器,對(duì)外提供RS232/RS485、USB、I/O和以太網(wǎng)接口,并可以方便地?cái)U(kuò)展多種智能家庭網(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)沒(méi)有提供窗口系統(tǒng),因此根據(jù)家庭網(wǎng)關(guān)系統(tǒng)中的實(shí)際需要作出適當(dāng)?shù)男薷暮螅O(shè)計(jì)出一套窗口操作系統(tǒng);又由于PPSM系統(tǒng)中沒(méi)有實(shí)現(xiàn)網(wǎng)絡(luò)功能,因此在對(duì)PPSM系統(tǒng)進(jìn)行修改時(shí)添加了TCP/IP協(xié)議棧,這樣就可以在這個(gè)操作系統(tǒng)中實(shí)現(xiàn)網(wǎng)絡(luò)功能了。

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

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

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

            在該系統(tǒng)中,嵌入式TCP/IP協(xié)議棧實(shí)現(xiàn)ARP、IP、ICMP、TCP、UDP、HTTP等協(xié)議。基本的協(xié)議處理程序如力所示。

            

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

           

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

            

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

           

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

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

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

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

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

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

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

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

            …

            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é)

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

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




          關(guān)鍵詞: MC68VZ328

          評(píng)論


          技術(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); })();