導航:首頁 > 操作系統 > tcpip協議單片機

tcpip協議單片機

發布時間:2023-09-13 15:55:35

『壹』 單片機TCP/IP的已有的單片機TCP/IP協議棧

由於TCP協議棧的程序流程較為復雜,因為程序中需要處理對方發送過來的數據、發起的連接,而我方並不知道對方會何時進行什麼樣的操作,這就使得協議處理起來較為復雜。另外一個原因是單片機TCP/IP協議棧的穩定性是以非常重要的問題,一個穩定的協議棧需要在實際應用中經過長時間的測試,所以編寫一個穩定的單片機TCP/IP協議棧更加困難。為此另外一種選擇就是使用現有的TCP/IP協議棧。
1. eCos單片機TCP/IP協議棧:eCos TCP/IP棧是涉及與eCos操作系統/內核一起運行的。eCos(和TCP/IP棧)由大量處理其結構支持。eCos TCP/IP棧當前發布了一個測試版,作為一個單獨的模塊。
2. ZLIP 51單片機TCP/IP協議棧:ZLIP是專門為51單片機設計的嵌入式TCP/IP協議棧,可以在有操作系統和沒有操作系統情況下運行,具有代碼量適中、運行速度快、用戶介面簡單、兼容BSD socket介面的特點。實現了TCP、UDP、ICMP、ARP協議,ZLWeb實現了HTTP協議。支持多TCP連接、多UDP連接同時運行,支持在uc/os-II操作系統下多任務運行數據收發。可以用於51單片機TCP/IP上網解決方案。
3. uc/ip 單片機TCP/IP協議棧:uC/IP(mew-kip)是為為控制其設計的一個TCP/IP協議棧。代碼基於BSD(很像所有其它棧)但對非常小的覆蓋范圍功能有所減少。它當前為Linux和DOS目標而建。
4. BSD 單片機TCP/IP協議棧:BSD棧歷史上是其他商業棧的開始點,大多數專業TCP/IP棧(如帶Wind-River VxWorks內核的)是BSD棧派生的。這是因為BSD在BSD許可協議下提供了他們的棧,它們的許用證使你能以修改或未修改的形式結合它們的代碼而無須向創建者付版稅。與GPL許用證相比,如果你結合GPL源代碼,後者要求你的GPL中公開你的源代碼。
5. lwIP 單片機TCP/IP協議棧:lwIP(輕型)TCP/IP棧是TCP/IP協議棧的一個小型實現。它包括帶IP和ICMP的TCP和UDP傳輸層。還提供一個可選的BSD套結籽API。為了性能,還包括一個零拷貝API。LwIP協議棧是為嵌入式系統設計的並能適合40KB的ROM和幾百位元組的RAM。為了可移植性它用C編寫。
6. uIP 單片機TCP/IP協議棧:uIP是專門為8位和16單片機設計的一個非常小的TCP/IP協議棧。uIP完全用C編寫,以此可以移植到各種不同的結構和操作系統上。一個編譯的棧可以有幾KB ROM或幾百位元組RAM中運行。uIP還包括一個HTTP伺服器作為服務內容。
7. TinyTCP 單片機TCP/IP協議棧:TinyTCP棧是TCP/IP的一個非常小的簡單的實現,它包括一個FTP客戶。TinyTCP是為燒入ROM設計的並且現在開始對大端結構似乎是有用的(初始目標是68000晶元)。TinyTCP也包括一個簡單的乙太網驅動器用於3Com多匯流排卡。
8. WATTCP 單片機TCP/IP協議棧:WATTCP是為嵌入基於DOS的系統而設計的一個小型TCP/IP棧。它包括一個Real Mode DOS版本和另一個32位擴展環境版本。

『貳』 單片機TCP/IP開發板的如何選擇

2. 1 各類開發板
目前單片機TCP/IP一般有面向16位和32位的單片機的LWIP、面向8位單片機的uIP、面向51單片機的ZLIP等。目前51單片機上的TCP/IP協議棧以uIP和ZLIP為主,目前uIP的最高版本為V1.0,ZLIP的最高版本為ZLIP增值版V1.0。
2. 2 選擇注意事項
作為單片機上網技術學習者,選擇一款合適的開發板對於學習是事半功倍的,選擇開發板時應該注意以下問題:
1. 價格考慮。TCP/IP開發板的最主要的東西在於TCP/IP協議棧本身,硬體的成本可以做得很低,所以不要因為低價而忽略了核心軟體。對於TCP/IP協議棧可以從如下方面考慮:
a) 穩定性:商家提供的TCP/IP協議棧是否有全面的測試,是否在連續PING的情況下不斷線,是否在發送接受大數據量(例如10M以上)時不丟失任何位元組?對於使用者來說如果協議棧不穩定,那麼對於項目的順利開發將帶來很大麻煩。
b) 易用性:使用單片機TCP/IP開發板的用戶一般都對於嵌入式TCP/IP的使用不太了解,這就需要開發板提供更加完善的資料和使用手冊。包括函數定義、更多的例子程序等。
c) 廠家的技術:某些廠家只是仿冒他人的開發板,用戶在使用中遇到的問題根本無法給於解答。這就需要用戶問清楚該協議棧是否是廠家自己設計的。
2. 外包裝和質量保證:外包裝不好可是使得用戶收到時,開發板已經在運輸過程中受損而無法使用。

『叄』 單片機TCP/IP的介紹

單片機TCP/IP就是在單片機上運行的TCP/IP協議棧。由於嵌入式聯網設備越來越多,需要在嵌入式設備上實現TCP/IP協議棧,但是嵌入式設備不同於PC機,它們一般採用MCU也就是單片機而不是CPU作為核心處理器。這就需要在單片機上實現TCP/IP協議棧。對於高端的32位單片機,由於其性能已經接近於低端PC機CPU(例如奔騰II系列),所以和在PC上實現TCP/IP協議棧沒有多大區別;這里主要講述低端8位(例如51單片機)、16位單片機TCP/IP協議棧。

『肆』 單片機TCP/IP的如何使用單片機TCP/IP協議棧

用戶在拿到一個單片機TCP/IP協議棧以後該如何處理呢。其中的處理分為兩個部分:上層介面和下層介面。
4. 1 上層介面
用戶使用單片機TCP/IP的目的實際非常明了,就是要實現數據的傳送,即從PC機(或者另一個單片機)上傳送過來的數據能夠在本地單片機上接收,反之亦然。所以如果屏蔽底層的話,單片機TCP/IP協議棧就是一個傳輸數據的手段。所以最後歸結到了使用send()、recv()函數即可。這就是使用單片機TCP/IP協議棧的核心所在。
但是事實上並沒有這么簡單,因為對於TCP需要有發起連接、接受連接、發送數據、接收數據、關閉連接等操作以配合數據的傳輸。TCP/IP協議棧一般為用戶提供如下的介面:
1. 初始化協議棧和釋放協議棧的函數介面,類似Init(), Release()之類的函數。
2. 提供類似BSD socket的socket, sendto, recvfro, connect, bind, listen, accept, send, recv, closesocket, shutdown, getpeername, getsockname, htonl, htons, ntohl, ntohs, inet_addr,inet_ntoa,ioctlsocket,setsockopt, getsockopt,select等API函數,用戶調用此類函數進行發起連接、接受連接、發送數據、接收數據、關閉連接等操作。
3. 接受連接、接收數據、被動關閉的處理:由於此類操作是上位機發起的,所以TCP/IP協議棧必須提供一套機制來處理此類事件的發生。一般來說有兩種方法:
a) 主動等待:例如使用BSD的recv()函數等待數據的到來。
b) 回調機制:採用類似MFC的OnReceive()函數的回調機制,也即是說在接收到數據的時候會自動調用OnReceive()函數。
那麼用戶如何使用以上的介面來實現遠程式控制制、遠程數據採集呢?方法很簡單。
例如現在需要實現一個對LED燈的亮和滅的遠程式控制制應用。首先PC機使用TCP/IP發送工具例如SocketDlgTest程序發送一個位元組的「1」到開發板(根據開發板的IP地址發送)。開發板在OnReceive函數中發現收到的是「1」,那麼就通過P1埠將燈打開;反之如果收到的是「0」則將燈熄滅。
如果是實現一個遠程數據採集的應用,例如定時進行溫度採集。首先PC機使用SocketDlgTest程序等待發來數據。開發板每隔一段時間採集一個數據,然後通過send()函數將數據發送給PC機(根據PC機的IP地址發送),這樣PC就接收到了當前的遠程溫度數據。
4. 1 下層介面
下層介面是一個比較復雜的部分,實際上是TCP/IP協議棧和底層硬體的對接問題。如果用戶將TCP/IP協議棧移植到自己的單片機系統上。由於硬體上存在一定的差異,就需要修改底層代碼。這里需要包括:
1.網卡驅動:如果TCP/IP協議棧已經提供了網卡驅動,並且驅動和用戶使用的網卡晶元一樣,那麼就相對容易一些。這里只需要修改網卡的基地址即可。否則需要自己動手寫驅動程序。如果網卡採用RTL8019AS可以參考老古開發網的單片機與TCP/IP網路。如果網卡採用CS8900,可以參考《嵌入式 TCP/IP 協議單片機技術在網路通信中的應用》
2.TCP/IP底層介面。一般單片機TCP/IP需要底層為其提供定時中斷、網卡中斷處理的入口。底層需要做相應的處理。

閱讀全文

與tcpip協議單片機相關的資料

熱點內容
rdlcpdf 瀏覽:109
鏈表實現快速排序python 瀏覽:590
php輸出命令 瀏覽:987
d站app叫什麼名字 瀏覽:172
oppor系列如何解除應用加密 瀏覽:601
程序員那麼可愛姜逸城初戀 瀏覽:499
modbustcp編程 瀏覽:493
實況為什麼安卓看不了 瀏覽:129
Java多線程Queue 瀏覽:95
雲伺服器499元三年 瀏覽:980
nbd源碼 瀏覽:847
x86在arm上編譯 瀏覽:8
linux怎麼配置網路 瀏覽:307
程序員想要的小禮物 瀏覽:187
java獲取網頁url 瀏覽:625
怎麼做解壓神器泡泡版 瀏覽:967
自己動手做一個c編譯器 瀏覽:930
手機如何鏈接谷歌伺服器地址 瀏覽:137
廢掉一個程序員的武功 瀏覽:251
java樹形演算法 瀏覽:642