配置Wifly模块以接收UDP数据包



我有一个与微控制器相连的RN-171无线模块。

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

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

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

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

我广泛使用了RN-171,在他们的支持系统中有许多已解决的票证。

根据《WiFly命令参考、高级功能和应用程序用户指南》,您不能使用该模块打开多个TCP端口。(默认数字为2000)

不幸的是,关于UDP功能,您无能为力。如果您有一个新主机希望通过UDP进行通信,请通过TCP连接到模块,进入命令模式,并使用"$$$"、"set ip host 0.0.0.0"、"save"one_answers"exit"命令设置地址。或者,您可以输入新主机自己的ip地址,而不是0.0.0.0:"$$$"、"set ip host ###.###.###.###"one_answers"exit"。将"###.###.###.###"替换为设备的ip地址。

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

Microchip技术支持部门在2013年夏天左右测试了我的一个问题,那就是你不能将RN-171用作其他RN-171的接入点,因为它们有一个固件错误,阻止了一个人这样做。截至2014年1月发布的固件v4.41,还没有修复,也没有计划。

我自己不推荐最新的固件版本v4.41,因为它似乎不适用于大多数路由器;然而,这种情况下的软AP模式运行良好。另一方面,v4.00.1的兼容性要高得多,但您在切断电源时应该小心,因为如果您在闪存写入过程中切断电源,可能会出现灾难性的砌砖问题-模块可能会永远锁定内存。

我建议注册并开通Microchip机票,通常会在两个工作日内得到回复,他们非常支持。然而,他们的固件更新周期相当长,通常需要一年左右的时间才能进行新的更新。

最新更新