The present invention relates to an exemplary system and method for a communication protocol for wireless sensor systems.
The present invention relates to an exemplary system and method for a communication protocol for wireless networks, including, for example, wireless sensor networks. The exemplary communication protocol may be used, for example, to initialize, configure, operate, maintain, reconfigure, and/or shutdown the wireless network, and may comply with governmental regulatory requirements, including, for example, US and European regulatory requirements.
In step S201, an installer starts initialization of the system. In step S202, the base (BS) station chooses a random n-bit base station identifier. In step S203, the hub sends a “Start Discovery” message to the base station. In step S204, base station discovers the nodes and passes the information to the hub. In step S205, the base station sends a “Discovery Process Complete” message to the hub. In step S206, the hub presents the discovered nodes to the installer. In step S207, if all the nodes are not discovered, the installer issues discovery again and the hub repeats step S203 to S207. In step S208, the hub sends a “Start Node Id Distribution” message. In steps S209, the base station distributes the node identifiers to the nodes. In step S210, the base station sends a “Node Id Distribution Complete” message to the hub. In step S211, the hub sends a “Start NW-Id Selection” message to base station. In step S212, the base station and nodes collect the ambient RSSI reading on all frequencies.
In Europe, when the base station and nodes listen on the backup frequencies, they may also keep track of number of networks on each of the backup frequency number. They may also keep a bit-mask of the network identifier received in both the frequencies. In step S213, the base station collects ambient RSSI data (for EU Complaint Systems back frequency count and network identifiers may also be collected) from all the nodes and sends it to the hub. The base station and nodes also read the Signal to Noise Ratio (SNR) at the default frequency during this process. In step S214, based on the data collected by the node and the base station, the hub selects a network frequency and sends a “Start Network Poll” message to the base station. In step S215, the base station performs a network poll at the selected frequency and sends the network identifiers found in this frequency to the hub. In step S216, the base station sends a “NW Poll Complete” message to the hub. If there are adjacent networks using this frequency, the hub may repeat steps S214 to S216 again. (For US compliant systems, the hub may send a “Start Network Id Verification” message to the base station. The base station and nodes verify if any of the adjacent networks are using the selected network identifier and frequency and send the data back to the base station. The base station also sends a completion message at the end of phase).
In step S217, based on the data collected, the hub selects a network frequency and backup frequencies for the network. In step S218, the hub sends a “SNR Verification” message to the base station for the selected frequency. In step S219, the base station and nodes collect the signal to noise ratio (SNR) on the selected frequency and send the data to the hub via the base station. In step S220, the base station sends a “SNR Verification Complete” message to the hub. In step S221, if the signal to noise ratio (SNR) is acceptable, the hub selects the final network identifier and backup frequency for the network. If the signal to noise ratio (SNR) is not acceptable, the hub repeats the network identifier selection process (from steps S214 or S217) In step S222, the hub sends a “Network Id Distribution” message to the base station. In step S223, the base station distributes the network parameters to all the nodes. In step S224, the base station sends the “NW-ID Distribution Complete” message to the hub. In step S225, the base station and nodes switch to the network frequency and network operation after a fixed interval. In steps S226, the hub performs recovery operation for those nodes which failed the network identifier distribution.
Discovery of Nodes in the System (Collection of Device IDs)
In step S403, the hub sends a “Start Discovery” message to the base station, which indicates the number of nodes that the installer is installing. (This number makes this step scalable to number of nodes being installed). If the operator cannot provide this number, then the maximum number of nodes the panel can handled is passed. In step S404, the base station runs a discovery process and discovers the nodes it can. During the discovery process, it sends the device identifier of the discovered nodes to the hub. Further details of the discovery process are described below. In step S405, on completion of the discovery process, the base station sends a completion message to the hub. In step S406, the installer now checks if all the nodes that were installed have been discovered or not. If all the nodes have been discovered, the installer moves onto the next step, i.e., node identifier distribution. If some of the nodes are installed but not discovered, the installer reruns the discovery process with a reduced number of nodes. In this regard, the hub should pass the number of nodes which are yet undiscovered to the base station.
In step S502, the base station sends a wakeup tone for 210 milliseconds (a little more than the RF wakeup interval). In step S503, following the tone the base station transmits the “Start” message that includes the base station identifier, base station time (two bytes of hardware timer, so that the cyclic redundancy check cyclic redundancy check (CRC) is different even if the base station identifier matches), expected number of nodes in the network, device type to discover and cyclic redundancy check (CRC) for the packet. The device type is set to “0x00” if it is desired to discover all type of devices. In this regard, the expected number of nodes may be greater than the number given by the hub by a fixed number, to account for uninstalled nodes from adjacent installations. In step S504, the time at which the base station sends the start symbol of the start message and the time at which the node receives the start symbol of the “start” message is used as reference for synchronization of events between the base station and nodes. In step S505, the nodes, for which the device type matches the one the base station is trying to discover, send their device identifiers to the base station. Since multiple nodes may send device identifier packets, there may be a high chance of collisions.
In step S506, to minimize the number of collisions, each node selects a random slot within a specific interval “T1” to transmit the device identifier packet. The interval “T1” is divided into number of time slots based on the number of nodes. As described in step S503, the number of nodes in the network is based on the value received in the “start message”. In step S507, the time slot to transmit is determined by selecting a random number “R” whose depends on “N”, where “N” is the number of nodes in the network. In step S508, the node transmits the device identifier packet to the base station after performing a carrier sense multiple access (CSMA) protocol exchange. This packet also has one byte of cyclic redundancy check (CRC) of the time packet to ensure that any other base station that is also performing initialization does not mistake it to be a packet meant for it. Although the base station chooses a random base station identifier, this may also handle situations where the base stations from two adjacent installations chooses the same base station identifiers. The cyclic redundancy check ( CRC) for the two base stations should be different if number of nodes or the time at which they send start message is different. In step S509, if the carrier sense multiple access (CSMA) protocol exchange fails at the node, the node again chooses a random time slot in the interval T1 and sends a device identifier packet. In steps S510, the base station acknowledges the receipt of the device identifier packet. This is an “immediate-ack”, that is, the base station sends the acknowledgement immediately without performing carrier sense multiple access (CSMA) protocol exchange. In step S511, the acknowledgement includes of a temporary slot identifier that is unique for every node. The slot identifier determines the time slot when the node and the base station should communicate hereafter until the node is assigned a permanent node identifier. In step S512, if the nodes do not receive an acknowledgement the node sleeps until the end of the time interval T1.
In step S513, after the end of T1, the nodes that did not receive an acknowledgement earlier wakeup and repeat steps S505 to S512 but with a new time interval “T2”. The interval T2 is fixed to be smaller than T1 because only the subset of nodes that did not receive an acknowledgement should attempt to receive again. This process is again repeated for the nodes that did not receive an acknowledgement during their try in interval T2 by repeating steps S506 to S511 in interval “T3”. In step 514, the entire cycle from step S501 is repeated (e.g., twice more) to ensure that the base station has discovered all nodes in its range. The sending of tone, start message etc. are repeated so that if a node did not detect the earlier tone it gets another opportunity. The time intervals T1, T2 and T3 for subsequent cycles should be smaller and based on number of nodes found in previous cycle. In step S515, after completion of initial discovery, the base station sends a “Device Id Collection Complete” message to the hub. During the device identifier collection phase, the base station passes each device identifier to the hub, which in turn passes it to the panel. The user verifies each device identifier and identifies those that belong to the network.
Node ID Distribution
During node identifier distribution, the base station provides a permanent node identifier to every node that belongs to the network. All nodes that do not belong to the network are sent a message indicating that they are not part of the network. Whether a node belongs to the network or not is determined by the installer at the panel or by the remote-programmer.
In step S711, the base station selects the next time slot and repeats the steps from S708 to S710 until it is finished with all of the time slots. In step S712, base station then sends a “Node Id Distribution Complete” message to the hub indicating that this is node identifier distribution “End of Cycle”. In step S713, when the hub receives the completion message with “End of Cycle” flag, it checks the acknowledgement status for all slots and then sends the “Start Node Id Distribution” message to the base station with a message type based on the number of nodes that failed to provide an acknowledgement in previous cycle(s). In this regard, if the number of nodes that failed to provide an acknowledgement is less than 10, the hub sends a “unicast” list with the list of failed slot identifiers. Otherwise, if the number of nodes that failed to provide an acknowledgement is greater than 10, the hub sends the message type as “multicast”. If all the nodes were successful, the hub sends the message type as unicast list with the number of slots failed ‘zero’. In step S714, if the start message from the hub is a broadcast type, the base station repeats the same procedure as explained above for each time slot. But, in this instance, there may be many time slots that have already acknowledged successfully in previous cycle(s). For those time slots that were successful, the hub will not send node identifier and device identifier values set to zero in the message in response to the base station request and there will not be any node identifier distribution to nodes for these time slots. In step S715, if the start message from the hub is a multicast type, the base station sends the start message to nodes as unicast list type with the list of slot identifiers in the message. The base station repeats the node identifier distribution steps for the failed time slots. Here the communication slot for a failed node is the position of its slot identifier in the start message. In step S716, if the start message from the hub is unicast list with no slot identifiers, it indicates that all the nodes were successful in previous cycles. The base station sends the start message to the nodes as unicast list with number of slots ‘zero’. In step S717, the base station repeats the above steps until all nodes acknowledged, or a total of five cycles for node identifier distribution. After that the base station sends a “Node ID Distribution Complete” message with end of phase flag, indicating end of the node identifier distribution phase. In step S718, the base station uses the carrier sense multiple access (CSMA) protocol for the node identifier message in the first three cycles and no carrier sense multiple access (CSMA) protocol is used in the last two cycles.
At the end of five cycles, all nodes that did not receive a node identifier message from the base station return back to RF wakeup and wait for a device identifier collection start message. These nodes will fail the subsequent steps of initialization and the hub will send a configure node by device identifier command after network identifier distribution.
Network ID and Frequency Selection
During network identifier and frequency selection, the nodes and the base station collect frequency quality(s) and network usage, including usage by other wireless sensor network installations. This information is used to select a frequency(s) and a unique network identifier, with respect to other wireless sensor network installations, that is most suitable for all the nodes in the network. The procedure may differ for US and Europe compliant systems since backup frequency allotment is different. To choose a suitable frequency, which is not used by adjacent wireless sensor network installations, the base station may need to know which frequencies and network identifiers are being used by adjacent installations.
To handle the aforementioned scenarios and learn the network identifier and frequencies, the following steps may be performed as shown in
In step S1001, an ambient Received Signal Strength Indication (RSSI) reading is performed. In step S1002, listening on backup frequencies is performed (e.g., in Europe only). In step S1003, RSSI data collection is performed. In step S1004, network identifier and frequency selection is performed. In step S1005, network identifier poll is performed. In step S1006, network frequency verification is performed (e.g., in US only). In step S1007, signal to noise (SNR) verification is performed. In step S1008, network identifier distribution is performed. Details of these steps are provided below.
Ambient RSSI Reading
During ambient RSSI reading, the base station and the nodes sample all available frequencies to collect the average noise level in each frequency. Noise level is measured in terms of Received Signal Strength Indication (RSSI) when there is no packet transmission from wireless sensor network systems. A lower noise level (lower RSSI) implies a better channel.
Listening on Backup frequency (for EU only)
In Europe in addition to collecting a noise level, the base station and the nodes also collect the network identifiers of all parallel wireless sensor network installations within hearing range so that the network which is being installed may choose a locally unique network identifier. The network elements, including both the nodes and the base station, listen to the backup frequencies for two minutes each since each wireless sensor network installation transmits a time beacon in the backup frequencies, which contains the network identifier. The network can hear all the nodes that have a scenario similar to what is shown in
In the United States, since we do not have a certain set of frequencies assigned for backup, and since the number of backup frequencies to sniff (e.g., 16) is high, it may not be useful to listen for a network identifier at this stage. Instead it may be performed in the verification of the network frequency phase.
RSSI Data Collection from Nodes
During RSSI data collection, the base station receives the ambient RSSI data collected by the nodes. For Europe, this message also includes the data collected during listening on the backup frequency, which includes of the backup frequency count (i.e., the number networks using this frequency as backup) and the network identifiers observed. In addition, the base station and nodes measure the RSSI during this message exchange (which is at the default frequency) both at the node and the base station.
NW ID and Frequency Selection
The hub selects frequencies for network operation and backup (e.g., backup frequencies may be used only for retries) based on the frequency quality, the signal to noise ration (SNR) and the network usage. In particular, the hub chooses a frequency from a set of frequencies that has an ambient RSSI value below a certain threshold. Additional rules may include, for example:
Rule 1: Minimum number of networks should use the selected frequency.
Rule 2: If the network usage is same for more than one frequency, then the frequency that has the less number of networks using it as a backup frequency is chosen. This rule may only be applied, for example, in U.S. compliant systems.
Rule 3: If the parameters for selection are the same (in case of Europe parameter 1), then the frequency with smaller RSSI value is chosen.
Rule 4: if the number of frequencies for which RSSI below threshold is zero, then all the frequencies are inoperable. The frequency is still chosen based on the three rules above, but the chosen frequency may not lead to an efficient network operation.
Once the network frequency is chosen, the base station chooses the backup frequency. For US compliant systems, three backup frequencies are chosen from the list of sixteen frequencies using the same criteria as for network frequency selection. The network frequency and three backup frequencies should be distinct. For Europe compliant systems, one backup frequency is chosen out of two backup frequencies based on (i) the number of networks using a frequency as a backup frequency, and (ii) the RSSI value.
After network frequency and backup frequency selection, the hub selects a network identifier based on the selected frequency and unused network identifier in that frequency. The system may support, for example, network identifiers in the range 1-127 and the corresponding network frequency may be found by (NW-ID % 16) for US and (NW-ID % 4) for Europe. The network identifier is selected randomly from the unused network identifiers in the selected frequency.
Network ID Poll by BS
The network identifier is polled by the base station of the initialize network, whereby the base station hears the nodes of the adjacent installation but does not hear the base station of the adjacent network. In this instance, listening on a backup frequency or a selected network frequency may not help in obtaining information about the adjacent network since the base station is not in the listening range of the adjacent base station and therefore will not receive the time beacon transmissions from the adjacent base station. So, the procedure followed here is to send a poll packet to the nodes of the adjacent installation and get the details.
In step S1306, at the end, the base station sends a “NW Poll Complete” message to the hub. In step S1307, if the hub discovers that this particular frequency is being used by another wireless sensor network installation for network operation, it may choose another network frequency and send the network poll again to the base station to repeat the above steps in the newly selected frequency. Since it is assumed to have a maximum of only three wireless sensor network installations in the hearing range of any installation it should be feasible to allot a unique frequency for network operation (both in US and Europe). However, if more than four installations are provided at the same location or the noise level in some frequencies is not suitable for network operation, the same frequency may have to be assigned to more than one installations. In such a scenario, a different network identifier may be assigned to distinguish packets. Having more than one installation operating in the same network frequency may not efficient. In step S1308, these steps may be repeated for each number of network frequency in the system, which should be a total of four frequencies for Europe and a total of sixteen frequencies for US. In step S1309, based on the result of the network identifier poll and the data collected in previous phases, the hub selects a frequency, which is unique with respect to adjacent installations.
The transmission of poll packets may pose a potential security risk since these packets may not have a mechanism to prevent replay attacks. To reduce the affect of this attack, any node or base station responds to only 3*N network identifier poll packets in only one supervision period.
Network ID Poll by Node
To handle network identifier poll at the nodes, if a new network is initialized when there is an adjacent network and only the nodes of the adjacent installation are in the hearing range of the new base station BS1 as shown in
This implies the initialization of the network may take longer than twenty four hours, which may not be acceptable. To reduce the time needed for initialization, the base station BS1 of the initializing network sends a poll requesting information such as network identifier used etc. from the nodes of the adjacent network. To handle this feature the nodes of the adjacent installation should be able to respond to polls sent asynchronously and also handle high priority network operations.
Handling NW ID Poll at the Nodes
To handle the network identifier poll, the nodes are in the receive mode for the following activities. At all other times their transceiver is switched off to save power. In a first activity, the nodes wakeup periodically once every wakeup interval to check for any back channel (BC) commands from the base station. If the channel is free they go back to sleep immediately. In a second activity, the nodes wakeup in their supervision slot (if status not already given) and wait for their poll to send the status. If the channel is free they go back to sleep immediately except in the final retry slot (e.g., seventh slot). In a third activity, the nodes wakeup every two minutes to receive a time beacon to adjust their clocks and frequency. If the channel is free they go back to sleep immediately. In a fourth activity, if the nodes have an alarm to send, then in the alarm slot (in retries) it samples for a free channel before transmitting.
The nodes may receive the network identifier poll from the adjacent installation when listening for any of the above packets. The base station BS1 of the new installation transmits a tone long enough to cover the entire wakeup interval to guarantee that the nodes of the adjacent system will hear it at least when they expect to receive the back channel (BC) commands since nodes may not have their supervision slot or it is not time for time beacon etc. Since the nodes are guaranteed to receive the tone in the back channel slot, they ignore the tone if received in any other slot. The network identifier poll is handled only in the back channel slot.
To process the network identifier received at the nodes the nodes wakeup in the back channel time slot to sense for a high signal in the channel. A node expects a network identifier poll if all the following conditions are true: (a) if a high signal received, (b) a back channel packet is not received within the back channel start sequence timeout, and (c) less than nine network identifier polls were received in the current supervision interval (this reduces the effect of replay attack. Hence, an intruder cannot replay a network identifier poll to drain the batteries of the nodes). The nodes continues to receive with a “Network ID Poll Start Sequence Timeout” for the network identifier poll. In the meantime, other network operations may be handled. For example, if it is time for the nodes supervision slot (e.g., other than seventh slot), and the node was not successful in transmitting the supervision acknowledgement in the earlier six slots, it ignores the network identifier poll packet and does not send a response. If the node senses an alarm and it is time for the alarm slot, the network identifier poll is ignored and the node tries to transmit the alarm in network frequency (e.g., the base station may not hear the network identifier poll). If an acknowledgement is not received, it is transmitted in the backup frequency. If a time beacon is received when the node is waiting for the network identifier poll (started at back channel slot), both the packets (time beacon and network identifier poll) may be dropped. If it is time for the third time beacon and the node did not receive the other two time beacon, stop stack, go and receive the third time beacon in the backup frequency. If the network identifier poll is received within the timeout, the node picks a random number (range R), and transmits “NW ID Response” (after CSMA) in one of the back channel time slots (if back channel is not received in that time slot) in the network frequency (since it will not be used for any other communication. The default frequency may potentially wipe out async alarms). For example, if the node picks random number 5 and the back channel time slots are subdivided (big enough to fit a response packet+skew extra), then it would transmit a response packet. A minimum of ten slots and maximum of slots may be reached that fit in three back channel time slots. (This may depend on the number of nodes that can hear the adjacent system and the base station needs to hear from only 1 of them).
The response packet includes the network identifier and backup frequencies. The node does not expect an acknowledgement for the response packet. The node does not retry if it has a problem sending the packet (e.g., back channel time slot missed, CSMA failed, etc).
NW Frequency Verification (Listen on NW Frequency (for US only)
Network frequency verification ensures (for US compliant systems) that the selected frequency is unique with respect to scenario described in
SNR Verification
In SNR Verification, the system verifies the signal to noise ration (SNR) of the selected frequency with all the nodes. The base station starts the SNR verification when it receives the “Start SNR Verification” message with the selected frequency number from the hub. The base station broadcasts the SNR verification message with the frequency number to the nodes. After a predetermined time, the nodes and the base station switch to the given frequency. The base station sends a “Request SNR” message to the nodes and the nodes measure the RSSI for the received signal from the base station. The nodes send back the measured signal RSSI value to the base station in their assigned time slot and the base station measures the received signal RSSI for this message from the node. The base station sends the RSSI value collected by the node and the base station to the hub for each node. At the end of this phase, the base station sends a “SNR Verification Complete” Message to the hub. The hub verifies the SNR based on the signal RSSI collected in this phase and the ambient RSSI for the selected frequency that was collected in RSSI collection phase. Based on this the hub decodes whether to continue with network identifier and configuration distribution or to repeat the network frequency selection to select another frequency.
NW ID Distribution
After the system has selected the network parameters, such as the network frequency, network identifier and back up frequencies, the system distributes the selected network parameters to the nodes. In particular, the base station broadcasts the network identifier distribution message containing all the configuration information needed for network operation. In particular, the nodes acknowledge one after the other in the order of their assigned node identifier. Once a particular time has elapsed to account for the time slots for all the nodes, the base station checks if all the nodes have acknowledged the reception of the information. The base station repeat the steps for a predefined number of times to distribute the data to all the nodes. At the end of this phase, the base stations sends the “NW ID Distribution Complete” message to the hub, with the list of node identifiers that failed to receive network identifier. The base station and nodes switch to network frequency and network operation after a fixed time from the end of network identifier distribution. For the failed nodes, the hub takes recovery actions. The hub first sends a query command to the failed node in the network frequency. If the node does not respond, the hub sends a “Configure Node by Device Id” message to the node in the default frequency. The node configures and switches to network frequency and network operation on reception of this message.
Abort Initialization
To abort an ongoing initialization process and to bring back the base station and nodes to the start of Initialization, the MPS sends a command to the BSTM.
Base Station
The abort command is an asynchronous command from the MPS. When the base station receives this command, it sends an abort command to the nodes. Though the abort command is asynchronous from the hub, the base station completes the current cycle of operation and the abort command is sent in the next cycle start instant. This is to make sure that all the nodes are in a state to receive this message. The base station does not expect an acknowledgement for the abort command. The command is sent several times to reduce the probability of a message loss by the node. The abort command is sent only in the default frequency. If the abort command is received by the base station during network poll, frequency listen, RSSI reading etc, in which the nodes are in a different frequency, the base station waits until the end of that phase before sending the abort command, so that all the nodes come back to default frequency. Accordingly, there could be a maximum delay of four minutes in case of Europe (the back up frequency listen for EU takes four minutes) and two minutes in case of the US (network identifier verification takes 2 minutes).
At the Node
In every phase of initialization, when waiting for cycle start message, the nodes may receive either the cycle start message or the abort command. The nodes may not sleep for more than one cycle duration in the initialization phase. For example, the nodes may wake up at the end of the cycle and wait for a cycle start message. When the node receives the abort command, it verifies the network identifier (e.g., base station identifier) and if it matches, aborts initialization and goes to a default state (e.g., rests itself).
Broadcast/Multicast Messaging in Initialization
Broadcast/Multicast messaging may be used in initialization. In particular, the base station and nodes use the this messaging mechanism when the base station wants to send a common message to all nodes and then receive a response from the nodes. In this regard, the base station broadcasts the start message to all nodes. In the first cycle, the message type is set to “Broadcast”, indicating that all nodes in the network should acknowledge. The nodes, on receiving this message, send back a response in their assigned time slot based on their node identifier. In the next cycle, while sending the start message, the base station checks the acknowledgement status of the node. If the number of nodes unacknowledged in the last cycle(s) is less than ‘n’ (this number is based on number of nodes that can be accommodated in the packet given a Maximum length), it sets the start message type as ‘Multicast’ and the message includes the list of nodes that failed to acknowledge in previous cycle(s). Only those nodes whose node identifier is present in the start message will send a response to the base station in the Multicast cycle. When receiving a multicast message, if the node's assigned node identifier is not present in the message, it assumes that the base station received the response in the previous cycle. If the number of nodes that failed to acknowledge in previous cycle is greater that ‘n’, then the base station sends the broadcast message again to the nodes. All nodes respond but the base station ignores a reply from nodes that have already replied successfully in previous cycle.
Overview of Time Slotting Mechanism
After initialization is completed, the system may handle alarms from sensor nodes/mobile nodes and user commands may also be sent to the sensor nodes. The alarms are sent to the hub within a specified maximum latency. The back channels may also be distributed to the nodes within a supervision desired maximum latency duration. The nodes are supervised periodically (e.g., once in a supervision interval). The nodes sleep most of the time and wakeup periodically (e.g., once every wakeup interval) to check if the base station has any back channel packets for the nodes. All the activities are performed in a time slotted manner in order to be energy efficient. To perform the aforementioned functions, the wakeup interval includes assigned time slots for: (1) alarms, (2) back channels, (3) mobile nodes, and (4) supervisions.
The time slots may be structured differently for networks designed to comply to US regulatory requirements and those designed to meet European regulatory requirements.
Slot Structure for US
Priority is given to panic alarms over back channels by first sampling the mobile node frequency. A back channel command may be sent whenever there is no mobile node alarm/packet to be received. If the base station has a back channel packet to send it first starts with a tone followed by the back channel packet. Each sensor node wakes up in this slot to check for the presence of a back channel command. Every alternate back channel time slot, the sensor nodes first sample the network frequency and then one of the backup frequencies. This is because the base station transmits the back channel in the backup frequency if it does not receive acknowledgements for the one sent on the network frequency.
The nodes send their acknowledgements in their respective time slots within the acknowledgement slot. The back channel acknowledgement slot may accommodate acknowledgements from a fixed number of nodes. In case the back channel is sent to more nodes, the acknowledgements may spill into the back channel acknowledgement time slots of subsequent wakeup intervals.
Supervision time slots are used for supervision and retransmission of supervisions. The time slot length is 52 ms.
Mobile node sample time slots have a slot length of 15 ms. The base station samples the mobile node frequency to check for alarms/packets from mobile nodes. If the base station senses a signal, it continues to listen for the mobile node packet. If it receives a valid packet, this will result in wiping out of some of the subsequent supervisions. If it does not receive a valid network identifier in a specified time period (base station also may hear mobile nodes belonging to adjacent networks), it times out and gets back to doing supervisions. This may minimize wiping of supervisions due to packets from mobile nodes of adjacent networks.
Slot Structure for Europe
By sampling the channel for alarms first priority is first given to the network alarms. The delay to handle the system alarms is limited by the time between the alarm sample time slots. The delay to handle mobile node alarms is limited by the time between the mobile node's time slot. If there is a system alarm, the mobile node alarm will be further delayed. It is the case for the back channel also. The slot length is 765 ms.
Supervision time slots are used for supervision and retransmission of supervisions. The slot length is 85 ms. Two supervision time slots may be accommodated in one second. The base station samples for alarms after the alarm/mobile/back channel time slot. If there are any alarms to be received, it wipes the subsequent supervision time slot. A node scheduled for supervision in that slot performs it in an alternate retransmission time slot. This alarm sample time slot is provided to reduce the maximum latency for alarm packets.
Supervision Intervals
Overview of Supervision Mechanism for US/Europe
Slot Allocation and Frequency Usage
Every node is assigned multiple time slots for retransmission of supervisions and these slots are well separated in time so that any brief asynchronous activity that causes failure of supervision in one time slot should not affect the retransmission slots. The number of supervision time slots allocated is large enough to accommodate 240 nodes. Even though a network may have fewer nodes, time slots are allotted for 240 nodes so as to handle the possibility of adding new nodes at some future time. Every node is assigned a slot based on its node identifier and they cycle over after each node has received one time slot. The nodes are assigned slots as shown in
Packet Structure
The poll tone may include a preamble (four bytes), a start symbol (two bytes), and a network identifier (one byte). Note, one bit in this byte may differentiate between a poll and ack-to-ack tone. The acknowledgement from the node may include a network identifier (one byte), a packet type/length (one byte), a node identifier (one byte), a counter (one byte), and a node status/ambient RSSI/network RSSI (four bytes).
Counter Handling
The base station and all the nodes maintain a supervision counter. This counter at the base station may common for all the nodes. The counter is incremented at the base station and nodes increment the counter at the start of each supervision cycle.
Exception Handling & Other Notes
Supervisions that fail due to prolonged interference in one frequency are handled by using multiple frequencies. Brief interference in the network frequency is handled by assigning multiple slots well separated in time. Failing to receive poll/node ack/ack-to-ack tones is handled by the three-way communication between nodes and the base station. Multiple retransmissions of time beacons ensure time synchronization. Nodes may be reset, lose time synchronization and go to default frequency. The MPS issues command to find the node in default frequency after a supervision failure. The network identifier is sent along with the poll tone to differentiate poll tones from adjacent network's node sending a packet (packets start with preamble and start symbol follows). A counter is provided in the acknowledgement for replay protection. A supervision poll is required because sometimes a supervision may be wiped out by back channel command acknowledgements or if the base station is receiving some alarm or a packet from a mobile node. If a poll is not sent, the nodes may send acknowledgement during these times colliding at the base station.
Time Synchronization
The narrow band requirement in Europe may make it difficult to use data rates higher than 4.8 kbps. Due to the low data rate, communication of packets may take longer times and the supervision slots may need to be really big. This may result in exceeding the limits set by duty cycle regulations in Europe. The energy consumption for transmit and receive may also become extremely high. In order to handle the aforementioned problems, the supervision scheme and time synchronization mechanism have been modified as below.
The base station sends three time beacons in predetermined time slots. Time beacons use the last supervision time slot in a wakeup interval. Two of the beacons are transmitted in the network frequency and one is transmitted in backup frequency. If the node deletes a time beacon it will not wakeup for the other two time beacons. Multiple beacons and frequencies are used to ensure that the nodes receive the time beacons. The time beacon is similar to the supervision poll, but it also has a counter byte. The tone always ends at a “predefined time”. The sensor nodes hear the tone and when the tone ends, they set their clocks to the “predefined time”. For example, if the time beacon slot for a node is supposed to start at 120, the node wakes up at 120 and hears the tone. The tone is predefined to end at 10 units after start of slot, i.e. 130. Therefore, when the tone ends, the receiving node knows that the base station's time was 130 and sets its clock to 130.
A feature of using tones is that they may be very small. The time packet usually consists of headers and several bytes of time, and the encoding of this packet makes them very big. (other encoding scheme may make packet three times bigger). Therefore, energy may be saved and smaller slot sizes may be realized by using tones. The tone needs to be long enough to accommodate for clock skews. But the clock skew may be very small as the nodes synchronize every two minutes (120 seconds). The node sets the time only if the counter is valid. The ambient RSSI is measured in the time beacon slot after the time beacon is received. This is performed once in a supervision interval. Whenever a time beacon is received, the radio frequency drift is measured at the nodes and the frequency is adjusted depending on the measured drift.
Counter Handling
The base station and all the nodes maintain a time beacon counter. At the base station the counter is incremented whenever the first of the three time beacons is sent. The nodes increment the counter whenever they receive the time beacon with valid counter.
Alarms
The base station is alternately listening to the network frequency and mobile node frequency at all times except when handling back channel commands/acknowledgements/supervisions and new nodes. The sensor interface transmits status information to the node when it senses an alarm. The node waits until the alarm time slot to send the alarm packet to the base station, which acknowledges these packets immediately. If the node does not receive an acknowledgement it retries in the next alarm time slot.
If multiple services are utilized on the same system, priority of the messages in the network may be as follows: (a) fire alarm, (b) medical or panic alarm, (c) security alarm, (d) trouble and supervisory, and (e) others. In this regard, it is noted that transmission of a tone may not be required since the base station is receiving continuously in these slots.
Potential Issues with Alarm Handling
If the link is poor (e.g., due to high level of noise) the alarms may not reach the base station. Also, multiple sensors in a neighborhood (e.g., sensors may hear one another) may sense the alarms and send packets to the base station resulting in a collision. Moreover, multiple distant sensors (e.g., sensors that cannot hear one another) may be sending alarms to the base station resulting in a collision. The node due to some problem is not synchronized with the network.
Collision Avoidance for Alarms
Alarms may be considered to be critical messages and should get through even in the presence of multiple alarms/bad channels, etc. An exemplary method to ensure this is shown in
In every alarm time slot the base station samples the network frequency and then the backup frequency. In the US, the base station may be required to sample three backup frequencies. The nodes send an alarm in the first alarm slot following the sensing of the alarm. It sends the packet in the network frequency without performing a Carrier Sense Multiple Access (CSMA) protocol exchange. If it does not receive an acknowledgement, the node performs a CSMA in the next alarm time slot. If it senses no signal, it sends the packet on the network frequency. If not, it goes to the backup frequency and performs CSMA. If the channel is not busy, it sends the packet on the backup frequency. For US, this may be continued for multiple backup frequencies.
The previously described step is performed in a maximum of three alarm slots to ensure that if multiple nodes in a particular neighborhood sense an event, their alarms can get through. Performing CSMA may help at least one of them to get through in a particular slot. If the alarm still does not get through, the node goes to the next alarm slot and sends the packet on a backup frequency without performing CSMA. For networks in the US, this is performed on all the three backup frequencies in successive alarm time slots if the packets do not get through. Sending alarms on the backup frequency handles the case where there is noise on the network frequency. If the aforementioned steps do not result in alarms getting through successfully, the nodes use an exponential back off algorithm to transmit in random time slots. The details of this procedure are provided in the subsequent paragraph. Doing this may handle the hidden terminal problem where distant nodes transmit an alarm simultaneously and collide at the base station. If the node still does not receive an acknowledgement to the alarm (e.g., may happen if the node's clock is not synchronized to the base station's clock), the node sends alarms packets continuously in the default frequency for one second. These packets are separated by a wait time for acknowledgements. The base station samples the default frequency and mobile node frequency alternately in the back channel time slot and should be able to receive at least one alarm packet.
Collision Avoidance Using Exponential Backoff
To avoid collision with one another, the nodes may select a random number and based on the number, choose a time slot to transmit the alarms. The nodes may repeat this up to a maximum of six times. The range for the random number depends on the number of time slots to choose from and on the number of available frequencies to transmit including the backup frequencies. For every failed transmission, a node chooses from double the previous number of time slots. For Europe, the node ensures that it transmits four packets on the network frequency and two packets on the backup frequency, whereas for the United States, the node transmits three packets on the network frequency and one packet on each of the backup frequencies. The number of time slots to choose from and the range of the random number for the iterations are shown in the table of
For example, if a node in a US compliant network fails to receive an acknowledgement in iteration 1 and 2, the node then chooses a random number from 1 to 32. If the chosen random number “rand_num” falls in the range 1 to 8, the node transmits in the slot “rand_num” in the network frequency. If the chosen random number falls in the range 9 to 16, the node transmits in the slot “rand_num mod number_of_slots” in backup frequency1. If the chosen random number falls in the range 17 to 24, the node transmits in the slot “rand_num mod number_of_slots” in backup frequency 2. If the chosen random number falls in the range 25 to 32, the node transmits in the slot “rand_num mod number_of_slots” in backup frequency 3.
The number of transmissions on network frequency and backup frequency may be fixed by adjusting the range of the random number. For example, if the node does transmissions 1, 2 and 4 on network frequency, the range of random numbers for the fifth iteration will be from 65 to 256.
Async Alarm Transmissions
Async alarms are generated when the node does not receive acknowledgements from the base station for alarm packets sent on the network and backup frequencies, or when the node loses time beacons and is out of sync with the base station. Async alarms are transmitted in the default frequency.
To send async alarms the node sends async alarms for one wakeup interval, the node stops async alarms if it receives an acknowledgement from the base station, and tries to retransmit async alarms five times if it does not receive acknowledgements from the base station. Each retry is performed by choosing a random number from a range R=t secs. The node then transmits an async alarm after “t” wakeup intervals. The range R doubles for every re-transmission.
Status Information Transfer Between Sensor Module and the Node
The sensor module transfers up to a maximum of four bytes of status information to the node. The status information is transmitted as part of the alarm packet to the base station. If the node has sent an alarm packet and is waiting for an acknowledgement from the base station, the sensor module does not transfer the status bytes to the node until it is ready to receive the status information.
Alarm Latencies
A worst-case alarm latency for systems in Europe is 725 milliseconds if there is no collision. A worst-case alarm latency for systems in the United States is 500 milliseconds if there is no collision. If there is a collision, it should be resolved after a few retransmissions that should take about 3 to 5 seconds. In the worst-case this may take about 67.5 seconds in the US and 66.5 seconds in Europe.
Packet Structure
The alarm packet may include, a preamble (four bytes), a start symbol (two bytes), a network identifier (one byte), a packet type (one byte), a length (one byte), a counter (one byte) (counter may remain the same for all retransmissions), a Status (four bytes), a node identifier: source (one byte), a cyclic redundancy check (CRC) (two bytes).
The acknowledgement from the base station may include, a preamble (four bytes), a start symbol (two bytes), a network identifier (one byte), a packet type (one byte), a counter (one byte), a destination node identifier (one byte).
Back Channel Commands
The user may control the operation of a node remotely by sending back channel commands at the panel. For example, the user may change the sensitivity of a sensor or arm an area or disarm motion detectors, etc. These messages are processed at the panel and the hub is responsible for creating the back channel packets. The command is sent to the nodes through the base station.
Most back channel commands are asynchronous. For example, disarming the network is an asynchronous back channel command. A user may invoke this command when the network need not monitor certain conditions in the environment. For power efficiency, the nodes do not receive at all times and instead sample for back channel at periodic intervals (e.g., wakeup interval). This interval may depend on the amount of power that can be sacrificed and the delay for other types of packets that can be accommodated.
Most back channel packets are addressed towards a predefined set of nodes based on area, type, etc. For example disarming all motion detector in the entrance. It is expected that there will be a maximum of eight zones or areas and typically two to three zones. Each zone may have eight to thirty-two nodes. Also, nodes may be grouped based on sensor types e.g., fire, motion detectors, etc. A maximum of eight such types are expected.
Each group may have a multicast identifier. A group may be a set for nodes that can be addressed together to do a certain task. For example, disarming all sensors in area 2 or arm all motion detectors, etc. A maximum of sixteen such groups is expected. The multicast identifier is a part of the node identifier address space. A node may belong to more than one group. For example, a node might belong to zone 2 and may also be a motion detector.
The nodes are assigned the multicast groups that they belong to and their acknowledgement position in a multicast group during the initialization phase. A fixed number of nodes (N) acknowledge receipt of the back channel packet in a wakeup interval. The nodes in a broadcast/multicast group are further divided into subgroups. The first N nodes belong to 1 and the next N nodes belong to 2 and so on. The back channel packets are acknowledged and these acknowledgements follow the back channel command. The nodes acknowledge the back channel packets in their respective acknowledgement slots.
The back channel packet specifies the action to be taken, such as, for example, arm, disarm, change the sensitivity, etc. It also specifies if the packet is intended for all the nodes in the group or only some nodes.
Procedure to Handle BC Commands
The MPS transmits the back channel packet to the base station, which extracts the back channel information and transmits the packet to the nodes in the back channel slot. A back channel packet may be a multicast packet, in which the back channel packet is addressed to all nodes that belong to a multicast group, a unicast packet, in which the back channel packet addresses a single node, or a unicast list packet, in which the back channel packet addresses a subset of nodes in a multicast group. The unicast list is used only for re-transmissions.
Multicast Packet
Unicast Packet
If a back channel packet is required to be unicast to a node, the node identifier of the node is indicated in the multicast group identifier field in the back channel packet. The subgroup identifier field is set to “0xFF”. The node performs the relevant back channel action if a new valid counter value is received. The node transmits an acknowledgement in the same wakeup interval. If the received counter is equal to the counter at the node, the node does not perform the action but transmits the acknowledgement in the same wakeup interval.
Unicast List Packet
The unicast list is used for retransmissions only. The maximum number of nodes in the unicast list is predetermined based on the maximum back channel packet length. The multicast identifier field indicates the multicast group that was transmitted in the original back channel packet. The subgroup identifier field is set to “0xFF”. All nodes whose node identifier is listed in the packet send their acknowledgements, in the order they are listed, in the current wakeup interval.
If a mobile node or alarm wipes out the back channel slot in a wakeup interval, then the base station does not receive a fire for the back channel acknowledgement time slot. The back channel packet is sent in the next wakeup interval and the acknowledgements follow the packet. “BC_DONE” is also sent after the acknowledgements have been passed to the MPS. The MPS and the back channel module are therefore unaware of the wiping of back channel by a mobile node packet.
Retransmissions
Based on the number of acknowledgements received from the nodes, the MPS decides on the kind of retransmission method. Retransmission may be performed in various manners. For example, a packet may be retransmitted to an entire subgroup. In particular, a packet is transmitted to a subgroup if the number of failures in any is greater than a predefined number “maxFailureCount”. If there are multiple subgroups with number of acknowledgement failures greater than “maxFailureCount”, then the back channel packet is transmitted first to the subgroup with the maximum number of failures. The subsequent packets are transmitted to the subgroups in decreasing order of acknowledgement failure counts. If there are no subgroups that satisfy the above criteria, the back channel packet is transmitted with a unicast list. Retransmission may also be performed via a unicast list, in which the back channel packet is unicast to a few nodes identified by the node ids in the data field. This is called a unicast list and is shown in
Use of Alternate Frequencies
Procedure to Handle BC at Node
To handle the back channel, the slot handler signals start of the back channel slot to the node. Based on the input from the slot handler, the node changes to network or backup frequency. The node receives the back channel packet and verifies that the packet is addressed to it. If not, the node drops the packet and goes to sleep. If there is no signal in the air, the node goes to sleep. If the packet is multicast, the back channel application at the node verifies if the node belongs to the multicast group indicated in the packet. If the packet is unicast or is a unicast list, the node verifies if its node identifier is listed in the back channel packet. If the packet is addressed to the node, the application accepts and acts on the back channel packet if the counter in the packet is greater than the counter at the node. If the received counter is greater than the previous counter, or when the received counter is equal to the counter at the node and if the time of reception of the packet is within a specified duration (maximum time for retransmission) since the node set its previous counter, or if the packet is unicast/unicast list, the back channel application computes the node's acknowledgement slot and schedules for an event to be fired to it in its acknowledgement time slot. The node sends the acknowledgement in the acknowledgement time slot. If the back channel packet was not addressed to the node, it goes back to sleep.
Procedure to Handle BC at the BS
To handle the back channel, the back channel application at the node signals to the slot handler that it has to transmit a back channel packet. The slot handler fires an event to the back channel application indicating start of the back channel slot. The base station changes to the appropriate frequency (e.g., network/backup frequency or default frequency for default type packet transmissions). The base station transmits the back channel packet and receives acknowledgements from the sensor nodes. The slot handler signals the end of the back channel acknowledgement slot to the base station. The base station signals “BC_DONE” to the MPS.
It is noted that the base station does not sense the channel (e.g., using CSMA) before transmitting its tone since the back channel packets take ˜200 milliseconds. Even if the base station senses high noise, it may not last for 200 milliseconds and it may not exist near the nodes. Also since there is only one base station in that network frequency, the probability that it will collide with another back channel is low.
Priority
Since the alarm/mobile node/back channel time slot is common for alarms or mobile node packets or back channels, the packets with the highest priority may wipe out the packets from other sources. The back channel, for example, existence of network alarms may wipe out mobile node packets and back channel, or the existence of mobile node packets may wipe out back channel.
If a mobile node or alarm wipes out the back channel time slot in a wakeup interval, then the base station does not receive a fire for the back channel acknowledgement time slot. The back channel packet is sent in the next wakeup interval and the acknowledgements follow the packet. The back channel application notifies the hub after all acknowledgements expected in this wakeup interval have been passed to the hub. The hub and the back channel module are therefore unaware of the wiping of back channel by an mobile node packet.
Counter Management
The MPS is responsible for counter management. The MPS maintains a multicast counter (e.g., one counter for each multicast group), and a unicast counter (e.g., one counter for each node). The relevant counter is incremented for every new back channel packet that is multicast or unicast. The counters are not incremented for retransmissions. As unicast lists are used only for retransmissions, the counters are not incremented when back channel packets are transmitted as unicast lists.
The nodes verify the validity of the back channel packet based on the received counters. If the counter received in the back channel packet from the base station is greater than the counter at the node by a predetermined value, then the node accepts the back channel packet, executes the relevant back channel command and stores the new counter. If the node belongs to the subgroup indicated in the back channel packet, then the node acknowledgments the base station. If the counters are equal and the node belongs to the subgroup indicated in the back channel packet, then the node acknowledgements the back channel packet but does not perform the back channel action.
Mobile Nodes
The wireless sensor network system may also support mobile nodes (MN), including, for example, three kinds of mobile nodes: pendants (transmit only), key fobs (nodes that may handle two-way communication), and keypads (nodes that can handle two-way communication and may also be supervised).
The different kinds of message exchanges for mobile nodes may include, for example:
1. Asynchronous alarm messages from pendants, which are not acknowledged, as pendants are transmit-only devices.
2. Asynchronous alarm messages/commands from key fobs: the base station acknowledges these messages. The base station may also forward response to command received from the hub to the key fob within a predefined duration after the initial command has been sent.
3. Asynchronous messages from keypads: The keypad may send asynchronous messages to the base station based on user inputs. (e.g., key presses etc)
4. Asynchronous Output Command from the base station to a mobile node. The base station may be forwarding asynchronous messages from panel/hub to base station (e.g., text display/turn on sounder, etc). It may also be response messages to keypads.
5. Periodic Supervision of keypads. The system may also support supervision of keypads with a specific supervision interval. This supervision interval is same for keypads and static sensor nodes of a given system.
Mobile nodes are not in sync with the base station and cannot be assigned a fixed time to communicate. Moreover, some of these devices are not “on” at all times or may not be within communication range at all times. Therefore the mobile nodes are treated differently than the sensor nodes.
Brief Overview of Mobile Node Handling
Mobile nodes may operate only on the mobile frequency so that they do not interfere with the network operation. This is a predetermined fixed frequency and is not used by the system for any other communication.
The base station periodically (in the mobile time slot) samples the mobile frequency to check if any signal is being received. If the base station receives a valid packet from an mobile node that belongs to the system, it acknowledges the receipt of the valid packet and forwards the packets to the hub.
When a mobile node has data to send, it transmits mobile node packets continuously for a specified duration (separated by time intervals to accommodate acknowledgement timeout for key fobs) or until acknowledgement is received. The mobile node stops packet transmission when acknowledgement is received.
MN Handling at BS
In Europe, a slot is shared by network alarms, mobile node and back channel. Since network alarms have a higher priority over mobile node alarms or packets, the base station samples the network for any alarms. If the network has nothing urgent to report, it checks the mobile node frequency for any packets. If a network alarm is received, the base station does not sample the mobile node frequency. If a mobile node packet is received in the back channel time slot, the back channel is wiped out.
In the United States and Europe, if there are no back channel commands to be sent, the base station samples default frequency and mobile node frequency alternately to check for asynchronous alarms from network nodes and mobile node packets respectively.
Procedure for Pendants
At Node (Pendants)
If a pendant is in the alarm state it immediately starts transmitting mobile node alarm packets in the mobile node frequency. It transmits long enough to ensure that the base station may receive the packet during the mobile node sample time slot. (Time duration of transmission referred as “MNTxDuration” subsequently). In Europe, the base station samples on the mobile node frequency once in a wakeup interval, so pendants may transmit for a little longer than wakeup interval. In the US, the base station samples mobile node frequency twice in a wakeup interval. The pendants therefore transmit for a little more than the duration between the two mobile node sample time slots. For example, if the wakeup interval is 1200 milliseconds and an alarm packet transmission takes 120 milliseconds, in Europe, MNTxDuration will be 1200 milliseconds and the pendants transmit ten packets.
After the first transmission, the pendant waits for a random time interval before repeating the transmission. The random wait time is determined by choosing a random number between 2 and 10. The time after the first transmission (previous step above) is divided into time intervals of MNTxDuration. If the chosen random number is 5, the pendant transmits in the start of the fifth interval. The random number is chosen from 2 so that if there was a collision with another mobile node, choosing a random number of 1 could potentially cause collision with the same transmission, as the mobile nodes are not time synchronized.
The previous step is repeated three times to ensure that the base station receives the packet at least once even when more than one pendants are transmitting at the same time or in case of bad channel. The device identifier of the pendant is included in the packet so that the hub may verify if it belonged to the system.
At BS
When the base station receives a packet from the pendant, it forwards it to the hub. The hub verifies if the pendant belonged to the system, based on the device id in the packet. The same procedure is followed for the US. The number of mobile node alarms packets transmitted may be different if the duration between mobile node time slots is different.
Counter Handling
Since the pendant has only one button, it causes no problems if multiple alarms from the same pendant are passed to the hub. Although a counter may not be required, it is included to keep the packet formats similar to that of the key fob. The counter value should always be zero.
The pendants are powered-up only on key press and power down after a predefined time interval. This interval should be long enough to accommodate the worst-case time needed for repeating the transmissions, i.e. if the chosen random number is 10 each time.
Procedure for Key fobs
The key fobs may either transmit alarm packets or commands like arm/disarm that need to be passed to the hub and panel. The appropriate back channel command may then be sent to the network nodes from the panel whenever needed. The procedure for packet transmission at the key fob is shown in
At Node
Whenever a button is pressed, the key fob comes out of low-power mode. The key fob transmits a mobile node packet and waits for an acknowledgement. If an acknowledgement is not received within the timeout it retransmits again. It repeats this for “MNTxDuration”. If the key fob does not receive an acknowledgement at the end of “MNTxDuration”, it follows the previous step of pendants. (After the first time the key fob picks a random number between 2-10 and transmits mobile node packets to cover 1 mobile node (MN) time slot). The key fob performs CSMA before transmitting for MNTxDuration. The packet from the key fob includes the six-byte device identifier of the base station to which it belongs to in addition to its own node identifier. The 6-byte device identifier of the base station is used by the base station to verify that the node belongs to its system. After the key fob receives the acknowledgement from the base station to the packet it sent, it waits for a predetermined time for the response from the base station, if any. During this wait, the node performs RF wakeup. The RF wakeup duration will be determined by the size of the back channel time slot. If a response packet is received the key fob sends the acknowledgement to it, else it goes to power down mode at the end of the defined wait time.
At BS
When the base station receives a packet from the key fob, it verifies that the node belongs to the system and also the validity of the counter. After the packet is verified, it sends an acknowledgement to the node and passes the packet to the hub if the counter is valid. The acknowledgement packet consists of one byte of cyclic redundancy check (CRC) from the packet received so that if multiple nodes were expecting an acknowledgement, it would not be misinterpreted. Subsequently, whenever a response (not for all packets) is sent by the hub to the base station, it sends a tone followed by the packet. The procedure for the response packet is similar to that for sending asynchronous back channel from the base station to mobile nodes. The procedure is same as for Europe except for the mobile node sample time slot.
Counter Handling
The counter handling procedure is as described below.
MN to Hub Messages
The counters for messages from mobile nodes to the base station is handled at the base station. The counter is incremented for every new message from mobile node to the base station. The base station performs counter validity like for any other application. If the counter is not valid it sends back an acknowledgement with the correct counter. It does not pass this message to the hub if the counter is not valid. The mobile node sets its counter to that received from the base station and sends the packet again. This may happen when the mobile node keys are pressed when it is not in the communication range of the base station.
Hub to MN Messages
The hub manages the counters for packets sent to the mobile node. Although the packet contains a counter field, it may not be validated at the mobile node. The hub increments it for every new message from hub to mobile node.
Procedure for Keypads
Keypad Consists of 2 Microcontrollers.
The keypad may include two microcontrollers. For example, the keypad may include a key micro microcontroller to handle the interaction with the keypad and the display, and/or a sensor transceiver to handle the interaction with the sensor network and pass all the information from the panel/hub to the keypad microcontroller.
The wireless sensor node system may support certain functionalities for keypads. For example, the wireless sensor node system may support asynchronous messages from the panel/hub base station to keypads. These messages may always be unicast to a keypad, periodic supervision of keypads, or asynchronous messages from keypads to the base station. The message priority may be prioritized as follows:
Asynchronous Messages from BS to Keypads
At Node
Keypads may be in the “RF Wakeup” mode, since the keypad should be ready to receive asynchronous messages from the base station and at the same time save battery power. The duration of sleep time between wakeups may be determined by the size of the back channel slot and the time for communication between keypads and the base station. When a message from the hub is received, the nodes verify if the messages is intended for them by comparing the device identifier in the message with that of the node. If it matches, an immediate acknowledgement is sent to the base station. The cyclic redundancy check (CRC) of the received packet is included in the acknowledgement. The keypad also performs any action that is requested in the message.
At BS
Any message that is to be sent to a mobile node is passed from the hub to the base station. The hub also prioritizes the messages that are sent to the base station. The device identifier of the mobile node is included in the packet. In the mobile node sample time slot, the base station samples the mobile node frequency to check if any packet is being received since alarms from mobile nodes have higher priority than messages from the base station to mobile nodes. The base station sends a tone that is a little longer than the RF wakeup interval of the keypad. The message from the hub follows the tone. When an acknowledgement is received from the keypad, it is forwarded to the hub. If the base station does not receive an acknowledgement with a predefined period of time (timeout), it sends a packet to the hub indicating mobile node failure. It is the responsibility of the hub to retransmit the packet to the mobile node.
Supervision of Keypads
The hub supervises keypads. Supervision messages are handled by the wireless sensor node system as any other asynchronous message from the hub to the mobile node.
At Node
The keypads perform RF wakeup waiting for any asynchronous message from the base station. When they receive a tone followed by a supervision message, the keypad sends an acknowledgement if the device identifier in the message matches its own device identifier. The cyclic redundancy check (CRC) of the supervision message is included in the acknowledgement and the node status, if any.
At BS
The hub supervises each keypad in a supervision interval and the device identifier of the keypad is included in the message. At the end of each supervision interval (supervision of static nodes), the base station sends an end-of-supervision message to the hub. The hub could use this information to maintain supervision interval duration for mobile nodes. The base station does not differentiate between a supervision message and any other command to the mobile node. It sends the message in the mobile node slot preceded by a tone. When an acknowledgement is received, it is forwarded to the hub. If an acknowledgement timeout occurs, an acknowledgement failure message is sent to the hub. The hub retries the supervision message a predefined number of times if acknowledgement is not received.
Asynchronous Messages from Keypads to BS
Counter Handling
Counter handling procedure for keypads may be identical to that described for key fob when it is not powered down.
Mobile Node Configuration
The following describes communication between mobile nodes and the MPS when the mobile nodes have no configuration data. This may be used, for example, to configure mobile nodes that have not yet been initialized, (their device identifier may need to be collected, validated and configuration data should be given to them), or during mobile node configuration, to store configuration data in flash which was unsuccessful due to flash write error and subsequently watchdog reset or battery replacement occurs. The procedure may be used to send panic alarms from such nodes.
Procedure at Base Station
The base station receives mobile node packets only after network initialization, when it is in the slotted mode. Whenever the base station receives a packet with type/sub type indicating “packet with 6 byte device Id”, the base station just forwards the packet to the MPS. The base station does not acknowledge such types of packets. This packet may be from a pendant, keypad or a key fob. In particular, the base station does not acknowledge because the node may not belong to this network, or the same packet type may be used for pendants and these packets and the base station may not need to process these packets. The MPS acts on the receipt of packet, depending on the mode it has been set to. If the MPS is in configure mode, it passes the device identifier of the mobile node to the panel for user verification. If the device identifier is valid, it sends configure mobile node command to the node. If the MPS is not in configuration mode, and if the node belongs to the MPS, the MPS informs the panel about the alarm message received. It also sends back configuration information to the node. The configure command may include the device identifier of mobile node, mobile node identifier, network identifier, the base station device identifier (if the mobile the mobile net can hear to networks with same network identifier, use the base station device identifier in packets to the base station, or any settings (keypad supervised, etc).
In this regard, the mobile node is always given the oldest base station device identifier even if there were multiple hub replacements during the network life time. When the base station receives packets from the mobile nodes (e.g., keyfobs or keypads), it compares the oldest base station device identifier with the device identifier in the packet. Mobile node identifiers (MMID) share the address space with static nodes' node identifier, multicast group identifiers and pendants. The BSTM forwards this configuration packet just as any output command to a mobile node, except that it resets the counter value that has been stored for the mobile node. This packet also serves as an acknowledgement to the earlier packet from the mobile node. When an acknowledgement to the configure packet is received, the BSTM forwards it to the MPS. If the acknowledgement packet indicates a flash write error and the MPS is in configuring mode, the user is informed about the configuration error. Mapping of the mobile node to user or area needs to be performed at the panel.
Procedure at Node
As pendants are transmit only nodes, they are never given any configuration information. The transmission of alarms for pendants is similar to the procedure described for pendants. When a panic alarm is generated from a key fob or a keypad, if they do not have any configuration information, then the node transmits stream of packets for “MNTxDuration”. The node does not wait for acknowledgements in between packet transmissions, as the BSTM would not acknowledge. This packet contains the device identifier of the node Oust as pendants).
After the first transmission, the node waits in RF wakeup mode for a random time interval before repeating the transmission. The random wait time is determined by choosing a random number between 5 and 15. The start value for the random number is 5 instead of 2, to ensure that there is sufficient wait time to get the configure packet in response to the packet sent. If a configure command is received, the node updates its configuration information and sends back an acknowledgement. If a flash write error occurs, this information is passed in the acknowledgement. After sending the acknowledgement, the keypad continues to perform RF wakeup. The key fobs may remain powered up for predetermined period doing RF wakeup and then go to low-power mode at the end of this period. If the nodes do not receive a configure command, they repeat the above procedure three times.
After the third attempt the key fobs should do RF wakeup for a predetermined period. This predetermined period needs to be longer than the normal wait of fifteen seconds after a key press so that the user may have sufficient time to validate the device identifier of the node. This wait period may be, for example, five minutes.
Frequency Drift Compensation for Mobile Nodes
The base station may always perform mobile node sample with 50 KHz wide band. When the base station receives packet from the mobile node, δf is measured by the base station. If δf>predetermined threshold, the base station adjusts its frequency by δf and transmits acknowledgment. The acknowledgement contains a δf value. The mobile node receives an acknowledgement with 25 KHz bandwidth. When the mobile node receives an acknowledgement, it adjusts frequency by δf. The base station goes back to it original frequency (before adjustment). Keypads perform RF wakeup with 50 kHz as they may be receiving packets intermittently. Key fobs perform RF wakeup with 25 kHz bandwidth as they do RF wakeup only after transmission of messages.
CSMA Procedure For Mobile Nodes
The mobile nodes perform carrier sense multiple access (CSMA) protocol exchange prior to each MNTxDuration. They do not check the channel prior to each packet transmission. The nodes first check the channel using automatic wakeup of the radio. If the channel is free, the channel is checked again after a duration that should include the acknowledgment timeout, the delays due to radio, etc., to ensure that the node does not grab the channel during an intermediate acknowledgment wait time of another node. If the channel is found free, the node transmits for MNTxDuration. Otherwise, if the channel is found busy in any of the two checks mentioned above, the following backoff procedure may be performed. In particular, the node chooses a random number from 5 to 15 to determine the backoff duration. The granularity of each unit is 100 milliseconds, i.e. the back off duration ranges from 500 milliseconds to 1500 milliseconds to allow for another mobile node to complete its transmission if it has already started to transmit. After a wait time determined by the random number, the node again checks the channel. If the channel is found busy again, the previous steps are repeated for a maximum of five times or until the cumulative backoff duration is five seconds, whichever occurs first. At the end of five checks/five seconds, the node transmits even if the channel is busy.
Lost Time Beacons and Battery Replacement
Lost Time Beacons
The base station may send time beacons periodically to the nodes so that the nodes are synchronized to the base station's clock. Two time beacons may be sent on the network frequency and one time beacon may be sent on the backup frequency in a time beacon cycle of 120 seconds. If a node receives one of the three time beacons, it does not wakeup for the other time beacons. If a node does not receive a time beacon within two time beacon cycles, the node may not be synchronized with the base station's clock. The following describes the recovery procedure for a node that has lost synchronization with the base station. The MPS detects loss of sync with a node and starts the recovery procedure when it encounters a supervision failure, a missed back channel acknowledgement, or an async alarm.
Procedure at the Base Station
When the MPS receives any one of the above triggers, it sends a “Config Node by Device Id” command to the base station. The base station sends the “Config Node by Device Id” command to the node in the default frequency. In addition to the data received from the MPS in the previous step, the base station adds certain parameters to the message, including, for example, time (added by the communication stack), supervision and time beacon counters, and an alarm counter (the alarm counter is reset and sent to the node). The base station forwards the acknowledgement from the node to the MPS. If the MPS does not receive the acknowledgement to the “Config Node by Device Id” command, it retransmits the message “N” times. The number of retransmissions is determined by the MPS. The MPS sends a “Query Node” command in the network frequency to the base station. This is a verification message to ensure that the node is operating in the network frequency. The base station forwards the acknowledgement to the “Query Node” command to the MPS.
Procedure at the Node
If the node does not receive a time beacon with two time beacon cycles, it switches to the default frequency and performs RF wakeup. The node receives the “Config Node by Device Id” command and verifies its device identifier with the corresponding value in the received message. If they match, the node sets its time and counters and updates its configuration flash with the received data. Therefore, the node sends an acknowledgement to the base station. The node switches to the network frequency and network operation at a pre-defined time. Therefore, the node sends an acknowledgement to the “Query Node” command.
Battery Replacement
When the battery is replaced at a node, it loses synchronization with the base station. The base station and the node follow the same procedure as in the lost time beacon recovery procedure to re-establish synchronization between the base station and the node. A tamper alarm is generated when the installer removes the sensor node from the fixture and a restore tamper alarm is generated when the installer puts the node back in the fixture. The triggers that initiate a lost node recovery procedure may include, for example, a supervision failure, a missed back channel acknowledgement, an async alarm, or a user input at panel (see below). The tamper alarm may be sent on the network frequency when the sensor node is removed from the fixture. After the batteries are replaced, another tamper alarm is sent on the default frequency as the power up start initializes the RAM and there is no memory of the first tamper alarm. If the node has a corrupt configuration flash (due to, for example, a flash write error), the nodes may not be able to send a tamper/tamper restore alarm when the batteries are replaced. In this instance, a user input at the panel may trigger the node recovery. The MPS may determine whether it should initiate the “Addition of New Nodes” procedure or query each node and for nodes that failed to acknowledge to the query command.
Procedure at the Node
When the battery is replaced, the node boots up and as part of the boot up sequence, and reads the configuration from the flash. If the node finds a valid configuration data in the flash (e.g., validated by checksum), it updates the configuration from the flash and performs RF wake up in the default frequency. After configuration, if the node detects a tamper or restore tamper alarm, it may be reported to the base station.
32 KHz Crystal Drift
According to an exemplary embodiment, a time slotted approach may be used to save energy and reduce channel contention. This requires that the nodes and the base station be synchronized to each other as much as possible. The inaccuracy in time slot increases the slots assigned for each activity/node. In particular, 32 KHz crystals may be used to keep time at the base station and nodes. Certain inaccuracies of the crystal and the maximum inaccuracy the crystals in an exemplary system may include, for example, an initial tolerance of ±20 ppm, a temperature tolerance of 20 ppm, and/or an aging of ±3 ppm.
Initial Inaccuracy
Initial inaccuracy may be measured at the factory and stored at a predefined location in the flash memory. The inaccuracy may give the number of ticks the crystal is off by. For example, in every 1000 ticks the crystal may gain one tick. This information is used by the software to adjust for the inaccuracy. The offset is used to compensate drift by adjusting the overflow value, for example, if hardware overflows every 500 ticks then after two overflows the software may miss a tick.
Temperature & Aging Inaccuracy
The protocol is configured to handle inaccuracies up to a maximum of 30 ppm. As soon as the inaccuracy is more than that the delays for the operations may increase. The base station transmits three time beacons at a predefined time every two minutes. The transmission may ensure that if relative inaccuracy is 30 ppm, the nodes may still be able to receive the time beacon (if sent every two minutes). The nodes reset their time based on the time beacon. As long as the nodes receive one time beacon every two minutes, the inaccuracies that arise due to temperature and aging may not affect the protocol if it is less than 30 ppm max.
Other Inaccuracies
If the total inaccuracy (other than the initial inaccuracy) in the crystal is less than 30 ppm, the periodic time beacons may be able to handle it.
BS Watchdog Reset
When MPS performs a watchdog reset, it also resets the base station and the procedure used to recover from it is same as panel power-down procedure. When the base station alone does a watchdog reset, network information stored in MPS is current and the base station requires updates its memory. The base station does not store any information in non-volatile memory. It receives the network information from the MPS (then there is no need to resync this information). It resynchronizes with the network nodes and resets the counters.
Procedure at BS
The base station sends a packet to the MPS indicating it performed a watchdog reset. The MPS gives the information needed by the base station. The procedure from here is very similar to the panel power-down procedure, except the packets contents are different.
Synchronize Sensor Transceivers
Procedure at the Node
When the node does not receive time beacons for four minutes it switches to the default frequency and performs an RF wakeup (with 50 KHz bandwidth). If the node receives a tone followed by a “Default-Type Packet” with sub-type “poll for node” from the base station, it verifies that the network identifier matches (done at the application) and the node identifier is same as its own. If these match, it responds with a dummy acknowledgement with the network identifier. After this, the node element goes back to RF wakeup. If these do not match it returns to RF wakeup immediately. If the node receives a tone followed by a “Default-Type Packet” with subtype “resync nodes” from the base station, it resets certain counters and issues an acknowledges in the slots based on its node identifier. The certain counters may include, for example, a supervision counter, a time beacon counter, and an alarm counter. The nodes then continue with their RF wakeup. At a predefined time it moves to network frequency and slotted structure.
HUB Replacement and Panel Power-Down
HUB Replacement
When a hub is replaced, data at the panel and two node is used to reconstruct the hub's configuration data automatically, after an installer is authenticated and issues the command to replace the hub. The replacement sequence may be as follows:
The old hub disappears from the option bus causing a trouble. A new hub appears at the same option bus address. The hub's six-byte device identifier is used to determine if the hub has been changed. The system may not automatically attempt to substitute the new hub. An installer may have to authenticate him/herself at a keypad and issue the command to replace the hub. The panel gathers the network identifier, supervision interval, grade information, point number to device id relationships and the area and type (exterior etc.) the points belong to and send them to the new hub. The hub then passes the network identifier to the base station. The network identifier informs the base station of the correct frequencies to operate on. The base station then broadcasts a query to all nodes that have this network identifier (the network identifier should be unique to one hub). The nodes may respond to the query with their configuration data that is passed to the hub to reconstruct the hub's configuration database (device type, six-byte device identifier, node identifier, supervision on/off (keypads), backup frequency or frequencies, node troubles). After all nodes report, the system is ready to operate normally with the new hub. If the panel verifies the hub's six-byte device identifier to guard against replacement then the hub's six-byte device identifier must also be passed to the panel. For multi-cast groups, the system may be divided into areas (area 1, area 2 etc). Each area may have subareas (perimeter, interior etc.). It may be required to arm or disarm a set of nodes in the whole system (all motion detectors. etc). A node may belong to all the above or some of the multicast groups. A node may belong to a maximum of four multi-cast groups.
Panel Power Down
The hub (MPS and base station) derives power from the panel. When the panel loses power, the MPS and base station also loses power and may have enough time to store the network specific information, which has changed since its last write, into the non-volatile memory. In this regard, the panel and MPS store most of the network information in non-volatile memory. The information that is not stored in the non-volatile memory should be synchronized between the panel, MPS, base station and nodes. The base station and nodes may be out of sync with respect to time and might have moved to non-slotted operation. The base station may not store any data in the flash memory.
Panel Power Down Handling at “Panel”
Various types of data may be stored in the non-volatile memory of the panel. For example, the panel may store the device identifier of the first hub in the system. The panel may not re-sync all the hubs connected to the same panel. Once the panel realizes there has been a panel power-down it sends a command to MPS indicating this. The procedure is the same for panel power down from next point.
HUB Replacement Handling at Panel
The user notifies the user that the hub has been replaced. The panel checks the device identifier of the hub to verify this. Once it is verified that there is a new hub, following procedure starts. The panel passes the following data to the MPS: (i) device identifier (three significant bytes or all six bytes) of all sensor transceivers that are part of this network, (ii) point number for every device (MPS keeps point number to node identifier mapping), (iii) network identifier and backup frequencies, (iv) device identifier of all mobile nodes that are configured to be part of this system, (v) panel gives the oldest (first hub) hub identifier to the new hub so that it can be used for mobile node verification, (vi) no harm in sending it for panel power-down even though it is not needed, and (viii) supervision interval, grade information (grade information required for supervision power level) (same byte may be used to indicate both). The data at the MPS is different from that received from the panel, it is overwritten with the panel's data. Regarding data received from the nodes, all the common data will be from the panel by MPS. Common data is not needed from the node for verification. The configuration data specific to the node may include, for example: (i) six byte device identifier (panel might not have all bytes so send it always), (ii) out registers from the sensor micro, (iii) node identifier, (iv) multicast group (max of four), and (v) position in the multicast group (gives the acknowledgement position). It is noted here that multicast information received from the nodes is used to build the database at the MPS. This database is compared with the information got from the panel. If nodes participation in multicast group is inconsistent with the panel's information, the nodes are updated.
Procedure at BS
After the hub is replaced/panel power-down, the MPS sends a configure base station command, which may include, for example, the network identifier, back up frequencies, device identifier of the oldest base station (used to verify mobile node), supervision interval, maximum number of nodes. (If panel power-down occurs, MPS has the node identifier. This field will be maximum node identifier. If the hub is replaced, this field will be 240, and the device identifier (three bytes) of one of the sense transceivers.
Collect Information from Sensor Transceivers
In step S3705, the base station repeats step S3703 several times until the data from every node is received. The repetition is triggered by the base station since it keeps a bit mask of all nodes that have acknowledged. In step S3706, after the predefined number of retries or after all acknowledgments have been received, the base station reports to the MPS the nodes that did not acknowledge. In step S3707, after the above step, the base station may receive the supervision list from the MPS at anytime. In step S3708, the base station and the nodes move into the network frequency and time slot structure at a predefined time based on the config-request packet and cycle number. In step S3709, the base station may not handle alarms until the nodes and the base station move to the network frequency. In step S3710, after step S3706, when the system moves to network operation, the MPS may send a packet to the panel “system in network operation” to indicate that it can handle alarms now. In step S3711, if the MPS does not receive acknowledgments from all nodes, it may use the same procedure used for loss of time beacons to retrieve the nodes. On panel power-down, e.g., hub/base station power-down, verify the data received from the nodes to the information stored in the non-volatile memory. If it is different for any node, then send separate “config” packets to those nodes in the network frequency in a time-slotted fashion. (the back channel time slot may be used for this).
Procedure to Handle Mobile Nodes
Mobile nodes may need no special handling for hub replacement. The MPS may need to provide the base station with oldest bay station device identifier.
Procedure at the Node
When the node does not receive time beacons for two time beacon cycles it goes into the default frequency and performs RF wakeup (with 50 KHz bandwidth). If the node receives a tone followed by a “Default-Type Packet” with sub-type “poll for device” from the base station, it verifies that the three bytes of device identifier is the same as its own. If these match, it acknowledges with the network identifier it is using. After this, the node returns to RF wakeup. If these do not match, the node returns to RF wakeup immediately. If the node receives a tone followed by a “Default-Type Packet” with sub-type “Config-Request Packet” from the base station, it verifies the network identifier and responds with data specific to the node, in the slots based on its node identifier. The nodes then continue with their RF wakeup. At the end of the collection of configuration data phase(s), the node moves to the network frequency to continue in a time-slotted manner at a predefined time. The wireless sensor network may not support automatic panel replacement procedure.
Message Exchange
In step s3810, a configuration request is sent by the base station to the node(s). In particular, the base station constructs a unicast list (e.g., keeps a bit mask) based on the nodes that did not acknowledge and keeps track of when to timeout. In step s3811, the nodes addressed by base station respond with an acknowledgement that includes their data. In step s3812, the acknowledgement from the nodes is forwarded by the base station to the MPS. In step s3813, after the process for collecting “node specific data” is done, the base station informs the MPS of the nodes that did not acknowledge and the network identifier that the network is using. In step s3814, the MPS informs the panel that the system is in network operation and which network identifier the network is using. In step s3815, if any of the data stored at the MPS is different from the information received from the nodes, the MPS sends individual configure node commands to the node using the node identifier. In step s3816, the base station forwards the data to the node via the back channel. In step s3817, the node sends an acknowledgement. In step s3818, the acknowledgement from the node is forwarded to the MPS by the base station. If acknowledgement is not received from the node, the base station informs the MPS about the failure and repeats step s3815. In step s3819, the supervision list is updated and sent to the base station by the MPS. In step s3820, most messages from the mobile node include the hub identifier. Accordingly, the same procedure to handle packets from mobile network nodes is used here. In step s3821, if the received hub identifier is same as the oldest hub identifier, the base station accepts the packet. In step s3822, the packet is forwarded to the MPS.
Jamming
Depending on certain regulatory requirements, there may be two kinds of jamming detection (also referred to as “Interference Protection”) that should be handled by the protocol.
In the US, interference protection should be continuous. Reception of any unwanted (interfering) transmission by a retransmission device (e.g., a repeater), or by the receiver/control unit for a continuous period of twenty seconds or more, which inhibits any status change signaling within the system, should result in an audible and visual trouble signal indication at the receiver/control unit, which identifies the specific trouble condition (interfering signal) as well as the device(s) affected (e.g., repeater and/or receiver/control unit).
In Europe, cumulative interference protection is provided so that, for example, a sum total of predefined seconds (grade dependent) of interference signal in any 60 seconds. In this regard, the cumulative interference protection may be provided at a Grade 1—sum total of 30 seconds of interference signal in any 60 seconds, or a Grade 2—sum total of 30 seconds of interference signal in any 60 seconds. For all grades, where the interference detected is less than 5 seconds in any period of 60 seconds, there is no indication or notification
The system may be configured so that jamming detection and/or interference protection is performed only at the base station. Hence, jamming detection need not be performed at nodes (since, moreover, the nodes receive arm commands and jamming of receivers has to be detected). Jamming on the mobile network frequency should also be detected, for example, at the base station and also at the mobile nodes that perform RF wakeup only.
Jamming need not be reported if there is high signal strength for the network frequency. Moreover, jamming detection may not be required at the default frequency since although nodes may send alarms in the default frequency, jamming may be reported when all frequencies, including the network frequency and the backup frequency, are jammed and thus not wait for the default frequency to be jammed.
Jamming Detection
The MPS should be informed as soon as any interference (e.g., continuous or cumulative as described above) inhibits any status change signaling within the system. Therefore, the device(s) of the network may report when jamming is detected, for example, in the network and/or backup frequency for continuous 20 seconds (US) or sum total of 30 seconds in 60 seconds (EU). In this regard, the device(s) of the network may detect jamming differently. For example, the base station may detect jamming during an alarm sample for network operation. In particular, the base station may sample in four channels in US, as shown, for example, in
To handle jamming, every device performs certain steps. For example, initially for each pass a “jamming detection” flag, which is used to indicate jamming, and a “reported” flag, which is used to indicate if jamming was reported, are cleared. If jamming is detected for a particular pass a jamming count is incremented (e.g., US compliant systems) or a bit is set in the jamming history (e.g., European compliant systems). If the jamming is greater than a predefined threshold, then the MPS is informed directly, or via the base station, and the “reported” flag is set. Subsequently, when the device senses a “no jamming” condition, the device sends a restore jamming message and clears the “reported” flag. Further details regarding how particular devices of the system (e.g., base station, mobile nodes, or other nodes) handle jamming are described below.
Jamming Detection at BS
The base station samples in the alarm time slot for network jamming, and samples in the mobile network time slot for the mobile network jamming. If the base station senses network jamming and/or mobile network jamming, it immediately notifies the MPS.
Network Jamming
For each network and back frequency time slot, the base station clears the jamming flag if the base station does not sense a high signal or receives an alarms packet. If the base station senses a high signal during the network frequency time slot without receiving a packet, the base station does not clear the jamming detection flag. Accordingly, if the jamming detection flag is set it indicates that jamming was sensed in all the frequencies sampled.
MN Freq Jamming
During the mobile network time slot, if the base station senses a high signal without receiving a packet, it sets the jamming detection flag.
Jamming Detection at Sensor Nodes
Sensor nodes detect for jamming in the back channel time slot where they perform an auto power-up to receive any back channel packet. In particular, during each back channel time slot, the node samples the network frequency for a high signal, and if a high signal is not detected, the node goes back to sleep immediately. During each alternate back channel time slot, in addition to sampling the network frequency for a high signal, the node also samples the backup frequency for a high signal, and if a high signal is not detected, the node goes back to sleep immediately.
Network Jamming
During the back channel time slot, if the node does not sense a high signal or receives a valid packet (e.g., back channel or preamble for network identifier poll or network identifier poll) in the network frequency, it clears the jamming-detection flag. If the node senses a high signal without receiving a packet, it does not clear the jamming detection flag. During alternate back channel time slots, in addition to above step, if the node does not see a high signal or receives a valid packet, it clears the jamming detection flag
Jamming Detection at MN (Keypad)
Mobile nodes that perform an RF wakeup every predefined period (e.g., 200 milliseconds) sense for jamming. In particular, once every RF wakeup duration, the mobile node (keypads) performs an auto power-up to receive any packet from the base station. If the mobile node does not sense a high signal or fails to receive a valid packet, it clears the jamming detection flag. If the mobile node senses a high signal without receiving a packet, it does not clear the jamming detection flag.
Continuous (US)
Cumulative (Europe)
On every pass certain actions may occur. For example, the jamming count is decremented if the most significant bit (MSB) is set in the jamming history field and the jamming history is shifted by one bit to the left. If the jamming detection flag is cleared, no action is performed. Otherwise, if the jamming detection flag is set, the least significant bit (LSB) is set and the jamming count is incremented. If the reported flag is cleared and the jamming count exceeds a predefined threshold (e.g., 30 if wakeup interval is one second), the reported flag is set, jamming is reported, all 60 bits of the jamming history are set, and jamming count is set to 60 (indicating the number of ones in the jamming history). Since the sensor nodes detect jamming by sampling the network frequency during the back channel time slot, and the network and backup frequencies during alternate back channel time slots, if jamming is detected in only the network frequency time slot and not in the alternate back channel time slot where both network and backup frequencies are sampled, and the jamming count is at the threshold of 30, the counter would toggle between 29 and 30, which may result in jamming being reported in every alternate back channel time slot if the jamming count and all 60 bits were not set. Moreover, if the reported flag is set (looking for no jamming to report restore jamming) and the jamming count is less than the predefined threshold (e.g., 30 if wakeup interval is one second), the reported flag is cleared, a restore jamming is reported, and the jamming count and all 60 bits of the jamming history are cleared.
Addition of Nodes
When adding one or more nodes to the system, it may be assumed that the network parameters such as the network identifier, network frequency, backup frequency, etc., remain the same after the new nodes are added. If, for example, the operator prefers to reevaluate the network identifier and frequency with the newly added nodes, the operator may use the “manual frequency selection” option, by which the system picks up the most suitable frequencies and network identifier.
The addition of new nodes may involve, for example, node discovery and/or node configuration. In particular, when adding nodes, the base station first discovers uninitialized nodes that are within listening range and forwards the received device identifiers to the MPS. The discovery process may span across several back channel time slots. The MPS forwards the discovered device identifiers to the panel for validation and then configures each node using the “Configure Nodes by Device Id” command, which is a back channel command in the default frequency. Upon receiving the configure command the nodes update their configuration and switch to the network frequency and network operation.
At the Base Station
The MPS sends the “Start Device Id Discovery” command to the BSTM, with discovery type of “existing network”, the number of nodes to be added and the device type. The BSTM sends the “Device Id Start” message to the nodes in the back channel time slot. The device identifier time slots are spread over several back channel time slots, starting with the next back channel time slot where the start message is sent. The base station computes the total cycle duration in terms of the number of back channel time slots it needs to wait for device identifiers from the nodes, which is calculated based on the number of device identifier time slots that can be accommodated in a back channel time slot and the total number of device identifier time slots required, considering the three intervals (T1=2N slots, T2=1.5N slots and T3=0.7 N slots) per cycle for device identifier collection. The base station skips its current back channel time slot and starts waiting for device identifier messages from nodes from the beginning of the next back channel time slot, which starts with the cycle start time at the base station. The base station starts device identifier receive at the beginning of a back channel time slot, and when it receives a message, it sends an acknowledgement to the node and forwards the device identifier to the MPS. (The base station may need to schedule an event to stop device identifier receive at the end of the current back channel time slot). This may be repeated for as many back channel time slots as needed to complete one cycle.
At the end of one complete cycle, the base station schedules the retry cycle starting from the next back channel time slot, sends the device identifier start message, and repeats one or more of the steps as described above in the retry cycles. In the retry cycles, the base station sends the value of ‘number of nodes to be discovered’ as the number of nodes remaining to be discovered so that, accordingly, the cycle duration may be recalculated. When the base station is finished with the retry cycles, it sends a “Discovery Complete” message to MPS, and this completes the discovery phase, which may continue for all three cycles, even if the expected number of devices is received. When the MPS receives the discovery complete message, it forwards the device identifier message to the panel for validation. The operator may then issue the discovery command again to repeat the discovery process to find more nodes. Furthermore, when the MPS receives the response from panel, it sends the “Config Node by Device Id” command to individual nodes. For those nodes that are not approved, the MPS sends the same command with a node identifier value of “0”. The MPS then sends a message to base station to update the supervision list with the newly added nodes—“update supervision list” with a bit-mask representing all nodes.
At the Node
Initially the nodes are in RF wakeup, waiting for the device identifier start message. When the nodes receive the device identifier start message, each node picks up a random number as the temporary time slot for sending the device identifier to the base station. The nodes calculate their slot start time based on the temporary slot number and the back channel time slot structure in base station. In this regard, there may need to be some indication in the start message to the node that this is a discovery in network operation phase so that the node perform the slot calculation accordingly. The nodes skip one wakeup interval duration (e.g., T milliseconds) to sync with the next back channel time slot, where T is the time for sending the device identifier start message. In other words, T is the time elapsed since the start of back channel time slot to the time at which the start message is received at the node, which is the cycle start time at the node. The nodes calculate their slot start time as follows,
Slot start=CycleStart+(mySlot/m)*wakeup Interval time+((mySlot % m)−1)*slot interval
Where ‘m’ is the number of device identifier time slots that can be accommodated in a back channel time slot. The nodes sleep until this time, then wake up and send the device identifier message to base station and wait for an acknowledgement. On receiving the acknowledgement, the node goes to RF wakeup waiting for the node identifier message. In this phase, nodes may not accept another device identifier start message, but may receive default type messages. When the node receives the ‘Config Node by device Id’ message (which is a default type message) from the base station, it sends an acknowledgement to base station. The nodes update their configuration parameters with the values received in the message and save the data to flash memory, for example. The node then switches to the network frequency and network operation. Those nodes that are not approved, (e.g., node identifier=0), reset themselves and return to the initialization start phase.
It is noted that the abort command may not be supported during addition of nodes.
Deletion of Nodes
The deletion of a node from a wireless network may include, for example, removing the node from the supervision list and/or resetting the node to the factory default state by erasing its configuration data. In particular, the MPS may send a node reset command (e.g., reset by device identifier) to the base station for the node to be replaced. The reset command may be sent, for example, in the network frequency first and if the MPS does not receive an acknowledgment, it retries in default frequency. Upon receiving this message the nodes erase the configuration flash memory and reset themselves. If an acknowledgement of the reset command is not received, a certain number of retry attempts may be performed. The MPS then sends a message to the base station to remove the node from the supervision list and the base station updates its supervision list. In this regard, the base station may not send a supervision poll to the deleted nodes and the back channel acknowledgement time slots are emptied for the deleted nodes. The MPS then removes the node from its database.
Replacement of Nodes
The replacement of nodes may involve, for example, the deletion of the node to be replaced and an addition of a new node. In this regard, the base station and the nodes may follow the same procedures for the addition and deletion of the node. However, certain other procedures may occur, including, for example, procedures performed at the MPS. In particular, the MPS may send a node reset command to the base station for the node to be deleted. The base station sends the delete command to the node. The MPS then sends addition of node command to the base station, which includes the number of nodes to be added equal to “1” and the device type of the node to be replaced. The base station performs a discovery for the given device type and then forwards the discovered device identifiers to the MPS. If there is only one node matching the device type is discovered, the MPS need not send this to the panel for validation. The MPS sends a configure node by device identifier command to the base station for the new node, which assigns the node identifier of the deleted node to the new node. The MPS then updates its database with the device identifier of the node.
Node Reset
The node reset feature may be used to reset a node to its factory default state by erasing the configuration data from the flash memory. The type of node reset may include, for example, a software node reset and a hardware node reset option.
The software node reset option may be used to reset a node, which is part of a network and the system is in network operation. The procedure for software node reset may use a back channel command to reset a specific node. The software reset command is sent only when the base station is in network operation, and the MPS indicates which frequency to be used for sending this command.
To perform a software reset, the MPS sends a node reset command (e.g., as a back channel command) to the base station, with the device identifier of the node to be reset and the frequency to be used (e.g., default network frequency). The BSTM sends this command to the node as a back channel command. For reset in the network frequency, the base station sends the reset command to the node in the back channel time slot with the device identifier of the node in the message. For reset in the default frequency, the base station sends the “default type” packet with sub type as “reset” in the back channel time slot with the device identifier of the node in the message. When the node receives a software reset command, it verifies the device identifier and if it matches, it erases its configuration in the flash memory, resets itself, and sends an acknowledgement to the base station, which forwards the acknowledgement from the node to the MPS. The MPS may retry the reset attempt in case of failure.
The hardware node reset option may be used to initialize a node to its factory default state by erasing the configuration flash memory and then issuing a reset. When the node detects a hardware reset, it erases the configuration data from flash and resets itself.
Flash Data Storage
The non-volatile data storage at the node and the base station may include, for example, two type of data—the manufacturing data and configuration data. The manufacturing data is saved to non-volatile memory during manufacturing, and does not change during system operation and cannot be erased in the field. The manufacturing data at the node and the base station may include, for example, the device identifier and frequency compensation data.
The configuration data is written during the installation phase and changes/updates to this data is possible during system operation. The configuration data, may include, for example, the node identifier, a list of backup frequencies, a supervision interval, sensor configuration, and one or more multicast groups the node belongs to and the position of the node in each of the multicast groups.
The base station may not save any configuration data in its flash memory. Instead the base station may receive configuration data from the MPS. In particular, when the base station boots up, the MPS sends the data in response to a request from the base station.
The configuration data and the manufacturing data should be stored in separate flash blocks, and all flash write failures should be reported to the MPS. At the nodes the flash write occurs at end of initialization or on manual frequency selection or a on “Config Node by Device Id”. In these instances, the error should be reported to the MPS in the acknowledgement message. If this is not possible, the error should be indicated via the supervision status.
System Parameters for US Compliant Networks
Radio: CC1021
Data rate: 34.4 kbps
Total Number of channels (frequency bands): 18
Default frequency (1): Nodes start in default frequency.
Mobile node frequency (1): Used for communication between mobile nodes and base station.
Network and Backup frequencies (16): The remaining sixteen frequencies are used for network operation. Each network has one network frequency and three backup frequencies.
Network frequency: Each network chooses one fixed network frequency out of sixteen frequencies. All communications in the network occur on this frequency.
Backup frequencies: Each network chooses a set of three backup frequencies out of sixteen frequencies. These frequencies are used for retransmissions when the transmission on the network frequency doesn't get through.
These sixteen frequencies ideally may be shared by four adjacent installations. The system may support 128 adjacent installations. But ideally as one network uses four frequencies and we have sixteen frequencies in total, there should be only four adjacent networks.
System Parameters for Networks in Europe
Radio: CC1020
Data rate: 4.8 kbps
Total Number of channels (frequency bands): 8
Default frequency (1): Nodes start in default frequency.
Mobile node frequency (1): Used for communication between mobile nodes and base station.
Network Frequency (4): Four frequencies are kept for network operation. Each network chooses one fixed frequency from the four preassigned network frequency. All communications in the network occur on this frequency.
Backup frequency (2): Each network also chooses one fixed backup frequency out of the two pre-assigned backup frequencies. These frequencies are used for retransmissions when the transmission on the network frequency doesn't get through.
There may be a direct mapping of frequency number and network identifier, which allows frequency usage to be identified once the network identifier is known. For instance, if we know that network identifier 3 is used by a parallel network installation then frequency 3 is also likely used by that installation for network operation. The function, which maps network identifier with frequency number is as follows:
Frequency-number=Network-ID % Total-number-of-network-frequencies
As an example, the total number of network frequencies is four for Europe, which implies that for frequency 2 in Europe network identifiers 2, 6, 10, and 14. The total number of network frequencies in US compliant systems is sixteen, which implies for frequency 2 in a US compliant network identifiers 2, 18, and 34.
This application is related to U.S. Patent Applications entitled “Method and System for Time Synchronization in Communication Networks” (Attorney Docket No. 11403/5501), “Method and System for Providing Acknowledged Broadcast and Multicast Communication” (Attorney Docket No. 11403/5502), “Method and System for Providing an Energy Efficient Exchange of Information in Wireless Networks” (Attorney Docket No. 11403/5503), “Method and System for Providing Interference Avoidance and Network Coexistence in Wireless Systems” (Attorney Docket No. 11403/5504), “Method and System for Reliable Data Transmission in Wireless Networks” (Attorney Docket No. 11403/5505), “Method and System for Providing a Modified Time Division Multiple Access (TDMA) for Reduced Delay” (Attorney Docket No. 11403/5507), “Method and System for Providing Reliable Communication with Redundancy for Energy Constrained Wireless Systems” (Attorney Docket No. 11403/5508), “System and Method for a Communication Protocol for Wireless Sensor Systems Including Systems with High Priority Asynchronous Message and Low Priority Synchronous Message” (Attorney Docket No. 11403/5509), “Method and System to Reconfigure a Network to Improve Network Lifetime Using Most Reliable Communication Links” (Attorney Docket No. 11403/5510). The disclosure of each of the foregoing related applications is hereby incorporated by reference herein in its entirety.