1. Field of the Invention
The present invention relates to load control systems for controlling electrical loads and more particularly to a communication protocol for a wireless load control system, such as, for example, a radio-frequency (RF) lighting control system.
2. Description of the Related Art
Control systems for controlling electrical loads, such as lights, motorized window treatments, and fans, are known. Such control systems often use radio-frequency (RF) transmissions to provide wireless communication between the control devices of the system. Examples of RF lighting control systems are disclosed in commonly-assigned U.S. Pat. No. 5,905,442, issued on May 18, 1999, entitled METHOD AND APPARATUS FOR CONTROLLING AND DETERMINING THE STATUS OF ELECTRICAL DEVICES FROM REMOTE LOCATIONS, and commonly-assigned U.S. Pat. No. 6,803,728, issued Oct. 12, 2004, entitled SYSTEM FOR CONTROL OF DEVICES. The entire disclosures of both patents are hereby incorporated by reference.
The RF lighting control system of the '442 patent includes wall-mounted load control devices (e.g., dimmers) and table-top and wall-mounted master controls (i.e., keypads). The control devices of the RF lighting control system comprise RF antennas adapted to transmit and receive the RF signals that provide for communication between the control devices of the lighting control system. Each of the load control devices includes a user interface and an integral dimmer circuit for controlling the intensity of an attached lighting load. The user interface has a pushbutton actuator for providing on/off control of the attached lighting load and a raise/lower actuator for adjusting the intensity of the attached lighting load.
The table-top and wall-mounted master controls have a plurality of buttons and are operable to transmit digital messages via the RF signals to the load control devices to control the intensities of the lighting loads. The master controls typically comprise preset buttons, which may be programmed to select lighting presets (i.e., scenes) or to toggle the lighting loads in an area on and off. Often, the master controls comprise raise and lower buttons that cause one or more lighting loads to increase and decrease in intensity, respectively, as the raise and lower buttons are held. The master controls transmit digital messages via the RF signals to the controlled load control devices in response to both the press and the release of one of the raise or lower buttons.
The load control devices and master controls of the RF lighting control system of the '442 patent have limited communication ranges. Therefore, the prior art RF lighting control system comprises signal repeaters, such that the load control devices and master controls may be physically located away from each other at distances greater than the respective communication ranges. The signal repeaters repeat (i.e., re-transmit) the digital messages transmitted by the load control devices and master controls multiple times such that every control device of the system is operable to receive all of the transmitted RF signals.
The RF lighting control system of the '442 patent is a time division system, i.e., each of the control devices has a specific time period (or time slot) to transmit digital message to thus avoid collisions. In order to allow for the re-transmissions by the signal repeaters, the communication protocol of the RF lighting control system of the '442 patent includes specific additional time slots in which the signal repeaters are operable to re-transmit the digital messages. As the originating control device transmits a specific digital message and the signal repeaters re-transmit the digital message, the digital message “propagates” through the lighting control system. Since the load control devices and the master controls of the RF lighting control system wait until the propagation of a transmitted digital message is complete before transmitting a new digital message, there can be a substantially long time (i.e., 900 msec) between when the original digital message and the new digital message may be transmitted.
This delay between transmissions can cause a number of problems when the control devices of the RF lighting control system are physically spaced apart in a large area and the system includes a large number of signal repeaters (e.g., five signal repeaters). For example, when a master control having raise and lower buttons is controlling a load control device and is located a long distance away from the load control device, the delay between transmissions may cause overshoot (or undershoot) of the intensity of the lighting load controlled by the load control device in response to taps, i.e., short transitory actuations, of the raise buttons (and lower buttons) of the master control. Because the digital messages are transmitted in response to both the press and the release of one of the raise or lower buttons, there may be a large delay between the “press” digital message and the “release” digital message even if the actual actuation of the raise or lower button was very short in duration. Since the load control device does not stop raising (or lowering) the intensity of the lighting load until the release digital message is received, the load control device may overshoot (or undershoot) the actual desired lighting intensity.
Thus, there is a need for an RF load control system, in which control devices can more quickly communicate subsequent button actuations to an intended recipient or group of recipients.
According to the present invention, a method of transmitting a digital message across a communication network having a plurality of control devices comprising the steps of: (1) transmitting a first digital message; (2) propagating the first digital message through the communication network; (3) determining that a second digital message has a higher priority than the first digital message; and (4) interrupting the step of propagating the first digital message to transmit the second digital message. Preferably, the step of determining that a second digital message has a higher priority than the first digital message may comprise determining that the first digital message is irrelevant in view of the second digital message.
The present invention further provides a radio-frequency load control system for controlling the amount of power delivered from an AC power source to a plurality of electrical loads. The load control system comprising a plurality of control devices adapted to be coupled to an RF communication link for communicating digital messages with each other. At least one of the control devices is operable to transmit a first digital message via the RF communication link, such that the first digital message is propagated through the RF load control system. At least one of the control devices is operable to receive the first digital message and to control the amount of power delivered to the electrical load in response to the first digital message. At least one of the control devices is operable to determine that a second digital message has a higher priority than the first digital message, and to interrupt the propagation of the first digital message by transmitting the second digital message.
According to another embodiment of the present invention, a radio-frequency load control system comprises a plurality of control devices adapted to be coupled to an RF communication link for communicating digital messages with each other. The plurality of control devices comprises an originating control device operable to transmit a first digital message via the RF communication link, such that the first digital message is propagated through the RF load control system. The plurality of control devices further comprises a load control device adapted to be coupled between an AC power source and an electrical load, such that the load control device operable to receive the first digital message and to control the amount of power delivered to the electrical load in response to the first digital message. The originating control device is operable to determine that the first digital message is irrelevant in view of a second digital message, and to interrupt the propagation of the first digital message by transmitting the second digital message.
According to another aspect of the present invention, a method of transmitting a digital message across a communication network having a plurality of control devices comprising the steps of: (1) transmitting a first digital message during a first time slot; (2) propagating the first digital message through the communication network; (3) receiving the first digital message; and (4) transmitting an acknowledgement message in response to first digital message during a second time slot before the step of propagating the first digital message is complete.
In addition, the present invention provides a radio-frequency load control system for controlling the amount of power delivered from an AC power source to a plurality of electrical loads. The load control system comprises a plurality of control devices adapted to be coupled to an RF communication link for communicating digital messages with each other. At least one of the control devices operable to transmit a first digital message via the RF communication link during a first time slot, such that the first digital message is propagated through the RF load control system. At least one of the control devices is operable to receive the first digital message, and to transmit an acknowledgement message in response to first digital message during a second time slot before the propagation of the first digital message is complete.
Other features and advantages of the present invention will become apparent from the following description of the invention that refers to the accompanying drawings.
The foregoing summary, as well as the following detailed description of the preferred embodiments, is better understood when read in conjunction with the appended drawings. For the purposes of illustrating the invention, there is shown in the drawings an embodiment that is presently preferred, in which like numerals represent similar parts throughout the several views of the drawings, it being understood, however, that the invention is not limited to the specific methods and instrumentalities disclosed.
The RF load control system 100 comprises a wall-mounted dimmer 112 and a remote dimming module 120, which are each operable to toggle the respective lighting load 104, 106 on and off, and to control the intensity of the respective lighting load 104, 106 between a minimum intensity and a maximum intensity, i.e., a across dimming range of the lighting load. The wall-mounted dimmer 112 includes a user interface for receiving inputs from a user and for providing feedback of the intensity of the controlled lighting load 104 to the user. Specifically, the dimmer 112 comprises a control actuator 114 for turning on and off (i.e., toggling) the lighting load 104 and an intensity adjustment actuator 116 (e.g., a slider control or a rocker switch) for adjusting the intensity of the lighting load. The wall-mounted dimmer 112 also comprises one or more visual indicators 118, e.g., light-emitting diodes (LEDs), for providing feedback to the user of the dimmer. The remote dimming module 120 may comprise, for example, an electronic dimming ballast for controlling a fluorescent lamp, and is typically mounted near the lighting fixture of the fluorescent lamp.
A motorized window treatment (MWT) control module 122 is coupled to the motorized roller shade 108 for controlling the position of the shade fabric of the roller shade and thus the amount of daylight entering the space. Often, the MWT control module 122 is located inside the roller tube of the motorized roller shade 108.
The RF load control system 100 may further comprise a first wall-mounted master keypad 130 and a second wall-mounted master keypad 132. The keypads 130, 132 each comprise a plurality of preset buttons 134, which may be programmed, for example, to recall lighting presets or toggle one or more lighting loads 104, 106 on and off. The keypads 130, 132 may also comprise a raise button 135 and a lower button 136 for respectively raising and lowering the intensities of one or more of the lighting loads 104, 106. The preset buttons 134, the raise button 135, and the lower button 136 may also be programmed to control the position of the motorized roller shade 108. The keypads may also comprise a plurality of visual indicators 138 (e.g., LEDs) for display feedback of, for example, which preset is selected or which lighting loads 104, 106 are energized.
In response to an actuation of one of the buttons 134, 135, 136, the keypads 130, 132 transmit “command” digital messages via the RF signals 110 to the wall-mounted dimmer 112, the remote dimming module 120, and the MWT control module 122 to control the associated loads. The wall-mounted dimmer 112 is also operable to transmit command messages in response to actuations of the control actuator 114 and the intensity adjustment actuator 116. After receiving a command message, the control devices of the load control system 100 are operable to transmit acknowledgement (ACK) messages to the control device that originated the command message. Preferably, the each of the control devices of the load control system 100 is operable to transmit a new command message when the RF communication link is idle, i.e., no control devices are presently transmitting RF signals 110. The originating control device is operable to re-transmit the command message multiple times to ensure that all control devices within the communication range of the originating control device receive the command message.
The load control system 100 also comprises signal repeaters 140, 142 which retransmit any received digital messages to ensure that all of the control devices of the load control system receive all of the RF signals 110. The system may comprise, for example, one to five signal repeaters depending upon the physical size of the load control system 100. Each of the control devices of the load control system 100 are located within the communication range of one of the signal repeaters 140, 142. The signal repeaters 140, 142 are coupled to the AC mains voltage via power supply 144 plugged into electrical outlets 146.
Preferably, one of the signal repeaters 140 operates as a “main” repeater to facilitate the operation of the load control system 100. The main repeater has a database, which defines the operation of the load control system, stored in memory. For example, the main repeater is operable to determine which of the lighting loads 104, 106 is energized and to use the database to control the visual indicators 118, 138 of the dimmer 112 and the keypads 130, 132 accordingly to provide the appropriate feedback to the user of the load control system.
Preferably, each of the control devices stores a portion of the database pertaining to the functionality of the specific control device. For example, each of the keypads 130, 132 may store a portion of the database that determines which lighting presets are selected in response to actuations of the preset buttons 134. Accordingly, if the database directs that a first preset is selected in response to an actuation of the first preset button 134, the keypads 130, 132 are operable to transmit an appropriate “preset” command message (i.e., for the first preset). However, some control devices of the load control system 100 may not have an appropriate amount of memory to store even a portion of the database. Therefore, these control devices alternatively transmit “button” command messages that simply include information regarding which one of the buttons was pressed rather than, for example, a specific preset.
The time period between consecutive transmissions of the command message 200 by the control device is defined as a “cycle” and is, for example, 50 msec in length. Each cycle is split up into multiple “slots”, e.g., four slots when there are up to three signal repeaters in the load control system 100. During the first slot of each cycle, the originating control device (i.e., the keypad 130) is operable to transmit the command message 200. During the second and third slots, the two signal repeaters 140, 142 are operable to transmit respective repeater messages 210, 212, which are simply re-transmissions of the original command message 200. If the system 100 included a third signal repeater, the third signal repeater would transmit a repeater message 214 during the fourth slot of each cycle. When the load control system 100 includes more than three signal repeaters, the length of each cycle is increased, such that each cycle comprises five or six slots if the system has four or five signal repeaters, respectively. Preferably, each control device of the load control system 100 determines the number of signal repeaters and the resulting cycle time during configuration of the load control system.
After the command message 200 or the repeater messages 210, 212, 214 are transmitted, there are three ACK sub-slots in each slot in which the control devices of the load control system 100 (e.g., the wall-mounted dimmer 112) may transmit acknowledgement messages 220 in response to the command message 200. Each of the control devices has predetermined ACK sub-slots during which the control device may transmit the acknowledgement message 220. Specifically, each control device is assigned two ACK sub-slots during each command message event. Preferably, the specific ACK sub-slots are determined by each control device during configuration of the load control system.
As the originating control device transmits a specific command message 200 multiple times and the signal repeaters 140, 142 re-transmit the command message via the repeater messages 210, 220 during the command message event, the command message “propagates” through the load control system 100. Therefore, propagation is defined as the initial transmission and subsequent repeated re-transmissions of a single digital message to ensure that the digital message is received by all of the control devices of the load control system. According to the present invention, the control devices of the load control system 100 are operable to begin transmitting the acknowledgement messages 220 before the end of the propagation, i.e., the end of the command message event.
After the end of the command message event, there is a backoff time, which is divided up into six backoff periods (0, 1, 2A, 2B, 2C, 2D), which each have a length of approximately one cycle. The backoff time allows the control devices of the load control system to transmit digital messages in response to the command message 210.
If neither an ACK propagation message 240 nor a system status message 260 are transmitted during the first backoff period 0, any of the control devices of the load control system 100 are operable to transmit a priority 1 command message (i.e., begin another command message event) during the second backoff period 1. If this does not occur, the control devices are then operable to begin to transmit a priority 2 command message during one of the remaining backoff periods 2A-2D, which is randomly chosen by the transmitting control device. The priority 2 command messages comprise, for example, command messages that were previously transmitted, but were interrupted during propagation in order to allow the transmission of another higher priority digital message. If the control devices do not transmit any new digital messages during the backoff time, there is a wait period before the RF communication link becomes idle.
According to the present invention, the dimmer 112 and the keypads 130, 132 are operable to quickly transmit first and second command messages in response to subsequent actuations of one of the actuators, for example, presses and releases of raise or lower buttons, or a double tap of one of the preset buttons. Therefore, the resulting system operation (i.e., the control of the intensities of the lighting loads 104, 106) is fast and accurate even if the load control system 100 includes control devices spaced apart over long distances, thus requiring a substantially large number of signal repeaters (e.g., up to five signal repeaters).
In order to provide this functionality, the originating control device is operable to interrupt the propagation of a first command message 200A to transmit a second command message 200B as shown in
In addition, the signal repeaters 140, 142 are operable to interrupt the propagation of a first command message and essentially replace first command message with a second command message. For example, if two control devices are outside the communication range of each other and begin to transmit the first and second command messages at the same time, one of the signal repeaters 140, 142 is operable to determine which of the two command message to re-transmit, e.g., whichever of the two command messages has a higher priority as will be described in greater detail below with reference to
Referring to
If none of the preset buttons 134 are being pressed at step 310, but the raise button 135 is being pressed at step 326, the keypad 130 clears and starts a hold timer at step 328. The keypad 130 uses the hold timer to measure how long the raise button 135 is pressed and held. At step 330, the keypad 130 loads a raise command message into the TX buffer and the button procedure 300 exits. If raise button 135 is not being pressed at step 326, but the lower button 136 is being pressed at step 332, the keypad 130 initializes the hold timer to zero seconds and starts the hold timer at step 334, and then loads a lower command message into the TX buffer at step 336.
If either the raise button 135 or the lower button 136 have been released at step 338, the keypad 130 determines the value of the hold timer and stores this value (i.e., the hold time) in memory at step 340. The keypad 130 then loads a raise/lower (R/L) stop command message into TX buffer at step 342. The value of the hold time is included in the stop command message loaded in the TX buffer at step 342. For example, when the dimmer 112 receives the stop command message, the dimmer may use the hold time to adjust the intensity of the lighting load 104 if the dimmer overshot or undershot the desired intensity of the lighting load. If the keypad 130 is not presently transmitting at step 344, the button procedure 300 simply exits. Otherwise, the control flags the stop command message as a superseding message at step 346 and the button procedure 300 exits, such that the keypad 130 will interrupt the propagation of the raise or lower command message to transmit the stop command message.
The flowchart of the command transmitting procedure 400 of
The flowchart of the message receiving procedure 500 of
If the dimmer 112 receives a new digital message at step 510 when the dimmer is presently transmitting a digital message at step 512, the dimmer starts a temporary slot timer at step 520. The temporary slot timer allows the dimmer 112 to be able to synchronize any subsequently transmitted digital messages to the received digital message if the received digital message has a higher priority than the digital message that the dimmer is presently transmitting (as will be described below).
Preferably, an ACK propagation message has a higher priority than a command message or a system status message. Therefore, if the dimmer 112 determines that an ACK propagation message 240 was received at step 522 and an ACK propagation message is presently not being transmitted at step 524, the dimmer synchronizes to the received ACK propagation message. Specifically, the dimmer 112 loads the command message that is presently being transmitted into the TX buffer at step 526. Accordingly, the dimmer 112 will re-transmit the command message loaded into the TX buffer at step 526 after the transmission of the newly received ACK propagation message is complete. The dimmer 112 then decides to use the temporary slot timer at step 530, sets the slot number S to the slot number SMSG from the received command message at step 532, and stores the received message in the RX buffer at step 534. If the dimmer 112 has received an ACK propagation message 240 at step 522, but is presently transmitting an ACK propagation message at step 526, a determination is made at step 536 as to whether the slot number S of the transmitted ACK propagation message is greater than the slot number SMSG of the ACK propagation command message. If so, the dimmer 112 decides to continue with the transmitted ACK propagation message by disregarding the temporary slot timer at step 538, and the message receiving procedure 500 exits. Otherwise, the dimmer 112 uses the temporary slot timer at step 530, sets the slot number S to the slot number SMSG from the received command message at step 532, and stores the received message in the RX buffer at step 534, before the message receiving procedure 500 exits.
A command message preferably has a higher priority than a system status message. Therefore, if an ACK propagation message 240 is not received at step 522, but command message is received at step 540, the dimmer 112 determines whether the dimmer should synchronize to the newly received command message. According to the operation of the load control system 100, the main repeater is operable to determine that a second command message should supersede an initial command message transmitted by the dimmer 112 (as will be described in greater detail below with reference to
If the received command message is not a superseding message at step 542, the dimmer 112 determines at step 536 if the slot number S of the transmitted command message is greater than the slot number SMSG of the received command message at step 536. If so the dimmer 112 disregards the value of the temporary slot timer at step 538 and the message receiving procedure 500 exits. If the received command message is not a superseding message at step 542 and does not have a higher slot number S than the transmitted command message at step 536, the dimmer 112 loads the command message that is presently being transmitted into the TX buffer at step 526. Accordingly, the dimmer 112 will re-transmit the command message loaded into the TX buffer at step 526 after the transmission of the newly received command message is complete. The dimmer 112 then decides use the temporary slot timer at step 530, sets the slot number S to the slot number SMSG from the received command message at step 532, and stores the received message in the RX buffer at step 534.
If the dimmer 112 did not receive a command message at step 540, but received a status message at step 546, the dimmer simply disregards the temporary slot number at step 538 and the message receiving procedure 500 exits.
Referring to
Referring to
If the keypad 130 is presently transmitting at step 634, but the present slot is not the slot in which the keypad should re-transmit the command message at step 640, the slot procedure 600 simply exits. However, if the keypad 130 should re-transmit the command message during the present slot at step 640 and the TX buffer does not contain a command message that is flagged as a superseding command message at step 642, the keypad simply re-transmits at step 644 the present command message (i.e., the command message that was originally transmitted at step 418 of
If the keypad 130 determines at step 642 that the TX buffer contains a command message that is flagged as a superseding command message, but determines at step 646 that the command message in the TX buffer was not received from the main repeater, the keypad interrupts the propagation of the original command message to transmit the superseding command message. Accordingly, the slot number S is set to one at step 648 and the keypad 130 transmits the new command message at step 650 for the first time (i.e., as shown by the second command message 200B in
If the slot number S is greater than the maximum command message event slot number value SMAX-C at step 632, the keypad 130 is finished transmitting the command message event and is in the backoff period. The keypad 130 sets the slot number S to one at step 652 and executes the backoff routine 670.
Referring back to
When the backoff routine 670 is executed during the second backoff period 1, the keypad 130 is operable to transmit a priority 1 command message. Specifically, if the slot number S is equal to the predetermined number SCYCLE of slots per cycle plus one at step 682, a determination is made as to whether the keypad 130 has a priority 1 command message to transmit at step 684. If the keypad 130 has a priority 1 command message to transmit at step 684 and the RF communication link is not busy at step 648, the keypad sets the slot number S to one at step 688 and transmits the priority 1 command message at step 689.
If the keypad 130 does not transmit a priority 1 command message during the second backoff period 1, the keypad is operable to transmit a priority 2 command message during one of the remaining backoff periods 2A-2D. If the keypad 130 does not have a priority 1 command message to transmit at step 684, the keypad randomly chooses one of the remaining backoff periods 2A-2D at step 690 before the backoff routine 670 exits. When the backoff routine 670 is executed after the second backoff period 1, a determination is made at step 692 as to whether the preset slot is the first slot of the randomly-chosen backoff period. If so, the keypad 130 determines if there is a priority 2 command message to transmit at step 694 and if the RF communication link is busy at step 696. If the keypad 130 does not have a priority 2 command message to transmit at step 694 or the link is busy at step 696, the backoff routine 670 simply exits. Otherwise, the keypad 130 sets the slot number S equal to one at step 698 and transmits the priority 2 command message at step 699, before the backoff routine 670 exits.
Referring to
If the dimmer 112 receives a raise command at step 724, the dimmer begins to increase the intensity of the lighting load 104 at a fourth fade rate (e.g., approximately 0.33% of the dimming range per millisecond) at step 726. Similarly, if the dimmer 112 receives a lower command at step 728, the dimmer begins to decrease the intensity of the lighting load 104 at the fourth fade rate at step 730. When the dimmer 112 receives a stop command at step 732, the dimmer immediately stops changing the intensity of the lighting load 734. The dimmer 112 then determines the desired intensity from the hold time that is transmitted with the stop command and compares the desired intensity to the actual present intensity at step 736. If the actual present intensity is equal to the desired intensity at step 736, the processing procedure 700 simply exits. However, if the actual present intensity is not equal to the desired intensity at step 736 (i.e., the dimmer 112 overshot or undershot the intensity), the dimmer fades the lighting load 104 to the desired intensity at a fifth fade rate (e.g., approximately 0.08% of the dimming range per millisecond) at step 738. Preferably, the fifth fade rate is substantially slow such that a user of the load control system 100 does not notice that the intensity of the lighting load 104 is changing.
Accordingly, when the raise button 135 of the keypad 130 is first pressed, the keypad 130 determines that the raise button has been pressed during the button procedure 300 and then transmits a first command message 200A during the command transmitting procedure 400. The slot procedure 600 then begins to execute during each slot (as shown in
Similarly, if a preset button 134 of the keypad 130 is actuated, the keypad 130 loads a preset command into the TX buffer during the button procedure 300, transmits a first command message 200A during the command transmitting procedure 400, and begins to execute the slot procedure 600 during each slot. The dimmer 112 receives the first command message 200A and loads the preset command into the RX buffer during the message receiving procedure 500. If the dimmer 112 is programmed to turn off the lighting load 104 in response to the preset command (i.e., an off preset), the dimmer begins to fade the lighting load off at the first fade rate during the processing procedure 700 (at step 716). If the preset button 134 of the dimmer is actually double-tapped, the keypad 130 loads a “double-tap” command into the TX buffer and flags the “double-tap” command as a superseding command message during the button procedure 300. During the slot procedure 600, the keypad 130 determines that there is a superseding command message in the TX buffer (at step 642) and the keypad begins to transmit the second superseding command message 200B rather than the first command message 200A (at step 650). The dimmer 112 quickly receives the second command message 200B during the message receiving procedure 500 and controls the intensity of the lighting load 104 to the maximum intensity during the processing procedure (at step 722).
If the signal repeater 140 is configured as a main repeater at step 815, the signal repeater is operable to determine at step 819 if a second command message should supersede the received command message. For example, if the received command message is a button command message, the main repeater uses the database to determine what command message, e.g., a specific preset command message, should be transmitted instead of (i.e., should supersede) the received button message. If a second command message should supersede the received command message at step 819, the signal repeater stores the superseding command message in the TX buffer at step 820.
If the signal repeater 140 is presently transmitting a digital message that is different than the received digital message at step 812, the signal repeater first starts a temporary slot timer at step 822 and then determines which of the two messages (i.e., the transmitted message and the received message) has a higher priority and will be thus re-transmitted to the control devices of the load control system 100. If the transmitted message is an ACK propagation message at step 824, but the received message is not an ACK propagation message at step 825, the signal repeater 140 disregards the temporary slot timer at step 828 and the repeater receiving procedure 800 exits, such that the signal repeater continues to re-transmit the transmitted message. If the transmitted message and the received message are ACK propagation messages at steps 824, 825, the signal repeater 140 decides to re-transmit the “older” digital message, i.e., the digital message that has the higher slot number. Specifically, if the slot number S of the transmitted message is greater than the slot number SMSG of the received message at step 826, the signal repeater 140 disregards the temporary slot timer at step 828 and the repeater receiving procedure 800 exits. On the other hand, if the slot number S of the transmitted message is less than the slot number SMSG of the received message at step 826, the signal repeater 140 decides at step 829 to use the temporary slot timer for continued communication, before storing the received message in the TX buffer at step 830 and setting the slot number S equal to the slot number SMSG of the received message at step 818.
If the transmitted message is not an ACK propagation message at step 824, but is a system status message at step 832, a determination is made at step 834 as to whether the received message is a system status message. If the transmitted message and the received message are system status messages at steps 832, 834, the signal repeater 140 determines which of the transmitted message and the received message has a larger slot number at step 836. If the slot number S of the transmitted message is greater than the slot number SMSG of the received message at step 836, the signal repeater 140 disregards the temporary slot timer at step 828 and the repeater receiving procedure 800 exits. If the slot number S of the transmitted message is greater than the slot number SMSG of the received message at step 836 or if the received message is not a system status message at step 834, the signal repeater 140 decides to use the temporary slot timer at step 829, stores the received message in the TX buffer at step 830, and sets the slot number S equal to the slot number SMSG of the received message at step 818, before the repeater receiving procedure 800 exits.
Referring to
If both the transmitted and received messages are command messages at steps 838, 852, the signal repeater 140 determines whether the transmitted and received messages are both from the same control device at step 854. If so, the signal repeater re-transmits the newer of the two command messages. Specifically, if the slot number SMSG of the received message is smaller than the slot number S of the transmitted message at step 856, the signal repeater 140 uses the temporary slot timer at step 858, sets the slot number equal to the slot number SMSG from the received message at step 860, and stores the received message in the TX buffer at step 862. Otherwise, the signal repeater 140 disregards the temporary slot timer at step 864. If the transmitted and received messages are from different control devices at step 854, the signal repeater 140 determines which of the transmitted and received messages has the larger slot number at step 866. Specifically, if the slot number S of the transmitted message is not larger than the slot number SMSG of the received message at step 866, the signal repeater 140 disregards the temporary slot timer at step 868. Otherwise, the signal repeater 140 decides to use the temporary slot timer at step 858, sets the slot number S to the slot number SMSG of the received message at step 860, and stores the received message in the TX buffer at step 862.
If the slot number S is greater than the maximum slot number value SMAX at step 916 (i.e., during the backoff period), the signal repeater 140 determines if an ACK propagation message 240 has been transmitted at step 924. If an ACK propagation message 240 was transmitted at step 924 and the signal repeater 140 should transmit during the present slot at step 926, the signal repeater re-transmits the ACK propagation message at step 928.
If the signal repeater 140 did not receive an ACK propagation message 240 at step 930, a determination is made at step 930 as to whether the signal repeater 140 is configured as a main repeater, i.e., whether the signal repeater 140 should transmit a system status message. If the signal repeater 140 is configured as a main repeater at step 930, but the system status has not changed at step 932 (i.e., none of the visual indicators 118, 138 should be updated), the repeater slot procedure 900 simply exits. However, if the system status has changed at step 932 and the signal repeater 140 should transmit during the present slot at step 934, the signal repeater transmits the system status message at step 936 and the repeater slot procedure 900 exits. As the repeater slot procedure continues to periodically execute, the signal repeater 140 continues to transmit the system status messages at step 936 until the signal repeater no longer has additional system status information to transmit.
Therefore, the signal repeaters 140, 142 are also operable to interrupt the propagation of a first digital message by transmitting a second digital message that has a higher priority than the first digital message.
While the present invention has been described with reference to a time-based communication technique, the method of the present invention could be applied to other types of communication techniques and communication networks, such as, for example, mesh networks. The control devices of an RF mesh network do not transmit digital messages during predetermined time slots. Alternatively, the control devices are operable to begin transmitting a new digital message after a random amount of time after the end of the last transmitted digital message on the RF communication link.
The control devices of an RF mesh network are each operable to originate digital messages and to operate as signal repeaters, i.e., to retransmit received digital messages. The control devices are each assigned unique device addresses for use during communication. Preferably, each new digital message transmitted by the control devices comprises a new sequence number, which is also included with each re-transmission of the digital message. The control devices comprise routing tables, which are built during the initial configuration of the RF mesh network and define how digital messages move from one device to another device through the mesh network. For example, if control device A receives a digital message intended for control device B, the control device A is operable to use the routing table to determine that the received digital message should be re-transmitted to control device C. As each control device in the mesh network re-transmits the digital message based on the routing table, the digital message propagates through the mesh network to the intended receiving control device.
A receiving control device is operable to transmit an acknowledgement message to the originating control device in response to receiving a digital message that includes the device address of the control device. The control devices are also operable to listen to re-transmissions of digital messages to ensure that transmitted digital messages are received. For example, if control device A transmits a digital message to control device B and control device B re-transmits the digital message to control device C, control device A is operable to listen to the digital message re-transmitted by control device B to ensure that control device B received the digital message that control device A transmitted.
The control devices of the RF mesh network are also operable to transmit broadcast digital messages (i.e., to all control devices) or multicast command messages (i.e., to a group of control devices). For example, the control devices may use multicast digital messages to transmit raise, lower, or stop command messages to only the dimmers and load control devices of the mesh network that are affected by the specific command message. Each control device is operable to re-transmit a received broadcast or multicast message to all control devices within the communication range of the control device. Therefore, each control device maintains a list of all of the control devices within the communication range of the control device. When each control device receives a broadcast or multicast message, the control device is operable to ensure that each device within the communication range receives the broadcast or multicast message.
If an originating control device has a superseding digital message to transmit, the originating control device will transmit a new digital message containing the superseding digital message along with specific instructions that this digital message supersedes the old “superseded” digital message. For example, the superseding digital message may include the sequence number of the superseded digital message. Accordingly, any control devices that receive the superseding digital message will cancel any pending re-transmissions of the superseded digital message and will no longer continue to ensure that other control devices have received the superseded digital message.
The receiving procedure 1000 is executed in response to receiving a new digital message at step 1010. If the received digital message is a digital message that was previously received by the control device (i.e., is now being re-transmitted by another control device) at step 1012, or is an acknowledgement message at step 1014, the control device removes the device address of control device that transmitted the digital message from the ACK list at step 1016, and the receiving procedure 1000 exits. If the received digital message is a broadcast or multicast digital message at step 1018, the control device loads the received digital message into the RX buffer at step 1020. If the received digital message has a target address that is equal to the device address of the control device at step 1022, the control device loads an acknowledgement message into the TX buffer at step 1024 and then loads the received digital message into the RX buffer at step 1020.
Next, the control device determines if the received digital message should be re-transmitted at step 1026. If the received digital message should be re-transmitted at step 1026 and the received digital message includes an indication that the digital message is a superseding message at step 1028, the control device removes the superseded message from the TX buffer at step 1030, and loads the superseding message into the TX buffer at step 1032. Therefore, if the control device has not yet re-transmitted the superseded message, the control device will not re-transmit the superseded message. If the control device has already transmitted the superseded message, the control device will no longer continue to ensure that the other control devices are receive the superseded message (i.e., will not re-transmit the superseded message if one or more control devices did not receive the superseded message).
If the received message is not a superseding message at step 1028, a determination is made as to whether the received message was previously superseded at step 1034 (i.e., the control device received the superseding digital message before the control device received the superseded digital message). If so, the receiving procedure 1000 simply exits, thus ignoring the superseded digital message. If the received digital message is not a superseded message at step 1034, the control device loads the received message into the TX buffer at step 1032 and the receiving procedure 1000 exits.
However, if the control device has a digital message to transmit at step 1112, the control devices chooses a random amount of time (e.g., up to 64 msec) at step 1114. After the random amount of time has passed at step 1116, a determination is made as to whether the communication link is busy at step 1118 (i.e., another control device is presently transmitting). If so, the transmitting procedure 1100 simply exits. If the link is not busy at step 1118 and the control device does not have a superseding message to transmit at step 1120, the control device transmits the digital message at step 1122 and the transmitting procedure 1100 exits. If the control device has a superseding message to transmit at step 1120, the control device removes the superseded message from the TX buffer at step 1124 and transmits the superseding digital message at step 1126. Specifically, the control device includes information that the superseding digital message replaces the superseded digital message. For example, the sequence number of the superseded digital message is included in the superseding digital message.
If the ACK list procedure 1200 has finished at step 1218 (i.e., the control device has reviewed the ACK list for each transmitted digital message), the ACK list procedure 1200 simply exits. However, if there are still ACK lists to review at step 1218, the control devices moves to the next digital message at step 1220 and the procedure 1200 loops around to review the next ACK list.
Therefore, the control devices of the mesh network according to the second embodiment of the present invention are also operable to interrupt the propagation of a first digital message to transmit a second superseding digital message. For example, when a raise button of a keypad of the mesh network is first pressed, the keypad transmits a raise command message as a multicast message at step 1122 during the transmitting procedure 1100. Any control devices that receive the raise command message will store and re-transmit the raise command message. When the raise button of the keypad is released, the keypad will transmit a stop command message as a superseding message (including the sequence number of the previously-transmitted raise command message) at step 1126 during the transmitting procedure 1100. If the stop command message is received by any control device that has received the raise command message, the control device will discard the raise command message to alternatively re-transmit the stop command message.
An RF mesh network is described in greater detail in U.S. Pat. No. 6,879,806, issued Apr. 12, 2005, entitled SYSTEM AND A METHOD FOR BUILDING ROUTING TABLES FOR ROUTING SIGNALS IN AN AUTOMATION SYSTEM, and U.S. Pat. No. 6,980,080, issued Dec. 27, 2005, entitled RF HOME AUTOMATION SYSTEM WITH REPLICABLE CONTROLLERS. The entire disclosures of both patents are hereby incorporated by reference.
Although the present invention has been described in relation to particular embodiments thereof, many other variations and modifications and other uses will be apparent to those skilled in the art. It is preferred, therefore, that the present invention be limited not by the specific disclosure herein, but only by the appended claims.