基于ARM和eCos的嵌入式WEB服務器設計
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能夠使用操作系統提供的一些高級管理功能,例如信號量管理、消息隊列管理、創建線程等。
tcp/ip相關文章:tcp/ip是什么
評論