最近有项目要传输256字节的数据,于是对这个细节进行了深入了解。
在Z-STACK中有相关代码:
/* Set the MAC MAX Frame Size (802.15.4 default is 102) */
-DMAC_MAX_FRAME_SIZE=116
在TIMAC中也有:
/* Data constants */
#if !defined ( MAC_MAX_FRAME_SIZE )
#define MAC_MAX_FRAME_SIZE 116 /* Maximum application data length without security */
#endif
那么这个116是怎么来的呢?我们寻根究底去《802.15.4》中去查查看。
这里的PSDU就是发往空中的数据,最大长度是127字节。根据MAC帧的帧格式,在最简帧的情况下:启用PAN CMP时,SourcePAN ID可以略去;源地址和目的地址都采用2字节的短地址;关闭加密。在这种最简情况下,MAC帧为2+1+2+2+0+2+0+Payload+2,必要开销是11字节。所以留给Payload的就只有116字节了。
至于满足zigbee协议时的APDU长度就大家自己去看看NWK的帧格式了,挺简单的,这里就不说了。
原文地址:http://blog.csdn.net/sadshen/article/details/45581685