配置Wifly模块接收UDP数据包

时间:2014-04-18 05:41:35

标签: tcp network-programming udp wifi microchip

我有一个与微控制器连接的RN-171 wifly模块。

我使用UDP协议与模块通信。此外,我使用固件的UDP自动配对功能来设置主机IP。一旦模块收到UDP数据包,它就会将主机IP地址设置为接收数据的ip。现在,如果不进入命令模式,则无法更改此主机IP。

我希望模块的行为方式如下: 每次收到UDP数据包时,它都会将主机IP更新为该信号来自的IP地址。

此外,我可以使用TCP协议,但它一次只允许一个连接。我使用TCP协议遇到的另一个问题是,如果我尝试启动与模块的第二个TCP连接,它不仅会拒绝第二个连接,还会挂起第一个稳定连接。即使第二次连接启动没有挂起模块而它只是被拒绝,我也准备好使用TCP了。

我一直在网上研究这个问题,但由于这些模块没有被广泛使用,因此它们的支持非常有限。

1 个答案:

答案 0 :(得分:0)

我已广泛使用RN-171并在其支持系统中有许多已解决的门票。

根据WiFly Command Reference, Advanced Features and Applications User’s Guide,您无法使用该模块打开多个TCP端口。 (默认数字是2000)

不幸的是,关于UDP功能,你可以做的并不多。如果您有一台希望通过UDP进行通信的新主机,请通过TCP连接到模块,进入命令模式并使用" $$$"," {{1}设置地址}"," set ip host 0.0.0.0"," save"命令。或者,您可以输入新主机自己的IP地址而不是0.0.0.0:" exit"," $$$", " set ip host ###.###.###.###&#34 ;.替换" exit"使用设备的IP地址。

这样,如果多个设备同时通过UDP进行通信,您将无法获得错误的主机IP。此外,通过不使用" ###.###.###.###",自动配对仍将保存到EEPROM存储器中。此外,您可以发送" save"在" ip flags 0x##"之前,通过使用将此位设置为零的十六进制值,您也可以临时将位[6]设置为0(禁用UDP自动配对)。

Microchip技术支持部门在2013年夏季测试的一个问题是,您不能将RN-171用作其他RN-171的接入点,因为它们存在固件错误,导致其无法做到这一点,并且从固件开始v4.41,于2014年1月发布,目前还没有修复或计划。

我自己不推荐最新的固件版本v4.41,因为它似乎不适用于大多数路由器;但软AP模式对此工作正常。另一方面,v4.00.1更兼容,但是在切断电源时应该小心,因为如果在闪存写入过程中切断电源会有可能发生灾难性的砖块问题 - 模块可能永远锁定其内存

我建议注册并打开Microchip ticket,这通常会在两个工作日内得到解答,而且他们非常支持。然而,它们的固件更新周期很长,通常需要一年左右才能进行新的更新。