LwIP協(xié)議棧開發(fā)嵌入式網絡的三種方法分析

LwIP協(xié)議棧開發(fā)嵌入式網絡的三種方法分析

ID:46284671

大?。?7.00 KB

頁數(shù):3頁

時間:2019-11-22

LwIP協(xié)議棧開發(fā)嵌入式網絡的三種方法分析_第1頁
LwIP協(xié)議棧開發(fā)嵌入式網絡的三種方法分析_第2頁
LwIP協(xié)議棧開發(fā)嵌入式網絡的三種方法分析_第3頁
資源描述:

《LwIP協(xié)議棧開發(fā)嵌入式網絡的三種方法分析》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫。

1、LwIP協(xié)議棧開發(fā)嵌入式網絡的三種方法分析LwIP協(xié)議棧開發(fā)嵌入式網絡的三種方法分析摘要輕量級的TCP/IP協(xié)議棧LwIP,提供了三種應用程序設計方法,且很容易被移植到多任務的操作系統(tǒng)中。木文結合uC/OS-H這一實時操作系統(tǒng),以建立TCP服務器端通信為例,分析三種方法以及Z間的關系,著重介紹基于rawAPT的應用程序設計。最后在ST公司STM32F107微處理器平臺上驗證,并給出了測試結果。關鍵詞LwIP協(xié)議棧;uC/OS-II;嵌入式網絡;STM32F1O7;隨著嵌入式系統(tǒng)功能的多樣化以及網絡在各個領域的中的

2、廣泛應用,具備網絡功能的嵌入式設備擁有更高的使用價值和更強的通用性。然而人部分嵌入式設備使用經濟型處理器,受內存和速度限制,資源有限,不需要也不可能完整實現(xiàn)所有的TCP/IP協(xié)議,有時只需要滿足實際需求就行。LwTP是由瑞典計算機科學研究院開發(fā)的輕量型TCP/IP協(xié)議棧,其特點是保持了以太網的基木功能,通過優(yōu)化減少了對存儲資源的占用。臥IP是免費、開源的,任何人可以使用,能夠在裸機的壞境卜.運行,當然設計的時候也考慮了將來的移植問題,可以很容易移植到多任務操作系統(tǒng)中。木文介紹了以ARM微處理器STM32F107和

3、PHY接UDP83848為平臺,構建的嵌入式系統(tǒng)中,采用LwIP和嵌入式操作系統(tǒng)UC/OS-I1,使用協(xié)議棧提供的三種應用程序接口,實現(xiàn)嵌入式設備的網絡通信功能。1LwIP和uC/OS-II介紹1.1LwIP協(xié)議棧LwIP協(xié)議是瑞士計算機科學院的AdamDunkels等開發(fā)的一套用于嵌入式系統(tǒng)的開放源代碼TCP/IP協(xié)議棧。LwIP含義是lightweight(輕型)IP協(xié)議,在實現(xiàn)時保持了TCP協(xié)議的主要功能基礎上減少對RAM的占用,一般它只需要幾十K的RAM和40K左右的ROM就對以運行,這使LwIP協(xié)議棧很

4、適合在低端嵌入式系統(tǒng)中使用。LwIP協(xié)議棧的設計才用分層結構的思想,每一個協(xié)議都作為一個模塊來實現(xiàn),捉供一些與其它協(xié)議的接口函數(shù)。所有的TCP/IP協(xié)議棧都在一個進程當中,這樣TCP/IP協(xié)議棧就和操作系統(tǒng)內核分開了。而應用程序既可以是單獨的進程也可以駐留在TCP/IP進程小,它們之間利用ICP機制進行通訊。如果應用程序是單獨的線程可以通過操作系統(tǒng)的郵箱、消息隊列等,與協(xié)議棧進程通訊。如果應川程序駐留在協(xié)議棧進程屮,則應用程序可以通過內部凹調函數(shù)和協(xié)議棧進程通訊。1.2uC/OS-II實時操作系統(tǒng)uC/OS-II

5、是一個源碼公開、對移植、對固化、可裁剪及占先式的實時多任務操作系統(tǒng),是專門為嵌入式應用設計的實吋操作系統(tǒng)內核,已廣泛的應用在各種嵌入式系統(tǒng)中。uC/OS-I1是多任務系統(tǒng),內核負責管理各個任務,每個任務都有其優(yōu)先級,UC/OS-1I扱多町以管理64個任務,其每個任務都擁有自己獨立的堆棧。uC/OS-II提供了非常豐富的系統(tǒng)服務功能,比如信號量、消息郵箱、消息隊列、事件標志、內存管理和時間管理等,這些功能可以幫助用戶實現(xiàn)非常復雜的應用。1.3LwIP協(xié)議棧移植到uC/OS-IILwIP協(xié)議棧在設計的時候就考慮到了將

6、來的移植問題,因此把所有與硬件、操作系統(tǒng)、編譯器有關的部分都全部獨立起來,形成了一個操作系統(tǒng)模擬層。操作系統(tǒng)模擬層用進程間的信號量、郵箱機制處理通信問題,而PC/OS-TT是一個基于任務調度的嵌入式實時操作系統(tǒng),因此移植LwIP協(xié)議棧到PC/OS-II,是很容易實現(xiàn)的。2LwIP開發(fā)嵌入式網絡應用程序LwIP提供了三種應用程序接口:(1)低水平的,基于內核/回調函數(shù)的API(后面稱RAWAPI)(2)高水平的,連續(xù)的API(后而稱LwIPAPI)(3)BSD風格的套接字API(后而稱BSDsocket)可以在協(xié)議

7、棧中通過對宏定義的不同配置,來決定使用哪種方式。其中BSDsocket方式不是很成熟,RAWAPI需要編寫凹調函數(shù),協(xié)議棧推薦使用LwIPAPI這種方式,但是三種方式到了底層都是通過回調函數(shù)實現(xiàn)的。本文直接從RAWAPT入手,以建立TCP服務器端通信為例,詳述底層的調用,然后再講述后而的兩種是如何封裝而成的。2.1基于RAWAPI的應用程序設計步驟使用RAWAPI進行TCP/IP編程,可以使應用程序的代碼和協(xié)議棧的代碼很好地結介起來。程序的執(zhí)行機制是以回調函數(shù)為基礎的事件驅動的,同時回調函數(shù)也是被TCP/IP代碼

8、直接調用的,冋調函數(shù)、數(shù)據發(fā)送函數(shù)都需要自己編寫。這種方式是唯一的一?種支持設備裸機運行,又可以完成網絡通信完成系統(tǒng)功能。裸機運行實際相當于是一個線程,而協(xié)議棧代碼和應用程序代碼通過先后次序處理,完成數(shù)據流轉。圖1是使用RAWAPI方式,多任務系統(tǒng)實現(xiàn)TCP服務器端通信的步驟。圖1RAWAPI方式應用程序設計LwTP協(xié)議棧中的tcp塊結構有兩種TCP_PCB和TCP_PC

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。