1.概述

工具: PC W5500EVB 路由器串口調試工具編譯環境:Keil4 &IAR
功能:通過SNMP協議實現內網與外網的端口映射以及連接。 PC連接路由器,PC和路由器在同一個網段。 本文主要把路由器IP模擬為外網IP,W5500EVB的IP作為內網IP,從以下幾個方面來驗證此功能的可實施性。
TCP Server回環測試
UDP回環測試外網設備發送指令控制W5500EVB上LED

2. UPnP協議即通用即插即用英文是Universal Plug and Play,縮寫為UPnP,下面主要說一下基本的實現過程。

UPnP定義了設備之間、設備和控制點、控制點之間通信的協議。 完整的UPnP有設備尋址、設備發現、設備描述、設備控制、事件通知和基於Html的描述等幾部分構成。
1)尋址

首先尋址是通過控制點和設備取得網絡地址的過程,控制點和設備都先獲取IP地址後才能進行下一步的工作;
2 ) 發現

控制點首先要尋找整個網絡上的UPnP設備,同時網絡上的設備也要宣告自身的存在,本篇中W5500將作為控制點;
3 ) 描述

控制點要取得設備的描述,包括這些設備提供什麼樣的服務;控制點可以從發現消息中得到設備描述的URL,通過URL取回設備描述的信息;
4)控制

控制點發出動作信息給設備;
5)事件

控制點監聽設備的狀態,當狀態改變時作出相應的處理動作;
在控制點發現設備和取得設備描述之後,展示也就開始了。 具體的講解內容大家可以在網上蒐集資料學習。

3.操作過程
注意:本篇實例並沒有真正在外網測試,是在一個內網中再搭建一個內網,相對最內層的網絡來說,外面的一層是“外網”,但是並不違背端口映射的原理。 W5500EVB通過網線連接到路由器,PC應該和路由器在同一網段內。
編譯程序無誤以後下載到開發板裡,復位以後查看串口的打印信息如下。

image

在執行DHCP、SSDP、獲得描述和設置事件後,如果正常則顯示以上信息。 之後打印一個菜單頁面,大家可以根據提示選擇相應的應用功能。 如下圖所示。

image

按照菜單提示,我們首先添加一個TCP端口映射,外網端口為是隨意的,由於本人能力有限,內網端口為固定的5000,添加成功後會提示AddPortSuccess。 那麼是否真的添加成功了呢,我們可以查看路由器的端口映射表。 添加成功以後可以看到如下圖所示信息。 

image
image

ID 1的信息就是成功映射後的端口信息。
成功以後可以選擇5 TCP 回環測試來驗證效果如何。
首先檢查下路由器在外網中的IP地址,登陸路由器在WAN口設置項可以找到路由器IP地址為192.168.10.135,可見路由器的網段與W5500 EVB(I​​P地址是192.168.1.110)的網段不是一樣的,這正是“外網”和內網的區別。
我們在與路由器同一網段的PC(IP地址是192.168.10.116)上建立TCP client,連接到路由器的12222端口,並發送測試字符串,在接收區看到收到了loopback的回复,如下圖所示。 端口映射成功!

在測試完添加端口映射後,我們可以按照菜單提示將剛才添加的端口刪除掉,然後在PC上重新連接剛才刪除的外網端口,會發現已經連接不上,這與預期結果相符。

UPnP 的應用範圍非常大,可以實現許多現成的、新的及令人興奮的方案,包括家庭自動化、打印、圖片處理、音頻/ 視頻娛樂、廚房設備、汽車網絡和公共集會場所的類似網絡。 它可以充分發揮TCP/IP 和網絡技術的功能,不但能對類似網絡進行無縫連接,而且還能夠控製網絡設備及在它們之間傳輸信息。 一個UPnP 設備能夠自動跟一個網絡連接上、並自動獲得一個IP 地址、傳送出自己的權能並獲悉其它已經連接上的設備及其權能。 最後,此設備能自動順利地切斷網絡連接,並且不會引起意想不到的問題。

程序下載: http://pan.baidu.com/s/1B7BCM

通過:http://www.iwiznet.cn/blog/?p=6908