新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 如何使用網絡單片機W7100A實現TCP通信

如何使用網絡單片機W7100A實現TCP通信

作者: 時間:2016-11-26 來源:網絡 收藏

例1.6 設置斷開連接

1.7 關閉(CLOSE)

和斷開的過程不同,關閉過程可以直接將SOCKET變成SOCK_CLOSED(0×00)。用戶通過

CLOSE(n)函數選擇合適的端口號,然后無論對端有沒有做出響應都將關閉SOCKET。如果RST數據包來自對端,SOCKET將會無條件變成SOCK_CLOSED(0×00)。一旦SOCKET變成為SOCK_CLOSED(0X00), SOCKET將不再可用除非重新打開它。

例1.7 設置關閉

2 TCP回路測試(LOOPBACK)

2.1服務器模式

TCP回路測試可以通過回送來自于對端的數據從而檢測TCP協議的性能。這一章節(jié)將會介紹服務器模式下回路測試的例子。程序范例如下:

例2.1 設置回路測試(LOOPBACK)服務器

如上面的例子所示,在SOCKET循環(huán)周期內除了connect()函數,其他所有函數都可以使用。首先利用getSn_SR(s)函數檢測SOCKET狀態(tài),在W7100A復位后,所有的SOCKET全都變成SOCK_CLOSED(0×00)狀態(tài)。然后利用close()函數完全關閉SOCKET,再通過socket(s,Sn_MR_TCP,port,0×00)函數來創(chuàng)建一個新的SOCKET。如果SOCKET創(chuàng)建成功,狀態(tài)將會變成SOCK_INIT,再通過listen(s)函數將SOCKET的狀態(tài)變成監(jiān)聽。一旦與對端建立連接,SOCKET的狀態(tài)將變成SOCK_ESTABLISHED,并且等待數據。所有接收到的數據都保存在接收緩存器中,recv(s,data_buf,len)函數中的data_buf變量定義為接收到的數據的長度。最后再通過send(s,data,len)函數將數據回送到客戶端??蛻舳藭容^數據交換前后的差異來檢測數據通信是否正常。

2.2 客戶端模式

本章節(jié)將會介紹客戶端模式下回路測試的例子。程序范例如下:

例2.2 設置回路測試(LOOPBACK)客戶端

TCP客戶端的程序例子和TCP服務器的例子基本相同。唯一的區(qū)別在于SOCK_INIT狀態(tài)下,是通過connect()函數而不是listen()函數與服務器連接。

3 回路測試服務器演示

這一章將會介紹TCP回路測試程序運行的例子。在下載完成TCP回路測試應用的二進制文件后,運行iMCUW7100單片機內的數據包實現回路測試的演示過程。更多的詳細信息,請參閱文檔‘如何在W7100A中創(chuàng)建工程’,‘WizISP程序指南’以及‘W7100A Debugger指南’。

對TCP串行回路,用戶按照下面的步驟進行設定:

確認測試環(huán)境。請參考‘iMCU7100EVB用戶指南’

直接利用UTP線連接PC機與iMCU7100EVB

直接利用串口線連接PC機與iMCU7100EVB

使能iMCU7100EVB的5V電源適配器

添加下面測試PC機的網絡信息

- IP地址 : 192.168.1.xxx (‘xxx’ 為用戶PC機的IP地址,在客戶端模式下此IP地址也是服務器的IP地址,即我們之前在TCP客戶端代碼中設置在destip[4]的IP地址)。在本文檔中,IP設置為192.168.1.69,但是用戶可以進行修改。

- 網關IP地址 : 192.168.1.1

- 子網掩碼 : 255.255.255.0

運行超級終端機程序以及AX1程序

3.1超級終端機程序

<圖3.1> 超級終端機程序選項

在超級終端機程序行完成之后,如圖4.1設置串行通信的選項。超級終端機程序將會顯示串行通信時iMCU7100EVB的運行狀態(tài)。

3.2 AX1 設置

想了解更多關于AX1程序的信息,請參考AX1用戶手冊。

3.2.1TCP服務器模式下的iMCU7100EVB

當iMCU7100EVB運行于服務器模式時,PC作為TCP客戶端利用AX1程序連接到iMCU7100EVB。在AX1程序中,選擇TCP => CONNECT 菜單來實現與iMCU7100EVB的連接,此時對端的IP地址為192.168.1.2,端口號為5000。

一旦連接成功,如圖4.2選擇TCP => SEND 菜單發(fā)送數據。因為此時iMCU7100EVB作為服務器,AX1程序窗口將會顯示客戶端的狀態(tài)。



評論


技術專區(qū)

關閉