Monday, March 12, 2012

Zigbee standard message sequence while a Device associate with a Co-ordinator (In Device side)



Device Association with Coordinator (Device side)


  1. MLME-RESET.request ( true/false (SetDefaultPIB) )
        → Upper layer to MAC

  1. PLME-SET-TRX-STATE.request (TRX_OFF)
        → MAC to PHY

  1. PLME-SET-TRX-STATE.confirm (SUCCESS)
        → PHY to MAC

  1. MLME-RESET.confirm (SUCCESS)
        → MAC to Higher layer

  1. MLME-SCAN.request( 0 x 02(ScanType, Passive), 32-bit field(ScanChannels), 0 to 14(ScanDuration) )
        Higher layer to MAC.

  1. PLME-SET-TRX-STATE.request (RX_ON)
        → MAC to PHY

  1. PLME-SET-TRX-STATE.confirm (SUCCESS)
        → PHY to MAC

  1. PLME-SET.request ( 0 x 00(PIBAttribute Identifier-phyCurrentChannel), firstchannel(0 to 26) )
        → MAC to PHY

  1. PLME-SET.confirm ( SUCCESS, 0 x 00(PIBAttribute Identifier- phyCurrentChannel) )
        PHY to MAC

Note: Beacons will arrive

  1. PD-DATA.indication ( psduLength(<=127, msdu length) psdu(set of octets), 0 x 00 to 0x ff(ppduLinkQuality) )

        PHY to MAC

 Note: Receives the beacon from one channel for aBaseSuperframeDuration x (2n +1), where n is ScanDuration whose value < 14.

Note: Steps 8 to 10 done repeatedly to finish scanning of all channels specified in ScanChannels parameter of MLME-SCAN.request.


  1. PLME-SET-TRX-STATE.request (TRx_off)
        → MAC to PHY

  1. PLME-SET-TRX-STATE.confirm (SUCCESS)
        → PHY to MAC

  1. MLME-SCAN.confirm( SUCCESS, 0 x 02(ScanType-Passive scan), 32-bit field(unscanned channels), ResultListSize(No. Of elements returned, 0 for orphan), 0 x 00 to 0x ff(List of energy measured, one for each channel), PANDescriptorList(Null for ED & Orphan) )

        MAC to Higher level

Note: Selection of PAN based on list of PAN descriptors.

  1. MLME-ASSOCIATE.request ( LogicalChannel(Integer), 0 x 02–0 x 03 (CoordAddrMode), 0 x 0000–0 x ffff(CoordPANId), CoordAddress(As specified inCoordAddrMode ), CapabilityInformation, True/False(Security enable) )

        Higher layer to MAC

  1. PLME-SET-TRX-STATE.request (TX_ON)
        → MAC to PHY

  1. PLME-SET-TRX-STATE.confirm (SUCCESS)
        → PHY to MAC

  1. PD-DATA.request ( psduLength((<=127, msdu length)), psdu(set of octets) ) 

    → MAC to PHY

Note: Sent Association request.

  1. PD-DATA.confirm (SUCCESS)
        → PHY to MAC

  1. PLME-SET-TRX-STATE.request (RX_ON)
        → MAC to PHY

  1. PLME-SET-TRX-STATE.confirm (SUCCESS)
        → PHY to MAC

Note: Wait for macAckWaitDuration, and receive the Acknowledgment.

  1. PD-DATA.indication ( psduLength(<=127, msdu length) psdu(set of octets), 0 x 00 to 0x ff(ppduLinkQuality) )

        PHY to MAC

Note: Wait for aResponseWaitTime.

  1. PD-DATA.request ( psduLength((<=127, msdu length)), psdu(set of octets) )
        → MAC to PHY

Note: Sent Data request.

  1. PD-DATA.confirm (SUCCESS)
        → PHY to MAC

  1. PLME-SET-TRX-STATE.request (RX_ON)
        → MAC to PHY

  1. PLME-SET-TRX-STATE.confirm (SUCCESS)
        → PHY to MAC

Note: Wait for macAckWaitDuration, and receive the Acknowledgment.

  1. PD-DATA.indication ( psduLength(<=127, msdu length) psdu(set of octets), 0 x 00 to 0x ff(ppduLinkQuality) )

        PHY to MAC

Note: Receive Association response.

  1. PD-DATA.indication ( psduLength(<=127, msdu length) psdu(set of octets), 0 x 00 to 0x ff(ppduLinkQuality) )

        PHY to MAC

  1. PLME-SET-TRX-STATE.request (TX_ON)
        → MAC to PHY

  1. PLME-SET-TRX-STATE.confirm (SUCCESS)
        → PHY to MAC

  1. PD-DATA.request ( psduLength((<=127, msdu length)), psdu(set of octets) )
        → MAC to PHY

Note: Sent Acknowledgment.

  1. PD-DATA.confirm (SUCCESS)
        → PHY to MAC

  1. PLME-SET-TRX-STATE.request (TRX_OFF)
        → MAC to PHY

  1. PLME-SET-TRX-STATE.confirm (SUCCESS)
        → PHY to MAC

  1. MLME-ASSOCIATE.confirm ( 0 x 00000 x ffff(Short address for device), SUCCESS(Status if association))

       → MAC to Higher layer.

No comments:

Post a Comment