概述
使用TCP執(zhí)行通訊時(shí),會(huì)有Server與Client的差別。Server是經(jīng)由開啟特定的Port來(lái)等待來(lái)自Client端的連線需求;而Client端則是向Server端提出連線需求,此例程使用LwIP作為協(xié)議棧,可以使用tcp_bind(), tcp_listen()與tcp_accept()這三種系統(tǒng)呼叫來(lái)使Server端接受Client的連線要求。
本使用指南會(huì)分別說(shuō)明TCP client與TCP server該如何與PC端通信。
硬件資源
1) AT-START-F407 V1.0實(shí)驗(yàn)板2) DM9162以太網(wǎng)模塊3) 以太網(wǎng)線
軟件資源
tcp_client, TCP client源程序,運(yùn)行TCP客戶端程序
tcp_server, TCP server源程序,運(yùn)行TCP服務(wù)端程序
AT32 TCP client/server程序設(shè)置
管腳配置
表1. 管腳配置
LwIP設(shè)置
硬件資源只提供從PHY到MAC的信號(hào)處理,若要進(jìn)行開發(fā),則需要實(shí)作TCP/IP協(xié)議棧,在本應(yīng)用中使用LwIP協(xié)議棧,該協(xié)議棧主要關(guān)注的是怎樣減少減少內(nèi)存的使用和程序代碼的大小,這樣就可以讓LwIP適用于資源有限的小型平臺(tái)例如嵌入式系統(tǒng),更詳細(xì)的內(nèi)容可以訪問(wèn)官方網(wǎng)站。由于整個(gè)協(xié)議棧已經(jīng)整合到代碼中,大部分的內(nèi)容都無(wú)須修改,使用者只要根據(jù)自己的網(wǎng)段去設(shè)定IP地址及閘口地址即可,這兩個(gè)全局變量宣告在netconf.c的上頭。圖1. 配置芯片的IP地址
TCP client project設(shè)置
在初始化LwIP協(xié)議棧之后,就可以配置TCP client的應(yīng)用了,芯片作為客戶端是發(fā)出請(qǐng)求的一方,所以必須要配置往哪里發(fā)送數(shù)據(jù),也就是說(shuō)要知道服務(wù)端的socket。所謂的socket就是IP地址加上端口,在代碼中我們宣告了幾個(gè)宏定義代表服務(wù)端的socket,可以在tcp_client.h中找到TCP_SERVER_IP跟TCP_SERVER_PORT這兩個(gè)宏定義,用戶可以根據(jù)網(wǎng)段跟應(yīng)用修改這兩個(gè)宏。圖2. 配置服務(wù)端的socket確認(rèn)網(wǎng)段與服務(wù)端一致后,下載代碼到芯片上,服務(wù)器端會(huì)一秒打印一次”tcp client experiment!”,同時(shí)LED2, 3, 4也會(huì)跟著閃爍。
上位機(jī)服務(wù)端設(shè)置
1) 設(shè)定上位機(jī)的IP地址、網(wǎng)路屏蔽及閘口,IP地址與閘口需要跟芯片設(shè)置在同一個(gè)網(wǎng)段下。2) 打開上位機(jī)端的服務(wù)器軟件,這里使用網(wǎng)路調(diào)適助手為例。協(xié)議類型選擇TCP server,本地IP地址為代碼中的TCP_SERVER_IP,本地端口號(hào)為代碼中的TCP_SERVER_PORT,按下連線即建立連線。3)連線建立后,會(huì)出現(xiàn)以下畫面,不斷打印來(lái)自TCP client的數(shù)據(jù)。圖3. 設(shè)置PC端的IP、網(wǎng)路屏蔽與閘口圖4. 設(shè)置服務(wù)器軟件圖5. 接收TCP client的數(shù)據(jù)
TCP server project設(shè)置
在初始化LwIP協(xié)議棧之后,就可以配置TCP server的應(yīng)用了,芯片作為客戶端是接受請(qǐng)求的一方,所以必須要配置在哪里接受數(shù)據(jù),也就是說(shuō)要開個(gè)端口給客戶端丟數(shù)據(jù)進(jìn)來(lái)。在代碼中我們宣告了一個(gè)宏定義代表服務(wù)端的端口,可以在tcp_server.h中找到TCP_LOCAL_PORT這個(gè)宏定義,用戶可以根據(jù)應(yīng)用修改這個(gè)宏。圖6. 服務(wù)器端口的宏定義
上位機(jī)客戶端設(shè)置
1) 設(shè)定上位機(jī)的IP地址、網(wǎng)路屏蔽及閘口,IP地址與閘口需要跟芯片設(shè)置在同一個(gè)網(wǎng)段下,請(qǐng)參考圖3。2) 打開上位機(jī)端的服務(wù)器軟件,這里使用網(wǎng)路調(diào)適助手為例。協(xié)議類型選擇TCP client,服務(wù)器IP地址為芯片的IP地址,本地端口號(hào)為代碼中的TCP_LOCAL_PORT,按下連線即建立連線。3) 此時(shí)會(huì)出現(xiàn)訊息在視窗中,可以透過(guò)調(diào)試助手下方的區(qū)塊輸入字符串發(fā)送給服務(wù)器,服務(wù)器會(huì)響應(yīng)輸入的字符串到視窗中。圖7. 設(shè)置上位機(jī)的客戶端軟件圖8. 顯示訊息到視窗中并響應(yīng)發(fā)送的字符串
關(guān)于雅特力雅特力科技于2016年成立,是一家致力于推動(dòng)全球市場(chǎng)32位微控制器(MCU)創(chuàng)新趨勢(shì)的芯片設(shè)計(jì)公司,專注于ARM Cortex-M4/M0+的32位微控制器研發(fā)與創(chuàng)新,全系列采用55nm先進(jìn)工藝及ARM Cortex-M4高效能或M0+低功耗內(nèi)核,締造M4業(yè)界最高主頻288MHz運(yùn)算效能,并支持工業(yè)級(jí)別芯片工作溫度范圍(-40°~105°)。雅特力目前已累積相當(dāng)多元的終端產(chǎn)品成功案例:如微型打印機(jī)、掃地機(jī)、光流無(wú)人機(jī)、熱成像儀、激光雷達(dá)、工業(yè)縫紉機(jī)、伺服驅(qū)控、電競(jìng)周邊市場(chǎng)、斷路器、ADAS、T-BOX、數(shù)字電源、電動(dòng)工具等終端設(shè)備應(yīng)用,廣泛地覆蓋5G、物聯(lián)網(wǎng)、消費(fèi)、商務(wù)及工控等領(lǐng)域。
-
mcu
+關(guān)注
關(guān)注
146文章
17184瀏覽量
351691 -
通信
+關(guān)注
關(guān)注
18文章
6043瀏覽量
136151
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論