一、前言
本文將介紹如何在 lwip_tcpecho_freertos 專案裡,建立 Ethernet TCP/IP Client 端功能,來源程式碼都是經由 NXP 原廠所提供的 SDK Builder 產生出 SDK example 專案來開發功能,以下所有操作皆會在 NXP RT1060 開發板進行實作,PC 端透過 RJ45 與 NXP RT1060 開發板互相連接做通訊且當 PC 端發送文字給開發板,開發板會立即給予回應給 PC 端,形成一個TCP/IP Server-Client 相互通訊模式。由於 NXP 原廠在論壇上介紹 TCP/IP Client 端實作所需的相關技術文章,但官方範例並無 Client 端實作,於是分享給大家一起學習。
二、硬體需求
開發板:MIMXRT1060-EVK圖一、MIMXRT1060-EVK 正面
圖二、MIMXRT1060-EVK 背面
三、軟體需求
軟體開發包:NXP SDK v2.10.1 (SDK_2_10_1_EVK-MIMXRT1060.zip)開發IDE:MCUXpresso IDE v11.3.1
簡易TCP連線測試工具:sokit(sokit-1.3-win32-enu.zip)
四、建立 Client 端功能
1. 建立一個 lwip 基本功能專案 ( 選擇 lwip_tcpecho_freertos )2. 修改 tcpecho.c 內容
開啟tcpecho.c
將 static void tcpecho_thread(void *arg) 函式 , 替換成 static void tcpclient_thread(void *arg) 修改如下紅框
tcpclient_thread 內容如下:
基本變數定義
利用 LWIP 進行 TCP協定連線至 Server
本機 Client 端與遠端 Server 端進行訊息傳遞通訊.
五、功能測試
1. 將 MIMXRT1060-EVK 透過 RJ45 網路線與 PC 端連接, 如下圖2. 設定 PC 端乙太網路配置 ( 將作為 Server 端等待 Client 端連線 )
3. 使用 Sokit 軟體依照下圖設定使 PC 成為 Server 端進入 Listen 狀態
4. 執行上一章節建立好的 Client 程式 , 連線成功後 , 操作 PC 端 Sokit 軟體與 Client 端通訊.
如果無法建立連線 , 可檢查 PC 端防火牆軟體或設置是否有開啟, RJ45 網路線是否接好, 網路線是否可正常工作.
5. RT1060 開發板 Debug Message 如下顯示
六、參考資料
1. NXP Community
TCP Client & Server Implementation on MCUXrpesso SDK --- part I--using LwIP Netconn API
2. lwIP 2.0.2 Lightweight IP stack