TI CC2530 增大发送数据大小而不分包问题
现在我用终端设备上发一百多个字节到协调器,从协调器串口输出数据为完整一包因为时间节点是同一个,但是在协议栈接收时有调试信息可知是收到被分包的数据。
现在是否有办法调用AF_DataRequest函数进行发送200字节不被分包?而且我发现发送数据长度len > afDataReqMTU()返回值时就不能够发送成功,怎样才能加大afDataReqMTU返回负载值即MTU大小?我调整了可能的宏定义还有堆空间也还是一样只能发送小于99字节,网上查找说启用ZIGBEE_FRAGMENTATION功能可以大数据包发送,但试了还是不行不知道哪里设置有误。还望详细指点,非常谢谢!
这个估计有点困难。f8wConfig.cfg
/* Set the MAC MAX Frame Size (802.15.4 default is 102) */
-DMAC_MAX_FRAME_SIZE=116
这个值我已经改过了,还是没啥变化所以不是这个地方,不知道别人怎么做到的。否则我也觉得应该是协调器收到自己整合一包再来处理。
802.15.4 最大可发128. phy nwk 头, 加密要消耗些。 一般单包应用负载 70到 80. 字节。
这个是有些困难的。您可以查看下说明:
The maximum payload size for an application is based on several factors. The MAC layer provides a constant payload length of 116 (can be changed in f8wConfig.cfg – MAC_MAX_FRAME_SIZE). The NWK layer requires a fixed header size, one size with security and one without security. The APS layer has a required, but variable,header size based on a variety of settings, including the ZigBee Protocol Version, APS frame control settings, etc.
Ultimately, the user does not have to calculate the maximum payload size using the aforementioned factors. The AF module provides an API that allows the user to query the stack for the maximum payload size, or the maximum transport unit (MTU). The user can call the function, “afDataReqMTU” (see “af.h”) which will return the MTU, or maximum payload size.