《電子技術應用》
您所在的位置:首頁 > 通信与网络 > 业界动态 > 基于嵌入式TCP/IP协议栈的信息家电连接Internet单芯片解决方案

基于嵌入式TCP/IP协议栈的信息家电连接Internet单芯片解决方案

2009-02-05
作者:牟英峰 徐殿国 张东来

??? 摘? 要: 以分析和實驗為基礎,研究了嵌入式TCP/IP協議棧SX-Stack的結構及運行原理,提出了使用SX-Stack構造單芯片嵌入式網絡服務器,將信息家電接入Internet的新方案。該服務器的組成、構造方法和工作原理,并比較現有的使用PC/網關設備的接入方案,分析了該方案的優(yōu)點。單芯片嵌入式網絡服務器中SX-Stack與用戶應用程序的接口方法,用戶登錄軟件及信息家電監(jiān)測軟件的設計方法。?

??? 關鍵詞: 嵌入式TCP/IP 單芯片 嵌入式網絡服務器 信息家電 Internet

?

??? SX52BD是Ubicom公司推出的RISC結構的8位高性能CMOS微處理器,可以進行高速運算、靈活的I/O口控制和高效的數據操作。SX52BD具有4KB的EE/FLASH ROM和262字節(jié)的SRAM。與現有的8位微處理器相比,其運算速度可達50MIPS,加上優(yōu)化的多數為單時鐘周期的指令集,SX52BD吞吐量大為提高。SX52BD比常規(guī)MCU快20倍的運算速度、可靠的性能和可重復編程的結構,使得精簡的TCP/IP能夠在其中可靠運行。?

??? SX-Stack運行在以SX52BD為基礎的硬件平臺上,是一組可配置的多種Internet協議的組合。這些協議按照分層協議棧的方式精心組織,包括應用層的HTTP、DHCP、SMTP,傳輸層的TCP、UDP,網絡層的IP/ICMP、ARP,通過鏈路層和物理層(如Ethernet)進行Internet數據的交互。SX-Stack的結構如圖1所示。SX-Stack利用SX52BD的高速處理能力,按每次1字節(jié)的方式處理TCP/IP數據包。這樣,避免了在有限數量的RAM中緩存大量數據,使得控制器可以處理比其內部RAM總數更多的數據包。?

?

?

??? 利用嵌入的SX-Stack,Webserver能夠通過Hypertext Transfer Protocol(HTTP)與任何瀏覽器通訊,能夠提供各種類型的資源,如HTML、圖片、PDF文件等。這些資源使用一種特殊的文件系統(tǒng)URI,被存放在容量為32KB的外部EEPROM中。這種文件系統(tǒng)可包含任意多的子目錄,對URL的長度也沒有限制。?

1 信息家電單芯片服務器方案的提出?

??? 從信息家電的遠程在線訪問的角度考慮,對信息家電監(jiān)測和控制時存在兩種情況:(1)遠程訪問時,信息家電的通信數據量不大,56Kbps的通信速率即可滿足要求;(2)信息家電對時實性的要求不高,其時延可以在1秒以上。所以,SX-Stack提供的功能和SX52BD的處理速度能夠滿足上述條件下信息家電對接入Internet微處理器的要求。?

??? 在這種情況下,構造了家電網絡服務器XWebServer,其結構如圖2所示。XWebServer主要由三部分組成,即SX52BD微處理器、RTL8019AS以太網控制器、24LC256(E2PROM)。在SX52BD中運行用戶程序和SX-Stack;在E2PROM中存放XWebServer的各種Web資源;RTL8019AS是Ethernet控制器,負責SX52BD和Ethernet的數據傳遞。在家電已具備SPI(Serial Peripheral Interface)接口的條件下,使用家庭自動化總線HAB(Home Automation Bus)作為XWebServer與家電的接口,在HAB上使用的通

信協議為自主開發(fā)的簡單家庭網絡協議SHNP(Simple Home Networks Protocol)。?

?

?

??? 圖3是使用XWebServer的接入方法與常規(guī)接入方法的比較。使用XWebServer的接入方案省卻了PC機或網關設備,在數據量不大的情況下,完全可以取代PC或網關設備。家電通過SPI接口與XWebServer連接,經由Ethernet接入住宅小區(qū)的信息服務中心。通過XWebServer,家電具備了連接Internet的能力。

?

?

??? 用戶自己開發(fā)的服務器應用程序需要放在應用層上才能運行。服務器應用程序是靠位于傳輸層TCP的Application Program Interface(API)來與下面各層進行數據交換的。在SX-Stack中存在若干個實質為子程序模塊的API函數,應用程序必須通過這些函數將數據組合成符合TCP/IP格式的數據包。為了提供給用戶登錄程序和家庭電氣設備監(jiān)測控制軟件模塊更充分的程序空間,移除了與HTTP服務無關的軟件功能模塊和函數,保留了HTTP、TCP、IP/ICMP。這些程序模塊足以使服務器運行,響應瀏覽器的請求。XWebServer的協議棧結構如圖4所示。?

?

?

2 用戶登錄和家庭電氣設備監(jiān)測控制軟件模塊的設計?

??? 遠程瀏覽器完成TCP鏈接的初始化。服務器等待遠程瀏覽器的請求,是一個被動的設備。當接收到建立TCP鏈接的請求后,服務器建立一個由遠程TCP端口號和遠程IP地址組成的套接字,并使用TCP/IP棧中的API和這個套接字,來識別隨后收到的來自遠程客戶機瀏覽器的數據包。?

??? 在用戶登錄前,遠程瀏覽器必須獲得XWebServer中的Web資源home.html,由此才能進行登錄和控制。GET為其請求數據包中的第一個詞,表示這個請求是用來接收Web資源的。XWebServer僅對HTTP請求的第一行Get/home.html/HTTP1.0進行檢查和解釋。因為除了數據外,所有的響應信息數據都是常量。服務器的響應數據包已經由程序定制好,存放在XWebServer中。響應的HTTP數據頭和資源一起存放在E2PROM中。服務器與瀏覽器的鏈接建立后,服務器檢查接收的請求數據,然后調用E2PROM的程序模塊,將home.html的內容發(fā)送給遠程瀏覽器。Web頁的存儲范圍為0000H~7FF0H,大約32KB,而8字節(jié)的用戶名和8字節(jié)的密碼可以存放在外圍E2PROM存儲區(qū)末端(7FF0H~8000H)。E2PROM的資源分布如圖5所示。?

??? 在處理瀏覽器提交的數據信息時,按照以下兩個步驟進行程序設計:首先,服務器要根據遠程瀏覽器傳送過來的數據信息,決定服務器的HTTP服務的方式;其次,將Web資源發(fā)送給遠程瀏覽器或使用ProcessPostData函數來處理瀏覽器提交的數據。?

??? 在TCP連接的初始化完成后,在應用層的用戶登錄程序使用函數TCPAppRxData()來接收傳輸層的數據。這個函數對數據包中收到的字節(jié)都調用一次。用戶程序首先檢查ASCII碼是P還是G以確定XWebServer對HTTP服務的方式。在服務器接收的數據包中,P表示以Post 開始的用戶提交的數據信息第一個ASCII碼;G表示以Get開始的用戶請求Web資源的第一個ASCII碼,缺省的HTTP服務的方式是Get,即XWebServer響應遠程瀏覽器對Web資源的請求。程序通過設定標志位HTTP_METHOD來確定HTTP服務的方式。確定HTTP服務方式的流程如圖6所示。?

?

?

??? 圖6中的ProcessPostData是處理提交數據的子程序。ProcessPostData主要由兩部分組成:一部分為登錄信息校驗和登錄標志的設定;另一部分為監(jiān)控數據的獲得并發(fā)送到SPI接口。登錄流程如圖7所示。程序必須在確認用戶成功登錄后才能對提交的控制數據進行處理,否則將錯誤指示信息err.htm發(fā)送給遠程瀏覽器。程序通過判斷數據包中提交數據區(qū)的name屬性來確定是登錄數據還是監(jiān)控數據。例如,在index.htm中,對于Username文本框,name=“u”;對于Password文本框,name=“p”。

?

?

??? 用戶在登錄和密碼文本框中輸入用戶名和密碼后提交登錄信息。校驗用戶登錄信息可通過兩種途徑:第一種途徑,系統(tǒng)上電復位后,先從E2PROM中取出用戶名和密碼存放在RAM中,當用戶程序接收到來自TCP數據包中的登錄數據后,采用逐個字節(jié)比較的方法進行用戶信息的校驗;第二種途徑,當用戶程序接收到來自TCP數據包中的登錄數據后,再按字節(jié)從E2PROM中取出用戶名和密碼進行校驗。與第二種方法相比,第一種方法能夠滿足XWebServer對實時性的要求。為提高RAM資源的利用率,在校驗結束后,用戶程序釋放16個字節(jié)的RAM資源。?

??? 處理監(jiān)控信息的流程如圖8所示。如果用戶成功登錄,就從數據區(qū)中取出監(jiān)控用的數據,直接送到SPI接口,否則給出錯誤信息err.htm。用戶服務程序并不對數據區(qū)中的數據進行解釋,只是將其按原始的排列方式從SPI接口輸出。在整體數據流動的過程中,XWebServer起到了從以太網數據流到SPI接口數據流的轉換作用。?

?

?

??? 以太網作為接口,以SX52BD為硬件平臺,利用軟件化的嵌入式TCP/IP,能夠實現HTTP服務。SX-Stack在家電網絡接入Internet中的應用,為其接入Internet提供了一種無需額外的PC或網關設備的解決方案。這種低成本、高性能的方案,具有可靠、靈活的特點,適用于通訊速率不大于56Kbps、允許時延大于1秒、需要連接Internet的家庭自動化設備。用戶可以根據需要,按照本文提供的方法,構造自己的網絡服務器,可為普通的電氣設備或系統(tǒng)如公共服務設備、家庭醫(yī)療保健設備、工業(yè)自動化系統(tǒng)等,賦予接入Internet的能力。?

參考文獻?

1 Ubicom, Inc. SX48BD/SX52BD Datasheet. 2000,3 ?

2 Ubicom,Inc.Ethernet SX-Stack Internet Connectivity User's?Manual. 2000,11?

3 Ubicom, Inc. Christopher Waters.HTTP Virtual Peripheral?Implementation. 2000.9?

4 郭 旭.Home.Net 模型/架構研究.單片機與嵌入式系統(tǒng)應用, 2001;(6)

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。

相關內容