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.

[参考译文] CC1200:简单链接Tx/Rx数据包长度

Guru**** 2540720 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/577202/cc1200-easy-link-tx-rx-packet-length

部件号:CC1200

*应用示例- CC120x Easy Link Tx/Rx (来自CC120x软件示例)

当Tx 3字节用户数据(0x0a 0x0B 0x0c)的第一字节数据包长度为"0x03"(0x03 0x0a 0x0B 0x0c)时,RX显示以下数据。

  - Tx:0x03 0x0a 0x0B 0x0c

  - Rx:0x06  0x03 0x0a 0x0B 0x0c 0x?? 0x08

问题是关于Rx缓冲区的第一个"0x06"。

*"0x06"是什么意思? 谁添加了该字节?

*如果“0x06”表示数据包长度,为什么需要数据长度“0x03”?

此致,

海登

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

    static void createPacket(uint8 txBuffer[]){ txBuffer[0]= PKTLEN; //长度字节 txBuffer[1]=(uint8)(packetCounter >>8); // packetCounter的MSB txBuffer[2]=(uint8) packetCounter; // packetCounter的LSB //用随机字节填充缓冲区的其余部分 对于(uint8 i = 3;i <(PKTLEN + 1);I++){ txBuffer[i]=(uint8)rand(); } }

    因此在Rx端,您将看到一个2字节数据包计数器+ 3字节有效负载。  

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

    下面是有关测试的更多信息。
    在测试中,对“createPacket”进行了修改,仅发送了三个字节的用户数据“0x0a 0x0B 0x0c”。
    因此,txBuffer[0]= 0x03,txBuffer[1]~ txBuffer[3]为"0x0a 0x0B 0x0c"。
    没有添加RX缓冲区的第一个字节"0x06"的应用程序代码。
    问题是关于"0x06"。


    谢谢,此致,
    海登
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您未指明您已修改了代码。 您能否发布修改后的代码,以便我在自己的身边进行测试?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉缺少指示。
    稍后我将更新测试代码。

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

    这是Tx测试,数据包生成代码。

    ----------------------------------
    #define WPT_CC120x_Tx_Buffer_Size 128.

    typedef结构

    UINT8_t Tx_Buffer[WPT_CC120x_Tx_Buffer_size];
    } WPT_CC120x_command_type;

    WPT_CC120x_command_type WPT_CC120x_Command;

    /*构造要发送的Tx_Buffer */
    WPT_CC120x_Command.TX_Buffer[0]= 0x03;//长度字段
    WPT_CC120x_Command.TX_Buffer[1]= 0x00;
    WPT_CC120x_Command.TX_Buffer[2]= 0x00;
    WPT_CC120x_Command.TX_Buffer[3]= 0x01;//Command_Value

    cc120xSpiWriteTxFifo (WPT_CC120x_Command.Tx_Buffer,4);//将数据包写入TX FIFO
    TxSpiCmdStrobe(CC120X_STX);//发送数据包的Strobe TX
    ----------------------------------

    对于上述Tx (0x03 0x00 0x00 0x01),Rx缓冲区内存如下所示。

    "0x06 0x03 0x00 0x00 0x01 0x? 0x80"

    因此,问题是“0x06”(Rx缓冲区的第一个字节)的含义是什么。


    谢谢,此致,
    海登
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何读取Rx缓冲区?

    是否已将对讲机设置为发送802.15 .4g数据包? 在这种情况下,它将是长度字节之前的一个字节。

    您是否尝试使用SmartRF Studio作为Rx单元,并查看是否在此处看到相同的功能?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,

    使用RX应用程序时,正确接收了相同的TX数据。
    (在Rx缓冲区显示"0x06"。)

    此致,
    海登