基於ARM和eCos的 嵌入式WEB伺服器設計

來源:互聯網
上載者:User
 基於ARM和eCos的 嵌入式WEB伺服器設計時間:2009-01-06 10:43:56 來源:單片機與嵌入式系統 作者:長江大學 朱嶸濤 徐愛鈞

引 言
   
隨著現代通訊技術和網路技術的迅猛發展,乙太網路技術也越來越成熟,特別是基於TCP/IP通訊協定的Web技術得到了廣泛應用。我們可以用微控制器加以太
網介面晶片,取代PC機進行現場控制,組成嵌入式Web
Serv-er系統。現場感應器自動跟蹤各監測點的資訊,把檢測到的資料存放區在非易失性儲存空間中,並及時發布到互連網上;相關的工作人員就可以通過Web
技術對裝置進行遠端控制、管理和維護,從瀏覽器上直接監控現場裝置的運行,這樣就大大提高了生產效率和管理水平。
   
為了實現Web伺服器的功能,嵌入式作業系統和一個可實現的TCP/IP協議棧是必需的,因此對嵌入式處理器提出了更高的要求。與傳統的8/16位單片機
相比,ARM核處理器在運算速度、功耗和儲存容量方面都有很大的優勢,而且ARM核處理器可以很方便地實現嵌入式TCP/IP協議棧,所以ARM核處理器
成為嵌入式Web伺服器裝置的首選處理器。系統的設計模型1所示。

1 系統硬體設計
   
ARM核處理器LPC2210基於支援即時模擬和嵌入跟蹤的32/16位ARM7TDMI—S CPU。片內有16
KBSRAM,通過外部儲存空間介面配置成4組,每組的容量達16
MB。LPC2210採用144腳封裝,功耗極低,具有多個32位定時器、8路10位ADC、PWM輸出,最多可提供76個GPIO以及多達9個外部中斷
引腳;採用3級流水線技術,極大地提高了指令執行效率,通過可程式化的片內鎖相環(PLL)可實現最大60 MHz的CPU操作頻率。
    LPC2210的EMC組合符合ARM公司的PL090標準,匯流排寬度可設定為8位、16位或32位,通常16位匯流排寬度的儲存空間具有較高的性價比。
    以Philips公司的ARM核處理器LPC2210為核心來實現嵌入式Web伺服器;網路介面晶片採用Realtek公司的NE2000相容晶片RTL8019AS,它內建了10BASE—T收發器,通過HR901170A器件接入乙太網路。硬體結構2所示。

   
在圖1中,LPC2210擴充了2 MB的NOR Flash(晶片型號為SST39VFl60)和8.MB
PSRAM(晶片型號為MT45W4Mwl6)。為了方便調試及最終代碼的固化應用,使用LPC2210外部儲存空間介面BankO和Bankl的地址空
間,通過片選訊號選通nCE_F和nCE_R,來將地址空間Bank0和Bankl分別分配給PSRAM和Flash。通常將代碼固化到Flash,分配
Flash為Bank0,PSRAM為Bankl,因為Bank0可以用來引導程式的運行。
   
LPC2210的大容量片上儲存空間為TCP/IP協議棧的實現和資料處理提供了足夠的儲存空間;利用LPC2210SPI介面擴充MMC/SD卡作為外部
非易失性儲存空間,可以將ADC現場採集的資料、IP地址、網卡物理地址以及更新網頁儲存在裡面,需要時還可隨時更換MMc/SD卡。LPC2210具有
ARM和Thumb指令集,採用流水線處理技術,能在指令執行期間預先處理下一條指令,極大地提高了指令執行效率,為需要快速傳輸資料的網路應用提供了有效
的支援。

2 系統軟體設計
    eCos(embedded Configurable
operating
system,嵌入式可配置作業系統)是一種針對16位、32位和64位處理器的可移植嵌入式即時作業系統。由於其原始碼公開,因而越來越多的設計人員開
始關注eCos作業系統。eCos最大的特點是模組化、核心可配置。最小版本的eCos只有幾百位元組,非常適合小型嵌入式系統的開發。與嵌入式Linux
相比,eCos有配置靈活和節省資源的優勢。它的其他優點是使用多任務搶佔機制、具有最小的中斷延遲、支援嵌入式系統所需的所有同步原語,並擁有靈活的調
度策略和中斷處理機制。因而eCos具有良好的即時性,與μClinux和μC/OS等作業系統相比,它更適用於處理即時訊號的裝置,如移動通訊、
WLAN等通訊裝置的開發。

3 eCos的移植
   
圖3所示為eCos的移植流程。eCos的移植通過3個子模組來完成,即體繫結構抽象層(Architeeture
Hal)、變體抽象層(Variant Hal)和平台抽象層(Platform
Hal)。對一個新的體繫結構來說,系統結構抽象層的建立相對來說比較困難。目前,eCos已經支援各種主流CPU,也就是說,eCos源碼中包含了
CPU的體繫結構層和變體抽象層,所以移植工作主要集中在平台抽象層。

    RedBoot移植是平台抽象層移植的最好開始。RedBoot是位於硬體抽象層之上的命令列介面,並且包含GDB調試工具及其調試stub。一旦硬體抽象層移植到目標板中,RedBoot能將程式載入到目標板中,並且能在目標板上調試代碼。

4 TCP/IP協議棧——LwIP的實現
   
LwIP是瑞士電腦科學院Adam
Dunkles等人開發的用於嵌入式系統的開放原始碼TCP/IP協議棧。它既可以移植到作業系統上,也可以在無作業系統的情況下運行。LwIP實現的重
點是,在保持TCP協議主要功能的基礎上,減少對RAM的佔用;一般只需要幾十位元組的RAM和40
KB左右的ROM就可以運行,這使得LwIP適合在中低端的嵌入式系統中應用。
    LwIP主要可以分為圖4所示的幾個層次。主要功能模組有:作業系統類比層、網路介面函數、實現TCP/IP協議的各部分模組 (IP、UDP、TCP、IC—MP、ARP)、緩衝和儲存管理子系統、校正和函數。
   
LwIP API是一組應用程式介面,通過該介面程式員就可以使用LwIP所有的功能。另外,LwIP也為開發人員提供了更加進階的BSD Socket
APl,使其可以使用通用的Socket函數來編寫網路通訊軟體。作業系統類比層可以使LwIP能夠使用作業系統提供的一些進階管理功能,例如訊號量管
理、訊息佇列管理、建立線程等。

4.1 IP處理
    LwIP僅能實現IP層大部分準系統。它雖然能夠發送、接收以及轉寄資訊包,但不能接收和發送IP分區包,也不能處理攜帶IP參數選項的資訊包。不過對大多數的應用來說,這不會成為問題。
    ①接收資訊包。對於到達的IP資訊包,可由網路裝置驅動調用ip_input()函數開始處理,並在這裡完成對IP版本欄位及包頭長度的初始完整性檢查,同時還要計算和驗證封裝頭校正和。
    ②發送資訊包。外發的資訊包由ip_output()函數處理,該函數使用ip_route()函數尋找適當的網路介面來傳送資訊包。當外發的網路介面確定後,資訊包傳給以外髮網絡介面為參數的ip_output_if()函數。
    ③轉寄資訊包。如果沒有網路介面的地址與到達資訊包的目標地址相同,資訊包應被轉寄。這項工作由ip_ forward()函數完成。
    ④ICMP處理。ICMP處理相當簡單。ip_input()函數收到的ICMP資訊包被移交給icmp_input()函數,後者對ICMP包頭解碼,然後進行適當的動作。
4.2 UDP處理
    UDP是被用來在不同進程問分解資訊包的簡單協議。每個UDP會話的狀態儲存在一個PCB結構體中。UDP PCB儲存在一個鏈表中,當一個UDP資料包到達時對這個鏈表進行匹配檢索。
4.3 TCP處理
   
TCP屬於傳輸層協議,它為應用程式層提供了可靠的位元組流服務。對它的描述要比對其他協議的描述複雜的多,其代碼佔了LwIP代碼總量的50%。基本的TCP
處理過程被分割為6個功能函數來實現,tcp_input()、tep_
process()及tcp_receive()函數與TCP輸入有關,tcp_write()、tcp_enqueue()及tcp_output()
則用於TCP輸出。TCP的處理過程5所示。

4.4 應用程式介面設計
    LwIP
API專為LwIP設計,所以它可以充分利用LwIP的內部結構實現其設計目標。LwIP
API與BSDAPI類似,但操作相對低級。API不需要在應用程式和協議棧之間複製資料,因為應用程式可以巧妙地直接處理內部緩衝區。另外,BSD
Socket API易於理解,並且很多應用程式為它而寫,所以LwIP保留一個BSD Socket相容層是很有用的。
   
鑒於TCP/IP協議棧的處理模式,APl分成兩部分實現。6所示,一部分作為應用程式的串連庫實現,另一部分在TCP/IP進程內實現。這兩部分之
間採用由作業系統類比層提供的處理序間通訊機制(IPC)進行通訊。當前的實現採用以下3種IPC方式:共用記憶體、訊息傳遞和訊號量。雖然這些IPC方式被
作業系統支援,但它們並不需要作業系統底層支援,實際上是作業系統類比層在類比它們。

結 語
   
基於即時核心eCos,在嵌入式系統中實現了LwIP協議棧的移植與最佳化。移植最佳化後的LwIP棧做為一個網路模組運行,代碼佔用40
KB的ROM,實現了Ethernet/IP/TCP網路功能,並提供了模組API,與系統實現無縫串連。基於LwIP的網路應用任務與其他非網路應用任
務在eGos即時核心管理下協調運行。進一步增強了協議棧的網路安全性與穩定性,並開發相應的的網路應用程式。“eCos/LwIP協議棧”架構有望應用
在資訊家電和網路化的儀器、儀錶方面。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.