2012年10月11日星期四

如何在乙太網晶片W5200中實現FTP用戶端




WIZnet 微知納特 :



該文章詳細描述了W5200晶片驅動中使用基本的TCP socket應用程式介面實現FTP用戶端的所有步驟。
IAR 5.41是用來編譯該FTP用戶端應用筆記的軟體。W5200E01-M3是用來運行該FTP用戶端應用的板子。
 

該文檔中提到的所有代碼和檔都可以從以下網址下載:www.wiznet.co.kr/w5200/download

 

1. FTP用戶端

如同每個標準FTP用戶端的實現,任何FTP連接都有兩個通道,一個會話通道和一個資料通道。會話通道是用來交換FTP伺服器和用戶端之間標準的FTP命令。資料通道是用來交換資料(像上傳或下載一個檔)。
需要記住,必須創建兩個到FTP伺服器的TCP請求。一個TCP請求用於會話通道創建,另一個用於資料通道創建。
遵循下麵的程式來建立FTP用戶端。請參閱下面一節的應用實例。
1> 創建一個TCP伺服器監聽一個特定的埠。該伺服器將被用做資料通道(來自FTP伺服器的入口資料連接)。
2> 執行一個TCP客戶機請求,該TCP客戶機請求通過埠21到任何FTP伺服器。這將用作會話通道。
3> 在成功創建連接後,給出需要的登錄認證資訊(使用標準的FTP命令)來連接FTP伺服器。伺服器將回復登錄成功的提示。
注意:考慮到記憶體大小和常用命令,該應用筆記只支援lscdputgetbye。其他命令不支持。
4> 根據FTP標準,如果必須執行任何相關資料的操作,則需要在一個新的資料通道中執行(來自FTP伺服器的入口資料)。因此實現/創建該資料連接,FTP用戶端需要提供詳細的IP位址和socket,該socket將接收來自FTP伺服器的入口資料。為了達到這些要求,FTP協議建議使用命令“PORT”。(該埠命令有6個參數,前4個參數建立IP地址,後兩個參數建立通訊連接埠)
5> 如果FTP伺服器針對發出的埠命令返回一個成功消息,連接已準備好資料通信了。
6> 執行任何資料相關的FTP命令時,FTP伺服器初始化一個入口資料通道到TCP伺服器,該TCP伺服器在W5200中處於監聽模式下。FTP伺服器使用埠命令提供的資訊來初始化該資料連接。
7> 在資料傳輸結束後,FTP伺服器將關閉該資料通道。
8> 為了以後相關資料的活動,通過發出另一個埠命令重新啟用資料通道,再啟用會話通道。

2. 代碼示例

下表是上面過程的應用示例。




 

3. 演示

1> 運行FTP伺服器並創建一個帳號。

                           圖2.FTP伺服器


                             圖3.創建一個帳號

2> 使用原始程式碼設置適當的網路參數
3> 編譯原始程式碼並下載二進位檔案到W5200E01-M3板子裡
4> 打開串口超級終端,準備從W5200E01-M3接收串口消息
在英特網中有許多免費的超級終端軟體。下載一個超級終端並做如下設置:
串列傳輸速率
數據位元
奇偶位
停止位
流控制
115200
8
1
5> 運行W5200E01-M3板子。W5200E01-M3會自動連接到FTP伺服器,FTP伺服器的IP位址已在原始程式碼中預定義。
6> 如果成功連接W5200E01-M3FTP伺服器,超級終端會提示你輸入使用者ID和密碼消。



                                 圖4. 登錄到FTP伺服器
7> 在成功登錄到FTP伺服器後,輸入lsputgetcd bye命令測試FTP用戶端的功能。

A) “ls”命令:



B) “cd”命令測試:




C) “put”命令測試:




D) “get”命令測試:




E) “bye”命令測試:



没有评论:

发表评论