微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 帧长度超过127后,如何进行拆包

帧长度超过127后,如何进行拆包

时间:10-02 整理:3721RD 点击:

zstack一帧最大长度是127,在帧长度超过127字节后需要进行拆包,AF_DataRequest()函数的数据长度参数超过时,zstack是否会自动进行拆包?我这边帧长超过127后就不发包了,是否需要进行某些设置来使能拆包?   接收端的程序中,是否需要进行一些动作来组包,还是说组包有zstack自动完成了,用户完全不必理会?

我这边的测试如下:

协调器发送数据包,终端接收并将数据用串口输出到PC(串口输出数据长度参数有调整过,输出150+个数据时没有问题的)。在帧长度是126的时候,PC上是能够看到接收到的数据的(126 byte);在帧长度是127的时候,终端就无法收到数据了。用Packet Sniffer进行抓包,发现完全没有真正的数据包在进行发送。

ZIGBEE_FRAGMENTATION已定义。

如果使能了分包发送功能,ZIGBEE_FRAGMENTATION,那么协议栈自动会做分包的处理。同样接收端也是把分包的数据组装好以后往应用层传输。用户可以不理会。

你说的帧长度是指应用层还是整个数据帧?

你好,谢谢回复,127是指的物理层的载荷。

问题今天找到了,是单播、广播造成的,之前我是协调器广播发送,终端接收,发现物理层数据不能超过127,且无法拆包。后来我改成用终端单播发送,协调器接收,试了下发送500字节,没有问题。

广播确实不法拆包吗,zstack的Documents里面也都没有讲到。

你好,我已经定义了ZIGBEE_FRAGMENTATION,在ZSTACK中还需要做什么操作才能实现自动分包?

@Harry

不需要直接发就可以了!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top