新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于SOPC 的嵌入式Web 服務器設計與實現(xiàn)

基于SOPC 的嵌入式Web 服務器設計與實現(xiàn)

作者: 時間:2012-08-16 來源:網絡 收藏

在本中uC/OS-II主要完成任務的管理與調度,在網絡協(xié)議棧初始化后,使用標準套接字API創(chuàng)建新任務訪問網絡協(xié)議棧。在本中使用函數(shù)sys_thread_new()創(chuàng)建DHCP超時任務dhcp_timeout_task()來動態(tài)分配IP地址,創(chuàng)建HTTP任務http_task()管理HTTP連接并調用相關的子程序來為HTTP請求服務。這里使用的sys_thread_new()位于LwIP的操作系統(tǒng)封裝層,實際上是調用uC/OS-II的OSTaskCteate()函數(shù)。通過創(chuàng)建消息郵箱、信號量任務與任務之間、任務與中斷服務程序之間的同步與互斥,以保證它們協(xié)調運行。

5.2、LwIP網絡協(xié)議棧的

LwIP(輕量級網絡協(xié)議)是TCP/IP協(xié)議棧的一個。LwIP是一種專門針對系統(tǒng)應用而的網絡通信協(xié)議,由于LwIP實現(xiàn)的關鍵在于削減代碼大小和內存消耗,但可以完成傳統(tǒng)的TCP/IP協(xié)議的大部分功能,通常只需要大約40K的ROM和數(shù)十K的RAM即可運行。在保持協(xié)議分層體系結構的前提下,通過采用“零拷貝”技術提高實時性。

Nios II支持LwIP使用如下的3個基本任務[2]。這些任務在程序創(chuàng)建時添加后連續(xù)運行:首先,被協(xié)議棧使用的主任務。這個任務用來接收包,任務模塊的主函數(shù)用于等待消息郵箱。當一個新的包到來時,產生一個中斷請求,中斷服務程序清除IRQ并且向消息郵箱發(fā)送一個消息。其次,新的消息激活接收任務。這一設計可以使中斷服務程序盡可能快的執(zhí)行,從而減少系統(tǒng)延時的影響。最后,實時器任務在于周期性地調用各種任務所需的時間。上述這些任務將在初始化成功后自動運行。系統(tǒng)初始化后,進入主程序部分。主程序包括兩大部分:對接收到的以太網數(shù)據(jù)幀進行解包和對欲發(fā)送的數(shù)據(jù)進行封裝并發(fā)送。圖4為軟件框圖。

圖4 軟件框架圖

6、結語

經測試,本設計可以正常工作,達到了預期的效果。,其功能可根據(jù)需要定制,非常靈活。該不僅可以廣泛應用于工業(yè)控制領域,實現(xiàn)小型工業(yè)監(jiān)測系統(tǒng)網絡化,具有良好的應用前景。

作者創(chuàng)新點:本文介紹了軟核處理器的Web服務器實現(xiàn)方法,使設計變得靈活,操作系統(tǒng)的引入,滿足了設計對實時性的要求。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉