Startup Synchronization

There are four startup scenarios that requires synchronization between the Host and Module:

  1. Simultaneous Host and Module startup, with the Host completing first.
  2. Simultaneous Host and Module startup, with the Module completing first.
  3. Unilateral hardware/software reset of Module, requiring application reconfiguration.
  4. Unilateral hardware/software reset of the Host, requiring re-synchronization of all attribute states and the application Event Cache.

In each case, the Host and Module will perform a Startup Synchronization sequence to synchronize their data and communication states with one another, prior to the Module initiating any automatic network operations. During this phase, the Host is required to configure support for the application endpoints, clusters and attributes.

Upon startup, the Host must issue the Host Startup Ready command. On receiving the Startup Sync Request command will be sent from the Module to the Host(see figure 1 for an alternate sequence). The Host may then enter the Startup Synchronization sequence to perform the aforementioned configuration of the endpoints, clusters and attributes. The Startup Sync Request command from the Module will include information on which application configurations may be restored from external flash and which the Host must reconfigure.

The Host completes the phase by sending the Startup Sync Complete command to the Module.

This page provides illustrated examples of the Startup Synchronization sequence.

Startup Synchronization Sequence

The primary commands sent and received in the Startup Sync Sequence are:

  1. /wiki/spaces/SPRHA15/pages/37093429 (Host → Module)
  2. /wiki/spaces/SPRHA15/pages/37093429 (Module → Host)
  3. /wiki/spaces/SPRHA15/pages/37093429 (Host → Module)

The diagrams in this section illustrate the Startup Synchronization sequence.


First Time Startup Configuration Sequence

Figure (1) illustrates the expected Startup Synchronization sequence following the first power up of the Module from its factory default state. In this diagram, the Configuration and Updates phase from the previous figure has been expanded to show key operations performed by the Host.

 Figure 1: First Time Startup Configuration Sequence

Figure 1

Startup Synchronization Request Retries

Figure (2) illustrates the sequence when the Module initializes before the Host (described in scenario (2)). In this scenario the Module starts sending Startup Sync Request periodically(every 5 seconds) to ensure that the Host receives the message even if the Host starts up slower than the Module. You can see in the figure, the Host Startup Ready command is sent after the Startup Sync Request. The Module is required to send a final Startup Sync Request after receiving the Host Startup Ready command. The Host can now start the Configuration sequence.

Upon the Host completing synchronization (by performing all necessary configurations and updates) it will transmit the Startup Sync Complete command to the Module, at which point the Module will initiate the full application, i.e., commence network activities, etc.

 Figure 2: Startup Synchronization Request Retries

Subsequent Startup Configuration Sequence

Figure (3) illustrates the Startup Synchronization sequence after power up of a configured Module (i.e., subsequent to the state achieved in the previous figure 2). The application device type does not need to be defined as it is preserved in non-volatile memory. All configured endpoints, clusters and attributes are stored in volatile memory and must be re-configured after any soft or hard reset of the Module.

 Figure 3: Subsequent Startup Configuration Sequence

Host Startup Configuration Flow Chart

Figure (4) is a flow chart of how the Host may implement its startup sequence to synchronize with the Module.

 Figure 4: Host Startup Configuration Flow Chart

Startup Sync due to unexpected Host reset (Module Running State = Already Running)

The first byte of the Startup Sync Request Command(see /wiki/spaces/SPRHA17/pages/37093548for Startup Sync Request ) indicate the current running state of the module i.e., Running State indicates whether the Module has just powered up or is already running. If the Running State indicates the latter, it signifies that the Host experienced a unilateral reset. In this case, the Module will have retained all its application cache and attribute values, but will suspend network operations and return to the Startup Synchronization phase. The module will go through the following phases:

  1. Send out the current state (running, configured)
  2. Switch to Startup Sync phase
  3. Send out the current state (startup sync, configured)

Note: If the Running State of the Module is Already Running the Host is not required to configure endpoints, clusters and attributes and perform updates on the values of the latter. Instead, the Host should query attribute values and cached event data from the Module in order to synchronize its internal state with that of the application.


Legal Notices

Copyright © 2017 MMB Networks, Inc. All rights reserved.
Confidential materials prepared and delivered by MMB Networks for receipt and review only by any partner subject to a valid and enforceable MMB Networks confidentiality agreement. Any receipt, review, or misuse of any of the content exchanged hereunder by any party not a party to this confidential exchange shall be subject to any and all rights available under the law. All rights, title and interest to the materials shall remain with MMB Networks.
Any suggestions provided to MMB Networks with respect to MMB Networks' products or services shall be collectively deemed “Feedback.” You, on behalf of yourself, or if you are providing Feedback on behalf of your employer or another entity, represent and warrant that you have full legal authority to bind such entity to these terms, agree to grant and hereby grant to MMB Networks a nonexclusive, perpetual, irrevocable, royalty free, worldwide license to use and otherwise exploit such Feedback within any MMB Networks products and services.