U.S. patent application number 16/658638 was filed with the patent office on 2020-02-13 for method and apparatus for low-power, long-range networking.
This patent application is currently assigned to Blackbird Technology Holdings, Inc.. The applicant listed for this patent is Blackbird Technology Holdings, Inc.. Invention is credited to John Peter Norair.
Application Number | 20200052784 16/658638 |
Document ID | / |
Family ID | 45925093 |
Filed Date | 2020-02-13 |
United States Patent
Application |
20200052784 |
Kind Code |
A1 |
Norair; John Peter |
February 13, 2020 |
Method and Apparatus for Low-Power, Long-Range Networking
Abstract
An endpoint device may be operable to transmit and receive data
wirelessly via a medium to which access is time-division
multiplexed into a plurality of repeating windows. A first window
of the plurality of repeating windows may be time-division
multiplexed into a plurality of timeslots utilized for transmitting
beacon signals. A second window of the plurality of repeating
windows may be time-division multiplexed into a plurality of
timeslots utilized for transmitting alarm signals. The endpoint may
be assigned one of the first timeslots and, when an alarm condition
is present, select one of the second timeslots for transmitting an
alarm signal based on the assigned first timeslot, and based on a
hash function. The endpoint may then transmit an alarm signal
during the second timeslot. The endpoint may be operable to
synchronize its local clock by listening to beacons transmitted by
other endpoints.
Inventors: |
Norair; John Peter; (San
Francisco, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Blackbird Technology Holdings, Inc. |
Dover |
DE |
US |
|
|
Assignee: |
Blackbird Technology Holdings,
Inc.
Dover
DE
|
Family ID: |
45925093 |
Appl. No.: |
16/658638 |
Filed: |
October 21, 2019 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
16290301 |
Mar 1, 2019 |
|
|
|
16658638 |
|
|
|
|
16037405 |
Jul 17, 2018 |
|
|
|
16290301 |
|
|
|
|
15809176 |
Nov 10, 2017 |
|
|
|
16037405 |
|
|
|
|
15193766 |
Jun 27, 2016 |
|
|
|
15809176 |
|
|
|
|
14719401 |
May 22, 2015 |
9379808 |
|
|
15193766 |
|
|
|
|
13267621 |
Oct 6, 2011 |
9042353 |
|
|
14719401 |
|
|
|
|
61404541 |
Oct 6, 2010 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04L 43/16 20130101;
H04W 48/16 20130101; H04W 72/02 20130101; H04B 7/2656 20130101;
H04L 41/0695 20130101; H04W 40/244 20130101; H04W 72/042 20130101;
Y02D 70/449 20180101; H04W 72/0446 20130101; Y02D 30/70
20200801 |
International
Class: |
H04B 7/26 20060101
H04B007/26; H04W 40/24 20060101 H04W040/24; H04L 12/26 20060101
H04L012/26; H04L 12/24 20060101 H04L012/24; H04W 72/04 20060101
H04W072/04 |
Claims
1. A communication system comprising: one or more circuits operable
to transmit and receive data wirelessly, said one or more circuits
being operable to: receive assignment of a first timeslot for
transmission when an alarm condition is not present; detect the
presence of said alarm condition; in response to said detection of
said alarm condition, determine a second timeslot based on said
first timeslot and a hash function; and transmit an alarm signal
during said second timeslot.
2. The communication system of claim 1, wherein: said one or more
circuits transmit and receive over a medium to which access is
time-division multiplexed into a plurality of repeating windows; a
first window of said plurality of repeating windows is
time-division multiplexed into a plurality of timeslots; a second
window of said plurality of repeating windows is time-division
multiplexed into a plurality of timeslots; said assigned first
timeslot is one of said plurality of timeslots of said first
window; and said second timeslot is one of said plurality of
timeslots of said second window.
3. The communication system of claim 2, wherein said second
timeslot occurs in the first instance of said second window to
occur after said detection of said alarm condition.
4. The communication system of claim 2, wherein said first timeslot
does not occur in every instance of said first window.
5. The communication system of claim 2, wherein a third window of
said plurality of windows is not time-division multiplexed into a
plurality of timeslots.
6. The communication system of claim 5, wherein said first timeslot
is reserved for transmissions of a first type and said third window
is utilized for transmissions of one or more second types.
7. The communication system of claim 1, wherein said one or more
circuits comprise one or more acoustic, chemical, electrical,
magnetic, mechanical, optical, and/or thermal sensors for said
detection of said alarm condition.
8. A method comprising: performing by one or more circuits operable
to transmit and receive data wirelessly: receiving assignment of a
first timeslot during for transmission when an alarm condition is
not present; detecting the presence of said alarm condition; in
response to said detection of said alarm condition, determining a
second timeslot based on said first timeslot and a hash function;
and transmitting an alarm signal during said second timeslot.
9. The method of claim 8, comprising: performing by said one or
more circuits: transmitting and receiving over a medium to which
access is time-division multiplexed into a plurality of repeating
windows, wherein: a first window of said plurality of repeating
windows is time-division multiplexed into a plurality of timeslots;
a second window of said plurality of repeating windows is
time-division multiplexed into a plurality of timeslots; said
assigned first timeslot is one of said plurality of timeslots of
said first window; and said second timeslot is one of said
plurality of timeslots of said second window.
10. The method of claim 9, wherein said second timeslot occurs in
the first instance of said second window to occur after said
detection of said alarm condition.
11. The method of claim 9, wherein said first timeslot does not
occur in every instance of said first window.
12. The method of claim 2, wherein a third window of said plurality
of windows is not time-division multiplexed into a plurality of
timeslots.
13. The method of claim 5, wherein said first timeslot is reserved
for transmissions of a first type and said third window is utilized
for transmissions of one or more second types.
14. The method of claim 1, wherein said one or more circuits
comprise one or more acoustic, chemical, electrical, magnetic,
mechanical, optical, and/or thermal sensors for said detection of
said alarm condition.
15. A communication system comprising: one or more circuits
comprising a clock, said one or more circuits being operable to:
transmit and receive data via a wireless network; communicate over
a medium to which access is time-division multiplexed into a
plurality of timeslots; receive signals during one or more time
intervals; characterize said signals received during said one or
more time intervals; and adjust said clock based on said
characterization of said signals received during said one or more
time intervals.
16. The communication system of claim 15, wherein: said
characterization comprises determining a ratio of (i)
end-of-timeslot bits, bytes, and/or symbols received during the one
or more time intervals to (ii) beginning-of-timeslot bits, bytes,
and/or symbols received during the one or more time intervals; said
one or more circuits are operable to adjust said clock by a
positive amount when said ratio is greater than a threshold; and
said one or more circuits are operable to adjust said clock by a
negative amount when said ratio is less than a threshold.
17. The communication system of claim 15, wherein: said
characterization comprises comparing (i) how many end-of-timeslot
bits, bytes, and/or symbols were received during the one or more
time intervals to (ii) how many beginning-of-timeslot bits, bytes,
and/or symbols were received during the one or more time
intervals.
18. The communication system of claim 1, wherein: access to said
wireless network is time-division multiplexed into a plurality of
repeating windows; said one or more time intervals occur during a
first window of said plurality of repeating windows; and said
signals received during said one or more time intervals were
transmitted by other endpoints in said wireless network.
19. The communication system of claim 4, wherein said one or more
circuits are operable to transmit an alarm signal during a second
window of said plurality of repeating windows.
20. The communication system of claim 4, wherein said one or more
circuits are operable to synchronize said clock to a network clock
during a third window of said plurality of repeating windows.
Description
CLAIM OF PRIORITY
[0001] This patent application is a continuation of U.S. patent
application Ser. No. 16/290,301, filed on Mar. 1, 2019, which is a
continuation of U.S. patent application Ser. No. 16/037,405, filed
on Jul. 17, 2018, which is a continuation of U.S. patent
application Ser. No. 15/809,176, filed on Nov. 10, 2017, which is a
continuation of U.S. patent application Ser. No. 15/193,766, filed
on Jun. 27, 2016, which is a continuation of U.S. patent
application Ser. No. 14/719,401, filed on May 22, 2015, which is a
continuation of U.S. patent application Ser. No. 13/267,621, filed
on Oct. 6, 2011, now U.S. Pat. No. 9,042,353, which in turn makes
reference to, claims priority to, and claims benefit from U.S.
Provisional Patent Application Ser. No. 61/404,541, filed on Oct.
6, 2010, now expired. Each of the above stated applications is
hereby incorporated herein by reference in its entirety.
INCORPORATION BY REFERENCE
[0002] This patent application also makes reference to U.S.
Provisional Patent Application Ser. No. 61/464,376 filed on Mar. 2,
2011. The above stated application is hereby incorporated herein by
reference in its entirety.
FIELD OF THE INVENTION
[0003] Certain embodiments of the invention relate to networking.
More specifically, certain embodiments of the invention relate to a
method and apparatus for low-power, long-range networking.
BACKGROUND OF THE INVENTION
[0004] Existing wireless networks consume too much power and/or are
too-limited in terms of range. 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 INVENTION
[0005] A system and/or method is provided for low-power, long-range
networking, substantially as illustrated by and/or described in
connection with at least one of the figures, as set forth more
completely in the claims.
[0006] 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.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] FIG. 1 depicts an exemplary wireless communication
network.
[0008] FIG. 2 depicts an exemplary low-power, long-range network
endpoint.
[0009] FIG. 3A depicts a plurality of access windows of a network
for which access is time-division multiplexed.
[0010] FIG. 3B depicts a window of time which is time-division
multiplexed into a plurality of timeslots.
[0011] FIG. 3C depicts a window of time which is time-division
multiplexed into a plurality of timeslots.
[0012] FIG. 4 illustrates an exemplary packet structure utilized
for a low-power, long range wireless network.
[0013] FIG. 5 is a flowchart comprising exemplary steps performed
by an endpoint in a low-power, long-range network.
[0014] FIG. 6 is a flowchart comprising exemplary steps for
synchronization of a low-power, long-range network endpoint.
[0015] FIG. 7 is a flowchart comprising exemplary steps for
synchronization of a low-power, long-range network endpoint.
DETAILED DESCRIPTION OF THE INVENTION
[0016] 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". For example, "x and/or y"
means any element of the three-element set {(x), (y), (x, y)}.
Similarly, "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 term "e.g.," introduces a list of one or
more non-limiting examples, instances, or illustrations.
[0017] FIG. 1 depicts an exemplary wireless communication network.
Shown is a cell 108 associated with a base station 102. Within the
cell are controllers 106.sub.1-106.sub.3 and endpoints
104.sub.1-104.sub.20.
[0018] The base station 102 may comprise circuitry for
communicating wirelessly, and managing overall synchronization and
access to the wireless network within the cell 108. The base
station 102 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. In an
embodiment of the invention, the base station 102 may communicate
with the controllers 106.sub.1-106.sub.3 utilizing a first one or
more protocols, and communicate with the endpoints
104.sub.1-104.sub.20 utilizing a second one or more protocols. An
exemplary base station is described below with respect to FIG.
2.
[0019] Each of the controllers 106.sub.1-106.sub.3 may comprise
circuitry for communicating wirelessly with one or more endpoints
that are within the coverage area of the controller (i.e.,
"in-range endpoints"). In FIG. 1, endpoints 104.sub.1-104.sub.4 are
within the coverage area 110.sub.1 of the controller 106.sub.1,
endpoints 104.sub.5-104.sub.7 are within the coverage area
110.sub.2 of the controller 106.sub.2, and endpoints
104.sub.16-104.sub.20 are within the coverage area 110.sub.3 of
controller 106.sub.3. Each of the controllers 106.sub.1-106.sub.3
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
controller 106 is described below with respect to FIG. 2.
[0020] Each of the endpoints 104.sub.1-104.sub.20 may comprise
circuitry for communicating wirelessly. Each of the controllers
106.sub.1-106.sub.3 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
FIG. 2.
[0021] In an embodiment of the invention, access to one or more
channels in the airspace within the cell 108 may be time-division
multiplexed into a plurality of windows. In an exemplary windowing
scheme, there may be three windows which cyclically repeat. A first
of the windows may be utilized for endpoints to transmit
connectionless beacons which may be received by the base station
102, the controllers 106.sub.1-106.sub.3, and/or other endpoints. A
second window may be utilized for endpoints to transmit
connectionless alarm signals which may be received by the base
station 102. A third window may be an open-access window in which
bidirectional communications between the base station 102 and the
controllers 106.sub.1-106.sub.3, bidirectional communications
between the controllers 106.sub.1-106.sub.3 and the endpoints
104.sub.1-104.sub.20, and/or bidirectional communications among
endpoints 104.sub.1-104.sub.20 may take place. Additional details
of such an exemplary windowing scheme are described below with
respect to FIGS. 3A-3C.
[0022] Beacons transmitted by the endpoints 104.sub.1-104.sub.20
during assigned timeslots may be utilized by the base station 102
and/or the controllers 106.sub.1-106.sub.3 to detect and/or verify
the presence and/or status of the devices 104.sub.1-104.sub.20.
Alarm signals transmitted by the endpoints during an alarm window
may alert network administrators that the endpoint which
transmitted an alarm signal has detected a condition that needs to
be addressed.
[0023] During an open access window, bidirectional communications
between the endpoints 104.sub.1-104.sub.20 and controllers
106.sub.1-106.sub.3 and/or the base station 102 may configure the
endpoints 104.sub.1-104.sub.20 (which may include resynchronizing
the endpoints 104.sub.1-104.sub.20 to a network clock), upload data
from the endpoints 104.sub.1-104.sub.20, and/or download data to
the endpoints 104.sub.1-104.sub.20. Similarly, in some instances,
bidirectional communications among two or more of the endpoints
104.sub.1-104.sub.20 may take place during an open-access window.
Such communication among endpoints may be utilized for
synchronizing the local clocks of the endpoints
104.sub.1-104.sub.20 and/or transferring data among the endpoints
104.sub.1-104.sub.20.
[0024] The beacon signals and alarm signals may be transmitted
utilizing different protocols than those utilized for signals
communicated as part of bidirectional communications during the
open-access window(s). Accordingly, packets transmitted during the
open-access window may be, e.g., formatted differently, encoded
differently, transmitted on different frequencies, and/or
transmitted utilizing different modulation than the beacon signals
and alarm signals transmitted during other windows.
[0025] FIG. 2 depicts an exemplary low-power, long-range network
endpoint. Shown in FIG. 2 are an exemplary base station 102 and an
exemplary endpoint 104, which may correspond to any of the devices
104.sub.1-104.sub.20 of FIG. 1. The exemplary base station 102
comprises a clock 202, CPU 204, a memory 206, a radio 207, and an
antenna 210. The exemplary controller 106 comprises a clock 224,
CPU 224, a memory 226, a radio 227, and an antenna 230. The
exemplary endpoint 104 comprises a clock 204, CPU 214, a memory
216, a radio 217, an antenna 220, and one or more sensors 221. In
an exemplary embodiment of the invention, the base station 102 may
be relatively more complex than the controller 106 which, in turn,
may be relatively more-complex than the endpoint 104. Accordingly,
the base station 102 may comprise more-expensive components than
the controller 106 which, in turn, may comprise more-expensive
components than the endpoint 104.
[0026] The clock 202 may comprise an oscillator which generates a
periodic signal and/or may comprise a date/time clock. The clock
202 may provide a reference for synchronous circuitry of the base
station 102. The clock 202 may provide the network clock for a
network controlled by the base station 102.
[0027] The clock 212 may comprise an oscillator which generates a
periodic signal and/or may comprise a date/time clock. The clock
212 may be a local clock that provides a time reference for
synchronous circuitry of the device 104. In instances that the
device 104 is resource-constrained, the clock 212 may be less
complex than the clock 202. Consequently, the clock 212 may be
relatively inaccurate/less-stable compared to the clock 202 (e.g.,
may exhibit relatively significant drift over relatively short
periods of time). Accordingly, the local clock 212 may occasionally
need to be resynchronized to the network clock 202.
[0028] The clock 222 may comprise an oscillator which generates a
periodic signal and/or may comprise a date/time clock. The clock
222 may be a local clock that provides a time reference for
synchronous circuitry of the device 106. In an exemplary embodiment
of the invention, the clock 222 may be relatively less
accurate/stable than the clock 202 but more accurate/stable than
the clock 212.
[0029] The CPU 204 may comprise circuitry operable to control
operation of the base station 102. The CPU 204 may, for example,
execute an operating system and/or other programs. The CPU 204 may
generate one or more control signals for controlling the operation
of the base station 102. The CPU 204 may, for example, control a
mode of operation of the base station 102.
[0030] 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 104 is resource-constrained, 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).
[0031] The CPU 224 may comprise circuitry operable to control
operation of the controller 106. In some instances, the CPU 224 may
be substantially similar to the CPU 204. In those or other
instances, the CPU 224 may be less-complex than the CPU 204 but
more complex than the CPU 214.
[0032] 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, 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 radio 207 include
the ISO 18000-7 standard, and protocols described in the
above-incorporated U.S. Provisional Patent Application No.
61/464,376 filed on Mar. 2, 2011.
[0033] The radio 217 may comprise a processor 218 and an analog
front-end (AFE) 219. The 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 processor 218 may be substantially similar to the
processor 208. In instances that the device 104 is
resource-constrained, the processor 218 may be less-complex (e.g.,
comprise fewer gates, utilize less power, utilize less memory,
etc.) than the processor 208. In one embodiment, for example, the
processor 208 may be operable to implement more complex signal
processing algorithms than the processor 218.
[0034] The radio 227 may comprise a processor 228 and an analog
front-end (AFE) 229. The processor 228 may comprise circuitry
operable to interface with the AFE 229 to receive and transmit
data, and to process received and to-be-transmitted data. In some
instances, the processor 228 may be substantially similar to the
processor 208. In those or other instances the processor 228 may be
less-complex than the processor 208 but more-complex than the
processor 218.
[0035] 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 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 processor 208.
[0036] The AFE 219 may comprise circuitry suitable for processing
received and/or to-be-transmitted data in the analog domain. In
some instances, the AFE 219 may be substantially similar to the AFE
209. In instances that the device 104 is resource-constrained, 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, and a more powerful transmitter than the AFE 219.
[0037] The AFE 229 may comprise circuitry suitable for processing
received and/or to-be-transmitted data in the analog domain. In
some instances, the AFE 229 may be substantially similar to the AFE
209. In those or other instances the AFE 229 may be less-complex
than the AFE 209 but more-complex than the AFE 219.
[0038] 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.
[0039] 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). 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.
[0040] Circuitry of the memory 226 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). In some instances, the
memory 226 may be substantially similar to the memory 206. In those
or other instances the memory 226 may be less-complex than the
memory 206 but more-complex than the memory 216.
[0041] Each of the antennas 210, 220, and 230 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.
[0042] The sensor(s) 221 may comprise one or more of: an acoustic
sensor operable to sense, e.g., amplitude, phase, polarization,
spectrum and/or wave velocity of acoustic waves; a chemical
operable to sense, e.g., the presence of any one or more elements
and/or compounds in solid, gas, and/or liquid form; an electrical
sensor operable to detect, e.g., amplitude, phase, polarization,
and/or spectrum of a current and/or voltage, conductivity, and/or
permittivity; a magnetic sensor operable to, e.g., detect flux,
permeability, amplitude, phase, and/or polarization of a magnetic
field; a mechanical sensor operable to detect, e.g., position,
acceleration, force, stress, pressure, strain, mass, density,
moment, torque, shape, roughness, orientation, and/or stiffness; an
optical sensor operable to detect, e.g., amplitude, phase,
polarization, and/or spectrum of an optical wave, wave velocity,
refractive index, emissivity, reflectivity, and/or absorption;
and/or a thermal sensor operable to detect, e.g., temperature,
flux, specific heat, and/or thermal conductivity. The sensor(s) 221
may, for example, generate an interrupt to the CPU 214 when an
alarm condition is present.
[0043] In operation, prior to a device 104 joining the network
managed by the base station 102, the device 104 may listen for
network parameters from the base station 102. Such parameters may,
for example, be transmitted onto a predetermined control channel by
the base station 102. Additionally or alternatively, an
administrator of the device 104 may, for example, manually program
parameters into the device 104 and/or download parameters to the
device 104 (e.g., via a wired connection to the base station 102,
and/or the Internet and/or a LAN). The parameters configured in the
device 104 may include one or more parameters for synchronizing the
clock 212 to the clock 202. The parameters configured in the device
104 may include one or more parameters which identify a timeslot to
which the device 104 has been assigned. The device 104 may then
proceed to normal operation.
[0044] In an exemplary embodiment of the invention, normal
operation may comprise the device 104 occasionally and/or
periodically receiving signals transmitted from the base station
102 and/or one or more other devices 104, occasionally and/or
periodically listening to transmissions between other devices and
utilizing those transmissions to adjust its clock 212, transmitting
connectionless beacon signals during the timeslot assigned to the
device 104, and participating in connection-oriented communications
during an open-access time window. Normal operation may also
comprise monitoring, via the sensor(s) 221 for an alarm condition.
When an alarm condition is present, the device 104 may enter an
alarm-mode of operation. An alarm-mode of operation may comprise,
for example, determining a timeslot of an alarm window during which
an alarm signal may be transmitted, and then transmitting the alarm
signal during that timeslot.
[0045] FIG. 3A depicts a plurality of access windows of a network
for which access is time-division multiplexed. In FIG. 3A, access
to the medium is time-division multiplexed into three repeating
windows 302, 304, and 306. Shown are I+1 instances 300 of the
windows 302, 304, and 306, where I is an integer. The windows 302,
304, and 306 may be separated by idle time having duration .delta.,
where d may be configurable and/or implementation-specific. For
illustration, it is assumed that there are D endpoints 104 which
communicate over the time-division multiplexed medium, where D is
an integer.
[0046] Each instance of window 302 may be time-division multiplexed
into a plurality of timeslots 322. Any particular timeslot 322 is
represented herein as 322.sub.n,i, where i is the instance of the
window 302, n is the index of the timeslot within the window
instance i, 1.gtoreq.i.gtoreq.I, 1.gtoreq.n.gtoreq.N, and n, N, i,
and I are integers. The index n wrap to 1 after reaching N, and the
index i wraps to 1 after reaching I.
[0047] One or more timeslots 322.sub.1,1-322.sub.N,I may be
assigned to each of one or more endpoints 104.sub.1-104.sub.J. In
an embodiment of the invention, each device 104.sub.j (where j is
an integer between 1 and J, inclusive) is assigned to one timeslot
322.sub.n,i. If the number of devices, J, is greater than N (the
number of timeslots 322 that fit into a single instance of the
window 302), then it may take multiple instances of the window 302
for a particular endpoint's assigned timeslot to occur. That is,
I=ceiling(J/N), where "ceiling( )" denotes rounding up to the next
integer. To illustrate, if N=10, and J=12, then I=2, and the
sequence of windows may be as follows: a first instance of window
302 corresponding to timeslots 322.sub.1,1-322.sub.N,1, a window
304, a window 306, a second instance of window 302 corresponding to
timeslots 322.sub.1,2-322.sub.N,2, a window 304, a window 306, a
first instance of window 302 corresponding to timeslots
322.sub.1,1-322.sub.N,1, and so on.
[0048] Each instance of window 304 may be time-division multiplexed
into timeslots 332.sub.1-332.sub.M, where M is an integer. In an
embodiment of the invention, the endpoints 104.sub.1-104.sub.20,
the controllers 106.sub.1-106.sub.3, and the base station 102 may
be prohibited from transmitting during the window 304 unless they
are experiencing an alarm condition or have experienced an alarm
condition during a pertinent time period, where the pertinent time
period may be configurable and/or implementation-specific.
[0049] In an embodiment of the invention, each of the timeslots
332.sub.1-332.sub.M may not be reserved for any particular endpoint
104 but may be available for use by any endpoint 104 that is
currently experiencing an alarm condition. An endpoint 104 which
has experienced an alarm condition during the pertinent time period
may determine which of the timeslots 332.sub.1-332.sub.M of the
window 304 to utilize for transmitting an alarm signal based on
which of the timeslots 322.sub.1,1-322.sub.N,I the endpoint 104 has
been assigned, and on a hash function. In this regard, use of the
hash function may enable J endpoints to share M timeslots, even
where M is less than J. That is, use of a hash function may take
advantage of the fact that, statistically speaking, only a certain
percentage of the J endpoints will detect an alarm condition at any
given time. Therefore, J endpoints can effectively share M
timeslots while the risk that there will be more than M devices
detecting an alarm condition during any given time period can be
kept below a desired threshold, which may be configurable and/or
implementation-specific.
[0050] FIG. 3B depicts a window of time which is time-division
multiplexed into a plurality of timeslots. Shown in FIG. 3B is an
instance, i, of the window 302 described with respect to FIG. 3A.
The window 302 is time-division multiplexed into slots
322.sub.1,i-322.sub.N,i. In an embodiment of the invention, each
timeslot 322.sub.n,i comprises idle time D on either side of a
packet time A. Thus, in such an embodiment, each timeslot
322.sub.n,i is of duration A+2D. In an embodiment of the invention,
the value of one or more of A and D, and/or the unit of measurement
of A and/or D may be configurable and/or implementation-specific.
Time instants, referenced to the network clock 202, and
corresponding to boundaries between timeslots, are labeled as time
instants 324.sub.1-324.sub.N+1. In FIG. 3B, a packet 320 of a
beacon signal is transmitted during each of the timeslots
322.sub.1,i-322.sub.N,i. In an exemplary embodiment of the
invention, a beacon signal may be only one packet in length.
[0051] FIG. 3C depicts a window of time which is time-division
multiplexed into a plurality of timeslots. Shown in FIG. 3C is an
instance of the window 304 described with respect to FIG. 3A. The
window 304 is time-division multiplexed into slots
332.sub.1-332.sub.M. In an embodiment of the invention, each
timeslot 332.sub.m, where m is an integer between 1 and M,
inclusive, comprises idle time D on either side of a packet time A.
Thus, in such an embodiment, each timeslot 332m is of duration
A+2D. In an embodiment of the invention, each timeslot 322.sub.n,i
comprises idle time D on either side of a packet time A. Thus, in
such an embodiment, each timeslot 322.sub.n,i is of duration A+2D.
In an embodiment of the invention, the value of one or more of A
and D, and/or the unit of measurement of A and/or D may be
configurable and/or implementation-specific. Time instants,
referenced to the network clock 202, and corresponding to
boundaries between timeslots, are labeled as time instants
334.sub.1-334.sub.M+1. In FIG. 3C, a packet 330 of an alarm signal
is transmitted during each of the timeslots 332.sub.1-332.sub.M. In
an exemplary embodiment of the invention, a beacon signal may be
only one packet in length.
[0052] FIG. 4 illustrates an exemplary packet structure utilized
for a low-power, long range wireless network. The structure of the
packet 400 depicted in FIG. 4 may be utilized for beacon packets
320 and/or for adjusting the local clock 212 of one or more
endpoints 104. The packet 400 comprises a fore chirp 452, a data
portion 454, and a post chirp 456. The data portion 454 may, in
turn, comprise a device ID field 460, a duration field 462, a shift
magnitude field, a shift period field, and a payload 468.
[0053] Each of the fore chirp 452 and the post chirp 456 may
comprise a sequence of two or more bits with high autocorrelation
properties which may be used as a reference for measuring duration.
The fore chirp 452 may be different than the post chirp 456 such
that an endpoint can distinguish between the two.
[0054] The device ID field 460 may comprise a number and/or string
that is/are uniquely associated with the endpoint 104 that
generated the packet 400.
[0055] The duration field 462 may comprise a numeric value
corresponding to the amount of time since the last time point at
which the endpoint identified by the device ID field 460 had been
assigned a timeslot 322.sub.n,i. The unit of measurement of the
duration field 462 can may be configurable and/or implementation
specific.
[0056] The shift magnitude field 464 may comprise a numeric value
indicating the magnitude of one or more adjustments of the clock
212 of the endpoint which generated the packet 400. In an
embodiment of the invention, the shift magnitude field 464 may
indicate the magnitude of a most-recent adjustment and/or an
average value of a plurality of adjustments of the clock 212. In an
embodiment of the invention, the shift magnitude field 464 may be a
signed number. The unit of measurement of the shift magnitude field
464 may be configurable and/or implementation-specific.
[0057] The shift period field 466 may comprise a numeric value
indicating a number of instances of the window 302 between
successive adjustments of the clock 212 of the endpoint which
generated the packet 400. In an embodiment of the invention, the
shift period field 466 may indicate the number of window instances
between the last two clock adjustment and/or an average number of
windows between adjustments over multiple adjustments. The unit of
measurement of the shift period field 466 may be configurable
and/or implementation-specific.
[0058] The payload 468 may comprise device, application, and/or
implementation specific data.
[0059] FIG. 5 is a flowchart comprising exemplary steps performed
by an endpoint in a low-power, long-range network.
[0060] In step 502, an endpoint 104 desires to join the network
cell 108 managed by the base station 102.
[0061] In step 504, the endpoint 104 may receive and/or be
programmed with the necessary parameters. These parameter may
include, for example: clock synchronization information; the number
of timeslots, N, that fit into a window 302; the number, J, of
devices 104 in the cell; the number, I, of iterations of window 302
that are needed to accommodate the J devices in the cell 108; a
hash function utilized for selecting which of the timeslots 332
during which to transmit an alarm signal; the packet duration A;
the idle time D; the idle time, d, between windows; and/or the
duration, .gamma., of the open-access window 306.
[0062] In step 506, the endpoint 104 may adjust its clock 212 to
synchronize to the network clock 202.
[0063] In step 508, the endpoint 104 may enter a non-alarm mode of
operation. While in the non-alarm mode (i.e., while an alarm
condition is not present), the endpoint 104 may transmit beacon
packets only during its assigned timeslot 322.sub.n,j, the endpoint
104 may periodically and/or occasionally adjust its clock to
maintain synchronization with network timing, and/or may
communicate with a controller 106 and/or other endpoint 104 during
the open-access window 306. Upon the endpoint 104 detecting an
alarm condition, the exemplary steps may advance to step 510.
[0064] In step 510, the endpoint 104 may determine which of the
timeslots of window 304 to utilize for transmitting an alarm
signal. The determination may be made by inputting an identifier
(e.g., the indices n and i) of the endpoint's assigned timeslot
322.sub.n,i to a hash algorithm.
[0065] In step 512, the endpoint 104 may transmit the alarm signal
during the determined timeslot of window 304.
[0066] FIG. 6 is a flowchart comprising exemplary steps for
synchronization of a low-power, long-range network endpoint. In
step 604, after start step 602, during an instance of the
open-access window 306, the base station 102 and/or the controllers
106.sub.1-106.sub.3 may transmit (e.g., broadcast) synchronization
for the endpoints 104.sub.1-104.sub.20 to utilize in synchronizing
their local clocks 212 to the clock 202. In step 606, during an
instance of the window 302, endpoint 104.sub.20 may listen during
one or more timeslots 322 to which it is not assigned. That is, it
may receive beacons transmitted by one or more of the endpoints
104.sub.2-104.sub.19. In step 608, the endpoint may adjust its
clock 212 based on the beacons received from the other endpoints.
After step 608, the steps may return to step 604.
[0067] FIG. 7 is a flowchart comprising exemplary steps for
synchronization of a low-power, long-range network endpoint. In
step 704, after start step 702, endpoint 104.sub.j may listen to a
channel of the network cell 108 during a time interval beginning at
T.sub.LC-D and ending at time instant T.sub.LC+D, where D is the
idle time between the end of a first packet (e.g., packet 320.sub.n
in FIG. 3B) and a timeslot boundary (e.g., timeslot boundary
324.sub.n+1 of FIG. 3B), D is also the idle time between the
timeslot boundary and the beginning of a second packet (e.g.,
packet 320.sub.n+1 in FIG. 3B), and T.sub.LC is a value of the
local clock 212 of device 104.sub.j that is supposed to correspond
to the timeslot boundary (That is, if clock 212 is accurately
synchronized to the clock 202, then T.sub.LC aligns with the
timeslot boundary). The endpoint 104.sub.j may do this for one or
more values of T.sub.LC.
[0068] In step 706, the endpoint may characterize the signals
received during the one or more time intervals. In step 708, the
endpoint 104.sub.j may adjust its clock based on the result of the
characterization in step 706.
[0069] In an exemplary embodiment, the characterization may
comprise determining a ratio of (i) post-chirp bits, bytes, or
symbols received during the one or more time intervals to (ii)
fore-chirp bits, bytes, or symbols received during the one or more
time intervals. In such an embodiment, the ratio may be greater
than a threshold value (e.g., `1`) because, for example, T.sub.LC
is not aligned with the timeslot boundary, but occurs before the
timeslot boundary. In such an embodiment, the ratio may be less
than a threshold value (e.g., `1`) because, for example, T.sub.LC
is not aligned with the timeslot boundary, but occurs after the
timeslot boundary. The threshold value may be configurable and/or
implementation specific. Configurability of the threshold may
enable compensating for system biases and/or non-idealities. The
clock may, for example, be adjusted in a first direction (e.g., a
positive direction) if the ratio is greater than the threshold,
adjusted in a second direction (e.g., a negative direction) if the
ration is less than the threshold, and may not be adjusted if the
ratio is equal to the threshold.
[0070] In another exemplary embodiment of the invention, the
characterization may comprise comparing how many post-chirp bits,
bytes, or symbols were received during the one or more time
intervals and (ii) how many fore-chirp bits, bytes, or symbols were
received during the one or more time intervals. The clock may, for
example, be adjusted in a first direction (e.g., a positive
direction) if the more post-chirp bits, bytes, or symbols than
fore-chirp bits, bytes, or symbols were received during the one or
more time intervals, be adjusted in a second direction (e.g., a
negative direction) if the less post-chirp bits, bytes, or symbols
than fore-chirp bits, bytes, or symbols were received during the
one or more time intervals, and may not be adjusted if the same (or
approximately the same) number of post-chirp bits, bytes, or
symbols and fore-chirp bits, bytes, or symbols were received during
the one or more time intervals.
[0071] In an exemplary embodiment of the invention, a communication
system (e.g., an endpoint 104) may comprise one or more circuits
operable to transmit and receive data wirelessly. The communication
system may be assigned (e.g., via download, via manual programming,
and/or via wireless signal(s) from a base station) a first timeslot
(e.g., timeslot 332.sub.n,i) during which transmission can occur
when an alarm condition is not present. The one or more circuits
may be operable to detect the presence of an alarm condition. In
response to the detection of the alarm condition, the one or more
circuits may be operable to determine a second timeslot (e.g.,
timeslot 332.sub.m) based on the first timeslot and based on a hash
function. The one or more circuits may be operable to transmit an
alarm signal during the second timeslot.
[0072] In an exemplary embodiment of the invention, a communication
system (e.g., an endpoint 104) may comprise one or more circuits
operable to transmit and receive over a medium to which access is
time-division multiplexed into a plurality of repeating windows
(e.g., windows 302, 304, and 306). A first window (e.g., window
302) of the plurality of repeating windows may be time-division
multiplexed into a plurality of timeslots (e.g., timeslots
322.sub.1,1-322.sub.N,I). A second window (e.g., window 304) of the
plurality of repeating windows may be time-division multiplexed
into a plurality of timeslots (e.g., timeslots
332.sub.1-332.sub.M). The assigned first timeslot may be one of the
plurality of timeslots of the first window. The second timeslot may
be one of the plurality of timeslots of the second window. The
second timeslot may occur in the first instance of the second
window to occur after the detection of the alarm condition. The
first timeslot may not occur in every instance of the first window.
A third window (e.g., window 306) of the plurality of windows may
not be time-division multiplexed into a plurality of timeslots. The
first timeslot may be reserved for transmissions of a first type
(e.g., beacon packets) and the third window is utilized for
transmissions of one or more second types (e.g., endpoint
configuration data, data uploads from an endpoint, data downloads
to an endpoint). The one or more circuits may comprise one or more
acoustic, chemical, electrical, magnetic, mechanical, optical,
and/or thermal sensors for performing the detection of the alarm
condition.
[0073] In an exemplary embodiment of the invention, a communication
system (e.g., an endpoint 104) may comprise a clock (e.g., clock
212) and may be operable to transmit and receive data via a
wireless network (e.g., the network 108). The communication system
may communicate over a medium to which access is time-division
multiplexed into a plurality of timeslots (e.g., timeslots
332.sub.1,1-332.sub.N,I). The o communication system may be
operable to receive signals during one or more time intervals
(e.g., a time interval from T.sub.LC-D to T.sub.LC+D). The
communication system may be operable to characterize the signals
received during the one or more time intervals. The communication
system may be operable to adjust the clock based the
characterization. The characterization may comprise determining a
ratio of (i) end-of-timeslot bits, bytes, or symbols (i.e., bits,
bytes, or symbols, such as, for example, the post chirp 456, that
are transmitted at or near the end of a timeslot such as, for
example, a timeslot 322) received during the one or more time
intervals to (ii) beginning-of-timeslot bits, bytes, or symbols
(i.e., bits, bytes, or symbols, such as, for example, the post
chirp 456, that are transmitted at or near the beginning of a
timeslot such as, for example, a timeslot 322) received during the
one or more time intervals.
[0074] Access to the wireless network may be time-division
multiplexed into a plurality of repeating windows. The one or more
time intervals may occur during a first window of the plurality of
repeating windows. The signals received during the one or more time
intervals may have been transmitted by other endpoints (e.g., other
ones of the endpoints 104.sub.1-104.sub.20) in the wireless
network. The communication system may be operable to transmit an
alarm signal during a second window of the plurality of repeating
windows. The communication system may comprise a clock and may be
operable to synchronize the clock (e.g., clock 212) to a network
clock (e.g., clock 202) during a third window of the plurality of
repeating windows.
[0075] 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 low-power, long-range
networking.
[0076] 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.
[0077] 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.
[0078] 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.
* * * * *