METHOD AND APPARATUS FOR RAPID GROUP SYNCHRONIZATION
A first device of a network may decide to transmit a flood of packets that is longer in duration than the maximum amount of time that the first device can continuously transmit. The first device may coordinate with one or more second devices of the network such that each of the one or more second devices transmits a respective second portion of the flood of packets following transmission of a first portion of the flood of packets by the first network device. The packets may advertise a pending network event that is to occur at a time indicated by the contents of the packets. The first device may select the one or more second devices from a plurality of devices based on a location of the one or more second devices and/or how many third devices are in the network.
This patent application is a continuation of U.S. application Ser. No. 15/399,251 filed Jan. 5, 2017, which a continuation of U.S. application Ser. No. 15/157,445 filed May 18, 2016, which is a continuation of U.S. application Ser. No. 15/012,888 filed Feb. 2, 2016, which is a continuation of U.S. application Ser. No. 14/886,151 filed Oct. 19, 2015, which is a continuation of U.S. application Ser. No. 14/324,411, filed Jul. 7, 2014 (now U.S. Pat. No. 9,166,894), which is a continuation of U.S. application Ser. No. 13/408,457, filed Feb. 29, 2012 (now U.S. Pat. No. 8,774,096), which makes reference to, claims priority to and claims benefit from U.S. Provisional Patent Application Ser. No. 61/464,376 entitled “Advanced Communication System for Wide-area Low Power Wireless Applications and Active RFID” and filed on Mar. 2, 2011.
Each of above-referenced documents is hereby incorporated herein by reference in its entirety.
INCORPORATION BY REFERENCEThis patent application also makes reference to:
- U.S. Provisional Patent Application Ser. No. 61/464,376 titled “Advanced Communication System for Wide-Area Low Power Wireless Applications and Active RFID” and filed on Mar. 2, 2011, now expired;
U.S. Provisional Patent Application Ser. No. 61/572,390 titled “System for Adding Dash?-Based Applications Capability to a Smartphone” and filed on Jul. 15, 2011, now expired;
U.S. Pat. No. 8,976,691 titled “Method and Apparatus for Adaptive Searching of Distributed Datasets” and filed on Oct. 6, 2011;
U.S. Pat. No. 9,042,353 titled “Method and Apparatus for Low-Power, Long-Range Networking” and filed on Oct. 6, 2011;
U.S. Pat. No. 8,718,551 titled “Method and Apparatus for a Multi-band, Multi-mode Smartcard” and filed on Oct. 11, 2011;
U.S. patent application Ser. No. 13/270,959 titled “Method and Apparatus for an Integrated Antenna” and filed on Oct. 11, 2011;
U.S. patent application Ser. No. 13/289,054 titled “Method and Apparatus for Electronic Payment” and filed on Nov. 4, 2011;
U.S. patent application Ser. No. 13/289,050 titled “Method And Apparatus For Tire Pressure Monitoring” filed on Nov. 4, 2011;
U.S. Pat. No. 8,622,312 titled “Method and Apparatus for Interfacing with a Smartcard” and filed on Nov. 16, 2011;
U.S. Pat. No. 9,104,548 titled “Method and Apparatus for Memory Management” and filed on Jan. 20, 2012;
U.S. patent application Ser. No. 13/354,615 titled “Method and Apparatus for Discovering, People, Products, and/or Services via a Localized Wireless Network” and filed on Jan. 20, 2012;
U.S. Pat. No. 8,909,865 titled “Method and apparatus for Plug and Play, Networkable ISO 18000-7 Connectivity” and filed on Feb. 15, 2012;
United States Patent Publication No. 2012/0209716 titled “Method and Apparatus for Serving Advertisements in a Low-Power Wireless Network” and filed on Feb. 15, 2012;
U.S. patent application Ser. No. 13/408,440 titled “Method and Apparatus for Forward Error Correction (FEC) in a Resource-Constrained Network” and filed on Feb. 29, 2012, now abandoned;
U.S. Pat. No. 8,867,370 titled “Method and Apparatus for Adaptive Traffic Management in a Resource-Constrained Network” and filed on Feb. 29, 2012;
U.S. Pat. No. 9,191,340 titled “Method and Apparatus for Dynamic Media Access Control in a Multiple Access System” and filed on Feb. 29, 2012;
United States Patent Publication No. 2012/0226822 titled “Method and Apparatus for Addressing in a Resource-Constrained Network” and filed on Feb. 29, 2012;
U.S. Pat. No. 8,885,586 titled “Method and Apparatus for Query-Based Congestion Control” and filed on Feb. 29, 2012; and
U.S. Pat. No. 9,154,392 titled “Method and Apparatus for Power Autoscaling in a Resource-Constrained Network” and filed on Feb. 29, 2012.
Each of the above-referenced applications is hereby incorporated herein by reference in its entirety.
FIELD OF THE INVENTIONCertain embodiments of the invention relate to networking. More specifically, certain embodiments of the invention relate to a method and apparatus for rapid group synchronization.
BACKGROUND OF THE INVENTIONExisting methods and systems for synchronizing wireless devices are time and power intensive. Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.
BRIEF SUMMARY OF THE INVENTIONA system and/or method is provided for rapid group synchronization, substantially as illustrated by and/or described in connection with at least one of the figures, as set forth more completely in the claims.
These and other advantages, aspects and novel features of the present invention, as well as details of an illustrated embodiment thereof, will be more fully understood from the following description and drawings.
As utilized herein the terms “circuits” and “circuitry” refer to physical electronic components (i.e. hardware) and any software and/or firmware (“code”) which may configure the hardware, be executed by the hardware, and or otherwise be associated with the hardware. As utilized herein, “and/or” means any one or more of the items in the list joined by “and/or”. As an example, “x and/or y” means any element of the three-element set {(x), (y), (x, y)}. As another example, “x, y, and/or z” means any element of the seven-element set {(x), (y), (z), (x, y), (x, z), (y, z), (x, y, z)}. As utilized herein, the terms “block” and “module” refer to functions than can be implemented in hardware, software, firmware, or any combination of one or more thereof. As utilized herein, the term “exemplary” means serving as a non-limiting example, instance, or illustration. As utilized herein, the terms “e.g.,” and “for example” introduce a list of one or more non-limiting examples, instances, or illustrations.
Each of the devices 1021 and 1022 may be, for example, a base station or a network sub-controller and may comprise circuitry for communicating wirelessly, and managing overall synchronization and access to the wireless network within the cell 108. The devices 1021 and 1022 may transmit and receive wireless signals in accordance with any one or more protocols. Such protocols may include, for example, protocols defined in the ISO 18000-7 standard, and/or protocols described in the above-incorporated U.S. Provisional Patent Application No. 61/464,376 filed on Mar. 2, 2011. An exemplary device 102 is described below with respect to
Each of the endpoints 1041-10415 may comprise circuitry for communicating wirelessly. Each of the devices 1021 and 1022 may communicate with in-range endpoints in accordance with any one or more protocols. Such protocols may include, for example, protocols defined in the ISO 18000-7 standard, and/or protocols described in the above-incorporated U.S. Provisional Patent Application No. 61/464,376 filed on Mar. 2, 2011. An exemplary endpoint 104 is described below with respect to
In operation, the devices 1021 and 1022 may send two types of protocol data units (PDUs) to the devices 1041-10415. A first type of PDU (referred to herein as a “background frame”) may be utilized for scheduling the occurrence of events in the network, (e.g., with reference to the common network time and/or common time base), and/or for other network communications. A second type of PDU (referred to herein as a “foreground frame”) may be utilized for data exchanges and/or other network communications.
The devices 1021 and 1022 may comprise clocks which may be utilized for scheduling communications and/or other events in the network. Generally speaking, transmissions in the network may be coordinated utilizing collision detection and/or collision avoidance, rather than a “fully-managed” or “time-slotted” scheme. As a result, at any given time, one or more of the devices 1041-10415 may be transmitting on the medium, one or more of the devices 1041-10415 may be listening on the medium, and one or more of the devices 1041-10415 may be in a low-power or powered-down state. Consequently, reliably synchronizing all of the devices 1041-10415 may require the transmission of multiple background frames in succession. That is, the more background frames that are consecutively sent, the more likely it may be that any or all devices 1041-10415 have successfully received one of the background frames.
Each of the devices 1021 and 1022 may, however, be limited in how many consecutive background frames it can send. Accordingly, aspects of the invention may enable the devices 1021-1022 to coordinate a flood of background frames where a transmission of one or more background packets on a particular channel by device 1021 is followed immediately (or as nearly immediately as may be possible or permitted) by a transmission of one or more background packets on the same channel by device 1022. In this manner, a flood of background packets twice as long as may be sent by device 1021 or 1022 alone may be achieved. For even longer floods, the devices 1021 and 1022 may coordinate with additional devices 102 (not shown) and/or the devices 1021 and 1022 may continue to alternate transmissions back-to-back for as long as may be desired.
The CPU 204 may comprise circuitry operable to control operation of the first device 102. The CPU 204 may, for example, execute an operating system and/or other programs such (e.g., programs that enable a user interface of the device 102). The CPU 204 may generate one or more control signals for controlling the operation of the device 102. The CPU 204 may, for example, control a mode of operation of the device 102.
The CPU 214 may comprise circuitry operable to control operation of the second device 104. In some instances, the CPU 214 may be substantially similar to the CPU 204. In instances that the device 102 is less resource-constrained device, such as a base station or network controller, and the device 104 is more resource-constrained device, such as a battery-powered tag or a smartcard as described in above-incorporated U.S. patent application having Ser. No. 13/270,802, the CPU 204 may be less-complex (e.g., comprise fewer gates, utilize less power, utilize less memory, etc.) than the CPU 214. In one embodiment, for example, the CPU 204 may comprise a RISC or ARM processor, and the CPU 214 may comprise a state-machine having a relatively small number of states (e.g., four states).
The radio 207 may comprise a processor 208 and an analog front-end (AFE) 209. The processor 208 may comprise circuitry operable to interface with the AFE 209 to receive and transmit data, and to process received and to-be-transmitted data. For transmission, the processor 208 may be operable to receive data from the CPU 204 and/or memory 206, encode, packetize, and/or otherwise process the data to prepare it for transmission in accordance with one or more wireless protocols, and output the data to the AFE 209 for transmission. For reception, the processor 208 may be operable to receive data via the AFE 209, process the received data and output received data to the memory 206 and/or the CPU 204. Exemplary protocols which may be supported by the second device 104 include the ISO 18000-7 standard, and protocols described in the above-incorporated U.S. Provisional Patent Application having serial no. 61/464,376 filed on Mar. 2, 2011.
The radio 217 may comprise a processor 218 and an analog front-end (AFE) 219. The baseband processor 218 may comprise circuitry operable to interface with the AFE 219 to receive and transmit data, and to process received and to-be-transmitted data. In some instances, the baseband processor 218 may be substantially similar to the baseband processor 208. In instances that the device 102 is less-resource-constrained device, such as a base station or network controller, and the device 104 is a more-resource-constrained device, such as a battery-powered tag, the baseband processor 218 may be less-complex (e.g., comprise fewer gates, utilize less power, utilize less memory, etc.) than the baseband processor 208. In one embodiment, for example, the baseband processor 208 may be operable to implement more complex signal processing algorithms (e.g., FEC decoding) than the baseband processor 218.
The analog front-end (AFE) 209 may comprise circuitry suitable for processing received and/or to-be-transmitted data in the analog domain. For transmission, the AFE 209 may receive digital data from the baseband processor 208, process the data to generate corresponding RF signals, and output the RF signals to the antenna 210. For reception, the AFE 209 may receive RF signals from the antenna 210, process the RF signals to generate corresponding digital data, and output the digital data to the baseband processor 209. In some instances, the AFE 219 may be substantially similar to the AFE 209. In instances that the device 102 is less-resource-constrained device, such as a base station or network controller, and the device 104 is a more-resource-constrained device, such as a battery-powered tag, the AFE 219 may be less-complex (e.g., comprise fewer gates, utilize less power, utilize less memory, etc.) than the AFE 209. In one embodiment, for example, the AFE 209 may comprise a more-sensitive receiver, a more powerful transmitter than the AFE 219.
Circuitry of the memory 206 may comprise one or more memory cells and may be operable to store data to the memory cell(s) and read data from the memory cell(s). The one or more memory cell may comprise one or more volatile memory cells and/or one or more non-volatile memory cells. The memory 206 may store data arranged, for example, as an indexed short file block (ISFB) and/or indexed short file series block (ISFSB) as described in the above-incorporated U.S. Provisional Patent Application having Ser. No. 61/464,376.
Circuitry of the memory 216 may comprise one or more memory cells and may be operable to read data from the memory cell(s) and/or store data to the memory cell(s). The memory 216 may store data arranged, for example, as an indexed short file block (ISFB) and/or indexed short file series block (ISFSB) as described in the above-incorporated U.S. Provisional Patent Application having Ser. No. 61/464,376. In some instances, the memory 216 may be substantially similar to the memory 206. In instances that the device 104 is resource-constrained, the memory 216 may be less-complex (e.g., comprise fewer gates, utilize less power, etc.) than the memory 206.
Each of the clocks 211 and 221 may be operable to generate one or more oscillating signals which may be utilized to control synchronous circuitry of the device 100. Each of the clocks 211 and 221 may comprise, for example, one or more crystal oscillators, phase-locked loops, and/or direct digital synthesizers. Each of the clocks 211 and 221 may also comprise a “date/time” or “real-time” clock operable to keep track of time of day, day of week, day of month, month, and/or year.
The interfaces 212 and 222 may enable configuring and/or programming the devices 102 and 104, respectively. In an exemplary embodiment, one or more values of one or more timing parameters may be programmed via the programming interfaces 212 and/or 222.
Each of the antennas 210 and 220 may be operable to transmit and receive electromagnetic signals in one or more frequency bands. In an embodiment of the invention, the antennas 210 and 220 may be operable to transmit and receive signals in the ISM frequency band centered at 433.92 MHz.
In operation, the device 102X may decide to (or be instructed to) schedule a network communication (e.g., schedule a search of the devices 1041-10415) to occur at time T, where T may be referenced to a common time base (e.g., ticks of a fixed-frequency oscillator) and/or to a real-time clock. For example, the device 102X may generate a background frame that instructs destination devices (i.e. devices for which the frame is destined) receiving the background frame to be prepared (e.g., have their receivers on and listening to a particular channel) to receive a search request at time T. From time T−2Δ until time T+Δ, where Δ is some positive value, the device 102X may transmit the generated background frame one or more times in succession. The amount of time between transmissions of the background frame may be as short as is permissible and/or allowed. If, during the time period from time T−2Δ to time T+Δ, the device 104X was listening to the channel(s) on which the background frame was transmitted, then the device may have received the background frame, and scheduled itself to turn on the receive portion of its radio 217 at time T−α (where α is the amount of time that it takes the receiver to power-up and stabilize).
If, on the other hand, the device 104X was not receiving during the period from time T−2Δ to time T+Δ, (e.g., because its receiver was off and/or it was busy transmitting), then the clock 221 may have failed to schedule the reception of the request at time T−α. Consequently, the device 104X may miss the search request and the results of search may be sub-optimal.
The payload comprises a data link layer (OSI layer 2) PDU; in this case, a background frame. The background frame comprises a subnet field, a background protocol ID (BPID) field, and a CRC field. The subnet field may be a value utilized for packet filtering. Specifically, devices which have a device subnet specifier that does not match the value in the subnet field of the frame may ignore/discard the frame. The CRC field may be utilized for performing error detection and/or correction on the received PDU.
The payload comprises a background protocol ID (BPID) field and protocol data. The BPID may indicate which background frame protocol(s) is to be utilized for parsing and/or processing the received frame. In the case of
In step 504, the base station may determine an amount of time for which to transmit background frames advertising the scheduled network transmission. The duration of the flood of background frames may be determined based on a variety of factors such as, for example: how many devices 104 are present in the network, a distance to one or more of the devices 104, how frequently the devices 104 typically transmit, how frequently the devices 104 typically perform a channel scan, power and/or sources available to the base station (e.g., if it is running on battery power it may want to reduce the length of the flood), and/or amount of time until the scheduled event.
In step 506, the base station may coordinate with sub-controllers (e.g., device 1022) in the network to transmit the flood of background frames. The sub-stations may enlist other devices to participate in the flood because, for example, the flood will be longer than the base station can transmit (e.g., because of technical and/or regulatory limitations). The sub-stations may enlist other devices to participate in the flood because, for example, the large number of devices 104 in the network makes it unlikely that greater than a threshold percentage (which may be configurable and/or vary with the circumstances of the scheduled transmission) of the devices 104 will receive the background frames if the duration of the flood is limited to the maximum duration of continuous transmission by the base station. The sub-stations may enlist other devices to participate in the flood because of the distance between the base station and one or more devices in the network. For example, based on past communications with the sub-controller and/or the devices 104, the base station may be aware that the sub-controller may be closer to one or more devices 104 and thus enable more reliably reaching those one or more devices. In an exemplary embodiment, the base station may coordinate with the sub-controller(s) via a different protocol (wired, wireless, or optical) than the protocol utilized for communicating with the devices 104. For example, the base station and sub-controller(s) may have wired connections to a LAN or the Internet.
In step 508, the base station may transmit its portion of the background frames. Devices which perform a channel scan during this time period may successfully receive one or more of the background frames and may schedule reception of the pending transmission being advertised in the background frames. Devices which do not perform a channel scan during this time period may not receive one or more of the background frames and, consequently, may not schedule reception of the pending transmission being advertised in the background frames.
In step 510, the sub-controllers with which the base station coordinated in step 506 may, sequentially in turn, transmit its share of the background frames. Devices which perform a channel scan during this time period (which may include devices which did not perform a channel scan during step 508) may successfully receive one or more of the background frames and may schedule reception of the pending transmission being advertised in the background frames.
In another embodiment of the invention, the coordinating of the sub-controllers may comprise controlling their transmit strength such that their transmissions are non-overlapping. In this manner, all of the sub-controllers could transmit the flood concurrently.
In step 512, the scheduled transmission (e.g., a search request as described in above-incorporated U.S. patent application Ser. No. 13/267,640) may take place at the scheduled time. In an exemplary embodiment, the scheduled transmission may be transmitted only by the base station. In another exemplary embodiment, the request may be transmitted concurrently by a plurality of sub-controllers each of which has had its transmit power and/or transmit channel configured to not overlap with other ones of the sub-controllers (i.e., so the packets from the various sub-controllers does not collide).
In an exemplary embodiment of the invention, a first device 1021 of a network may decide to transmit a flood of packets that is longer in duration than the maximum amount of time that the first device can continuously transmit. The first device 1021 may coordinate with one or more second devices 1022-102N (where N is an integer greater than 1) of the network such that each of the one or more second devices 102 transmits a respective second portion of the flood of packets following transmission of a first portion of the flood of packets by the first network device 1021. The packets may advertise a pending network event that is to occur at a time indicated by the contents of the packets (e.g., by an event time field). The network event comprises the transmission of a search request. The packets may contain a channel identifier field that indicates a channel on which the search request will be transmitted. The device 1021 may select the one or more second devices 1022-102N from a plurality of devices based on a location of the one or more second devices 1022-102N. The device 1021 may select the one or more second network devices from a plurality of devices based on how many third devices 104 are in the network. The plurality of second devices 1022-102N may concurrently transmit their respective portions of the flood. A transmit power utilized by each of the one or more second devices for transmitting its respective portion of the flood may be controlled to avoid collisions between packets of the flood. Each one of the plurality of second devices 1022-102N may transmit its respective portion of the flood on a channel that is different than a channel utilized by each other one of the plurality of second devices 1022-102N for transmitting their respective portions of the flood. The packets may be background frames comprising a subnet field, a background protocol identifier field, a channel identifier field, and an event time field.
Other embodiments of the invention may provide a non-transitory computer readable medium and/or storage medium, and/or a non-transitory machine readable medium and/or storage medium, having stored thereon, a machine code and/or a computer program having at least one code section executable by a machine and/or a computer, thereby causing the machine and/or computer to perform the steps as described herein for rapid group synchronization
Accordingly, the present invention may be realized in hardware, software, or a combination of hardware and software. The present invention may be realized in a centralized fashion in at least one computing system, or in a distributed fashion where different elements are spread across several interconnected computing systems. Any kind of computing system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computing system with a program or other code that, when being loaded and executed, controls the computing system such that it carries out the methods described herein. Another typical implementation may comprise an application specific integrated circuit or chip.
The present invention may also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.
While the present invention has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present invention without departing from its scope. Therefore, it is intended that the present invention not be limited to the particular embodiment disclosed, but that the present invention will include all embodiments falling within the scope of the appended claims.
Claims
1. A method comprising:
- in a first device of a network: deciding to transmit a flood of packets that is longer in duration than the maximum amount of time that said first device can continuously transmit; coordinating with one or more second devices of said network such that each of said one or more second devices transmits a respective second portion of said flood of packets following transmission of a first portion of said flood of packets by said first network device.
2. The method of claim 1, wherein said packets advertise a pending network event that is to occur at a time indicated by the contents of said packets.
3. The method of claim 2, wherein said network event comprises the transmission of a search request.
4. The method of claim 3, wherein said packets contain a channel identifier field that indicates a channel on which said search request will be transmitted.
5. The method of claim 1, comprising selecting said one or more second devices from a plurality of devices based on a location of said one or more second devices.
6. The method of claim 1, comprising selecting said one or more second network devices from a plurality of devices based on how many third devices are in said network.
7. The method of claim 1, wherein:
- said one or more second devices is a plurality of second devices; and
- said plurality of second devices concurrently transmit their said respective portions of said flood.
8. The method of claim 7, wherein a transmit power utilized by each of said one or more second devices for transmitting its said respective portion of said flood is controlled to avoid collisions between packets of said flood.
9. The method of claim 7, wherein each one of said plurality of second devices transmits its said respective portion of said flood on a channel that is different than a channel utilized by each other one of said plurality of second devices for transmitting their said respective portions of said flood.
10. The method of claim 1, wherein said packets are background frames comprising a subnet field, a background protocol identifier field, a channel identifier field, and an event time field.
11. A system comprising:
- a first device of a network, said first device being operable to: decide to transmit a flood of packets that is longer in duration than the maximum amount of time that said first device can continuously transmit; coordinate with one or more second devices of said network such that each of said one or more second devices transmits a respective second portion of said flood of packets following transmission of a first portion of said flood of packets by said first network device.
12. The system of claim 11, wherein said packets advertise a pending network event that is to occur at a time indicated by the contents of said packets.
13. The system of claim 12, wherein said network event comprises the transmission of a search request.
14. The system of claim 13, wherein said packets contain a channel identifier field that indicates a channel on which said search request will be transmitted.
15. The system of claim 11, wherein said first device is operable to select said one or more second devices from a plurality of devices based on a location of said one or more second devices.
16. The system of claim 11, wherein said first network device is operable to select said one or more second network devices from a plurality of devices based on how many third devices are in said network.
17. The system of claim 11, wherein:
- said one or more second devices is a plurality of second devices; and
- said plurality of second devices concurrently transmit their said respective portions of said flood.
18. The system of claim 17, wherein a transmit power utilized by each of said one or more second devices for transmitting its said respective portion of said flood is controlled to avoid collisions between packets of said flood.
19. The system of claim 17, wherein each one of said plurality of second devices transmits its said respective portion of said flood on a channel that is different than a channel utilized by each other one of said plurality of second devices for transmitting their said respective portions of said flood.
20. The system of claim 11, wherein said packets are background frames comprising a subnet field, a background protocol identifier field, a channel identifier field, and an event time field.
Type: Application
Filed: Aug 17, 2017
Publication Date: Nov 30, 2017
Inventor: John Peter Norair (San Francisco, CA)
Application Number: 15/679,798