Wireless network protocol systems and methods

Information

  • Patent Grant
  • 11039371
  • Patent Number
    11,039,371
  • Date Filed
    Wednesday, June 5, 2019
    5 years ago
  • Date Issued
    Tuesday, June 15, 2021
    2 years ago
  • Inventors
  • Original Assignees
  • Examiners
    • Pham; Brenda H
    Agents
    • Capitol IP Law Group, PLLC
Abstract
A system and method for providing wireless network communications between a plurality of remote devices and a site controller are provided. Each network and the site controller communicates using a communications protocol adapted to allow remote devices and the site controller to independently control the communication path for transmissions sent by each device. In some embodiments, remote devices can collect and store information about other remote devices and available communication paths for optimum data transmission. Also, in some embodiments, remote devices can quickly join a preexisting network by communicating with a site controller and/or other remote devices. Other embodiments are also claimed and described.
Description
TECHNICAL FIELD

The present invention relates generally to communication networks, and more specifically, to a protocol for wireless communications, wireless communication systems, and wireless communication methods.


BACKGROUND

In recent years, wireless communications systems have become increasingly popular. Today, wireless systems are used for many applications, from wireless device monitoring to wireless internet access, and in both home and business environments.


In many homes built prior to the Internet revolution, electronic wiring is generally not suitable for high-speed Internet connectivity requirements. Consequently, new solutions have been developed allowing users to establish a wireless network inside a home or place of business so that one or more devices like computers, PDAs and other electronic devices may wirelessly communicate with a centrally positioned device that is coupled to the Internet via a DSL, cable modem, or other high-speed connection.


While the initial bandwidth of devices implementing such wireless technologies was fairly small, subsequent generation devices have substantially increased wireless throughput. Indeed, users can wirelessly connect to the Internet and still experience the same benefits as if wired via a broadband connection.


Yet even with the advent of wireless networks for home and business applications, the wireless Internet connection is still limited by the range of wireless connection between the user's device, such as a laptop or PDA, and the base station or access point. Even wireless applications according to IEEE standard 802.11 only provide for a few hundred feet of wireless connectivity. Thus, even though an Internet user may be disconnected by wires from the Internet, the range of motion still corresponds to the communicable range of the wireless modem access point.


Moreover, while homes and businesses may establish various Internet access points, or hotspots, the hotspots essentially create a hodge-podge of Internet access locations confining a user's range of movement. As a non-limiting example, a user may go to a retail coffee house and wirelessly connect to the Internet through an access point provided by the coffee house retailer. Once the user leaves the coffee house and travels beyond the communicable range of the access point, however, the user no longer has Internet access for the wireless device.


This limitation arises in part because last leg access has historically only been available by wired connections. As technology continues to progress and new applications for such technology are developed, however, users will have greater requirements for wireless connectivity to the Internet beyond the prescribed range as discussed above.


As such options expand, there is an increasing need for various wireless systems to effectively communicate with one another. Additionally, the expansion of wireless networking creates an opportunity for a variety of devices to take advantage of wireless communications that previously could not communicate with other devices.


To take advantage of such opportunities, a reliable communications protocol is needed in the art. Further, there is a need in the art for systems and methods for wirelessly communicating data between wireless devices utilizing reliable communications. It is to the provision of such wireless methods, systems, and protocols that the embodiments of present invention are primarily directed.


BRIEF SUMMARY

The various embodiments of the present invention provide wireless communication systems and methods. Some embodiments also provide a wireless communication protocol for use with radio frequency networks where one or more remote devices can wireless communicate with a site controller and/or other remote devices.


According to an embodiment of the present invention, a wireless communication network having a site controller wirelessly coupled to a plurality of wireless remote devices is provided. A wireless communication system can comprise a first remote device wirelessly coupled to the site controller. The first remote device can be adapted to determine a communication path between the first remote device and the site controller. The communication path can be adapted to wirelessly couple the first remote device directly to the site controller, the first remote device to a second remote device, or the second remote device to the site controller.


The remote devices, such as the first remote device, according to some embodiments can also have additional features. For example, the first remote device can be further adapted to maintain a connection list identifying one or more of said plurality of remote devices and a success data score representative of successful and unsuccessful transmissions to remote devices. In addition, the first remote device can determine a communication path by selecting a second remote device from the connection list based at least partially on the success data score. Still yet, the first remote device can select the second remote device because the second remote device is associated with a favorable transmission successes score. The first remote device can also be adapted to select a second communication path when a transmission to the second remote device is unsuccessful.


Another feature according to some embodiments of the present invention includes that at least one of the first remote device and the second remote device can select a third remote device from the connection list. The selection can be based at least partially on an associated success data score maintained by the at least one of the first remote device and the second remote device.


According to another embodiment of the present invention, a method for communicating in a network is provided. The method can comprise selecting a wireless communication path between a first remote device and a site controller, and using a first remote device logic to select the wireless communication path. The wireless network can have a site controller and a plurality of remote devices. The plurality of remote devices each preferably having remote device logic, such as firmware or other stored instructions. The remote devices also preferably have a processor, a memory, and a transceiver.


The various embodiments of the present invention can also include additional method embodiments. For example, a method can comprise selecting a wireless communication path from a first remote device to a site controller wirelessly couples the first remote device directly to the site controller. In addition, selecting a wireless communication path from a first remote device to a site controller using a first remote device logic can comprise selecting a communication path from the first remote device to a second remote device, and selecting a communication path from the second remote device to a site controller. Another method embodiment can also include maintaining a connection list identifying one or more remote devices and a success data score representative of successful and unsuccessful transmissions to remote devices.


Methods according to the various embodiments of the present invention can also include additional features. For example, selecting a wireless communication path from a first remote device to a site controller using a first remote device logic can comprise selecting a second remote device from a connection list. In addition, a second remote device can be selected because it is associated with a favorable transmission success record. Another method embodiment further comprises determining that a transmission to the second remote device was unsuccessful, and selecting a third remote device from the connection list. Still yet another method embodiment comprises selecting a communication path from the third remote device to the site controller and/or selecting a communication path from the second remote device to the site controller.


According to another embodiment of the present invention, a computer program is provided. The computer program can determine a communication path between a plurality of remote devices and a site controller. The communication path can consist of none, one, or multiple remote devices. Each of the plurality of remote devices can be adapted to store and run the computer program. The computer program can comprise a first logic (instruction set) to select a wireless communication path from a first remote device of the plurality of remote devices to the site controller. The computer program can also comprise a second logic (instruction set). The second logic can be adapted to select a second remote device of the plurality of remote devices as part of the communication path from the first remote device to the site controller.





BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings incorporated in and forming a part of the specification, illustrate several aspects of the present invention, and together with the description explain the principles of the various embodiments of invention. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present invention. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views:



FIG. 1 is a diagram of a wireless network according to an exemplary embodiment of the present invention.



FIG. 2 is an ortho-normal plot of OOK modulation in accordance with an exemplary embodiment of the present invention.



FIG. 3 is a diagram of a plurality of wireless networks for providing uninterrupted mobile access to a WAN in accordance with an embodiment of the present invention.



FIG. 4 is a timing diagram of a preface for use in a message in an exemplary embodiment of the present invention.





DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

A system for providing wireless access to a variety of devices is disclosed in accordance with some embodiments of the present invention. The system can comprise a gateway that is wirelessly coupled to a wide area network (“WAN”) so that the gateway provides first and last leg access to the WAN. As used herein, coupled can mean directly or indirectly coupled. The gateway translates information for transmission over the WAN into a predetermined WAN protocol and also translates information received from the wide area network into a predetermined wireless communication protocol. A user can wirelessly couple a portable device with a transceiver to the gateway according to the predetermined wireless communication protocol for maintaining wireless connection with the wide area network. Additionally, the system can be adapted to maintain communications between the wireless device and the wide area network while the wireless device is mobile.



FIG. 1 is a block diagram of a system according to an exemplary embodiment of the present invention. As illustrated in FIG. 1 a Transceiver/Site Controller 110 can communicate wirelessly with one or more remote devices 105, 115, 120, 125, 130, 135, 140, 145. Throughout this description, the various remote devices/repeaters 105, 115, 120, 125, 130, 135 may be referred to generically as remote device 115 or repeater 115. Each remote device 115 can include a transceiver adapted to communicate with the site controller 110. Additionally, one or more of the remote devices 115 can also be adapted to communicate with other remote devices 115. The multiple remote devices 115 are shown to illustrate that each remote device can be adapted to communicate directly with the site controller 110 and/or with other remote devices 115. Generally, if a remote device 115 is located remotely such that it is out of range of the site controller 110, it 115 will communicate through other remote devices 115 acting as repeaters 115.


Each remote device 115 can operate as both a remote device and as a repeater. When operating as a repeater, the device 115 receives and retransmits messages received from other remote devices 115. Each remote device 115 contains a logic unit for processing data, logic instructions, and implementing a communication protocol, and a memory for storing data and logic instructions. Accordingly, each remote device 115 can independently route messages without receiving instructions directly from a site controller 110. Such an arrangement promotes more efficient communications. In addition, each remote device 115 can monitor the success or failure of transmissions and determine a communication path for messages. For example, each remote device 115 can monitor one or more communication paths and assign a communication path a transmission rate (or score) representative of successful and unsuccessful transmissions. And based on the transmission rate (or score), a remote device 115 can determine an optimum communication path for data transmission.


Additionally, a remote device 115 can be adapted to only operate as a repeater or can be adapted such that is does not act as a repeater and is a non-repeating remote device. Further repeaters and remote devices can be used that only repeat or do not repeat transmissions.


In an exemplary embodiment of the present invention, a wireless communication protocol is used, via a radio link (radio frequency (RF) transmissions) for example, between a transceiver/site controller 110 and various remote devices 115 which are designed to operate within a wireless network 100. Each remote device 115 preferably includes logic for implementing a communications protocol and for selecting a communications path from the remote device 115 to the site controller 110 or to another remote device 115. An exemplary communications protocol will be described, but those skilled in the art will recognize that alternative protocols, or variations of the disclosed protocol may be utilized consistent with the disclosures of the present invention.


In an exemplary embodiment of the present invention, a remote device 115 is adapted to store transmission data associated with the success or failure of transmissions sent to other remote devices 115. This transmission data can be used to select a communications path between a remote device 115 and the site controller 110. Typically, a remote device 115 selects a path with a high transmission success rate. Generally, a high transmission success rate is not based on a predetermine rate, and can be selected by comparison with one or more success rates for alternative paths.


An exemplary protocol, in accordance with some embodiments of the present invention, can be used in a variety of environments, including, but not limited to, equipment utilized at sites where automatic data gathering/reporting and safety system features may be incorporated.


In an exemplary embodiment of the present invention, the protocol includes, but is not limited to, a basic message structure, including preface and postscript, message content, error checking, addressing scheme, and message routing for devices operating within the network. Additionally, in some embodiments, the protocol can handle both “normal” and “emergency” traffic flow throughout the network. For example, emergency transmissions may receive a higher priority than normal transmissions.


An exemplary embodiment of the protocol provides an open-ended architecture protocol, with a non-standard Manchester bit encoding, which employs on/off keyed (“OOK”) modulation in the single-channel implementation. In another exemplary embodiment, each remote device in the system can be an intelligent NODE, which constructs a response to a particular command with “real time” data affecting that particular device at the time of the request. In yet another exemplary embodiment of the present invention, a communication protocol is based on a seven layer network model. The protocol can include, but is not limited to, a physical layer, a data link layer, a network layer, a transport layer, a session layer, a presentation layer, and an application layer. The various layers of the communication protocol are discussed in turn below.


Layer 1—Physical Layer


The Physical Layer defines the RF communications hardware interface (radio) and electrical characteristics. This includes the RF carrier, modulation method, data bit encoding and packet framing.


Carrier Frequency


In an exemplary embodiment of the present invention, the RF carrier used for single-channel operation has a nominal center frequency of 916.5 Mhz (+/−200 Khz).


Modulation Scheme


In an exemplary embodiment of the present invention, the protocol, in single-channel mode, employs on/off keyed (“OOK”) modulation which is a special case of amplitude shift keyed (“ASK”) modulation, where no carrier is present during the transmission of a zero. OOK modulation has the advantage of allowing the transmitter to be idle during the transmission of a “zero”, therefore conserving power.



FIG. 2 is a ortho-normal plot of OOK modulation in accordance with an exemplary embodiment of the present invention. The ortho-normal plot may also be referred to as a signal diagram. FIG. 2 illustrates the additive noise 205, 215, around two signals 210, 220.


Data Bit Encoding


In an exemplary embodiment of the present invention, the protocol uses a modified Manchester encoding as the method of transmitting data bits. Preferably, the system operates at a basic data rate of 2400 bits/second (4800 transitions/second), which enables the receiver to easily synchronize with the sender. Additionally, the bits of each byte of the message are transmitted least significant bit first, most significant bit last.


Manchester encoding splits each bit period into two, and ensures that there is always a transition between the signal levels in the middle of each bit. This allows the receiver to synchronize with the sender. Those skilled in the art will appreciate that various alternative encoding schemes and transmission speeds may be used in place of the disclosed Manchester encoding scheme.



FIG. 3 is an illustration of a typical transmission sequence in accordance with an exemplary embodiment of the present invention. As shown in FIG. 3, a data transition occurs in the middle of each clock cycle. In Manchester Encoding, clock and data signals are encoded in a single synchronous bit stream. In this stream, each bit is represented by a transition. If the bit is a ‘0’, the transition is from high to low. If the bit is a ‘1’, the transition is from low to high. Thus, in a typical data stream, there will always be a transition at the center of a bit, while at the beginning of a bit there will only be a transition depending on the value of the previous bit. The encoding may be alternatively viewed as a phase encoding where each bit is encoded by a positive 90 degree phase transition, or a negative 90 degree phase transition. Manchester coding is therefore sometimes known as a bi-phase coding.


A Manchester encoded signal contains frequent level transitions, which allow the receiver to extract the clock signal reliably. The penalty for introducing frequent transitions, is that the Manchester coded signal consumes more bandwidth than the original signal (sequence of logic ones and zeros, or NRZ), but it still compares well with the bandwidth requirements of other encoding systems, such as pulse width modulation (“PWM”).


Packet Preamble and Postscript


In an exemplary embodiment of the present invention, a message preamble (preface) and postscript (trailer) is used to obtain bit and byte synchronization and to frame the message. Accordingly, a device 115 transmitting a message begins the message with a preamble and follows the message with a postscript.



FIG. 4 is a timing diagram of a preface for use in a message in an exemplary embodiment of the present invention. For single-channel operation, the preface can preferably be 24 logic ones followed by two bit times of a high voltage with no transition, with the first byte of the message following immediately. Alternatively, other prefaces can be used in accordance with the present invention.


The postscript can be the transition, if necessary, of the wireless device's transmit data line from a high voltage to a low voltage. Additionally, the transmit data line is preferably not left high after a message has been sent.


A receiving device 115 preferably decodes, at a minimum, the last four logic ones and the transitionless marker of the preface. If a receiver 115 is not able to decode bits of a preface, the message can be ignored.


Layer 2—Data Link Layer


In an exemplary embodiment of the present invention, the Data Link Layer defines how physical media is accessed by network devices 115, as well as verification of successful message delivery. This includes collision avoidance, error detection, message acknowledgement, and message retries.


Packet Collision Avoidance


In an exemplary embodiment of the present invention, it is desirable to avoid having multiple packets transmitted on a channel simultaneously. Accordingly, before attempting to transmit a message, a device 105 preferably first listens for any conflicting RF traffic on a transmission channel it intends to use. If traffic is detected on this channel, the device 115 preferably waits a random period of time (preferably up to 1 second) and then check the channel again for traffic. The device 105 can continue to monitor the transmission channel in this manner until no conflicting traffic is detected, at which time it can begin transmitting its message.


In the event that two or more devices 115 attempt to transmit on the same channel at the same time (collision), receiving devices 115 can recognize that the packet has been corrupted and ignore the message. This will result in a “negative acknowledge” condition, which will force the transmitting device 115 to resend the original message.


Error Detection


Devices 115 implementing the protocol can use a standard cyclic redundancy check, such as a CRC-16 calculation, to determine whether any errors are present in a received transmission. Those skilled in the art will be familiar with various error detection schemes and can use alternative schemes if desired.


Preferably, all the message bytes beginning with the “TO” Address and ending with the last data byte (or CMD Byte if no data is present) are included in the checksum. The Preface and Postscript (if any) are not generally included in the checksum. The transmitting device 105 can append the calculated checksum (16-bits for CRC-16) onto the end of the message. If a received packet or message fails a checksum test, it can be ignored by the receiving device, resulting in a “negative acknowledge” condition.


Message Acknowledgement


Upon receipt of a message, a receiving device 115 can acknowledge the message as received correctly (Positive) or not received correctly (Negative).


Positive Acknowledgement


A positive acknowledgement to any message shall be obtained in two manners according to some embodiments of the present invention: tacitly (implied) or actually. A tacit, or implied, positive acknowledgement for an RF transmitted message can be obtained whenever the retransmission (or repeat) of a message, by a next device, Remote Device/Repeater 120 in the communication chain, is detected by a transmitting (sending) device (remote device 125). This type of acknowledgement occurs during either a downstream operation (from the Transceiver/Site Controller 110 or a repeater 120, to a repeater 115) or during an up-stream operation (from a remote device 125 or repeater 120, to a repeater 115).


A transmitting device (110 or 125) preferably listens for a message to be repeated (retransmitted) by a next device 120 in the downstream or upstream path. The repeat transmission preferably occurs within a predetermined period. This predetermined period is generally a fixed time-out period established for a transmitting (sending) unit 110, 125. The transmitting remote device 125 can, upon hearing the repeat transmission, verify that the message number (Msg Num) of the message being repeated is identical to the message number (Msg Num) of the original message. A transmitting device 125 can also verify that the “FM” (From) address is the address to whom the message was transmitted. If the message numbers are the identical and the “From” address correct, a positive acknowledgement shall be implied.


Actual Acknowledgement


An actual positive acknowledgement is obtained whenever a response message is received, by either the Transceiver/Site Controller 110 or a repeater 120, from a remote device 125 (or repeater). This type of acknowledgement generally occurs during downstream repeat message processing (from the Transceiver/Site Controller 110 or repeater 120 to a remote device 125). The response message, an upstream repeat message, can contain the requested data (or status) supplied in response to the command contained in the original downstream repeat message.


Additionally, when the Transceiver/Site Controller 110 or repeating device 120 receives a message directly from a repeater 120 or a device 125, it can transmit an “0x01” (Positive Acknowledge) command message. This command message can be used to acknowledge receipt of the message.


Negative Acknowledgement


A negative acknowledgement can occur whenever a “Downstream Repeat” or an “Upstream Repeat” message is not positively acknowledged. During a downstream repeat operation, the Transceiver/Site Controller 110, or Repeater 120 (or device 120 that also functions as a Repeater 120), can attempt an original transmission and variable number of retries to the downstream addressed (target) device.


If the downstream repeat message is not positively acknowledged, either tacitly or actually, after all the transmission attempts, the sending repeater 115 can transmit a Negative Acknowledge message upstream to the unit (Transceiver/Site Controller 110 or Repeater 115) that sent it the downstream repeat message. In an exemplary embodiment of the present invention, the Negative Acknowledge command can be signified by transmitting “0x02” in the data field of a message. The Negative Acknowledge message preferably increments the message number (Msg Num) contained in the original downstream repeat message, and return the six-byte address of the non-acknowledging device plus the six-byte address of the previous device. A Negative Acknowledgement can then be returned, in normal Repeater manner, to the Site Controller 110, which originated the message.


In the case of an upstream repeat operation, a remote device 115 (or repeater 115) preferably attempts an original transmission and variable number of retries to its highest priority upstream address. If the message is not acknowledged, the remote device 115 (or repeater 115) can then attempt the same for its next highest priority upstream address. If the message is still not acknowledged, and there are no more valid upstream addresses, then a negative acknowledgement condition exists. For a remote device 115, a negative acknowledgement can be treated as a downstream repeat negative acknowledgement.


In the case of a repeater 115, this negative acknowledgement can result in the downstream (sending) unit 120 attempting message transmission using its next highest priority upstream address.


Message Time-Outs and Retries


In an exemplary embodiment of the present invention, it is desirable to avoid waiting for an acknowledgement message for an extended period of time. Accordingly, the disclosed protocol provides for a time-out period and a device 115 can retry a message if it does not receive an acknowledgement prior to the end of the time-out period. Preferably, a variable time-out of 1 second+250 milliseconds will result in a “negatively acknowledged” transmission attempt if the device 115 does not hear the preamble of the command message being retransmitted by the next repeater 115 in the path of either a downstream or an upstream repeat operation. Or if the device 115 is programmed to also function as a repeater 115, the device 115 can receive the preamble of a requested response message from a downstream target device 115 if no other repeaters exist in the path.


The time-out is preferably reset (begins again) and has a value of one (1) second if another unit seizes the channel before a positive acknowledgement can be received. The protocol can also be configured for a random time-out duration to be generated by a transmitting device 115. When a device does not receive a “positive acknowledgement” before the expiration of the time-out period, it can attempt retransmission (retries) of a message.


Downstream Retries


For downstream operations, a device 115 (that is programmed to also function as a repeater 115) can attempt an original transmission and a variable or predetermined number of retries to the addressed device (or repeater). If the message is not acknowledged after these attempts, the device 115 can generate a “Negative Acknowledge (0x02)” Command Message that is sent back to the site controller 110.


Upstream Retries


For Upstream Repeat operations, a device 115 can attempt an original transmission and a variable or predetermined number of retries to its highest priority upstream address (for example, remote device 120). If these transmission attempts fail, the device 115 then attempts another transmission with the specified number of retries to its next highest priority upstream address (for example, remote device 130). Transmission attempts continue in this manner until all upstream addresses have been exhausted. If a device 115 functions only as a non-repeating node, and the transmission is still not acknowledged, it can abort the current operation and reset its upstream retry counter.


If a device 115 is programmed to also function as a Repeater 115, and all its upstream addresses fail to acknowledge the message transmission, the result is treated as a “negatively acknowledged” upstream repeat operation.


Each remote device 115 preferably maintains two (2) retry counters. The remote devices 115 may also have one or additional counters. The first retry counter is preferably a four-bit counter that counts the number of retries for the current downstream operation. This counter is generally used only if a device 115 is programmed to also function as a repeater. The second retry counter is preferably a four-bit counter that counts the number of retries for the current upstream operation. Both counters can be reset after they have been reported and acknowledged.


Layer 3—Network Layer


The Network Layer defines an exemplary method for sequencing and routing messages from one network device 115 to another. An exemplary message header format includes, as discussed below, source and destination device addresses and a message sequence number. A method for upstream and downstream message routing is also discussed below.


Message Header Formatting


Table 1, below, shows an exemplary message structure for use with a protocol embodiment of the present invention.









TABLE 1







Packet Format

















“TO”
“FM”
Pkt
Pkt
Pkt
Msg

Link
Cmd




Addr
Addr
Num
Max
Len
Num
CMD
Num
Ext
Data
CKSum





(1-6)
(6)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
(0-239)
(2)









In an exemplary embodiment of the present invention, the order of the message elements remains fixed, but the byte position number in each packet may vary due to the scalability of the “TO” address (1-6 bytes) and the scalability of the Data Frame (0 to 239 bytes). A brief description of each of the message fields follows. Those skilled in the art will appreciate that the size of each field can be modified if desired, provided each device communicating in accordance with the protocol is aware of such modifications.


“TO” Addr—Destination Address


The “TO” Address field (00-FF) is used to identify a particular device 115 and typically provides the Full “ID” or address of a device 115 receiving the transmission (1 to 6 Bytes). The “TO” address field can contain the address of a recipient device 115 when a request for data is sent by the site controller 110. The “TO” field can contain the address of the site controller 110 when a response to a request for data is returned by a device 115 to the site controller 110. This can also be a broadcast address when a message is sent to multiple devices 115 by another network device 115.


“FM” Addr—Source Address


The “FM” Address (00-FF) is used to identify a device 115 transmitting a message. The “FM” Address field can contain the full “ID” or address of a device 115 originating the transmission (6 Bytes). This address field can contain the address of the site controller 110 when a request for data is sent to a device 115 and it can contain the address of a remote device 115 when a response to a request for data is sent to the site controller 110.


Pkt No—Packet Number


The Packet Number (00-FF) is used when a message is too large to be sent in a single packet. Thus, if the total message is longer than the max packet length, multiple packets are used and each packet in the message is labeled with a packet number.


Pkt Max—Packet Maximum


The Pkt Max field (00-FF) indicates the total number of packets in a message when a message is too large to fit in a single packet.


Pkt Len—Packet Length


The Packet Length field (10-FF) identifies the length (in bytes) of a packet transmission, including the CRC. In an exemplary embodiment of the present invention, the minimum length is 16 bytes, and the maximum length is 255 bytes.


Msg Num—Message Number


The Message Number field (00-FF) provides a message identifier number. The Message Number is assigned by the originator of each message. In an exemplary embodiment of the present invention, messages originating from the site controller 110 (downstream) contain even message numbers and responses to the site controller 110 (upstream) will be the originating message number plus one (odd). Typically, the message number is incremented (by two) by the site controller 110 each time it sends a message.


CMD—Command


The Command field (00-FF) identifies a command operation to be performed by the recipient device 115.


Link Num—Link Number


The Link Number field (00-FF) represents a dynamic link number associated with each network device 115 when a packet is transmitted.


Cmd Ext—Command Extension


The Command Extension field (00-FF) preserves message space for additional commands, that are not presently provided by the system.


Data


The Data field (00-FF) holds data as required by a specific command. Data may be any value. If test data is sent, that data can generally be encoded in ASCII.


CkSum—Checksum


The CkSum field (0000-FFFF) holds a Packet Checksum, preferably sent high (most significant) byte first, for detecting transmission errors.


TO and FROM Device Addressing


In an exemplary embodiment of the present invention, each device 115 is programmed with a unique identifier (address). In an exemplary embodiment of the present invention, this is a 48-bit identifier number. This identifier is used in routing network messages from the source device 115 to the destination device 115. A network device 115 can recognize that it is the intended recipient of a received message by comparing its identifier (address) to the destination address in the message header.


Broadcast messaging can also be supported by supplying special broadcast address identifiers in place of the unique 48-bit destination address when transmitting a message. The broadcast identifier may typically be 1 or 6 bytes in length. Broadcast messages do not generally require a response from the receiving device(s) 115.


Device Address Byte Assignment


Table 2, below, shows how address bytes can be assigned in accordance with an exemplary embodiment of the present invention. In an exemplary embodiment of the present invention, the first byte of an address may not be 0xFn or 0x00.









TABLE 2







Byte 1 - Device Type Base (MSB)









(2)
F0-F1
Broadcast to all devices (1-byte broadcast address)


(2)
F2-F3
Broadcast to specific devices (6-byte broadcast address)


(11)
F4-FE
Reserved


(1)
FF
Broadcast to a single device (6-byte broadcast address)


(239)
01-EF
6 Byte Device Address (Device Type Base)


(1)
00
Reserved







Byte 2 - Network System ID (High Byte)









(1)
FF
Reserved


(255)
00-FE
Network System Identifier







Byte 3 - Network System ID (Low Byte)









(256)
00-FF
Network System Identifier







Byte 4 - Extension









(256)
00-FF
Extension of Device Identification







Byte 5 - Extension









(256)
00-FF
Extension of Device Identification







Byte 6 - Extension









(256)
00-FF
Extension of Device Identification









The Network System ID bytes can be used to associate each device 115 with a particular network or networks. Typically, each device 115 will only recognize communications from other devices 115 whose System ID matches its own. This prevents interference from other independent networks operating within the same general vicinity. However, a device 115 may also be configured to accept communications from a group of one or more System ID's other than its own, or from all System ID's. This feature allows each network 100 to be configured as either a “closed” system (which ignores all devices 115 outside of its network) or an “open” system (which allows communication with devices outside of its network 100).


Broadcast Messaging


Broadcast messaging can be used to send a message to more than one destination device 115 at a time, or to a single device 115 of unknown location. Any network device 115 may broadcast a message for various purposes such as time synchronization, network-detection, device location, etc. Broadcast messages are not typically acknowledged by receiving devices 115. Exemplary identifiers used to broadcast a message are described below. Alternatively, the system can use other identifiers for desired broadcast messages.


(0xF0)—single-byte “TO” address: Used to broadcast a message to all devices 115 within direct communication range of an originating device 115.


(0xF1)—single-byte “TO” address: Used to broadcast a system-wide message to all devices 115 within the same network 100.


(0xF2)—six-byte “TO” address: Used to broadcast a message to specified device types within direct communication range of the originating device 115. An exemplary address format is defined below:

    • (0xF2)—broadcast identifier
    • (0xtt)—device type (0xFF=all device types, ignore following bytes)
    • (0xss)—device sub-type (0xFF=all sub-types, ignore following bytes)
    • (0xvv)—firmware major version number (0xFF=all firmware versions)
    • (0xxx)—firmware minor version number (0xFF=all minor versions)
    • (0xFF)—not currently used (set to 0xFF)


(0xF3)—six-byte “TO” address: The same as “0xF2” above, except broadcasts a system-wide message to all devices 115 within the same network 100.


(0xFF)—six-byte “TO” address, plus one-byte data: Used to broadcast a system-wide message to a single device 115 within the network 100. An exemplary address format is defined below:

    • (0xFF)—broadcast identifier
    • (0xa1)—destination device address, byte 2
    • (0xa2)—destination device address, byte 3
    • (0xa3)—destination device address, byte 4
    • (0xa4)—destination device address, byte 5
    • (0xa5)—destination device address, byte 6


The first byte in the data section of the packet can contain the first byte of the destination device “TO” address (0xa0).


Message Sequencing


Application data is typically moved between network devices 115 and the site controller 110 in two ways: polled or interrupt-driven communications. A polled system is normally used to retrieve “on-demand” data from network devices 115, where an interrupt-driven system can retrieve pre-scheduled data from network devices 115 at regular intervals. A network 100 may be entirely polled, entirely interrupt-driven, or it may use a combination of polled and interrupt-driven communications.


In a polled system, the site controller 110 typically initiates all regular communications with devices 115 in its network 100, thus acting as network communications master. Network devices 115 can respond to commands issued in the site controller's 110 messages. The Site Controller 110 can receive a response (either a positive acknowledgement or a negative acknowledgement) to any message (except a Broadcast message) it sends to a network device 115.


In an interrupt-driven system, network devices 115 may initiate unsolicited messages to the site controller 110 either at pre-determined time intervals, or as the result of a specific event occurring at the device 115. Traffic of this type may include network-detection messages, emergency or alarm messages, and status reporting messages from low-power devices 115.


To maintain an orderly flow of network traffic within the system, a 1-byte sequence number can be assigned to each message issued by the site controller 110. Downstream messages originating from the site controller 110 can be assigned even numbers. Upstream responses to the site controller 110 typically the incoming message number plus one (odd). The message number is generally incremented (by two) by the site controller 110 each time it sends a message. In systems where a network device 115 sends an unsolicited message to the site controller 110 (network-detection messages, emergency traffic, etc.), the device 115 assigns an odd sequence number to the message, based on a random number generated internally by the device 115.


Message Routing


To deliver messages between the site controller 110 and any other device 115 in the network, a method of routing network traffic can be defined for both downstream (site controller 110 to device 115) and upstream (device to site controller 110) messages.


Downstream Message Routing


In an exemplary embodiment of the present invention, the site controller 110 builds a downstream message in one of two ways. If a destination device 115 is within direct communication range of the site controller 110, then the message is addressed directly to that device 115 (its address is used as the message “TO” address). If the destination device 115 is not within direct communication range of the site controller 110, however, then the site controller 110 can build a “Downstream Repeat” message (command 0x03). This message contains a list of 1-byte indexes which correspond to entries in the downstream address tables of repeating devices 115 that will be forwarding the message. This routing information can be used by each repeating device 115 in the chain to know how to forward the message. The last address in the chain can be a device 115 for which the original message was intended.


When a network device 115 also functions as a repeater, a dynamic Index Table of up to fourteen (14) downstream addresses can be maintained in the device's 115 non-volatile memory. These addresses are utilized during downstream repeat operations, and represent select devices 115 within communications range, which are located downstream of the current device 115. A single-byte index is specified in the downstream message to select one of the addresses from the table to use in forwarding the message to the next device 115.


Additionally, the site controller 110 may use the “0xFF” system-wide broadcast message to transmit a message downstream to a network device 115 of unknown location. This message can be forwarded throughout the entire network 100 until the destination device 115 is reached. The destination device 115 can then respond to the command contained in the broadcast message in the normal upstream manner.


Upstream Message Routing


Network devices 115 can respond to command messages (except Broadcast messages) by directly addressing the device 115 from which it received the command (swap message “TO” and “FROM” addresses). A repeating device 115, which receives an upstream response message (not “Upstream Repeat” command), can build an “Upstream Repeat” message (command 0x04), and forward this message to one of its dynamic upstream addresses. A repeating device 115, which receives an “Emergency Message” command (0xFF), can build an “Emergency Upstream Repeat” message (command 0x44), and forward this message to one of its upstream addresses. It is generally desirable to give upstream emergency traffic (command 0xFF or 0x44) priority over all other network traffic (see “Emergency Messaging”).


When a network device 115 also functions as a repeater, up to sixteen (16) dynamic upstream addresses can be maintained in the device's non-volatile memory. These addresses are utilized to transmit messages in response to commands issued by the site controller, or to repeat (retransmit) normal upstream repeat messages. The addresses in the table are prioritized such that the highest priority upstream address can be used first. In the event that the message transmission to the highest priority address is not successful (negative acknowledge), the transmission can then be retried to the next highest priority upstream address. The transmission attempts will continue in this manner until either the message is acknowledged, or all upstream addresses have been tried.


Layer 4—Transport Layer


The Transport Layer defines how the application data is packetized and sequenced, such that all the requested data can be delivered successfully to a target device 115.


Message Data Section Formatting


A data payload transported by a single network message can be placed in a data section of the packet. Generally, message data can be placed immediately after a message header. The length of the data section can vary from 0-239 bytes, depending on the message header format and data payload. The message checksum immediately follows the data section. Application data that is less than or equal to the maximum data size can be transported in a single message. For data that is greater than the maximum data size, multiple packet transmissions can be utilized.


Multi-Packet Processing


For application data payloads that cannot be transported in a single message packet, multiple packet transmissions can be utilized. In an exemplary embodiment of the present invention, the first packet in a multi-packet session can contain a “Packet Number” value equal to “0x01” and a “Packet Maximum” value equal to the total number of packets needed to transport all of the application data. Subsequent packets preferably increment the “Packet Number” value, with the last packet in a multi-packet session having the “Packet Number” and “Packet Maximum” values equal.


A receiving device 115 can identify the start of a multi-packet session, by noting that the “Packet Number” and “Packet Maximum” values are not equal (a single-packet transmission will have both values equal to “0x01”). A receiving device 115 can acknowledge each packet in a multi-packet session, and can identify the last packet in a session by noting that the “Packet Number” and “Packet Maximum” values are equal. An originating device 115 can be adapted to resend any packets which are not positively acknowledged by the receiving device 115.


Layer 5—Session Layer


As those skilled in the art will understand, a session layer is sometimes not implemented or used in a communications protocol. Accordingly, in some embodiments of the present invention, a session layer is not used, while in other embodiments, a session layer is utilized. When utilized, a session layer preferably responds to service requests from the presentation layer and issues service requests to the transport layer.


A session layer provides a mechanism for managing dialogue between devices 115 and/or between the site controller 110 and one or more devices utilizing application processes. Indeed, the session layer provides for either duplex or half-duplex operation and can establish checkpointing, adjournment, termination, and restart procedures. The session layer can allow information on different streams, perhaps originating from different sources, to be properly combined. Thus in embodiments of the present invention where synchronization features are desired to ensure that the site controller 110 and devices 115 do not encounter inconsistent message and data transmissions, the session layer can be utilized.


Layer 6—Presentation Layer


As those skilled in the art will understand, a presentation layer is sometimes not implemented or used in a communications protocol. Accordingly, in some embodiments of the present invention, a presentation layer is not used, while in other embodiments, a session layer is utilized. When utilized, a presentation layer responds to service requests from the application layer and issues service requests to the session layer.


A presentation layer can be tasked with the delivery and formatting of information to the application layer for further processing or display. The presentation layer can relieve the application layer of concern regarding syntactical differences in data representation within the end-user systems.


Layer 7—Application Layer


The Application Layer can define command formats and functionality incorporated into each network device 115. Exemplary commands and functions which are non device-specific, and generally supported by all network devices 115 are discussed below. Those skilled in the art will recognize that numerous other commands may be used and implemented in accordance with the various embodiments of the present invention.


Command Structure


In an exemplary embodiment of the present invention, command byte codes are assigned and are used for devices 115 requiring those functions. Not all devices 115 support all, or possibly any, of the codes listed below. These codes are provides for example only, and are not intended to limit the various embodiments of the present invention. Further, the command descriptions are provided as exemplary descriptions for exemplary commands are not intended to limit the scope of the present invention.


Ping Command (0x00)


Sent by the site controller 110 to any network device 115 to solicit a ping response. A receiving device 115 echoes back the original message. The ping command is used to test a communications path between any two devices in the network 100. According to some embodiments of the present invention, a data payload does need to be sent with a ping command required.


Positive Acknowledgement (0x01)


A positive acknowledgement command can be sent from one network device 115 to another to acknowledge receipt of a message. The positive acknowledgement command enables devices to acknowledgement receipt of a transmission from a sending device. According to some embodiments of the present invention, a data payload does need to be sent with a positive acknowledgement command.


Negative Acknowledgement (0x02)


A negative acknowledgement command can be sent in an upstream message by the site controller 110 or by a repeating network device 115 whenever a downstream repeat message is not acknowledged by the addressed device 115. According to some embodiments of the present invention, a data payload does need to be sent with a negative acknowledgement command.


Downstream Repeat (0x03)


A downstream repeat command can be sent by the site controller 110 to any network device 115. The downstream repeat command can be used when a message is being sent to a network device 115 that is not within direct communication range of the site controller 110. Addressing information (repeater table indexes) is provided to route the message to a target device 115. The data area of the packet can be formatted as follows:

    • (nn)—downstream link count (1 byte)
    • (tt . . . )—list of repeater table indexes (nn bytes)
    • (aaaaaaaaaaaa)—destination address (6 bytes)
    • (cc)—destination command (1 byte)
    • (dd . . . )—destination data (variable length)


If the link count is not zero, then a repeating network device 115, which receives this command, can decrement the link count (nn) and remove the first byte in the list of table indexes (tt . . . ). The device 115 can then use the table index byte to obtain the new “TO” address by indexing into its Repeater Address Table.


If the link count equals zero, then a device 115 can remove the link count byte (nn) and use the 6-byte destination address (aaaaaaaaaaaa) as the new “TO” address. The command byte (CMD) can be replaced with the destination command (cc), and both the destination address (aaaaaaaaaaaa) and destination command (cc) can be removed from the message. This leaves the original message header and destination data (dd . . . ), which can be forwarded to a destination device 115.


Upstream Repeat (0x04)


An upstream repeat command can be sent by a repeating device 115 to the site controller 110 or to another repeating device 115. The upstream repeat command can be used to forward a response message upstream to the site controller 110. The data area of the packet can be formatted as follows:

    • (nn)—upstream link count (1 byte)
    • (tt . . . )—list of repeater table indexes (nn bytes)
    • (cc)—original message command (1 byte)
    • (ss)—originating link signal strength (1 byte)
    • (aaaaaaaaaaaa)—original message “TO” address (6 bytes)
    • (bbbbbbbbbbbb)—original message “FROM” address (6 bytes)
    • (dd . . . )—original message data (variable length)


When a repeating network device 115 receives a standard response message (other than “Upstream Repeat” command), it can forward the message to its highest priority upstream address by creating an “Upstream Repeat” command (0x04) message. The repeating device 115 can first place the original message command byte (CMD) in the (cc) field, and set a new message command byte to “0x04”. The repeating device 115 can then set the link count byte (nn) to “0x00”, place the 6-byte “TO” address of the original message in the address field (aaaaaaaaaaaa) and place the 6-byte “FROM” address of the original message in the address field (bbbbbbbbbbbb). The link signal strength byte can be placed in the (ss) field (if not supported, a “0x00” byte can be used). The original message data can be placed in the variable-length data section (dd . . . ).


As each subsequent network device 115 forwards the message upstream, it can increment the link count (nn) and add its 1-byte downstream table index to the beginning of the repeater table index list (tt . . . ).


Read Status (0x10)


A read status command can be sent by the site controller 110 to a network device 115. The read status command can be used to retrieve current status information from a device 115. The status information can be returned in the data area of a response packet, and can be unique to each device 115.


Data Transport (0x20)


A data transport command can be used to move application-specific data from one network device 115 to another. A user-defined application data message can be placed in the data area of a packet and can be any length as long as the maximum packet size is not exceeded. A receiving device 115 can send a response packet, which may contain any user-defined application data that can to be returned to an originating device 115.


Load Repeater Table Addresses (0x40)


A load repeater table address can be sent by the site controller 110 to a repeating network device 115. The load repeater table address command is used to load device addresses into a dynamic Repeater Table. From 1 to 16 addresses can be loaded by specifying the number of addresses to load and the starting table index. The data area of a packet can be formatted as follows:

    • (nn)—number of table addresses (1 byte, value=1-16)
    • (aa)—start table index (1 byte, value=0-15)
    • (dd . . . )—table address data (6-96 bytes)


      Emergency Message Upstream Repeat (0x44)


The emergency message upstream repeat command can be sent by a repeating device 115 to the site controller 110 or to another repeating device 115. The emergency message upstream repeat command can be used to forward an emergency message upstream to the site controller 110. Emergency upstream traffic is generally given priority over standard (or normal) upstream traffic, and repeating network devices 115 will preferably continue to transmit the message until it is acknowledged to ensure receipt. Also, any repeating network device 115 which is currently processing emergency upstream traffic preferably ignores other network traffic until the emergency message is processed. Except for the command byte (CMD), the message format and procedure can be the same as the “Upstream Repeat” command (0x04).


General Data Request (0x55)


A general data request command can be sent by the site controller 110 to a network device 115. This command can be used to request eighteen (18) bytes of general data from a device 115. The general data can include the following information:

    • (vvvv)—firmware version number (2 bytes)
    • (pppp)—number of power failures (2 bytes)
    • (rrrr)—number of device resets (2 bytes)
    • (aaaaaaaaaaaa)—first dynamic repeater table address (6 bytes)
    • (bbbbbbbbbbbb)—second dynamic repeater table address (6 bytes)


A receiving device 115 can send a response packet with the 18 bytes of general data in the data area.


Device Sleep (0x60)


A device sleep command can be sent by the site controller 110 to place a device into power-down or “sleep” mode, to conserve power in low-power or battery-powered devices. The device 115 can remain in “sleep” mode for the number of minutes specified by the 2-byte “time to sleep” parameter, which can be placed in the data area of the packet as follows:

    • (nnnn)—number of minutes (0-65535)


In accordance with some embodiments of the present invention, the devices 115 can also utilize and implement a time-out feature. This feature can automatically place a device 115 in “sleep” mode if this command is not received within a pre-defined period of time.


Device Install (0x80)


A device install command can be sent by a network device 115 to the site controller 110. This command can be used to notify the site controller 110 that a device 115 is attempting to either install itself into the network 100 for the first time, or re-establish communication with neighboring devices 115. A network device 115 can send the device command packet to the site controller 110 after building its dynamic repeater table of neighboring devices 115.


Device Test (0x90)


A device test command can be provided for device functional testing during manufacturing. While it can be used for other purposes, it is preferably generally not used for other purposes.


Load Device Firmware (0xA0)


A load device firmware command can be sent by the site controller 110 to a network device 115. This command is used to download a new firmware image, updated firmware image, or existing firmware image to a network device 115. The data area of the packet can be formatted as follows:

    • (nn)—length of data block (1 byte)
    • (aaaa)—data block start offset (2 bytes)
    • (dd . . . )—firmware image data (1-236 bytes)


The firmware binary image can be segmented into blocks and sent to a target device 115 using multiple packets.


Reserved Commands (0xE0-0xEF)


In an exemplary embodiment of the present invention, reserved commands are reserved and are preferably not used in communicating with a network device 115 in accordance with some embodiments of the present invention.


Emergency Message (0xFF)


Sent by a network device to the site controller 110. This command is used by a network device 115 to report an emergency condition to the site controller 110. Repeating devices 115 which receive this command can forward the message using the “Emergency Message Upstream Repeat” command (0x44). The data area of the packet can contain status information regarding the nature of the emergency condition, which can be unique to each device type.


Emergency Messaging


In an exemplary embodiment of the present invention, the system can handle both “normal” and “emergency” traffic flow throughout the network 100. Emergency message traffic can be identified as being either an “Emergency Message” command (0xFF), or an “Emergency Message Upstream Repeat” command (0x44). A network device 115 adapted to send an emergency message to the site controller 110, can use the “Emergency Message” command (0xFF). A device 115 functioning as a repeater, which receives an emergency message (0xFF), preferably changes the command byte (CMD) from “0xFF” to “0x44” to indicate an “Emergency Message Upstream Repeat” command. It can then retransmit (relay) the message upstream to the site controller 110 in the normal Upstream Repeat manner.


Network devices 115 generally process both “emergency” and “normal” messages in a similar manner provided there is enough system bandwidth to handle all message traffic flow. In the event that system bandwidth becomes limited and a conflict in traffic flow exists, however, emergency message traffic can be given priority over normal traffic. This means that a device 115 that is currently processing an emergency message (command “0xFF” or “0x44”) can ignore other message traffic until it has completed processing the emergency message.


Similarly, a device 115 which is currently processing a normal message (other than command “0xFF” or “0x44”) and receives an emergency message, can terminate its normal message processing and process the emergency traffic instead. Such actions assure that the emergency traffic will be forwarded to the site controller 110 as quickly as possible.


Automatic Network Detection (AND)


The Automatic Network Detection (AND) feature can be used by devices 115 to automatically install themselves into an existing network 100, or to re-establish communication with a non-responding network node. Typically, most devices 115 are programmed during manufacturing such that their dynamic Repeater Table contains no valid addresses, forcing the devices 115 into “AND” mode. A device 115 can also enter “AND” mode any time it loses communication with one or more neighboring network devices 115. A device 115 can exit “AND” mode and can become an active node when its dynamic Repeater Table contains one or more valid device addresses.


Once a device 115 enters “AND” mode, it can broadcast a network-detection beacon to neighboring devices at approximately 5-minute intervals. A device 115 which hears this beacon and is already an active network node (its Repeater Table contains at least one valid device address), can broadcast a response beacon. The originating device 115 listens for these response beacons, and builds its dynamic Repeater Table using the addresses of its neighboring devices, up to a maximum of 16 devices. After a beaconing cycle has completed, the network device 115 sends a Device Install command “0x80” to the site controller 110. If no devices 115 respond to a network-detection beacon, then an originating device 115 can continue to broadcast a beacon at 5-minute intervals until at least one response is received. A network device 115 can also be forced into “AND” mode at any time by clearing its dynamic Repeater Table using command “0x40”.


Upgrading Device Firmware


Some embodiments of the present invention can also upgrade device 115 firmware. Typically, devices 115 are programmed during manufacturing with an initial firmware image which controls device operation. The program memory (code space) within each device 115 is segmented such that half of the available memory is used to hold the current firmware image, and the other half is left as unused code space. When a new firmware image is downloaded to a network device 115, it is placed in the unused code space, and the original firmware image is typically erased.


First, a binary image file for the new firmware can be created. The image file can have a special header at the start-of-file, and can have a 16-bit checksum appended to the end-of-file. The image can be split into multiple data blocks and transferred to the destination device using the “Load Device Firmware” command (0xA0). Each data block is sent with a block header which specifies the block size and the relative offset from the start of the image (first block has offset=0). A destination device 115 can rebuild the new firmware image in its unused code space by writing the data blocks into the appropriate offsets in memory. After a destination device 115 receives the last image data block, it can then verify the integrity of the new image by calculating a 16-bit checksum (CRC) and comparing the result to the checksum that was sent with the image (last 2 bytes). If the checksum matches, then a device 115 transfers control to the new firmware image. If the checksum does not match, then no action is taken and the transmitted image can be resent. Once new firmware is executed on a destination device 115, the original firmware image is erased and that memory becomes unused code space. The erase memory will then be used to build the next firmware image that is downloaded.


The site controller 110 can confirm that new firmware image has been loaded successfully by verifying the firmware version number on a destination device 115 using a “General Data Request” command (0x55). If the version number that is returned does not match the version number of the new image file, then a firmware image can be resent.


New firmware can be downloaded directly to a single destination device 115 by specifying the destination device address, or it can be broadcast to a group of devices 115 by using one of the methods of message broadcasting. If the firmware image is downloaded using a broadcast method, there is no acknowledgement at the individual packet level, and the entire image can be sent before a successful transfer can be verified.


The embodiments discussed herein are intended to illustrate the principles of the invention and its practical application to enable one of ordinary skill in the art to utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. All such modifications and variations are within the scope of the invention as determined by the appended claims when interpreted in accordance with the breadth to which they are fairly and legally entitled.

Claims
  • 1. A first remote device comprising: a processor; andmemory storing instructions that, when executed by the processor, cause the first remote device to: monitor successfulness statuses associated with each of a plurality of attempted data transmissions between (i) the first remote device and a site controller and/or (ii) the first remote device and a second remote device, each of the successfulness statuses indicating whether a corresponding attempted data transmission was successful or unsuccessful; andbased at least in part on the successfulness statuses, select a wireless communication path for transmitting data between the first remote device and a selected downstream device of a plurality of downstream devices, the plurality of downstream devices comprising the site controller and/or the second remote device base,wherein the first remote device includes a connection list identifying the site controller and/or the second remote device and a success data score representative of successful and unsuccessful transmissions to the site controller and/or the second remote device.
  • 2. The first remote device of claim 1, wherein the instructions, when executed by the processor, further cause the first remote device to:determine the successfulness statuses for at least some of the plurality of data transmissions.
  • 3. The first remote device of claim 2, wherein the selected downstream device is a first downstream device of the plurality of downstream devices and the data transmission is an original data transmission, and wherein determining the successfulness statuses for at least some of the plurality of data transmissions comprises: detecting a repeat data transmission from the first downstream device to a second downstream device of the plurality of downstream devices, the repeat data transmission comprising data from the original data transmission.
  • 4. The first remote device of claim 3, wherein detecting the repeat data transmission from the first downstream device to the second downstream device comprises: verifying the repeat data transmission includes a transmission identifier associated with the original data transmission.
  • 5. The first remote device of claim 3, wherein detecting the repeat data transmission from the first downstream device to the second downstream device comprises: verifying the repeat data transmission includes a transmitting device identifier associated with the second downstream device.
  • 6. The first remote device of claim 1, wherein the instructions, when executed by the processor, further cause the first remote device to:receive the successfulness statuses for at least some of the plurality of data transmissions from the selected downstream device.
  • 7. The first remote device of claim 1, wherein the selected downstream device has a successful transmission rate greater than a successful transmission rate for each remaining downstream device of the plurality of downstream devices.
  • 8. The first remote device of claim 1, wherein the selected downstream device is a first selected downstream device and the wireless communication path is a first wireless communication path, and wherein the instructions, when executed by the processor, further cause the first remote device to: responsive to determining that a data transmission sent via the first wireless communication path was unsuccessful, select a second wireless communication path for transmitting data between the first remote device and a second selected downstream device of the plurality of downstream devices.
  • 9. The first remote device of claim 8, wherein the second selected downstream device has a successful transmission rate greater than a successful transmission rate for each remaining downstream device of the plurality of downstream devices other than the first selected downstream device.
  • 10. The first remote device of claim 1, wherein the first remote device is out of communication range of the site controller.
  • 11. The first remote device of claim 1, wherein the wireless communication path is a second wireless communication path, and wherein the instructions, when executed by the processor, further cause the first remote device to: receive a first data transmission from a transmitting remote device and via a first wireless communication path; andtransmit a repeat data transmission to the selected downstream device and via the second wireless communication path, the repeat data transmission comprising at least some of the data from the first data transmission.
  • 12. The first remote device of claim 11, wherein the instructions, when executed by the processor, further cause the first remote device to:determine whether data has a normal status or an emergency status; andprioritize transmission of data with the emergency status over transmission of data with the normal status.
  • 13. A method for determining a wireless communication path, the method comprising: monitoring, by a first remote device, successfulness statuses associated with each of a plurality of attempted data transmissions between (i) the first remote device and a site controller and/or (ii) the first remote device and a second remote device, each of the successfulness statuses indicating whether a corresponding attempted data transmission was successful or unsuccessful; andbased at least in part on the successfulness statuses, selecting the wireless communication path for transmitting data between the first remote device and a selected downstream device of a plurality of downstream devices, the plurality of downstream devices comprising the site controller and/or the second remote device base,wherein the first remote device includes a connection list identifying the site controller and/or the second remote device and a success data score representative of successful and unsuccessful transmissions to the site controller and/or the second remote device.
  • 14. The method of claim 13 further comprising determining the successfulness statuses for at least some of the plurality of data transmissions.
  • 15. The method of claim 13 further comprising receiving the successfulness statuses for at least some of the plurality of data transmissions.
  • 16. The method of claim 13, wherein the selected downstream device has a successful transmission rate greater than a successful transmission rate for each remaining downstream device of the plurality of downstream devices.
  • 17. The method of claim 13 wherein the selected downstream device is a first selected downstream device and the wireless communication path is a first wireless communication path, and wherein the method further comprises: responsive to determining that a data transmission sent via the first wireless communication path was unsuccessful, selecting a second wireless communication path for transmitting data between the first remote device and a second selected downstream device of the plurality of downstream devices.
  • 18. The method of claim 13, wherein the wireless communication path is a second wireless communication path, and wherein the method further comprises: receiving a first data transmission from a transmitting remote device and via a first wireless communication path; andtransmitting a repeat data transmission to the selected downstream device and via the second wireless communication path, the repeat data transmission comprising at least some of the data from the first data transmission.
  • 19. The method of claim 13 further comprising: determining whether data has a normal status or an emergency status; andprioritizing transmission of data with the emergency status over transmission of data with the normal status.
  • 20. A non-transitory machine-readable medium comprising instructions that, when executed by a processor of a first remote device, cause the first remote device to: monitor successfulness statuses associated with each of a plurality of attempted data transmissions between (i) the first remote device and a site controller and/or (ii) the first remote device and a second remote device, each of the successfulness statuses indicating whether a corresponding attempted data transmission was successful or unsuccessful; andbased at least in part on the successfulness statuses, select a wireless communication path for transmitting data between the first remote device and a selected downstream device of a plurality of downstream devices, the plurality of downstream devices comprising the site controller and/or the second remote device base,wherein the first remote device includes a connection list identifying the site controller and/or the second remote device and a success data score representative of successful and unsuccessful transmissions to the site controller and/or the second remote device.
CROSS-REFERENCE TO RELATED APPLICATION

This Application is continuation of U.S. patent application Ser. No. 15/859,885 filed on 2 Jan. 2018, which is a continuation of U.S. patent application Ser. No. 15/257,641 filed on 6 Sep. 2016, which is a continuation of U.S. patent application Ser. No. 11/814,632 filed on 24 Jul. 2007, which is the United States National Stage of International Patent Application No. PCT/US2006/002342 filed on 25 Jan. 2006, which claims the benefit of U.S. Provisional Patent Application No. 60/646,689 filed on 25 Jan. 2005, the contents of which are hereby incorporated by reference in their entirety.

US Referenced Citations (765)
Number Name Date Kind
3665475 Gram May 1972 A
3705385 Batz Dec 1972 A
3723876 Seaborn, Jr. Mar 1973 A
3742142 Martin Jun 1973 A
3848231 Wooton Nov 1974 A
3892948 Constable Jul 1975 A
3906460 Halpern Sep 1975 A
3914692 Seaborn, Jr. Oct 1975 A
3922492 Lumsden Nov 1975 A
3925763 Wadhwani et al. Dec 1975 A
4025315 Mazelli May 1977 A
4056684 Lindstrom Nov 1977 A
4058672 Crager et al. Nov 1977 A
4083003 Haemmig Apr 1978 A
4120452 Kimura et al. Oct 1978 A
4124839 Cohen Nov 1978 A
4135181 Bogacki et al. Jan 1979 A
4204195 Bogacki May 1980 A
4213119 Ward et al. Jul 1980 A
4277837 Stuckert Jul 1981 A
4278975 Kimura et al. Jul 1981 A
4284852 Szybicki et al. Aug 1981 A
4322842 Martinez Mar 1982 A
4345116 Ash et al. Aug 1982 A
4354181 Spletzer Oct 1982 A
4395780 Gohm et al. Jul 1983 A
4396910 Enemark et al. Aug 1983 A
4396915 Farnsworth et al. Aug 1983 A
4399531 Grande et al. Aug 1983 A
4406016 Abrams et al. Sep 1983 A
4417450 Morgan, Jr. et al. Nov 1983 A
4436957 Mazza Mar 1984 A
4446454 Pyle May 1984 A
4446458 Cook May 1984 A
4454414 Benton Jun 1984 A
4468656 Clifford et al. Aug 1984 A
4488152 Amason et al. Dec 1984 A
4495496 Miller, III Jan 1985 A
4551719 Carlin et al. Nov 1985 A
4611198 Levison et al. Sep 1986 A
4621263 Takenaka et al. Nov 1986 A
4630035 Stahl et al. Dec 1986 A
4631357 Grunig Dec 1986 A
4665519 Kirchner et al. May 1987 A
4669113 Ash et al. May 1987 A
4670739 Kelly, Jr. Jun 1987 A
4692761 Robinton Sep 1987 A
4704724 Krishnan et al. Nov 1987 A
4707852 Jahr et al. Nov 1987 A
4731810 Watkins Mar 1988 A
4742296 Petr et al. May 1988 A
4757185 Onishi Jul 1988 A
4788721 Krishnan et al. Nov 1988 A
4792946 Mayo Dec 1988 A
4799059 Grindahl et al. Jan 1989 A
4800543 Lyndon-James et al. Jan 1989 A
4814763 Nelson et al. Mar 1989 A
4825457 Lebowitz Apr 1989 A
4829561 Matheny May 1989 A
4849815 Streck Jul 1989 A
4851654 Nitta Jul 1989 A
4856046 Streck et al. Aug 1989 A
4857912 Everett, Jr. et al. Aug 1989 A
4864559 Perlman Sep 1989 A
4875231 Hara et al. Oct 1989 A
4884123 Dixit et al. Nov 1989 A
4884132 Morris et al. Nov 1989 A
4897644 Hirano Jan 1990 A
4906828 Halpern Mar 1990 A
4908769 Vaughan et al. Mar 1990 A
4912656 Cain et al. Mar 1990 A
4918432 Pauley Apr 1990 A
4918690 Markkula, Jr. et al. Apr 1990 A
4918995 Pearman et al. Apr 1990 A
4924462 Sojka May 1990 A
4928299 Tansky et al. May 1990 A
4939726 Flammer et al. Jul 1990 A
4940976 Gastouniotis et al. Jul 1990 A
4949077 Mbuthia Aug 1990 A
4952928 Carroll et al. Aug 1990 A
4962496 Vercellotti et al. Oct 1990 A
4967366 Kaehler Oct 1990 A
4968970 LaPorte Nov 1990 A
4968978 Stolarczyk Nov 1990 A
4972504 Daniel, Jr. et al. Nov 1990 A
4973957 Shimizu et al. Nov 1990 A
4973970 Reeser Nov 1990 A
4977612 Wilson Dec 1990 A
4980907 Raith et al. Dec 1990 A
4987536 Humblet Jan 1991 A
4989230 Gillig et al. Jan 1991 A
4991008 Name Feb 1991 A
4993059 Smith et al. Feb 1991 A
4998095 Shields Mar 1991 A
4999607 Evans Mar 1991 A
5007052 Flammer Apr 1991 A
5032833 Laporte Jul 1991 A
5038372 Elms et al. Aug 1991 A
5055851 Sheffer Oct 1991 A
5057814 Onan et al. Oct 1991 A
5061997 Rea et al. Oct 1991 A
5079768 Flammer Jan 1992 A
5086391 Chambers Feb 1992 A
5088032 Bosack Feb 1992 A
5091713 Home et al. Feb 1992 A
5111199 Tomoda et al. May 1992 A
5113183 Mizuno et al. May 1992 A
5113184 Katayama May 1992 A
5115224 Kostusiak et al. May 1992 A
5115433 Baran et al. May 1992 A
5117422 Hauptschein et al. May 1992 A
5124624 de Vries et al. Jun 1992 A
5128855 Hilber et al. Jul 1992 A
5130519 Bush et al. Jul 1992 A
5130987 Flammer Jul 1992 A
5131038 Puhl et al. Jul 1992 A
5134650 Blackmon Jul 1992 A
5136285 Okuyama Aug 1992 A
5138615 Lamport et al. Aug 1992 A
5155481 Brennan, Jr. et al. Oct 1992 A
5159317 Brav Oct 1992 A
5159592 Perkins Oct 1992 A
5162776 Bushnell et al. Nov 1992 A
5170393 Peterson et al. Dec 1992 A
5177342 Adams Jan 1993 A
5189287 Panenti Feb 1993 A
5191192 Takahira et al. Mar 1993 A
5191326 Montgomery Mar 1993 A
5193111 Matty et al. Mar 1993 A
5195018 Kwon et al. Mar 1993 A
5197095 Bonnet et al. Mar 1993 A
5200735 Hines Apr 1993 A
5204670 Stinton Apr 1993 A
5212645 Wildes et al. May 1993 A
5216502 Katz Jun 1993 A
5221838 Gutman et al. Jun 1993 A
5223844 Mansell et al. Jun 1993 A
5224468 Simon et al. Jul 1993 A
5231658 Eftechiou Jul 1993 A
5235630 Moody et al. Aug 1993 A
5239294 Flanders et al. Aug 1993 A
5239575 White et al. Aug 1993 A
5241410 Streck et al. Aug 1993 A
5243338 Brennan, Jr. et al. Sep 1993 A
5245633 Schwartz et al. Sep 1993 A
5251205 Callon et al. Oct 1993 A
5252967 Brennan et al. Oct 1993 A
5253167 Yoshida et al. Oct 1993 A
5265150 Helmkamp et al. Nov 1993 A
5265162 Bush et al. Nov 1993 A
5266782 Alanara et al. Nov 1993 A
5272747 Meads Dec 1993 A
5276680 Messenger Jan 1994 A
5282204 Shpancer et al. Jan 1994 A
5282250 Dent et al. Jan 1994 A
5289165 Belin Feb 1994 A
5289362 Liebl et al. Feb 1994 A
5291516 Dixon et al. Mar 1994 A
5295154 Meier et al. Mar 1994 A
5305370 Kearns et al. Apr 1994 A
5309501 Kozik et al. May 1994 A
5315645 Matheny May 1994 A
5317309 Vercellotti et al. May 1994 A
5319364 Waraksa et al. Jun 1994 A
5319698 Glidewell et al. Jun 1994 A
5319711 Servi Jun 1994 A
5323384 Norwood et al. Jun 1994 A
5329394 Calvani et al. Jul 1994 A
5331318 Montgomery Jul 1994 A
5325429 Kurgan Aug 1994 A
5334974 Simms et al. Aug 1994 A
5335265 Cooper et al. Aug 1994 A
5343493 Karimullah Aug 1994 A
5344068 Haessig Sep 1994 A
5345231 Koo et al. Sep 1994 A
5345595 Johnson et al. Sep 1994 A
5347263 Carroll et al. Sep 1994 A
5352278 Korver et al. Oct 1994 A
5354974 Eisenberg Oct 1994 A
5355278 Hosoi et al. Oct 1994 A
5355513 Clarke et al. Oct 1994 A
5365217 Toner Nov 1994 A
5371736 Evan Dec 1994 A
5382778 Takahira et al. Jan 1995 A
5383134 Wrzesinski Jan 1995 A
5383187 Vardakas et al. Jan 1995 A
5390206 Rein Feb 1995 A
5406619 Akhteruzzaman et al. Apr 1995 A
5412192 Hoss May 1995 A
5412654 Perkins May 1995 A
5412760 Peitz May 1995 A
5416475 Tolbert et al. May 1995 A
5416725 Pacheco et al. May 1995 A
5418912 Reyes et al. May 1995 A
5420910 Rudokas et al. May 1995 A
5424708 Ballesty et al. Jun 1995 A
5430729 Rahnema Jul 1995 A
5432507 Mussino et al. Jul 1995 A
5438329 Castouniotis et al. Aug 1995 A
5439414 Jacob Aug 1995 A
5440545 Buchholz et al. Aug 1995 A
5442553 Parrillo Aug 1995 A
5442633 Perkins et al. Aug 1995 A
5445287 Center et al. Aug 1995 A
5445347 Ng Aug 1995 A
5451929 Adelman et al. Sep 1995 A
5451938 Brennan, Jr. Sep 1995 A
5452344 Larson Sep 1995 A
5454024 Lebowitz Sep 1995 A
5455569 Sherman et al. Oct 1995 A
5465401 Thompson Nov 1995 A
5467074 Pedtke Nov 1995 A
5467082 Sanderson Nov 1995 A
5467345 Cutler, Jr. et al. Nov 1995 A
5468948 Koenck et al. Nov 1995 A
5471201 Cerami et al. Nov 1995 A
5473322 Carney Dec 1995 A
5475889 Kay et al. Dec 1995 A
5479400 Dilworth et al. Dec 1995 A
5481259 Bane Jan 1996 A
5481532 Hassan et al. Jan 1996 A
5484997 Haynes Jan 1996 A
5488608 Flammer, III Jan 1996 A
5493273 Smurlo et al. Feb 1996 A
5493287 Bane Feb 1996 A
5502726 Fischer Mar 1996 A
5504746 Meier Apr 1996 A
5506837 Sollner et al. Apr 1996 A
5508412 Kast et al. Apr 1996 A
5509073 Monnin Apr 1996 A
5513244 Joao et al. Apr 1996 A
5515419 Sheffer May 1996 A
5517188 Carroll et al. May 1996 A
5522089 Kikinis et al. May 1996 A
5528215 Su et al. Jun 1996 A
5528507 McNamara et al. Jun 1996 A
5539825 Akiyama et al. Jul 1996 A
5541938 Di Zenzo et al. Jul 1996 A
5542100 Hatakeyama Jul 1996 A
5544036 Brown, Jr. et al. Aug 1996 A
5544322 Cheng et al. Aug 1996 A
5544784 Malaspina Aug 1996 A
5548632 Walsh et al. Aug 1996 A
5550358 Tait et al. Aug 1996 A
5550359 Bennett Aug 1996 A
5550535 Park Aug 1996 A
5553094 Johnson Sep 1996 A
5555258 Snelling et al. Sep 1996 A
5555286 Tendler Sep 1996 A
5557320 Krebs Sep 1996 A
5557748 Norris Sep 1996 A
5562537 Zver et al. Oct 1996 A
5565857 Lee Oct 1996 A
5568535 Sheffer et al. Oct 1996 A
5570084 Ritter et al. Oct 1996 A
5572438 Ehlers et al. Nov 1996 A
5572528 Shuen Nov 1996 A
5573181 Ahmed Nov 1996 A
5574111 Brichta et al. Nov 1996 A
5583850 Snodgrass et al. Dec 1996 A
5583914 Chang et al. Dec 1996 A
5587705 Morris Dec 1996 A
5588005 Ali et al. Dec 1996 A
5589878 Cortjens et al. Dec 1996 A
5590038 Pitroda Dec 1996 A
5590179 Shincovich et al. Dec 1996 A
5592491 Dinkins Jan 1997 A
5594431 Sheppard et al. Jan 1997 A
5596719 Ramakrishnan et al. Jan 1997 A
5596722 Rahnema Jan 1997 A
5602843 Gray Feb 1997 A
5604414 Milligan et al. Feb 1997 A
5604869 Mincher et al. Feb 1997 A
5606361 Davidsohn et al. Feb 1997 A
5608721 Natarajan et al. Mar 1997 A
5608786 Gordon Mar 1997 A
5613620 Center et al. Mar 1997 A
5615227 Schumacher, Jr. et al. Mar 1997 A
5615277 Hoffman Mar 1997 A
5617084 Sears Apr 1997 A
5619192 Ayala Apr 1997 A
5623495 Eng et al. Apr 1997 A
5625410 Washino et al. Apr 1997 A
5628050 McGraw et al. May 1997 A
5629687 Sutton et al. May 1997 A
5629875 Adair, Jr. May 1997 A
5630209 Wizgall et al. May 1997 A
5631554 Briese et al. May 1997 A
5636216 Fox et al. Jun 1997 A
5640002 Ruppert et al. Jun 1997 A
5644294 Ness Jul 1997 A
5649108 Spiegel Jul 1997 A
5655219 Jusa et al. Aug 1997 A
5657380 Houvener Aug 1997 A
5659300 Dresselhuys et al. Aug 1997 A
5659303 Adair, Jr. Aug 1997 A
5668876 Falk et al. Sep 1997 A
5673252 Johnson et al. Sep 1997 A
5673259 Quick, Jr. Sep 1997 A
5673304 Connor et al. Sep 1997 A
5673305 Ross Sep 1997 A
5682139 Pradeep et al. Oct 1997 A
5682476 Tapperson et al. Oct 1997 A
5689229 Chaco et al. Nov 1997 A
5691980 Welles, II et al. Nov 1997 A
5696695 Ehlers et al. Dec 1997 A
5699328 Ishizaki et al. Dec 1997 A
5701002 Oishi et al. Dec 1997 A
5702059 Chu et al. Dec 1997 A
5704046 Hogan Dec 1997 A
5704517 Lancaster, Jr. Jan 1998 A
5706191 Bassett et al. Jan 1998 A
5706976 Purkey Jan 1998 A
5708223 Wyss Jan 1998 A
5708655 Toth et al. Jan 1998 A
5712619 Simkin Jan 1998 A
5712980 Beeler et al. Jan 1998 A
5714931 Petite et al. Feb 1998 A
5717718 Rowsell et al. Feb 1998 A
5719564 Sears Feb 1998 A
5722076 Sakabe et al. Feb 1998 A
5726534 Seo Mar 1998 A
5726544 Lee Mar 1998 A
5726634 Hess et al. Mar 1998 A
5726644 Jednacz et al. Mar 1998 A
5726984 Kubler et al. Mar 1998 A
5732074 Spaur et al. Mar 1998 A
5732078 Arango Mar 1998 A
5736965 Mosebrook et al. Apr 1998 A
5737318 Melnik Apr 1998 A
5740232 Pailles et al. Apr 1998 A
5740366 Mahany et al. Apr 1998 A
5742509 Goldberg et al. Apr 1998 A
5745849 Britton Apr 1998 A
5748104 Argyroudis et al. May 1998 A
5748619 Meier May 1998 A
5754111 Garcia May 1998 A
5754227 Fukuoka May 1998 A
5757783 Eng et al. May 1998 A
5757788 Tatsumi et al. May 1998 A
5760742 Branch et al. Jun 1998 A
5761083 Brown, Jr. et al. Jun 1998 A
5764742 Howard et al. Jun 1998 A
5767791 Stoop et al. Jun 1998 A
5771274 Harris Jun 1998 A
5774052 Hamm et al. Jun 1998 A
5781143 Rossin Jul 1998 A
5790644 Kikinis Aug 1998 A
5790662 Valerij et al. Aug 1998 A
5790938 Talarmo Aug 1998 A
5796727 Harrison et al. Aug 1998 A
5798964 Shimizu et al. Aug 1998 A
5801643 Williams et al. Sep 1998 A
5812531 Cheung et al. Sep 1998 A
5815505 Mills Sep 1998 A
5818822 Thomas et al. Oct 1998 A
5822273 Bary et al. Oct 1998 A
5822309 Ayanoglu et al. Oct 1998 A
5822544 Chaco et al. Oct 1998 A
5825772 Dobbins et al. Oct 1998 A
5826195 Westerlage et al. Oct 1998 A
5828044 Jun et al. Oct 1998 A
5832057 Furman Nov 1998 A
5838223 Gallant et al. Nov 1998 A
5838237 Revell et al. Nov 1998 A
5838812 Pare, Jr. et al. Nov 1998 A
5841118 East et al. Nov 1998 A
5841764 Roderique et al. Nov 1998 A
5842976 Williamson Dec 1998 A
5844808 Konsmo et al. Dec 1998 A
5845230 Lamberson Dec 1998 A
5848054 Mosebrook et al. Dec 1998 A
5852658 Knight et al. Dec 1998 A
5854994 Canada et al. Dec 1998 A
5856974 Gervais et al. Jan 1999 A
5862201 Sands Jan 1999 A
5864772 Alvarado et al. Jan 1999 A
5870686 Monson Feb 1999 A
5872773 Katzela et al. Feb 1999 A
5873043 Comer Feb 1999 A
5874903 Shuey et al. Feb 1999 A
5875185 Wang et al. Feb 1999 A
5880677 Lestician Mar 1999 A
5883886 Eaton et al. Mar 1999 A
5884184 Sheffer Mar 1999 A
5884271 Pitroda Mar 1999 A
5886333 Miyake Mar 1999 A
5889468 Banga Mar 1999 A
5892690 Boatman et al. Apr 1999 A
5892758 Argyroudis Apr 1999 A
5892924 Lyon et al. Apr 1999 A
5896097 Cardozo Apr 1999 A
5897421 Rink et al. Apr 1999 A
5897607 Jenney et al. Apr 1999 A
5898369 Godwin Apr 1999 A
5898733 Satyanarayana Apr 1999 A
5905438 Weiss et al. May 1999 A
5905442 Mosebrook et al. May 1999 A
5907291 Chen et al. May 1999 A
5907491 Canada May 1999 A
5907540 Hayashi May 1999 A
5907807 Chavez, Jr. et al. May 1999 A
5909429 Satyanarayana et al. Jun 1999 A
5914656 Ojala et al. Jun 1999 A
5914672 Giorioso et al. Jun 1999 A
5914673 Jennings et al. Jun 1999 A
5917405 Joao Jun 1999 A
5917629 Hortensius et al. Jun 1999 A
5923269 Shuey et al. Jul 1999 A
5926101 Dasgupta Jul 1999 A
5926103 Petite Jul 1999 A
5926529 Hache et al. Jul 1999 A
5926531 Petite Jul 1999 A
5933073 Shuey Aug 1999 A
5940771 Gollnick et al. Aug 1999 A
5941363 Partyka et al. Aug 1999 A
5941955 Wilby et al. Aug 1999 A
5946631 Melnik Aug 1999 A
5948040 DeLorme et al. Sep 1999 A
5949779 Mostafa et al. Sep 1999 A
5949799 Grivna et al. Sep 1999 A
5953319 Dutta et al. Sep 1999 A
5953371 Rowsell et al. Sep 1999 A
5953507 Cheung et al. Sep 1999 A
5955718 Levasseur et al. Sep 1999 A
5957718 Cheng et al. Sep 1999 A
5960074 Clark Sep 1999 A
5963146 Johnson et al. Oct 1999 A
5963452 Etoh et al. Oct 1999 A
5963650 Simionescu Oct 1999 A
5966658 Kennedy, III et al. Oct 1999 A
5969608 Sojdehei et al. Oct 1999 A
5973756 Erlin Oct 1999 A
5974236 Sherman Oct 1999 A
5978364 Melnik Nov 1999 A
5978371 Mason, Jr. et al. Nov 1999 A
5978578 Azarya et al. Nov 1999 A
5986574 Colton Nov 1999 A
5987011 Toh Nov 1999 A
5987331 Grube et al. Nov 1999 A
5987421 Chuang Nov 1999 A
5991625 Vanderpool Nov 1999 A
5991639 Rautiola et al. Nov 1999 A
5994892 Turino et al. Nov 1999 A
5995022 Plis et al. Nov 1999 A
5995592 Shirai et al. Nov 1999 A
5995593 Cho Nov 1999 A
5997170 Brodbeck Dec 1999 A
5999094 Nilssen Dec 1999 A
6005759 Hart et al. Dec 1999 A
6005884 Cook et al. Dec 1999 A
6005963 Bolle et al. Dec 1999 A
6018659 Ayyagari et al. Jan 2000 A
6021664 Granato et al. Feb 2000 A
6023223 Baxter, Jr. Feb 2000 A
6026095 Sherer et al. Feb 2000 A
6028522 Petite Feb 2000 A
6028857 Poor Feb 2000 A
6031455 Grube et al. Feb 2000 A
6032197 Birdwell et al. Feb 2000 A
6035213 Tokuda et al. Mar 2000 A
6035266 Williams et al. Mar 2000 A
6036086 Sizer, II et al. Mar 2000 A
6038491 McGarry et al. Mar 2000 A
6044062 Brownrigg et al. Mar 2000 A
6046978 Melnik Apr 2000 A
6054920 Smith et al. Apr 2000 A
6055561 Feldman et al. Apr 2000 A
6060994 Chen May 2000 A
6061604 Russ et al. May 2000 A
6064318 Kirchner May 2000 A
6067017 Stewart et al. May 2000 A
6067030 Burnett et al. May 2000 A
6069886 Ayerst et al. May 2000 A
6073169 Shuey Jun 2000 A
6073266 Ahmed et al. Jun 2000 A
6073840 Marion Jun 2000 A
6075451 Lebowitz et al. Jun 2000 A
6078251 Landt et al. Jun 2000 A
6084867 Meier Jul 2000 A
6087957 Gray Jul 2000 A
6088659 Kelley et al. Jul 2000 A
6094622 Hubbard et al. Jul 2000 A
6097703 Larsen et al. Aug 2000 A
6100816 Moore Aug 2000 A
6100817 Mason, Jr. et al. Aug 2000 A
6101427 Yang Aug 2000 A
6101445 Alvarado et al. Aug 2000 A
6108614 Lincoln et al. Aug 2000 A
6112983 D'Anniballe et al. Sep 2000 A
6115393 Engel et al. Sep 2000 A
6115580 Chuprun et al. Sep 2000 A
6119076 Williams et al. Sep 2000 A
6121593 Mansbery et al. Sep 2000 A
6121885 Masone et al. Sep 2000 A
6122759 Ayanoglu et al. Sep 2000 A
6124806 Cunningham et al. Sep 2000 A
6127917 Tuttle Oct 2000 A
6128551 Davis et al. Oct 2000 A
6130622 Hussey et al. Oct 2000 A
6133850 Moore Oct 2000 A
6137423 Glorioso et al. Oct 2000 A
6140975 Cohen Oct 2000 A
6141347 Shaughnessy et al. Oct 2000 A
6150936 Addy Nov 2000 A
6150955 Tracy et al. Nov 2000 A
6157464 Bloomfield et al. Dec 2000 A
6157824 Bailey Dec 2000 A
6163276 Irving et al. Dec 2000 A
6167239 Wright et al. Dec 2000 A
6172616 Johnson et al. Jan 2001 B1
6173159 Wright et al. Jan 2001 B1
6174205 Madsen et al. Jan 2001 B1
6175922 Wang Jan 2001 B1
6177883 Jennetti et al. Jan 2001 B1
6178173 Mundwiler et al. Jan 2001 B1
6181255 Crimmins et al. Jan 2001 B1
6181284 Madsen et al. Jan 2001 B1
6181981 Varga et al. Jan 2001 B1
6185307 Johnson, Jr. Feb 2001 B1
6188354 Soliman et al. Feb 2001 B1
6188675 Casper et al. Feb 2001 B1
6192282 Smith et al. Feb 2001 B1
6192390 Berger et al. Feb 2001 B1
6195018 Ragle et al. Feb 2001 B1
6198390 Schlader et al. Mar 2001 B1
6199068 Carpenter Mar 2001 B1
6201962 Sturniolo et al. Mar 2001 B1
6205143 Lemieux Mar 2001 B1
6208247 Agre et al. Mar 2001 B1
6208266 Lyons et al. Mar 2001 B1
6212175 Harsch Apr 2001 B1
6215404 Morales Apr 2001 B1
6215440 Geidart et al. Apr 2001 B1
6218953 Petite Apr 2001 B1
6218958 Eichstaedt et al. Apr 2001 B1
6218983 Kerry et al. Apr 2001 B1
6219409 Smith et al. Apr 2001 B1
6229439 Tice May 2001 B1
6233327 Petite May 2001 B1
6234111 Ulman et al. May 2001 B1
6236332 Conkright et al. May 2001 B1
6243010 Addy et al. Jun 2001 B1
6246676 Chen et al. Jun 2001 B1
6246677 Nap Jun 2001 B1
6246886 Oliva Jun 2001 B1
6249516 Brownrigg et al. Jun 2001 B1
6259369 Monico Jul 2001 B1
6271752 Vaios Aug 2001 B1
6275166 del Castillo et al. Aug 2001 B1
6275707 Reed et al. Aug 2001 B1
6286050 Pullen et al. Sep 2001 B1
6286756 Stinson et al. Sep 2001 B1
6288634 Weiss et al. Sep 2001 B1
6288641 Casais Sep 2001 B1
6295291 Larkins Sep 2001 B1
6301514 Canada et al. Oct 2001 B1
6304556 Haas Oct 2001 B1
6305205 Derks et al. Oct 2001 B1
6305602 Grabowski et al. Oct 2001 B1
6307843 Okanoue Oct 2001 B1
6308111 Koga Oct 2001 B1
6311167 Davis et al. Oct 2001 B1
6314169 Schelberg, Jr. et al. Nov 2001 B1
6317029 Fleeter Nov 2001 B1
6327245 Satyanarayana et al. Dec 2001 B1
6329902 Lee et al. Dec 2001 B1
6334117 Covert et al. Dec 2001 B1
6351223 DeWeerd et al. Feb 2002 B1
6356205 Salvo et al. Mar 2002 B1
6357034 Muller et al. Mar 2002 B1
6362745 Davis Mar 2002 B1
6363057 Ardalan et al. Mar 2002 B1
6363422 Hunter et al. Mar 2002 B1
6366217 Cunningham Apr 2002 B1
6366622 Brown et al. Apr 2002 B1
6369769 Nap et al. Apr 2002 B1
6370489 Williams et al. Apr 2002 B1
6373399 Johnson et al. Apr 2002 B1
6380851 Gilbert et al. Apr 2002 B1
6384722 Williams May 2002 B1
6392692 Monroe May 2002 B1
6393341 Lawrence et al. May 2002 B1
6393381 Williams et al. May 2002 B1
6393382 Williams et al. May 2002 B1
6396839 Ardalan May 2002 B1
6400819 Nakano et al. Jun 2002 B1
6401081 Montgomery et al. Jun 2002 B1
6405018 Reudink et al. Jun 2002 B1
6411889 Mizunuma et al. Jun 2002 B1
6415155 Koshima et al. Jul 2002 B1
6415245 Williams et al. Jul 2002 B2
6416471 Kumar et al. Jul 2002 B1
6421354 Godlewski Jul 2002 B1
6421731 Ciotti, Jr. et al. Jul 2002 B1
6422464 Terranova Jul 2002 B1
6424270 Ali Jul 2002 B1
6424931 Sigmar et al. Jul 2002 B1
6430268 Petite Aug 2002 B1
6431439 Suer et al. Aug 2002 B1
6437692 Petite et al. Aug 2002 B1
6438575 Khan et al. Aug 2002 B1
6441723 Mansfield, Jr. et al. Aug 2002 B1
6445291 Addy et al. Sep 2002 B2
6456960 Williams et al. Sep 2002 B1
6457038 Defosse Sep 2002 B1
6462644 Howell et al. Oct 2002 B1
6462672 Beson Oct 2002 B1
6477558 Irving et al. Nov 2002 B1
6483290 Hemminger et al. Nov 2002 B1
6484939 Blaeuer Nov 2002 B1
6489884 Lamberson Dec 2002 B1
6491828 Sivavec et al. Dec 2002 B1
6492910 Ragle et al. Dec 2002 B1
6496696 Melnik Dec 2002 B1
6504357 Hemminger et al. Jan 2003 B1
6504834 Fifield Jan 2003 B1
6507794 Hubbard et al. Jan 2003 B1
6509722 Lopata Jan 2003 B2
6513060 Nixon et al. Jan 2003 B1
6515586 Wymore Feb 2003 B1
6519568 Harvey et al. Feb 2003 B1
6532077 Arakawa Mar 2003 B1
6538577 Ehrke et al. Mar 2003 B1
6542077 Joao Apr 2003 B2
6542078 Joao Apr 2003 B2
6543690 Leydier et al. Apr 2003 B2
6560223 Egan et al. May 2003 B1
6574234 Myer et al. Jun 2003 B1
6574603 Dickson et al. Jun 2003 B1
6584080 Ganz et al. Jun 2003 B1
6600726 Nevo et al. Jul 2003 B1
6608551 Anderson et al. Aug 2003 B1
6618578 Petite Sep 2003 B1
6618709 Sneeringer Sep 2003 B1
6628764 Petite Sep 2003 B1
6628965 LaRosa et al. Sep 2003 B1
6653945 Johnson et al. Nov 2003 B2
6654357 Wiedeman Nov 2003 B1
6665278 Grayson Dec 2003 B2
6671586 Davis et al. Dec 2003 B2
6671819 Passman et al. Dec 2003 B1
6674403 Gray et al. Jan 2004 B2
6678255 Kuriyan Jan 2004 B1
6678285 Garg Jan 2004 B1
6691173 Morris et al. Feb 2004 B2
6731201 Bailey et al. May 2004 B1
6735630 Gelvin et al. May 2004 B1
6747557 Petite et al. Jun 2004 B1
6751196 Hulyalkar et al. Jun 2004 B1
6771981 Zalewski et al. Aug 2004 B1
6775258 van Valkenburg et al. Aug 2004 B1
6804532 Moon et al. Oct 2004 B1
6816088 Knoska et al. Nov 2004 B1
6826607 Getvin et al. Nov 2004 B1
6832251 Gelvin et al. Dec 2004 B1
6842430 Melnik Jan 2005 B1
6858876 Gordon et al. Feb 2005 B2
6859831 Getvin et al. Feb 2005 B1
6888876 Mason, Jr. et al. May 2005 B1
6891838 Petite May 2005 B1
6900737 Ardalan et al. May 2005 B1
6906636 Kraml Jun 2005 B1
6914533 Petite Jul 2005 B2
6914893 Petite Jul 2005 B2
6922558 Delp et al. Jul 2005 B2
6959550 Freeman et al. Nov 2005 B2
6970434 Mahany et al. Nov 2005 B1
7020701 Gelvin et al. Mar 2006 B1
7027416 Kriz Apr 2006 B1
7027773 McMillin Apr 2006 B1
7053767 Petite et al. May 2006 B2
7054271 Brownrigg et al. May 2006 B2
7064679 Ehrke et al. Jun 2006 B2
7103511 Petite Sep 2006 B2
7117239 Hansen Oct 2006 B1
7146433 Cromer Dec 2006 B2
7181501 Defosse Feb 2007 B2
7254372 Janusz et al. Aug 2007 B2
7280483 Joshi Oct 2007 B2
7304567 Boaz Dec 2007 B2
7349682 Bennett, III et al. Mar 2008 B1
7408911 Joshi Aug 2008 B2
7408929 Adachi Aug 2008 B2
7424527 Petite Sep 2008 B2
7468661 Petite et al. Dec 2008 B2
7480501 Petite Jan 2009 B2
7484008 Gelvin et al. Jan 2009 B1
7573813 Melnik Aug 2009 B2
7653394 McMillin Jan 2010 B2
7739378 Petite Jun 2010 B2
7808939 Bansal Oct 2010 B2
9439126 Petite Sep 2016 B2
9860820 Petite Jan 2018 B2
10356687 Petite Jul 2019 B2
20010002210 Petite May 2001 A1
20010003479 Fujiwara Jun 2001 A1
20010021646 Antonucci et al. Sep 2001 A1
20010024163 Petite Sep 2001 A1
20010034223 Rieser et al. Oct 2001 A1
20010038343 Meyer et al. Nov 2001 A1
20020002444 Williams et al. Jan 2002 A1
20020012323 Petite et al. Jan 2002 A1
20020013679 Petite Jan 2002 A1
20020016829 Defosse Feb 2002 A1
20020019725 Petite Feb 2002 A1
20020027504 Petite Mar 2002 A1
20020031101 Petite et al. Mar 2002 A1
20020032746 Lazaridis Mar 2002 A1
20020061031 Sugar et al. May 2002 A1
20020072348 Wheeler et al. Jun 2002 A1
20020089428 Walden et al. Jul 2002 A1
20020095399 Devine et al. Jul 2002 A1
20020098858 Struhsaker Jul 2002 A1
20020109607 Cumeralto et al. Aug 2002 A1
20020136233 Chen et al. Sep 2002 A1
20020158774 Johnson et al. Oct 2002 A1
20020163442 Fischer Nov 2002 A1
20020169643 Petite et al. Nov 2002 A1
20020186665 Chafee et al. Dec 2002 A1
20020186682 Kawano Dec 2002 A1
20020193144 Belski et al. Dec 2002 A1
20030001754 Johnson et al. Jan 2003 A1
20030023146 Shusterman Jan 2003 A1
20030028632 Davis Feb 2003 A1
20030030926 Aguren et al. Feb 2003 A1
20030034900 Han Feb 2003 A1
20030035438 Larsson Feb 2003 A1
20030036822 Davis et al. Feb 2003 A1
20030046377 Daum et al. Mar 2003 A1
20030056818 Wilkes et al. Mar 2003 A1
20030069002 Hunter et al. Apr 2003 A1
20030073406 Benjamin et al. Apr 2003 A1
20030078029 Petite Apr 2003 A1
20030093484 Petite May 2003 A1
20030133473 Manis et al. Jul 2003 A1
20030169710 Fan et al. Sep 2003 A1
20030185204 Murdock Oct 2003 A1
20030210638 Yoo et al. Nov 2003 A1
20040047324 Diener Mar 2004 A1
20040053639 Petite et al. Mar 2004 A1
20040090950 Lauber et al. May 2004 A1
20040113810 Mason, Jr. et al. Jun 2004 A1
20040131125 Sanderford, Jr. et al. Jul 2004 A1
20040133917 Schilling Jul 2004 A1
20040183687 Petite et al. Sep 2004 A1
20040228330 Kubler et al. Nov 2004 A1
20040260808 Strutt Dec 2004 A1
20050017068 Zalewski et al. Jan 2005 A1
20050100055 Petite Sep 2005 A1
20050195768 Petite Sep 2005 A1
20050195775 Petite Sep 2005 A1
20050201397 Petite Sep 2005 A1
20050243867 Petite Nov 2005 A1
20050270173 Boaz Dec 2005 A1
20060098576 Brownrigg et al. May 2006 A1
20060098608 Joshi May 2006 A1
20070112907 Defosse May 2007 A1
20070258508 Werb et al. Nov 2007 A1
20080186898 Petite Aug 2008 A1
20090006617 Petite Jan 2009 A1
20090068947 Petite Mar 2009 A1
20090215424 Petite Aug 2009 A1
20090243840 Petite et al. Oct 2009 A1
20100250054 Petite Sep 2010 A1
Foreign Referenced Citations (58)
Number Date Country
0483547 May 1992 EP
0578041 81 Jan 1994 EP
0663746 81 Jul 1995 EP
0718954 Jun 1996 EP
0740873 Nov 1996 EP
0749259 Dec 1996 EP
0749260 Dec 1996 EP
0766489 Apr 1997 EP
0768777 Apr 1997 EP
0812502 Dec 1997 EP
0825577 Feb 1998 EP
0999717 May 2000 EP
1096454 May 2001 EP
2817110 May 2002 FR
2229302 Sep 1990 GB
2247761 Mar 1992 GB
2262683 Jun 1993 GB
2297663 Aug 1996 GB
2310779 Sep 1997 GB
2326002 Dec 1998 GB
2336272 Oct 1999 GB
2352004 Jan 2001 GB
2352590 Jan 2001 GB
60261288 Dec 1985 JP
1255100 Oct 1989 JP
11353573 Dec 1999 JP
200113590 Apr 2000 JP
2001063425 Mar 2001 JP
2001088401 Apr 2001 JP
2001309069 Nov 2001 JP
2001319284 Nov 2001 JP
2001357483 Dec 2001 JP
2002007672 Jan 2002 JP
2002007826 Jan 2002 JP
2002085354 Mar 2002 JP
2002171354 Jun 2002 JP
20010025431 Apr 2001 KR
90013197 Nov 1990 WO
WO 9512942 May 1995 WO
WO 9524177 Sep 1995 WO
95034177 Dec 1995 WO
WO 9610307 Apr 1996 WO
98000056 Jan 1998 WO
WO199810393 Mar 1998 WO
98037528 Aug 1998 WO
WO 9845717 Oct 1998 WO
9913426 Mar 1999 WO
00023958 Apr 2000 WO
WO200036812 Jun 2000 WO
WO 0055825 Sep 2000 WO
01015114 Mar 2001 WO
01024109 Apr 2001 WO
02008725 Jan 2002 WO
02008866 Jan 2002 WO
02052521 Jul 2002 WO
03007264 Jan 2003 WO
03021877 Mar 2003 WO
2004002014 Dec 2003 WO
Non-Patent Literature Citations (3)
Entry
Chane Lee Fullmer; “Collision Avoidance Techniques for Packet-Radio Networks” thesis; University of California at Santa Cruz, CA; Jun. 1998; pp. 1-172.
International Search Report and Written Opinion for International Application No. PCT/US2006/002342, Search Authority European Patent Office, dated May 31, 2006.
International Search Report and Written Opinion for International Application No. PCT/US2006/002342, Search Authority Korean Intellectual Property Office, dated Nov. 13, 2006.
Related Publications (1)
Number Date Country
20190289525 A1 Sep 2019 US
Provisional Applications (1)
Number Date Country
60646689 Jan 2005 US
Continuations (3)
Number Date Country
Parent 15859885 Jan 2018 US
Child 16432176 US
Parent 15527641 Sep 2016 US
Child 15859885 US
Parent 11814632 US
Child 15527641 US