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.

[参考译文] CC2538:ZNP:如何实现分段?

Guru**** 2538955 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/725152/cc2538-znp-how-does-fragmentation-work

器件型号:CC2538

嗨、大家好

我们将通过无线方式发送两个碎片数据包、总大小为133字节。  这会导致 ZNP-NPI 接口发生爆炸。

碎片数据包是在 ZNP 库中组装并传递给 MT_AfIncomingMsg (afIncomingMSGPacket_t *pMsg)还是通过 MT_AfIncomingMsg (afIncomingMSGPacket_t *pMsg)传递的单个数据包

我们从 Ubiqua 中获取了无线屏幕截图:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我正确地记住,碎片数据包将在 ZNP 库中组装并传递给 MT_AfIncomingMsg (afIncomingMSGPacket_t *pMsg)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    此外、在 ZNP_app.c 中、我们看到在 npUartTxReady 中出现了这种情况、 我认为 ZNP 无法从以下方面恢复:

    uint16 len = HalUARTWrite (HAL_UART_PORT、pMsg、npUartTxCnt);
    npUartTxCnt --len;
    
    如果(npUartTxCnt = 0)
    {
    OSAL_msg_deallocate (npUartTxMsg);
    npUartTxMsg =空;
    }
    其他
    {
    pMsg += len;
    
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    
    此处}
    } 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我正确地记得、默认的 UART TX/RX 自助餐是128、您可能需要增加它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的,这似乎是由于尝试将一条153字节的消息写入一个120字节的 UART TX 缓冲区.....
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    AH、HAL_UART_TX_BUF_SIZE 与 MT_UART_TX_buff 最大值相对应
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以尝试将缓冲区增加到200字节以查看它是否起作用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我把它增加到了512 :)