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.

[参考译文] RTOS/CC1310:地址过滤问题

Guru**** 2551110 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/774560/rtos-cc1310-address-filtering-problem

器件型号:CC1310

工具/软件:TI-RTOS

您好,团队

我正在使用 WOR 模式进行联网。为了避免多个中央节点之间的冲突、我需要为它们设置不同的网络 ID。我发现有两个地址参数 address 0和 address1、如何使用它们来形成网络 ID?Address0 = pAN_ID、address1 = Self address?

我知道如何使用地址过滤器、但在使用两个地址过滤器时如何编写代码,就像这样?

packet[0]= PAYLOAD_LENGTH;                      packet[0]= PAYLOAD_LENGTH;  
packet[1]=地址;                               packet[1]=地址0;
packet[2]=(uint8_t)(seqNumber >> 8);                packet[2]=地址1;
packet[3]=(uint8_t)(seqNumber++);                  packet[3]=(uint8_t)(seqNumber >> 8);  

是否需要修改其他参数?

结构{
uint16_t addrType:1;  
uint16_t addrSize:5;  
uint16_t addrPos:5;  
uint16_t numAddr:5;  
} addrConf;

希望得到您的答案!

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

    对于专有命令、如技术参考手册第23.7.1章-数据包格式中所述、它将期望地址位于实际有效载荷之前(位于有效载荷的顶部)。

    您最多可以过滤2个地址、但不能同时检查这两个地址(基本而言、数据包一次有1个地址)。 如果您希望拥有 PAN +自地址、则需要首先在 PAN 上进行过滤、然后在基于自地址的软件过滤器中进行过滤。

    查看此处提供的示例、它应展示如何使用地址字段:

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

    您好、M-W、

    对于单个网络、我需要将中央节点和节点的地址设置为相同、像这样吗?

    如果是这样、我有一个问题:如果软件确定地址是否匹配、那么它必须在接受一帧数据后执行、因此我的功耗将增加。 这种情况是否不可避免?

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

    这取决于您的实施。 使用常规的专有命令、您只能使用1字节地址、这意味着如果您需要"A"或"B"来占用整个字节、则必须在软件中执行其余操作。

    现在、看一下高级专有命令(CMD_PROP_RX_ADV)、您可以在寻址方面拥有更多选项、在标头之后最多支持8字节地址。 这意味着您可以将8字节地址字段"拆分为两个4字节地址(A | 1等)。

    您还可以使用 TRM 中描述的 IEEE 无线电命令。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、M-W、
    我的问题是这样的。WOR 示例使用 CMD_PROP_RX_ADV。您是不是说使用此函数同时过滤硬件上的 PAN ID 和自地址?

    对于 TX:
    packet[0]= PAYLOAD_LENGTH;
    packet[1]= PAN_ID;
    packet[2]= Self_Address;
    packet[3]=(uint8_t)(seqNumber++);

    对于 RX:
    地址0 = PAN_ID;
    地址1 = self_Address;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但实际上、在 WOR-RX 示例中、RF_cmdPropRxSniff 没有此功能。 对于 CMD_PROP_RX_ADV 命令、我希望您可以使用代码来显示如何筛选出多个地址、尤其是相关配置参数的值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经解决了这个问题、谢谢。