利用軟件工具開發嵌入式Web應用

愈來愈多的嵌入式設備將添加Web瀏覽功能,而支持Web功能的嵌入式處理器能夠簡化這類設備的設計。本文分析了嵌入式Web功能的特色,並詳細描述了使用軟件工具開發嵌入式Web應用的設計要點。web

XML(可 擴展標記語言)正在迅速成爲嵌入式系統與應用之間的首選接口技術。咱們有許多方法能夠實現帶XML功能、支持Web瀏覽的嵌入式設備,從軟件到專用硬件。 最簡單的方法多是徹底用外部軟件執行Web處理,儘管從消耗的處理能力考慮,這種方法的成本也最高。在這種方法中,設計師有可能要利用諸如微軟 Windows CE等嵌入式操做系統的性能。shell

然而,對於資源受限的嵌入式項目,設計師將發現一種更有效的方法是直接用硬件實現Web支持功能。可供選擇的解決方案包括全32位處理器+Web服務器,以及兼具低功耗和高數據吞吐量特性的混合解決方案等。瀏覽器

目 前,大部分主要的嵌入式架構都提供Web支持,包括Z80、MIPS、ARM和X86等。因爲市面上存在數千種不一樣的嵌入式IC,所以設計師須要進行調 研:有些芯片只須要軟件,而其它芯片經常須要一塊外插卡來處理網絡鏈接。當把實現Web支持功能所需的最重要的硬件元件---以太網控制器集成到芯片上 時,這樣的解決方案具備最低的成本。Zilog公司的eZ80 Acclaim微控制器正是這樣一種方案。服務器

eZ80 Acclaim是一款帶有Web功能的微控制器,它包合一個高性能的嵌入式處理器和一個完整的軟件堆棧,以建立一種完整的嵌入式鏈接系統。該軟件堆棧支持標準TCP/IP網絡協議以及以太網和串口驅動程序。圖1:Web站點的每一個網頁都必須有一個相似於圖示的「webpage」參數。網絡

在 嵌入式處理器上實現的Web支持不一樣於運行在PC架構上的Web服務器。標準的我的計算機和基於互聯網的Web設備將Web網頁存儲在諸如硬盤驅動器等大 容量存儲設備上,與此相反,由嵌入式處理器建立的Web網頁能夠做爲嵌入式數據元素進行訪問。在存儲器和處理能力兩方面,嵌入式實現方案的資源都是受限 的。帶XML功能、支持Web的嵌入式系統必須作得比PC更單薄、更簡易、更智能。架構

將Web支持功能歸入嵌入式應用的一個優勢是,它使工程師擺除了用戶界面設計的負擔。這是由於用HTML/XML編寫而後轉換成C/C++代碼的嵌入式Web網頁提供了現成的用戶友好界面,具有支持複雜嵌入式系統的能力。函數

XML 爲數據交換帶來便利。XML針對不一樣系統之間的數據交換提供了一種不依賴於處理器的編碼方式。XML使用規定的標識符將編碼定義置於Web網頁內。設計師 正在爲採用XML語法的不一樣應用環境開發不一樣的標識符定義集。例如,已完成的標識集包括用於電氣工程、電子商務、多媒體數據和純文檔信息的詞表。工具

咱們有許多方式向其它系統來回傳送XML文檔。例如,它們能夠做爲HTTP對象傳送。這意味着必須支持簡單對象訪問協議(SOAP)或者XML-RPC必須被集成到服務器中。性能

爲了在嵌入式系統中包含XML和HTML支持,這要求軟件工具提供特別的功能。尤爲是,與嵌入式硬件密切相關的編譯器-鏈接器必須在設計上容許XML代碼嵌入到應用程序的C語言或彙編代碼中。網站

在 實際開發中,訪問XML的功能是至關容易實現的:程序設計員只需在他的程序中加入一串「#include」聲明便可。Zilog公司面向eZ80 Acclaim的Z_DS II開發者套件正是採用這樣的操做手法。許多開發者套件還包括HTML/XML網頁樣本,這極大地簡化了任何項目。

實現過程

盡 管「#include」聲明簡單易用,但開發者必須考慮訪問嵌入式Web的其它幾項軟件元素。首先,在應用代碼中,開發者必須包含一個調用HTTP初始化 功能的命令。不過,在此過程當中,最重要和最耗時的部分是要求把將被嵌入式系統用戶訪問的Web網頁內建到Web服務器中。圖2:在嵌入式Web服務器程序中的典型命令行。

在操做中,當正在執行的代碼調用初始化功能時,Web網頁開始在嵌入式處理器中造成。初始化功能看上去有些相似於此:http_init (http_defmethods,http_defheaders, website, port)。

在咱們的例子中,與這個命令最關聯的部分是「website」參數,它由用戶建立,並定義了將包含在嵌入式處理器支持的站點中的Web網頁。

在咱們更深刻地研究以前,須要重點指出Web網頁分爲兩類:靜態HTML網頁和動態HTML網頁。靜態Web網頁不會改變。許多企業Web網站基本上都是靜態的,其功能主要是宣傳他們的服務和產品;全部訪問這些站點的用戶都以相同的方式瀏覽網頁。

與之相反,動態HTML網頁會根據用戶的反饋信息改變內容。搜索引擎和在線銀行網站是這類網頁的表明,在這些網站,查看的內容會根據用戶輸入的數據而改變。

這對於嵌入式Web服務器的意義是:靜態頁面易於建立,它們可保存爲在C語言軟件程序中的一串字符。它們一般不能保存爲簡單的ASCII文本文件,由於純粹的嵌入式設備沒有文件系統。另外一方面,動態頁面不能做爲文件保存,由於它們的內容是變化的。它們必須實時生成。

這意味着動態文檔必須由一系列功能或參數拼湊而成。在生成Web網頁的過程當中,系統須要執行一系列C函數,每一個函數對應於在屏幕上顯示的一部分Web網頁。

然 後,生成的XML/HTML頁面將傳送到瀏覽器。正是經過這些函數調用,程序設計員可以使嵌入式系統完成用戶要求它執行的工做,例如讀取溫度傳感器,並生 成一個向用戶顯示溫度的頁面。使用這些函數調用,程序設計員還能夠編寫讀取用戶輸入的代碼,用戶通常經過填寫嵌入在Web瀏覽器中的表格來輸入信息。基於 在表格中的信息,程序設計員能夠調節恆溫器和開啓發動機等。圖3:全部重要的Web網頁代碼都包含在website參數中。

所以,「website」參數定義了組成Web頁面結構的排列。(注意,Web站點的每一個網頁都必須有一個「webpage」參數。)

除初始化功能之外,程序設計員還必須謹慎對待其它幾個細節。例如,必須設置網絡鏈接的時間限制,啓動一些網絡處理和創建shell程序(這樣命令才能夠來回傳送)。在嵌入式Web服務器的程序中必須包括命令行。

那麼,HTTP服務器是如何接收函數調用,並返回被請求的Web網頁呢?與大多數網絡協議同樣,HTTP採用客戶機-服務器模式。

HTTP客戶機打開一個TCP鏈接,並向HTTP服務器發出一個請求。請求包含一個鑑別目標Web網頁的通用資源標識符。服務器隨後返回一個包含所請求資源的響應信息。

最後,程序添加最重要的元素---Web網頁自己。

這種別具一格的片上Web解決方案容許創建與TCP/IP網絡的通用鏈接,可實現容易的系統控制、簡單的代碼升級和更好的兼容性。

相關文章
相關標籤/搜索