美文网首页
Zigbee协议栈网络管理

Zigbee协议栈网络管理

作者: 羽墨志 | 来源:发表于2016-11-18 18:20 被阅读0次

    Zigbee协议栈网络管理主要是对新入网节点设备的管理。对于CC2530芯片而言,每颗芯片在出厂的时候都拥有一个全球唯一的32位MAC地址,当节点设备接入网络时都将获得由当前网络中的协调器分配的16位短地址,协调器的默认短地址为0x0000,通常网络是通过短地址来管理节点设备的。

    1. 实验目的
        路由器和终端设备发送自己定义的设备号给协调器,协调器通过接收到的设备号来普安段设备类型,并获取设备的短地址通过串口打印出来。
      2.消息发送函数(采用点播方式)
    void SampleApp_SendPointToPointMessage()
    {
        uint8 device;//设备类型变量
        if(SampleApp_NwkState== DEV_ROUTER)
            device=0x01;//路由器设备号为1
        else if(SampleApp_NwkState== DEV_END_DEVICE)
            device=0x02;//终端设备号为2
        else
            device=0x03;//表示出错
        if(AF_DataRequest(&SampleApp_PointToPoint_DstAddr,
                          &SampleApp_epDesc,
                          SAMPLEAPP_POINTTOPOINT_CLUSTERID,
                          1,
                          &device,//发送设备编号
                          &SampleApp_TransID,
                          AF_DISCV_ROUTE,
                          AF_DEFAULT_RADIUS) == afStatus_SUCCESS)
        {
        }
        else
        {
          // Error occurred in request to send.
        }
    }
    

    3.接收设备编号,获取设备短地址
      首先在接收函数void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )的开头添加一个临时变量temp用于存储节点设备的短地址,添加一个ASCII码转换数组,用于节点设备短地址的分解:

       uint16 temp;//接收节点设备的短地址
        uint8 hex2asc[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};//十六进制转ASCII码
    

    然后在点播ID(SAMPLEAPP_POINTTOPOINT_CLUSTERID)下面实现设备短地址的接收、分解和打印:

    case SAMPLEAPP_POINTTOPOINT_CLUSTERID:
            temp=pkt->srcAddr.addr.shortAddr;//读取数据包的16位短地址
            if(pkt->cmd.Data[0]==1)//Router
                HalUARTWrite(0,"Router short address:0x",23);
            if(pkt->cmd.Data[0]==2)//EndDevice
                HalUARTWrite(0,"EndDevice short address:0x",26);
            //分解节点设备短地址并打印
            HalUARTWrite(0,&hex2asc[temp/4096],1);
            HalUARTWrite(0,&hex2asc[temp%4096/256],1);
            HalUARTWrite(0,&hex2asc[temp%256/16],1);
            HalUARTWrite(0,&hex2asc[temp%16],1);
            HalUARTWrite(0,"\n",1);//换行
            break;      
    

    4.下载程序并测试
      将修改后的程序分别以协调器、路由器、终端的方式下载到 3 个 或以上的节点设备,协调器通过串口连接到 PC 机。

    相关文章

      网友评论

          本文标题:Zigbee协议栈网络管理

          本文链接:https://www.haomeiwen.com/subject/mgqspttx.html