Jammer resilient UWB communication system
A device includes a first radio controller configured to communicate using a first protocol, and a pseudo random number generator configured to generate a pseudo random output value based on an input data value. The device includes a processor configured to determine a preamble code based on an output of the pseudo random number generator, and process a data packet received using the first radio controller using the preamble code to generate a processed data packet.
1 . A system, comprising:
a plurality of ultra-wideband (UWB) anchors configured to broadcast UWB timing data in a plurality of data packets, wherein each data packet is associated with a preamble code; and
a device, including:
a first radio controller configured to communicate with the plurality of UWB anchors using a first protocol, wherein the first protocol subdivides communication operations into a plurality of sequential time slots;
a pseudo random number generator configured to generate a pseudo random output value based on an input data value; and
a processor configured to:
provide the input data value to the pseudo random number generator to cause the pseudo random number generator to output the pseudo random output value;
determine, using the pseudo random output value, the preamble code;
process at least one data packet of the plurality of data packets received using the first radio controller and from a first UWB anchor in the plurality of UWB anchors using the preamble code to generate a processed data packet;
determine a location of the device using the processed data packet; and
increment a preamble hopping state value upon an occurrence of each subsequent time slot; and
wherein:
the device includes a second radio controller configured to communicate using a second protocol, wherein the second protocol is not a UWB communication protocol; and
the processor is configured to receive, using the second radio controller, a first configuration parameter, wherein the first configuration parameter indicates a mapping of pseudo random output values of the pseudo random number generator to preamble codes.
2 . The system of claim 1 , wherein the processor is configured to receive, using the second radio controller, a second configuration parameter, wherein the second configuration parameter determines a configuration of the pseudo random number generator.
3 . The system of claim 1 , wherein the processor is configured to determine a current preamble hopping state value and the preamble hopping state value is equal to the input data value to the pseudo random number generator.
4 . The system of claim 1 , wherein the first protocol subdivides communication operations into a plurality of sequential time slots.
5 . The system of claim 1 , wherein the processor is configured to determine a current preamble hopping state value and a preamble hopping state value is equal to the input data value to the pseudo random number generator.
6 . A system, comprising:
a plurality of ultra-wideband (UWB) anchors configured to broadcast UWB timing data in a plurality of data packets, wherein each data packet is associated with a preamble code; and
a device, including:
a first radio controller configured to communicate with the plurality of UWB anchors using a first protocol;
a pseudo random number generator configured to generate a pseudo random output value based on an input data value; and
a processor configured to:
provide the input data value to the pseudo random number generator to cause the pseudo random number generator to output the pseudo random output value;
determine, using the pseudo random output value, the preamble code;
process at least one data packet of the plurality of data packets received using the first radio controller and from a first UWB anchor in the plurality of UWB anchors using the preamble code to generate a processed data packet; and
determine a location of the device using the processed data packet;
wherein when the device is not time synchronized to the plurality of UWB anchors and the processor is configured to:
determine a first preamble code out of a plurality of preamble codes, wherein the plurality of preamble codes is determined by the first protocol;
repeatedly use the first preamble code to attempt to decode ranging initiation messages or ranging synchronization messages received from the plurality of UWB anchors; and
upon successfully using the first preamble code to decode a first ranging initiation message or ranging synchronization message, determine a current preamble hopping state value of the plurality of UWB anchors.
7 . The system of claim 6 , wherein the first preamble code is a fixed value.
8 . The system of claim 7 , wherein the first preamble code is determined pseudo randomly.
9 . The system of claim 6 , wherein the processor is configured to determine the current preamble hopping state value and a preamble hopping state value is equal to the input data value to the pseudo random number generator.
10 . A method, comprising:
providing an input data value to a pseudo random number generator to cause the pseudo random number generator to output a pseudo random output value;
determining, using the pseudo random output value as an input to the pseudo random number generator, a preamble code;
processing a data packet received using a first radio controller configured to communicate using a first communication protocol using the preamble code to generate a processed data packet, wherein the first protocol subdivides communication operations into a plurality of sequential time slots and further comprising incrementing the preamble hopping state value upon an occurrence of each subsequent time slot;
receiving, using a second radio controller configured to communicate using a second communication protocol, a first configuration parameter, wherein the first configuration parameter indicates a mapping of pseudo random output values of the pseudo random number generator to preamble codes; and
determining a location of a device using the processed data packet.
11 . The method of claim 10 , further comprising receiving, using the second radio controller, a second configuration parameter, wherein the second configuration parameter determines a configuration of the pseudo random number generator.
12 . The method of claim 10 , further comprising determining a current preamble hopping state value and the current preamble hopping state value is equal to the input data value to the pseudo random number generator.
13 . A method comprising:
providing an input data value to a pseudo random number generator to cause the pseudo random number generator to output a pseudo random output value;
determining, using the pseudo random output value as an input to the pseudo random number generator, a preamble code;
processing a data packet received using a first radio controller configured to communicate using a first communication protocol using the preamble code to generate a processed data packet, wherein the first protocol subdivides communication operations into a plurality of sequential time slots and further comprising incrementing the preamble hopping state value upon an occurrence of each subsequent time slot;
determining a first preamble code out of a plurality of preamble codes, wherein the plurality of preamble codes is determined by the first communication protocol;
repeatedly using the first preamble code to attempt to decode messages received using the first radio controller;
upon successfully using the first preamble code to decode a first message, determine a current preamble hopping state; and
determining a location of a device using the processed data packet.
14 . The method of claim 13 , further comprising determining a current preamble hopping state value and the current preamble hopping state value is equal to the input data value to the pseudo random number generator.
15 . A system, comprising:
a plurality of ultra-wideband (UWB) anchors configured to broadcast UWB timing data in a plurality of data packets, wherein each data packet is associated with a preamble code; and
a device, including:
a first radio controller configured to communicate with the plurality of UWB anchors using a first protocol, wherein the first protocol subdivides communication operations into a plurality of sequential time slots;
a pseudo random number generator configured to generate a pseudo random output value based on an input data value; and
a processor configured to:
provide the input data value to the pseudo random number generator to cause the pseudo random number generator to output the pseudo random output value;
determine, using the pseudo random output value, the preamble code;
process at least one data packet of the plurality of data packets received using the first radio controller and from a first UWB anchor in the plurality of UWB anchors using the preamble code to generate a processed data packet;
determine a location of the device using the processed data packet; and
increment a preamble hopping state value upon an occurrence of each subsequent time slot;
wherein when the device is not time-synchronized to the plurality of UWB anchors and the processor is configured to:
determine a first preamble code out of a plurality of preamble codes, wherein the plurality of preamble codes is determined by the first protocol;
repeatedly use the first preamble code to attempt to decode ranging initiation messages or ranging synchronization messages received from the plurality of UWB anchors; and
upon successfully using the first preamble code to decode a first ranging initiation message or ranging synchronization message, determine a current preamble hopping state value of the plurality of UWB anchors.
16 . The system of claim 15 , wherein the first preamble code is a fixed value.
17 . The system of claim 16 , wherein the first preamble code is determined pseudo randomly.
18 . The system of claim 15 , wherein the device includes a second radio controller configured to communicate using a second protocol, wherein the second protocol is not a UWB communication protocol.
19 . The system of claim 18 , wherein the processor is configured to receive, using the second radio controller, a first configuration parameter, wherein the first configuration parameter indicates a mapping of pseudo random output values of the pseudo random number generator to preamble codes.