【NXP i.MX RT106x】- 如何在 RT106x 上實現 TCP/IP Client 端通訊功能

一、前言

本文將介紹如何在 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 正面

圖二、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

netconn_connect() API Description

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★博文作者未开放评论功能