cc2530用Zigbee最多能发送几个字节?发送几个字节内用Sniffer抓帧时不会出现网络层?
cc2530用Zigbee最多能发送几个字节?发送几个字节内用Sniffer抓帧时不会出现网络层?
你说的最多是指是应用层最多能发出去还是物理层最多能发数据?是指单次最多能发数据还是总共最多能发的数据?
有没有网络层跟你想法的数据量多少没关系?但是从表象来看,带网络层的数据帧会长一点,不带网络层的数据长度会短一点,但不能按照这样的思路去理解。数据帧的长度是有数据帧的类型所决定的,MAC层数据,NWK层数据,APP层数据,等等。
CC2530物理层最多单次能发127个字节,如果单次发送字节超过127个字节话,zigbee协议栈会做分包处理,是软件处理的,在Z-stack中已经实现了fragmentation功能。
你好,感谢你的回复,我想问一下,我用的是swrc135b;就用两块CC2530的板进行点对点通信,再用TI的paket snifferz抓帧,然后出现图片显示的状况,就是出现了红色的NWK Unkown Command
,为什么会出现这种情况?
但是有些情况下又不会抓到网络层的NKW payload,
有些情况下又能抓到网络层的NKW payload但却是空的,
这是不是跟MAC payload的字节量有关呢?
你好,
你用的软件应该是Basic RF的工作,但是在packet sniffer中并没有对改协议正确解析的规则,packet sniffer只能解析标准的IEEE802.15.4 /ZigBee/等等
所以你会看到是unknown command就是无法正确解析。
跟MAC payload没有关系的。
你好,感谢你的回复,我想问一下为什么会出现Unknown Command 这种无法解析的状况?这个Unknown Command 指的是NWK Payload吗?但是又为什么会出现像第二张图那样的没有NWK Payload呢?又为什么会出现像第三张图那样的有NWK Payload但是却没有数据呢?这里总共4个问题,谢谢!
你好,我在协议栈例程中SampleApp.c调用发送函数,终端发送,协调器接收,协调器通过串口在PC显示,最多能收到128字节的数据
也就是说这在发送过程中经过拆包的吧?为什么拆包只能收到128字节啊
自动拆包在程序中可以设置吗?在哪里设置?
谢谢
Hua Jia,
下次可以重新开一个帖子提问,如果在其他人的帖子后面提问的话,我们可能看不到,请见谅。
如果当你的应用需要发送的数据超过最大负载的时候,协议栈会自动化执行拆包工作,在afStatus_t AF_DataRequest()
if (len > afDataReqMTU( &mtu ) )
{
if (apsfSendFragmented)
{
stat = (*apsfSendFragmented)( &req );
}
else
{
stat = afStatus_INVALID_PARAMETER;
}
}
else
{
stat = APSDE_DataReq( &req );
}
关于fragmentation的程序,我们是没有开源的。但是功能是可以实现的,请放心。
另外你的协调器端PC显示128字节,出问题的地方有很多
1) 你的发送端,有没有把分包的数据都发送出来?总共几包,每包的payload是不是和你想发的一样?
2)你的接收端有没有把包都收到?
3)即便收到了,有没有通过UART全部显示?可能你串口buffer只开了128字节呢?
关于zigbee的学习,
最重要的两点的是1)读ZigBee Specification ,z-stack和specification放在一起学习, 2)协议栈,网络,通信问题从抓包文件开始分析。
之前有遗漏你的问题请见谅。
非常感谢VV
3Q