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.

[参考译文] CC2530:使用MAC地址( IEEE addr)创建黑名单

Guru**** 2540720 points
Other Parts Discussed in Thread: CC2530, Z-STACK

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/580981/cc2530-create-blacklist-using-mac-address-ieee-addr

部件号:CC2530
主题中讨论的其他部件: Z-stack

我正在尝试在CC2530中创建黑名单,该黑名单将使用IEEE地址而不是PAN ID。 我已推荐 wiki.tiprocessors.com/.../Black_list_implementation ,但它正在使用PAN ID创建黑名单。 我需要使用IEEE Addr创建黑名单的解决方案。

谢谢你…

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果Zed试图加入ZC,您想在Zed或ZC上实施此IEEE地址黑名单吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想在Zed中实施。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ZDApp_NwkDescListProcessing中pNwkDesc的扩展PANID是ZC响应信标请求的IEEE地址,因此您可以将其用作黑名单。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的,谢谢...

    我还想为我的案例找到解决方案:

    请考虑此方案,特别是在我拥有大约25个ZC和500个以上Zed的区域(在我的方案中,没有Zed,只有ZR)。 特定的ZR应与一个特定的ZC连接。 它不应与任何其他ZC连接。 假设它与不同的ZC连接,我将向特定ZR发送休假请求,然后ZR将从特定网络离开。 但这种情况不应一再发生。 所以我尝试将ZC的IEEE地址(它将离开请求发送到ZR)添加到ZR的黑名单中。 这样我就不会连接到特定网络。

    我还有一些疑问。
    1. ZR在加入网络之前是否会获得ZC的IEEE地址?(我的意思是,在发送/接收信标时)。
    2.如何在收到休假申请后将IEEE地址写入ZR的NV RAM。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1.是的,加入网络之前将调用ZDApp_NwkDescListProcessing。
    2.您可以使用osal_NV_write将IEEE地址写入ZR的NV RAM
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我计划做以下事情...
    1.在ZC端,我要检查它将从哪里接收来自ZR的许可加入请求。
    2.在ZR请求中,IEEE地址是否可用于ZC?
    3.如果ZR的IEEE地址可用,则表示我将检查NV RAM中的IEEE地址(我将在NV RAM中创建一个列表)。
    4.如果特定地址匹配,ZC将允许ZR加入网络。

    如果可能,我想知道我的ZC将收到许可加入请求,它将从哪里获得ZR的地址?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否详细说明它将从ZC侧的ZR接收许可加入请求的含义?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ZR将向ZC发送请求。 在该请求中,ZR将要求获得加入其网络的权限。
    ZC将如何接收请求以及如何处理该请求。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此零件由Z-Stack处理。 您可以尝试检查ZMacAssociateRsp(),看看是否可以从那里控制它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否可以使用ZDSecMgrStoredDeviceList添加ZR的IEEE地址并允许特定的ZR加入网络?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不能。ZDSecMgrStoredDeviceList不能用于Z-Stack中,而不能用于测试目的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否有任何其他类似的功能可以执行相同的操作?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以尝试自己保存黑名单,并在ZMacAssociateRsp()中查看黑名单。 如果设备在黑名单中且已在ZMacAssociateRsp中签入,则可以尝试不调用MAC_MlmeAssociateRsp()并返回false。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何使用osal_NV_write()将IEEE addr写入NV RAM。
    假设我的IEEE地址是0x0124B0009E9AA100。0009。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以参考 e2e.ti.com/.../186.7237万中的示例代码
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我尝试将IEEE地址写入NV RAM,如下所示。

    UINT16 NV_test=0x0401;
    UINT64 write= 0x0.0124万B0009E9AA10;0009;

    OSAL_NV_ITE_INIT (NV_TEST,1,NULL);
    OSAL_NV_WRITE (NV_TEST,0,8,&WRITE);
    OSAL_NV_READ(NV_test, 0, 8,写入[&W);



    但我收到错误消息“Error[Pe023]:integer constant is too large”(错误[Pe023]:整数常量太大)。 但地址长度仅为64位。 那么问题是什么呢?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您应该使用字节数组来存储IEEE地址并将其用作写入缓冲区。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    我在NV_RAM中写入了IEEE地址,如下所示...

    UINT16 NV_test=0x0401;
    UINT8 WRITE [Z_EXTADDR_LEN]={0x00,0x12,0x4B,0x00,0x09, 0xE9,0xA4,0xAA };//0x00 12 4B 00 09 E9 A4 AA

    OSAL_NV_ITE_INIT (NV_TEST,1,NULL);
    OSAL_NV_WRITE (NV_TEST,0,8,&WRITE);
    OSAL_NV_READ(NV_test, 0, 8,写入[&W);
    我现在已经完成了Zmain.c。

    我想知道如何在ZMacAssociateRsp()中检查此地址。 应使用MacAssociateRsp()中的osal_NV_read(NV_test, 0, 8,&write)检查哪个函数。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我无法理解您的问题。 您能详细说明吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已将特定的IEEE地址写入NV RAM。
    正如您所说,在将MAC_MlmeAssociateRsp()发送到路由器之前,我必须检查MacAssociateRsp()中的特定地址。

    如何在MacAssociateRsp()中检查路由器的IEEE地址?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在"ZMacAssociateRsp_t *pData"中有"ZLongAddr_t DeviceAddress",您可以检查它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这就是我所做的

    UINT8 ZMacAssociateRsp( ZMacAssociateRsp_t *pData )

     UINT16 NV_test=0x0401;//0x00 12 4B 00 09 E9 AA 10

     UINT8*  受限;

     UINT8  索引;

     UINT8状态;

     UINT8 Write[NV_write_stored_devices][Z_EXTADDR_LEN]=

     {

      { 0x00,0x12,0x4B,0x00,0x09, 0xE9,0xA4,0xAA },

      { 0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x01 },

      { 0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00 },

     };

     pData->Sec.SecurityLevel = FALSE;

     OSAL_NV_ITE_INIT (NV_TEST,1,NULL);

     OSAL_NV_ITE_INIT (NV_TEST,1,NULL);

     OSAL_NV_WRITE (NV_TEST,0,8,写);

     //osal_nv_read (nv_test,0,8,写);

     对于(index =0;index < NV_write_stored_devices;index++)

      受限=写入[索引];

      如果( AddrMgrExtAddrEqual( Restricted,pDate->DeviceAddress) == true )

      {

       //作为未知设备返回验证

       状态= ZNwkUnknownDevice;

       返回0;

      }

    否则

     {

     返回( MAC_MlmeAssociateRsp((macMlmeAssociateRsp_t *) pData ));

     }

    }

    }

    修改上述代码后,ZR也将加入网络。 是否需要任何修改? 或任何其他更改?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我建议您在ZMacAssociateRsp中设置断点,并检查它是否仍调用MAC_MlmeAssociateRsp。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这已解决。

        实际问题是我必须先给出地址的MSB位。 然后我改变了这个问题,这个问题已经解决了。

    现在我有一个问题,列表中的第一个设备仅未连接到网络。第二个和第三个设备正在连接ZC。 如何使其不应与该列表中的任何设备连接。

    我是说

    UINT8 Write[NV_write_stored_devices][Z_EXTADDR_LEN]=

     {

      { 0xC5,0x4E,0xA4,0x0A,0x00, 0x4B,0x12,0x00}, ==>这不是与ZC连接

      { 0x97,0xA4,0xE9,0x09,0x00, 0x4B,0x12,0x00},  ==>这是与ZC连接

      { 0xAA,0xA4,0xE9,0x09,0x00, 0x4B,0x12,0x00}, ==>这也与ZC连接

     };

    如果可以,我想知道可以添加到该列表中的最大设备数。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果要阻止设备从所有ZRS和ZC加入,则必须实施一种将列表传输到所有ZRS和ZC的方法。