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.

ZigBee最大帧长度是多少啊

你好,我用终端给协调器发数据,测得可以收到128字节的数据,从网上查最大是127字节的数据

请问:可以发送最大数据到底是多少啊?

           加上协议中的东西构成的帧最大是多少字节啊?

           怎么设置拆包(还是自动拆包的,如果是自动拆包,那不拆包的最大可以发送多少字节?怎么设置不拆包?)?

  • 1、IEEE802.15.4协议规定的最大帧长度为127字节。

    2、自动拆包的实现,一般是把接收到的数据存放到缓冲区,跟包头的长度对比,如果超过了,则进行拆包

  • 你好,我做的实验是一个终端和一个协调器,终端向协调器发送数据,协调器收到数据后通过串口向PC显示

    开始发送116个字节的数据,协调器收到116字节的数据

    然后发送127字节的数据,协调器能收到127字节的数据

    最后发送145字节的数据,协调器只收到128字节的数据

     

    你说的最大帧长度是包括      协议栈的内容(mac层和phy层)+实际数据     吗?

    自动拆包在程序哪里可以设置???给点提示

    谢谢

  • Hua jiao:

    1: zigbee协议的的MAC和PHY是基于IEEE802.15.4的,从PHY层发到空中的数据包中,用一个字节bit6~bit0来表示数据帧的的长度,bit7接收方用来填写CRC校验值。所以每个数据包长度最大是127个字节,

    2:自动拆包的程序以及library提供,在发送数据的时候会自动封装好拆分的数据包。

    if (len > afDataReqMTU( &mtu ) )
    {
    if (apsfSendFragmented)
    {
    stat = (*apsfSendFragmented)( &req );
    }
    else
    {
    stat = afStatus_INVALID_PARAMETER;
    }
    }
    else
    {
    stat = APSDE_DataReq( &req );
    }

  • 你好,谢谢你的回答

    这个由PHY层发送到空中的数据包  包括实际数据和SHR及PHR共127字节么?   还是实际数据就127字节?

    可以给说下文档的出处和程序的出处吗?谢谢,程序我待会去搜下看看

     

    看一下我总结的有问题么

    zigbee最大帧长度

    摘自《ZigBee无线网络与收发器》,[美] Shahin Farahani 著  沈建华 王维华 阔鑫 译

    英文版名为《ZigBee Wireless Networks and Transceivers》

    <1>P30-P31:

    3.2.6 PHY常量和属性

    常量定义了协议的特性,如最大帧长度、一个事件的持续期间等。协议的每一层都有自己的常量。PHY只有两个常量,如表3.2所列。PHY常量aMaxPHYPackerSize表明PHY服务数据单元(PSDU)不能超过127字节。Turnaround时间是指收发器从发送(TX)切换到接收(RX)所需的时间,反之亦然。根据aTurnaroundTime常量,收发器必须在12个符号周期内完成切换。

    表3.2 PHY常量

    常量

    描述

    aMaxPHYPacketSize

    PSDU最大长度(单位字节)

    127

    aTurnaroundTime

    RX到TX或TX到RX最大切换时间(单位符号周期)

    12

    …………………………………………………………………………………………

    <2> P35-P37

    3.2.9 PHY数据包格式

    PHY层协议数据单元(PPDU)格式如图3.5所示。PPDU由三部分组成:同步头(SHR)、PHY头(PHR)和PHY载荷。

                                                                            7 bits            1 bit            MAC帧

     

    同步序列

    帧起始分隔符

    帧长度

    保留

    PSDU

         

                SHR                              PHR                   PHY载荷

    图3.5 PPDU格式

                       …………………………………………………………

    PHY数据包下一个域是帧长度。帧长度指定了PHY载荷(PSDU)字节总数。PSDU长度可以是0至127中的任意值(见表3.2,PHY常量)。但是实际上,基于IEEE 802.15.4-2006,对于一个MAC确认帧PSDU长度是5字节,而PSDU长度对其他任何MPDU是9-127字节。0-4和6-8的帧长度值保留为潜在未来应用(表3.7)

    表3.7 帧长度值

    帧长度值

    PHY载荷

    0到4

    保留

    5

    应答MPDU

    6到8

    保留

    9到aMaxPHYPacketSize

    其他类型MPDU

    <3>摘自网络      

     

                           

    注意:这个mac层没有显示信息

    也就是说:最大帧长度为4+1+1+127 =133字节

     

  • 额,不好意思,有个图没显示出来,其他图还没显示全,

  • 对的是这样的,因为SHR和PHR是PHY层自动添加的,所以通常理解的可以发送的数量就是127字节。

  • 非常感谢你的帮助

  • 写的好,非常有帮助! 谢谢大牛们!
  • 请问发送的时候,字节数大于127个字节,是否自动循环发送?而接收的时候,是否也是自动封装好的呢?谢谢!

  • 同问,如果大于127个字节,如何发送,

  • 如果大于127字节了,底层会自动开启分包发送功能。

    接收端也是,底层处理多个报文,然后把完整的报文给到应用层

    #if !defined ( ZIGBEE_FRAGMENTATION )
    #define ZIGBEE_FRAGMENTATION
    #endif