This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3235MODS:LAUNCCC3235MOD收发器模式

Guru**** 2382630 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1088594/cc3235mods-launchcc3235mod-transceiver-mode

部件号:CC3235MODS

您好,

我正在测试CC3235SMODS模块,
我仅在收发器模式下使用此功能。
由于工务计划似乎没有详细的描述,所以对我来说,好像是一个黑盒子。
我想让NWP在收到RF数据包后立即上传。
我该怎么做? (目前,NWP似乎持有。)
如果我能够管理(增加或减少) NWP的缓冲区大小,我会徘徊
对性能的任何影响。

我的测试配置:
-三个cc3235mod模块,使用uart0用于以2Mbps运行的主机接口。
-收发器模式
-PC测试程序以50毫秒的时间将60字节的数据帧下载到模块中,持续N次,但会随机选择
三个数字,以便三个模块在每个50毫秒期间的不同时间接收数据帧。
-目标地址是0xFFFF,这意味着任何设备都应接收该地址并上载到PC程序。
-在此配置中,每台设备在50毫秒内以及当我收到来自其他对等设备的两个帧时
运行此测试的次数为N=100次,200次等,成功率大约为90 % 或更低。
-当我将50ms增加到100ms时,它会达到100 %。
目标是保持50毫秒,并将模块数量增加到10个。
因此,我需要将成功接收率提高到比95 % 更高的水平。
我在MCS7模式下运行此程序。
欢迎您提出任何意见。
J.Y. Kim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    您使用的是哪种连接? TCP还是UDP? 任何设备都可以接收数据包,这是什么意思? 您是否说如果您只使用一个设备,则不能每50毫秒发送一次数据? 您收到了什么错误代码?  

    您是否通读了NWP用户指南?  https://www.ti.com/lit/ug/swru455 m .swrun 455 m .pdf 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    对于连接,TCP或UDP,

    -我只需调用SL_Send(ir32,buf,TT1,SL_WLAN_RAW_RF_TX_Params(rfchannel,rfrate,rftxPower,rfPreambe));

    我的应用层有一个协议,该协议包含源地址,目的地址,组ID等。但当我将目标地址设置为0xFFFF时,  

    这意味着任何理解此协议的设备都应像广播数据一样接收数据帧。

    整个系统工作正常。 即使我在广播中尝试10个模块每50毫秒发送60字节的数据包,这意味着在内发送10个RF数据包

    50毫秒,每台设备接收9个RF数据包,成功率或多或少为80 %。  

    我要做的是提高这个成功率。  

    回到我的3设备测试,每个RF分组无线速率应远低于1毫秒。 因此,通过计算,在50毫秒内触发了三个RF数据包  

    以足够的利润接收。 我弄错了吗?

    是的,我通读了NWP用户指南,尤其是Ch 13收发器。  

    此致,

    J.Y.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您如何定义成功率? 是否有故障? 其中一个主机驱动程序API调用是否失败? 如果是,返回什么错误代码?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的应用程序数据包有序列号,因此当我在执行NumOfBytes = SL_Recv(i25x,32buf21536,0);

    并上传接收到的数据包,应用程序将知道从发送方收到的数据包数量。

    如果一个对等端发送1000个数据包,而接收器接收980个数据包,则其成功率为98 %。

    对于2个设备之间的1:1连接,大多数时间都是100 %。

    对于3个设备之间的3:3连接,95 % 的内容更少。

    对于10个设备之间的10:10连接,第8轮设备的90 % 多或少,1或2台设备的50 % 少。

    如果NWP在我调用SL_Recv() API时立即上载收到的数据包,我认为性能会提高。

    传输周期为50毫秒,10台设备在50毫秒内的不同时间发送广播数据包。 应用程序有效负载为45字节。

      

    此致,

    J.Y.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,  

    我认为收发器模式不适合您的应用。 在收发器模式下,没有帧确认或重试。 因此 ,我认为您连接的设备越多,您看到的数据包丢失越多,这是有意义的。  

    我建议您使用专用AP,然后您的设备可以连接到该AP。 您必须将一台设备专用于所有客户端将连接到的"服务器"。 此解决方案需要更多的软件开销,但您应该会看到更高的成功率。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    是的,我同意。 使用协调器或“令牌环”的解决方案会更好。

    一月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的建议,但我的应用程序是一种工厂自动化,运营商可以沿着轨道和移动
    没有固定设备作为AP工作。 每个运营商应与其他运营商通信以进行交通控制。

    返回到当前收发器模式,在非阻塞模式下,
    调用SL_Recv()时,如果没有数据,此函数将返回-11 (“重试”消息)。
    我认识到的问题是SL_Recv()即使在收到第一个RF数据包并进行上载时也返回-11
    接收下一个数据包时的第一个数据包。
    这是否正常? 为什么NWP似乎持有?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    听起来,使用网状拓扑(如Wi-Sun)的通信协议更适合您。 我推荐TI低于1GHz的部件。  

    您是否说数据包正在发生冲突? 设备可能无法传输,因为另一台设备正在同时传输。 这是收发器模式的问题。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的Khan1:

    现在我无法切换到sub-giga网格解决方案。

    我接近绩效目标。

    剩下的很简单,但我还没有得到帮助。

    让我回顾一下我的问题:

    在收发器模式下,非阻塞插座通信,

    我使用SL_Recv() API进行接收,使用SL_Send()进行传输。

    我希望cc3235MOD模块在收到来自对等设备的RF数据包后立即上载。

    但模块保存第一个数据包,并在接收下一个数据包时开始上载它。

    如何解决此问题?  

    此致,

    J.Y. Kim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果是计时问题,则可能需要尝试阻止模式。 换言之,请等到收到一个数据包后再接收下一个数据包。 也许您没有配置信号量来正确检测矩形。  

    您也可以先使用虚拟消息开始通信。 无论采用哪种方式,NWP都不应保存任何消息并立即触发或发送。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的Khan1:

    在发送真实邮件之前发送虚拟邮件是一个很好的解决方法。 我要试试。

    顺便说一下,我如何检查我是否没有配置信号来正确检测收到的消息?

    此致,

    J.Y. Kim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    即回调函数不正确,或者您未正确使用SEM_POST/SEM_WAIT。