如何在以太網芯片W5200中實現FTP客戶端

該文章詳細描述了W5200芯片驅動中使用基本的TCP socket應用程序接口實現FTP客戶端的所有步驟。

IAR 5.41是用來編譯該FTP客戶端應用筆記的軟件。W5200E01-M3是用來運行該FTP客戶端應用的板子。

該文檔中提到的所有代碼和文件都可以從以下網址下載: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-M3和FTP服務器,超級終端會提示你輸入用戶ID和密碼消。

圖4. 登錄到FTP服務器

7>    在成功登錄到FTP服務器後,輸入ls,put,get,cd 或bye命令測試FTP客戶端的功能。

A)    “ls”命令:

B)    “cd”命令測試:

C)    “put”命令測試:

D)    “get”命令測試:

E)    “bye”命令測試: