搜索
bottom↓
回复: 14

基于STM32+W5500的UPnP协议应用

[复制链接]
(210172725)

出0入0汤圆

发表于 2015-1-20 10:21:18 | 显示全部楼层 |阅读模式
本帖最后由 傻彪5213 于 2015-1-20 10:25 编辑

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应该和路由器在同一网段内。
编译程序无误以后下载到开发板里,复位以后查看串口的打印信息如下。

在执行DHCP、SSDP、获得描述和设置事件后,如果正常则显示以上信息。之后打印一个菜单页面,大家可以根据提示选择相应的应用功能。如下图所示。


按照菜单提示,我们首先添加一个TCP端口映射,外网端口为是随意的,由于本人能力有限,内网端口为固定的5000,添加成功后会提示AddPortSuccess。那么是否真的添加成功了呢,我们可以查看路由器的端口映射表。添加成功以后可以看到如下图所示信息。


ID 1的信息就是成功映射后的端口信息。
成功以后可以选择5 TCP 回环测试来验证效果如何。
首先检查下路由器在外网中的IP地址,登陆路由器在 WAN口设置 项可以找到路由器IP地址为192.168.10.135,可见路由器的网段与W5500 EVB(IP地址是192.168.1.110)的网段不是一样的,这正是“外网”和内网的区别。
我们在与路由器同一网段的PC(IP地址是192.168.10.116)上建立TCP client,连接到路由器的12222端口,并发送测试字符串,在接收区看到收到了loopback的回复,如下图所示。端口映射成功!

在测试完添加端口映射后,我们可以按照菜单提示将刚才添加的端口删除掉,然后在PC上重新连接刚才删除的外网端口,会发现已经连接不上,这与预期结果相符。

UPnP 的应用范围非常大,可以实现许多现成的、新的及令人兴奋的方案,包括家庭自动化、打印、图片处理、音频 / 视频娱乐、厨房设备、汽车网络和公共集会场所的类似网络。它可以充分发挥 TCP/IP 和网络技术的功能,不但能对类似网络进行无缝连接,而且还能够控制网络设备及在它们之间传输信息。一个 UPnP 设备能够自动跟一个网络连接上、并自动获得一个 IP 地址、传送出自己的权能并获悉其它已经连接上的设备及其权能。最后,此设备能自动顺利地切断网络连接,并且不会引起意想不到的问题。


以下附件是应用程序。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(210170039)

出0入0汤圆

发表于 2015-1-20 11:06:04 | 显示全部楼层
好东西 学习学习
(210169094)

出0入0汤圆

发表于 2015-1-20 11:21:49 | 显示全部楼层
如果用TM4C129移植好lwip,该如何实现uPnP呢?

(210165198)

出0入50汤圆

发表于 2015-1-20 12:26:45 | 显示全部楼层
正在画W5500的PCB,支持楼主
(210163912)

出0入0汤圆

发表于 2015-1-20 12:48:11 | 显示全部楼层
收藏备用
(210163678)

出0入0汤圆

 楼主| 发表于 2015-1-20 12:52:05 | 显示全部楼层
lanyuye 发表于 2015-1-20 11:21
如果用TM4C129移植好lwip,该如何实现uPnP呢?

这个 我还没有尝试过啊,软协议写UPNP也准备着手学学。
(209295600)

出0入0汤圆

 楼主| 发表于 2015-1-30 14:00:03 | 显示全部楼层
ilikemcu 发表于 2015-1-20 12:26
正在画W5500的PCB,支持楼主

谢谢支持
(204793615)

出0入0汤圆

发表于 2015-3-23 16:33:08 | 显示全部楼层
支持楼主。
(204792355)

出0入4汤圆

发表于 2015-3-23 16:54:08 | 显示全部楼层
现在用5200处理tcp传数据之外其他的功能都没有用过
(174796596)

出0入0汤圆

发表于 2016-3-4 21:03:27 | 显示全部楼层
谢谢楼主分享这么好的资料
(174793334)

出0入0汤圆

发表于 2016-3-4 21:57:49 | 显示全部楼层
收藏备用,谢谢楼主
(122387899)

出0入0汤圆

发表于 2017-11-1 11:01:44 | 显示全部楼层

收藏备用,谢谢楼主
(117524098)

出0入0汤圆

发表于 2017-12-27 18:05:05 | 显示全部楼层
标记学习一下。
(117448489)

出0入0汤圆

发表于 2017-12-28 15:05:14 | 显示全部楼层
make upnp  
(117448410)

出0入0汤圆

发表于 2017-12-28 15:06:33 | 显示全部楼层
make     upnp   Upnp
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2021-9-17 23:40

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表