新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于STM32和W5500的UPnP自動(dòng)端口映射功能實(shí)現(xiàn)

基于STM32和W5500的UPnP自動(dòng)端口映射功能實(shí)現(xiàn)

作者: 時(shí)間:2016-11-29 來(lái)源:網(wǎng)絡(luò) 收藏


第一步:開(kāi)啟路由器UPnP。登陸路由器控制界面,打開(kāi)“轉(zhuǎn)發(fā)規(guī)則->UPnP 設(shè)置”,如果UPnP狀態(tài)沒(méi)有開(kāi)啟,則需要開(kāi)啟一下。
第二步:將編譯好的可執(zhí)行文件下載到開(kāi)發(fā)板中,接網(wǎng)線到路由器上,接USB調(diào)試線到PC端,打開(kāi)串口助手對(duì)應(yīng)的COM口以便查看調(diào)試信息和進(jìn)入串口命令菜單。按復(fù)位鍵,程序開(kāi)始執(zhí)行,經(jīng)過(guò)串口打印信息,我們看到DHCP獲取正確IP地址,發(fā)現(xiàn)UPnP設(shè)備、獲得描述,設(shè)置事件都已完成,如圖9所示:

圖9 UPnP執(zhí)行成功打印輸出
接下來(lái)就是我們的串口操作菜單,如圖10:

圖10 程序完成初始化后的菜單界面

第三步:基本命令輸入。按照菜單提示進(jìn)行命令輸入,在此1-4就是基本的串口命令操作:打開(kāi)/關(guān)閉led,設(shè)置/查看網(wǎng)絡(luò)配置;5 、6步就是開(kāi)啟TCP 、UDP回環(huán)測(cè)試。TCP回環(huán)實(shí)際上就是開(kāi)啟了一個(gè)TCP Server,同一網(wǎng)段的TCP Client可以直接與其建立通信,可發(fā)送數(shù)據(jù)到此TCP Server,TCP Server會(huì)回復(fù)相同的數(shù)據(jù)。串口基本配置和內(nèi)網(wǎng)回環(huán)測(cè)比較簡(jiǎn)單,在此不再貼圖查看。

第四步:配置TCP端口映射。在串口調(diào)試助手上輸入 7,進(jìn)行配置選項(xiàng),按照菜單提示,我們端口映射,外網(wǎng)端口號(hào)為12222,內(nèi)網(wǎng)端口號(hào)為5000,添加成功后會(huì)提示AddPortSuccess。如圖11所示:

圖11添加端口映射成功后串口打印出信息
刷新第一步進(jìn)入的UPnP狀態(tài)設(shè)置和設(shè)備列表,可發(fā)現(xiàn)控制節(jié)點(diǎn)W5500_Control_Point 已經(jīng)加入內(nèi)部端口號(hào)為5000,外部端口53F7為12222??梢?jiàn)我們已經(jīng)成功用UPnP協(xié)議對(duì)路由器端口進(jìn)行了映射。而且看到Thunder5在這里也有UDP /TCP 端口映射列表。如圖12所示。在這里也說(shuō)一下,我們常用的P2P軟件,Thunder PPlive等都支持UPnP端口映射。

圖12添加端口映射后路由器端口映射表

第五步,用外網(wǎng)測(cè)試配置好的端口映射。
如圖3端口映射網(wǎng)絡(luò)圖,W5500和PC2不在同一個(gè)網(wǎng)絡(luò)中,如果不進(jìn)行端口映射,PC2不可能連接到W5500 TCP Server。首先我們?cè)诖诮缑嫔陷斎?進(jìn)入TCP Server回環(huán)程序。接下來(lái)查看路由器的外網(wǎng)IP,可見(jiàn)外網(wǎng)IP為“36.36.141.53”,其為公網(wǎng)IP。我們?nèi)我庹乙慌_(tái)PC用網(wǎng)絡(luò)調(diào)試助手建立一個(gè)TCP Client ,去連接我們剛才配置好的服務(wù)器IP為“36.36.141.53”端口為“12222”。連接成功后,發(fā)送LED_ON(紅色為發(fā)送的數(shù)據(jù)),通過(guò)網(wǎng)絡(luò)調(diào)試助手我們可以看到收到LED_ON(黑色為收到的數(shù)據(jù)),證明回環(huán)已建立。這就如同,無(wú)論我們?cè)谑裁吹胤蕉寄軐?duì)我們的設(shè)備進(jìn)行連接和控制。如圖13所示:

圖13外網(wǎng)連接到內(nèi)網(wǎng)并進(jìn)行數(shù)據(jù)回環(huán)測(cè)試
同時(shí)通過(guò)EVB上的LED,我們可以發(fā)現(xiàn),LED燈可以根據(jù)我們輸入的指令執(zhí)行亮滅動(dòng)作。如圖14 所示:

圖14 LED根據(jù)命令進(jìn)行亮滅

第六步:刪除已添加的端口。在菜單界面中輸入8,然后按指示刪除剛才的端口,刷新路由器映射表,發(fā)現(xiàn)已經(jīng)沒(méi)有這個(gè)應(yīng)用了。

四 總結(jié)
目前,實(shí)現(xiàn)各種設(shè)備的互聯(lián)互通已經(jīng)成為人們的迫切需求,而實(shí)現(xiàn)這一目的的關(guān)鍵是家庭網(wǎng)絡(luò)的中間件技術(shù),最有前景的就是今天講的UPnP,因此支持UPnP標(biāo)準(zhǔn)的設(shè)備越來(lái)越多。本文通過(guò)UPnP部分協(xié)議實(shí)現(xiàn)了設(shè)備的自動(dòng)端口映射,方便設(shè)備直接部署在內(nèi)網(wǎng)中,無(wú)需客戶去配置,就能在外網(wǎng)中直接訪問(wèn)內(nèi)網(wǎng)設(shè)備,查看或者配置設(shè)備信息。作為一個(gè)UPnP協(xié)議的一個(gè)簡(jiǎn)單應(yīng)用,希望能給大家一個(gè)思路。

上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: STM32W5500端口映

評(píng)論


技術(shù)專區(qū)

關(guān)閉