Method and apparatus for resuming reception in untracked positioning using ultra wide band devices
By updating the index in the tag device in RTLS and retrying the decryption method, the poor reception rate caused by the tag failure to receive the initial message is solved, and the effect of successful decryption and positioning is achieved.
Patent Information
- Application Number
- CN202411412787.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-04-30
- Filing Date
- 2024-10-11
- Publication Date
- 2025-04-25
AI Technical Summary
In the existing real-time positioning system (RTLS), the probability that the tag fails to receive the initial message from the anchor is high, resulting in poor reception rate and the inability to decrypt subsequent reply messages.
By implementing a method in the tag device, first receiving an encrypted message from the anchor, attempting to decrypt using the initial index, if the decryption fails, update the index and try again the decryption until successful decryption is performed.
The reception rate is improved and the tag can successfully decrypt the necessary positioning data, thereby achieving accurate positioning.
Smart Images

Figure CN119893663A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to ultra-wideband enabled devices, systems and methods for untracked navigation using ultra-wideband devices, and more particularly to reception recovery in a real-time positioning system. Background Art
[0002] A real-time location system (RTLS) is a technology for tracking and managing the location of people and objects in real time, typically within a building or other enclosed area. RTLS typically includes multiple anchor devices and one or more tag devices capable of transmitting and receiving messages between them. Anchors are deployed at fixed locations, serve as fixed reference points, and are time synchronized. Anchors can periodically transmit wireless signals that can be received by other anchors and tags. Wireless tags, such as mobile phones, are typically attached to objects or worn by people and are capable of receiving wireless signals transmitted by anchors. The location of a tag can be determined based on communication between the tag and the anchor using known techniques (e.g., multilateration). In existing RTLS, the probability of a tag failing to receive an initial message from an anchor is relatively high. When an initial message is not received, the tag cannot decrypt subsequent reply messages from other anchors. This may be the case even when the tag hardware physically receives the subsequent reply message without obvious errors. Current methods for recovering from a failure to receive an initial message require waiting for the next initial message at the start of a new round of communication, resulting in poor reception rates.
[0003] Therefore, there is a need for an improved method of recovering reception. Summary of the invention
[0004] In one general aspect, the present disclosure relates to a method for recovering reception during a ranging round. The method also includes receiving a first encrypted message from a second device at a first device. The method also includes decrypting the first encrypted message based on a first index at the first device, thereby generating a first decrypted message. The method also includes determining at the first device that decryption of the first decrypted message was unsuccessful. The method also includes updating the first index to a second index at the first device. The method also includes decrypting the first encrypted message based on the second index at the first device, thereby generating a second decrypted message, wherein the second decrypted message includes first data. The method also includes determining at the first device that decryption of the second decrypted message was successful. The method also includes updating the second index to a third index at the first device.
[0005] In some aspects, implementations may include one or more of the following features. The method may include: receiving, at the first device, a second encrypted message from a third device after the first encrypted message; and decrypting the second encrypted message at the first device based on the third index, thereby producing a third decrypted message, wherein the third decrypted message includes second data. The first data may include a first transmission time of the first encrypted message from the second device and one or more coordinates representing the location of the second device, and wherein the second data may include a second transmission time of the second encrypted message from the third device and one or more coordinates representing the location of the third device. The method may include: determining, at the first device, a location of the first device based on the first data and the second data. The first index and the second index are associated with a first ranging slot and a second ranging slot, wherein the first ranging slot precedes the second ranging slot in a ranging round. The first encrypted message is an ultra-wideband (UWB) message, wherein the first device is a UWB-enabled tag device, wherein the first index, the second index, and the third index are different values of cryptoStsIndex, and wherein the second device is a UWB-enabled anchor device. The steps of the method occur within 100 microseconds.
[0006] In one general aspect, the present disclosure relates to a non-transitory machine-readable medium storing instructions. The non-transitory machine-readable medium storing instructions also includes receiving a first encrypted message from a device. The non-transitory machine-readable medium storing instructions also includes decrypting the first encrypted message based on a first index, thereby generating a first decrypted message. The non-transitory machine-readable medium storing instructions also includes determining that decryption of the first decrypted message is unsuccessful. The non-transitory machine-readable medium storing instructions also includes updating the first index to a second index. The non-transitory machine-readable medium storing instructions also includes decrypting the first encrypted message based on a second index, thereby generating a second decrypted message, wherein the second decrypted message includes first data. The non-transitory machine-readable medium storing instructions also includes determining that decryption of the second decrypted message is successful. The non-transitory machine-readable medium storing instructions also includes updating the second index to a third index.
[0007] In some aspects, an implementation may include one or more of the following features. The non-transitory machine-readable medium further stores instructions that, when executed by the one or more processors, cause the one or more processors to perform: receiving a second encrypted message from a second device after the first encrypted message; and decrypting the second encrypted message based on the third index, thereby generating a third decrypted message, wherein the third decrypted message includes second data. The first data may include a first transmission time of the first encrypted message from the device and one or more coordinates representing the location of the device, and wherein the second data may include a second transmission time of the second encrypted message from the second device and one or more coordinates representing the location of the second device. The non-transitory machine-readable medium further stores instructions that, when executed by the one or more processors, cause the one or more processors to perform: determining a location of a third device based on the first data and the second data. The first index and the second index are associated with a first ranging slot and a second ranging slot, wherein the first ranging slot precedes the second ranging slot in a ranging round. The first encrypted message is an ultra-wideband (UWB) message, wherein the third device that may include a non-transitory machine-readable medium is a UWB-enabled tag device, wherein the first index, the second index, and the third index are different values of cryptoStsIndex, and wherein the device is a UWB-enabled anchor device. The one or more processors are configured to execute the instructions within 100 microseconds.
[0008] In one general aspect, the present disclosure relates to a device. The device also includes: a transceiver; a non-transitory memory storing instructions; and one or more hardware processors configured to execute the instructions to cause the device to perform operations, which may include: receiving a first encrypted message from a second device; decrypting the first encrypted message based on a first index to generate a first decrypted message; determining that the first decrypted message is not successfully decrypted; updating the first index to a second index; decrypting the first encrypted message based on the second index to generate a second decrypted message, wherein the second decrypted message includes first data; determining that the second decrypted message is successfully decrypted; and updating the second index to a third index.
[0009] In some aspects, an implementation may include one or more of the following features. The device, wherein the one or more hardware processors are configured to execute the instructions to cause the device to perform operations, the operations may include: receiving a second encrypted message from a third device after the first encrypted message; and decrypting the second encrypted message based on the third index to produce a third decrypted message, wherein the third decrypted message includes second data. The first data may include a first transmission time of the first encrypted message from the device and one or more coordinates representing the location of the second device, and wherein the second data may include a second transmission time of the second encrypted message from the third device and one or more coordinates representing the location of the third device. The one or more hardware processors are configured to execute the instructions to cause the device to perform operations, the operations may include: determining the location of the device based on the first data and the second data. The first index and the second index are associated with a first ranging slot and a second ranging slot, wherein the first ranging slot precedes the second ranging slot in a ranging round.
[0010] Those skilled in the art will understand the scope of the present disclosure and recognize additional aspects thereof after reading the following detailed description in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate several aspects of the present disclosure and, together with the detailed description, serve to explain the principles of the present disclosure.
[0012] Figure 1 An exemplary real-time location system (RTLS) system is shown.
[0013] Figure 2 is a signaling diagram depicting a failure scenario in FiRa DL-TDoA according to some aspects of the present disclosure.
[0014] Figure 3 A simplified block diagram depicting a reception recovery method in accordance with some aspects of the present disclosure.
[0015] Figure 4 A signaling diagram depicting reception recovery in FiRa DL-TDoA according to some aspects of the present disclosure is shown.
[0016] Figure 5 is a simplified diagram of a communication device according to some aspects of the present disclosure.
[0017] Figure 6 An exemplary method for resuming reception by a UWB-enabled device in accordance with aspects of the present disclosure is shown. DETAILED DESCRIPTION
[0018] The multiple embodiments described below depict the necessary information to enable a person of ordinary skill in the art to practice the embodiments, and illustrate the best mode for practicing the embodiments. After reading the following description with reference to the accompanying drawings, a person of ordinary skill in the art will understand the concepts of the present disclosure and will understand the applications of these concepts that are not specifically described herein. It should be understood that these concepts and applications are within the scope of the present disclosure and the appended claims.
[0019] It will be appreciated that while the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are used only to distinguish different elements. For example, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element without departing from the scope of the present disclosure. As used herein, the term "and / or" includes any and all combinations of one or more of the associated listed items.
[0020] The terms used herein are for the purpose of describing specific aspects only and are not intended to limit the present disclosure. As used herein, unless otherwise clearly indicated herein, the single forms "a", "an", and "the" are intended to include multiple forms. It will also be understood that when used herein, the terms "include" and / or "comprising" clearly indicate the presence of the described features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0021] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by those with ordinary knowledge in the art. It will be further understood that the terms used herein should be interpreted as having a meaning consistent with the context of this specification and related prior art, and should not be interpreted in an idealized or overly formal sense unless explicitly defined herein. In addition, similar element symbols represent similar features throughout the specification and drawings.
[0022] It should be understood that the blocks in each signal transmission diagram or flowchart and the combination of signal transmission diagrams or flowcharts can be executed by computer program instructions. Since the computer program instructions can be equipped in a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, the instructions executed by the processor of the computer or other programmable data processing device produce means for performing the functions described in conjunction with one (multiple) blocks of each signal transmission diagram or flowchart. Since the computer program instructions can be stored in a computer-usable or computer-readable memory, it can be directed to the computer or other programmable data processing device to implement the functions in a specific manner, so the instructions stored in the computer-usable or computer-readable memory can produce a product, which includes instructions for performing the functions described in conjunction with one (multiple) blocks of each signal transmission diagram or flowchart. Since the computer program instructions can be equipped in a computer or other programmable data processing device, the instructions that produce the program executed by the computer as a series of operating steps are executed by the computer or other programmable data processing device, and the instructions that operate the computer or other programmable data processing device can provide steps for performing the functions described in conjunction with one (multiple) blocks in each signal transmission diagram or flowchart.
[0023] Each block may represent a module, segment, or portion of code that contains one or more executable instructions for performing a specific logic function(s). In addition, it should be noted that in some alternative execution instances, the functions mentioned in the blocks may occur in different orders. For example, two blocks shown in succession may be executed substantially simultaneously or in reverse order, depending on the corresponding functions.
[0024] In the following, various aspects are described in detail with reference to the accompanying drawings. In addition, although a communication system using ultra-wideband (UWB) is described in conjunction with various aspects, as an example, various aspects may also be applied to other communication systems with similar technical backgrounds or features. For example, communication systems using Bluetooth or ZigBee may be included. In addition, various aspects of the present disclosure may be modified within the scope determined by a person of ordinary skill in the art without significantly departing from the scope of the present disclosure, and such modifications may be applicable to other communication systems.
[0025] UWB may refer to a short-range, high-rate wireless communication technology that uses a wide frequency band of several GHz or more, low spectrum density, and short pulse width (e.g., 1 nsec to 4 nsec) in a baseband state. UWB may mean the frequency band itself to which UWB communication is applied. UWB enables secure and accurate ranging between devices. Therefore, UWB enables relative position estimation based on the distance between two devices, or accurate position estimation of a device based on the distance to a fixed device (whose position is known, also referred to as an anchor device). The present disclosure assumes that a reference device is capable of communicating via UWB (referred to as a "UWB-enabled user device," a UWB device, a user device, or simply a device).
[0026] In the present disclosure, the terms "initiator" and "responder" can be defined in the FiRa specification, but are not limited to the protocols described in the FiRa specification. In some cases, before a ranging round or session begins, the selection of the initiator and responder will be negotiated by Bluetooth or other communication means. Those skilled in the art will understand the applicability of the description of these and other terms herein to other protocols based on ranging. In some cases, the responder may also be referred to as an access system.
[0027] As used herein, "time slot", "ranging round" and "block" each refer to a time or time span. A ranging round may contain multiple time slots, also referred to as ranging slots, and a block may contain one or more ranging rounds.
[0028] The following abbreviations may be used throughout: “CCC” stands for Car Connectivity Consortium, “BLE” stands for Bluetooth Low Energy, “DM” stands for Data Message, “SS-TWR” stands for Single-Sided Two-Way Ranging, “DS-TWR” stands for Double-Sided Two-Way Ranging, “RIM” stands for Ranging Initiation Message, “RRM” stands for Ranging Response Message, “RRRM” stands for Ranging Result Report Message, “RFM” stands for Ranging Final Message, “CRUM T2” stands for Control Ranging Update Message Type 2, “RCM T3” stands for Ranging Control Message Type 3, “SIM” stands for Scheduling Information Message, “FP” stands for First Path, “CAP” stands for Contention Access Period, and “CFP” stands for Contention Free Period. “RR” stands for Ranging Response, “DL-TDoA” stands for Downlink Time Difference of Arrival, and “OWR” stands for One-Way Ranging.
[0029] The FiRa standard has an untracked navigation application facilitated by the FiRa downlink (DL) TDoA or DT scheme. The implementation of DL-TDoA in FiRa-2.0 is a variation of a non-deferred TWR with a "static STS" rotation mechanism. The DL-TDoA scheme hardware includes a cluster of infrastructure elements (DT anchors, or simply anchors) and mobile devices (DT tags or tag devices). DT anchors are mounted on walls or ceilings, for example, usually in a fixed position, and periodically transmit UWB signals according to the rules defined in the FiRa DL-TDoA protocol. In some cases, a polling message (also known as a polling-DTM) from one anchor device (acting as an initiator) may contain instructions for the assignment of ranging slots for other anchors (acting as receivers). After receiving the polling message, each receiver anchor will transmit a reply message, also known as a response DTM, during its assigned ranging slot in the ranging round. After receiving those UWB signals from the anchors (both initiators and receivers), the DT tag device can perform a multilateration algorithm to determine its own location based on the anchors' coordinates and the timestamps provided in the transmitted UWB signals. A cluster can contain any number of anchors. In some cases, a common cluster size can contain 3-10 anchors.
[0030] During DL-TDoA, messages may be structured as SP1 data frames. The SP1 data frame includes several fields, including SYNC, SFD, STS, PHR, and PHY payload. SYNC is a preamble that synchronizes the sender and receiver. The Start of Frame Delimiter (SFD) marks the end of the SYNC preamble. The Scrambled Time Sequence (STS) is a more secure preamble. The PHY header (PHR) contains information about the PHY payload. The PHY payload contains a data packet that includes a message, such as the location of the anchor responder and / or various timestamps. Various fields of the data frame may be encrypted. For example, both the STS and at least a portion of the PHY payload containing the location of the anchor and the associated time may be encrypted. In addition, the PHY payload may include different types of MAC headers (MHRs), which may contain different information.
[0031] There may be several different configurations for generating STS. In some aspects, static STS refers to an STS generation mode in which corresponding ranging slots in a ranging round will have the same STS index, referred to as cryptoStsIndex. For example, the cryptoStsIndex of the first ranging slot is the same in each ranging round, the cryptoStsIndex of the second ranging slot is the same in each ranging round, and so on. In some cases, cryptoStsIndex will range through a number of indexes equal to the number of anchors, i.e., max_cryptoStsIndex. For example, a DT anchor initiator may use index 0 for its message, and each DT anchor will use indexes 1, 2, ..., up to the number of anchor responders, i.e., max_cryptoStsIndex-1. The index values used by each DT anchor responder may be determined by the order specified in the DT anchor initiator message, or by out-of-band communication before the start of the ranging round.
[0032] Several pieces of information are required for successful encryption and decryption of the STS and PHY payload in a static STS environment, including ConfigDigest, StaticSTS IV, VendorID, cryptoStsIndex, and a nonce. Config Digest, StaticSTS IV, VendorID can be provided out-of-band (e.g., Bluetooth, WiFi, etc.). In addition, the source address must be known, which includes part of the nonce used to encrypt and decrypt the PHY payload. The source address can be exchanged between counterparties so that the receiver will know the source address of the sender. In some cases, the "source address" is distributed out-of-band because the MAC header (MHR) type "data" for FiRa TWR UWB frames can only have a "destination address" in the address field according to IEEE 802.15.4. However, in the DL-TDoA scheme, it is impossible to know the source address in advance. Therefore, in some cases, the MAC header (MHR) type of the TDoA frame can be changed to "multi-purpose", which allows the source address to be sent openly, either alone or together with the destination address or as an implicit broadcast message. The nonce contains the cryptoStsIndex. Therefore, it is necessary to know the correct cryptoStsIndex to successfully decrypt the PHY payload.
[0033] In some cases, in a static STS environment, cryptoStsIndex cycles from 0 on a polling message to the maximum number of slots in a ranging round used by the DL-TDoA cluster. Receipt of a polling-DTM triggers the start of a ranging round. In other words, it is triggering the incrementing of cryptoStsIndex so that the system can receive timestamps and other data payloads. After receiving each transmission from an anchor, the tag device increments the locally stored value of cryptoStsIndex. For example, after receiving a polling message, the tag device will increment cryptoStsIndex to 1; after receiving the first ranging response message from the receiving anchor, the tag device will increment cryptoStsIndex to 2; and so on.
[0034] In some cases, as described herein, reception recovery after a missed DL-TDoA message requires systematically finding the correct nonce that is the input for encryption / decryption of the PHY payload in the FiRa static STS scheme.
[0035] Figure 1 An exemplary real-time location system 100 is shown. The location system 100 may include several devices, including an initiator 102, responders 104A-E, and a target device 106. Using multiple messages transmitted between the initiator, responders, and target devices, the target device 106 may determine its location based on the timing of the messages and the data contained therein. For example, the location may be determined based on timestamps associated with the multiple messages and / or the known locations of the initiator 102 and responders 104A-E. The initiator 102, responders 104A-E, and target device 106 may be referenced in a variety of ways. For example, the initiator 102 may be referred to as a DT anchor initiator, the responders 104A-E may be referred to as DT anchor responders, and the target device 106 may be referred to as a DT tag.
[0036] like Figure 1 As depicted, the signal path from the initiator 102 to the target device 106 may be blocked by an obstacle 103. Therefore, in the depicted configuration, the target device will not receive the message from the initiator 102. In some cases, the obstacle 103 may be a human body, a wall, or other object that is present in the straight path between the initiator 102 and the target device 106. The message from the DT anchor may still be received at the responders 104A-E. In a real reception environment, the probability that the target device may not receive the polling message is relatively high. Therefore, the DT tag will remain in a "waiting" poll-DTM condition and will not correctly receive the subsequent reply-DTM, which can be perfectly received from an RF perspective.
[0037] Although the message from the initiator 102 may not be received at the target device 106, each of the responders 104A-E may receive the message and transmit a message in response. Those messages of the responders may be successfully received by the physical hardware of the target device 106, but the messages will not be successfully decrypted by the target device 106.
[0038] Figure 2 is a signaling diagram depicting a failure scenario in FiRa DL-TDoA according to some aspects of the present disclosure. Messaging in RTLS may be structured according to DL-TDoA ranging rounds. For example, the anchor initiator and anchor responder may use two-way ranging (TWR) to transmit and receive messages. The tag device may also receive messages exchanged between the initiator anchor and the responder anchor. In a ranging round of DL-TDoA, each anchor responder may be assigned to transmit a message in one of the ranging slots 202 via a polling message 221. As described above, obstacles in the physical world may cause the DT tag 220 to not receive a message transmitted by the DT anchor initiator 205. Figure 2 The message transmission includes the DT anchor initiator 205 , the first DT anchor responder 212 , the second DT anchor responder 214 , the third NDT anchor responder 216 and the DT tag 220 .
[0039] At the start of ranging, the initiator 205 transmits a polling message 221. The polling 221 acts as a ranging start message for SS-TWR or DS-TWR between the anchor initiator 205 and the anchor responders 212, 214, 216. In response to the polling 221, the first responder 212 transmits a first ranging response (RR1) 222, the second responder 214 transmits a second ranging response (RR2) 224, and the Nth responder 216 transmits an Nth ranging response (RRN) 226. The transmission order of the ranging responses may be assigned by the anchor initiator and transmitted at a portion of the data contained in the polling message 221. Alternatively, the transmission order of the ranging responses may be predetermined by the anchor or negotiated out-of-band. Each anchor responder may be assigned to transmit a ranging response at one of the ranging slots 202. Each responder may determine when its ranging slot occurs by tracking the time elapsed after receiving the polling message 221. The ranging response message may include the location / coordinates of the corresponding anchor that transmitted the ranging response message. For example, RR2 224 may contain the coordinates of anchor 214.
[0040] The ranging start message and the response message are included in the SP1 data frame, which means that each data frame contains several fields, such as SYNC, SFD, STS, PHY and data payload. Figure 2The TWR used in , uses static STS rotation, which means that the decryption of the message requires the correct cryptoSTSindex. cryptoSTSindex starts at 0 for the polling message and increments by 1 for each response message. If the device attempts to decrypt the STS using the wrong cryptoSTSindex, the device will report an error for the received frame including the message. Because cryptoSTSindex changes for each ranging slot, the STS generated based on cryptoSTSindex also changes.
[0041] like Figure 2 As shown, DT tag 220 fails to receive polling message 221. For the sake of illustration, Figure 2 Assume that the DT tag 220 does receive the first ranging response 222. The DT tag 220 will attempt to decrypt the first ranging response 222 using cryptoSTSindex=0 because the first ranging response 222 is the first message received in the ranging round. However, the first ranging response 222 will have been encrypted using cryptoSTSindex=1. Therefore, when the DT tag 220 attempts to decrypt the first ranging message 222 using cryptoSTSindex=0, it will report an error. Similarly, the second ranging response 224 is encrypted with cryptoSTSindex=2. Even though the DT tag 220 receives the second ranging response 224, it will attempt to decrypt the message with the wrong cryptoSTSindex. This decryption failure due to the use of the wrong cryptoSTSindex will continue for all ranging response messages, up to (and including) the last ranging response message 226. The polling message failed to be received, and therefore the ranging response messages 222, 224, 226 failed to be decrypted.
[0042] Figure 3 300 is a simplified block diagram of a reception recovery method 300 according to some aspects of the present disclosure. In some aspects, the reception recovery method can be implemented by the device 500 implementing the reception recovery submodule 531 as described herein. After receiving a frame including a message at step 302 (e.g., received by the transceiver 515 of the device 500), various processes can occur, including a cyclic redundancy check (CRC) to determine whether there are errors in the data contained in the message. At step 304, the device determines whether the CRC returns any errors. At step 306, if the data packet has errors, the processing of the frame can stop and / or other error correction processes can start to recover the data in the frame. If the CRC does not return errors, the device implements the reception recovery method 300.
[0043] At step 308, the device attempts to decrypt the frame. As described herein, cryptoStsIndex is used for encryption of the STS and therefore must be known in order to successfully decrypt the STS. At step 310, the device determines whether the STS decryption using the current cryptoStsIndex is successful. At step 312, if the STS decryption is successful, the device is synchronized with the ranging round and is correctly configured to receive additional messages. At step 314, if the receiving device (e.g., DT tag 220, 420) reports an error, the device will increase cryptoStsIndex (e.g., from 0 to 1) and attempt to decrypt the PHY payload with the new cryptoStsIndex. The PHY payload can be stored / saved instead of discarding the PHY payload after the STS decryption reports an error, thereby allowing further decryption attempts. In some aspects, the PHY payload can be stored in a receiver buffer including RAM and located in, for example, the device 500 described herein. At step 316, the device determines whether the payload decryption is successful. If the payload decryption is successful, the receive recovery method proceeds to step 312: the correct cryptoStsIndex has been found and the device is resynchronized with the ranging round. If the payload decryption is unsuccessful, the receive recovery method returns to step 314 and further increases the cryptoStsIndex (e.g., from 1 to 2) and attempts to decrypt the payload with the new cryptoStsIndex. The receive recovery method 300 can continue to increase the cryptoStsIndex and attempt to decrypt the payload until each cryptoStsIndex has been used (the maximum number of different cryptoStsIndex is equal to the number of anchors in the cluster).
[0044] In some aspects, implementations of the receive recovery method 300 may require hardware that is capable of decrypting packets that are less than the length of the ranging slot (e.g., 1 millisecond) divided by the number of anchor devices. For example, for a ranging slot of length 1 millisecond and 5 anchors, the hardware on the decryption device would need to be able to decrypt a packet in 200 microseconds. The Qorvo QM35 silicon can decrypt a frame in approximately 60 microseconds. In some aspects, the time between receiving a message at a UWB-enabled device and decrypting the message is less than 200 microseconds. In some aspects, implementations of the recovery method 300 may require hardware that is capable of storing the PHY payload even for frames where decryption of the STS causes the device to report an error.
[0045] Figure 44 is a signaling diagram 400 depicting reception recovery in FiRa DL-TDoA according to some aspects of the present disclosure. Signaling in RTLS can be constructed according to DL-TDoA ranging rounds. For example, the anchor initiator and anchor responder can use two-way ranging (TWR) to transmit and receive messages. The tag device can also receive messages exchanged between the initiator anchor and the responder anchor. In the ranging round of DL-TDoA, each anchor responder can be assigned to transmit a message in one of the ranging slots 402 via a polling message 421. As described above, obstacles in the physical world may cause the DT tag 420 to not receive the message transmitted by the DT anchor initiator 405. Figure 4 The message transmission includes the DT anchor initiator 405 , the first DT anchor responder 412 , the second DT anchor responder 414 , the third NDT anchor responder 416 and the DT tag 220 .
[0046] At the beginning of a ranging round, the initiator 405 transmits a polling message 421. The polling 421 acts as a ranging initiation message for SS-TWR or DS-TWR between the anchor initiator 405 and the anchor responders 412, 414, 416. In response to the polling 421, the first responder 412 transmits a first ranging response (RR1) 422, the second responder 414 transmits a second ranging response (RR2) 424, and the Nth responder 416 transmits an Nth ranging response (RRN) 426. The transmission order of the ranging responses may be assigned by the anchor initiator and transmitted at a portion of the data contained in the polling message 421. Alternatively, the transmission order of the ranging responses may be predetermined by the anchor or negotiated out-of-band. Each anchor responder may be assigned to transmit a ranging response at one of the ranging slots 402. Each responder may determine when its ranging slot occurs by tracking the time elapsed after receiving the polling message 421. The ranging response message may include the location / coordinates of the corresponding anchor that transmitted the ranging response message. For example, RR2 424 may contain the coordinates of the anchor responder 414.
[0047] The ranging start message and the response message may be included in the SP1 data frame, which means that each data frame contains several fields, such as SYNC, SFD, STS, PHY and data payload. Figure 2 The TWR used in , uses static STS rotation, which means that the decryption of the message requires the correct cryptoStsIndex. cryptoStsIndex starts at 0 for the polling message and increments by 1 for each response message. If the device attempts to decrypt a message using the wrong cryptoStsIndex, the decryption will be noisy. Because cryptoStsIndex changes for each ranging slot, the STS generated based on cryptoStsIndex also changes.
[0048] By way of example, Figure 4 Depicting that the DT tag 420 fails to receive the polling message (e.g., due to some obstruction near the tag 420 and / or anchor 405), but receives a first ranging response 422. The DT tag 420 will attempt to decrypt the first ranging response 422 using cryptoStsIndex=0 because the first ranging response 422 is the first message received by the tag 420 in the ranging round. However, the first ranging response 422 will have been encrypted using cryptoStsIndex=1 because it is actually the second message in the ranging round, i.e., it is in the second ranging slot. Therefore, when the DT tag 420 attempts to decrypt the first ranging message 422 using cryptoStsIndex=0, it will generate an error based on an incorrect STS. To remedy the decryption failure of the STS in the first ranging message, the DT tag 420 may employ a reception recovery method as described herein (e.g., methods 300, 600). The DT tag increments the cryptoStsIndex from 0 to 1 and attempts to decrypt the PHY payload, as Figure 3 and 6 As described in Figure 4 As shown, the decryption of cryptoStsIndex=1 is successful, and the DT tag 420 will resynchronize with the ranging round. Figure 4 Depicts a scenario where the DT tag 420 simply fails to receive the initial polling message 421. In some aspects, the DT tag 420 may not be able to physically receive the first 2, 3, 4, or more messages. In such a scenario, the DT tag 420 may need to increment cryptoStsIndex multiple times to eventually successfully decrypt the payload and resynchronize with the ranging round.
[0049] Because the number of time slots in a DL-TDoA ranging round is limited, it is possible to decrypt the data by performing multiple attempts based on the concept of the maximum time slot in the ranging round. By decrypting the frame, it is possible to adjust the next reception to the correct time slot with the correct expected STS configuration. This actually leads to an improvement in the reception rate of DL-TDoA.
[0050] Figure 5 is a simplified diagram of a communication device 500. According to one embodiment described herein, one or more UWB devices 500 may be present in Figure 1-4 Described in and about Figure 1-4 Described in the context and conversation. Figure 5As shown, the UWB device 500 includes a processor 510 coupled to a memory 520. The operation of the UWB device 500 is controlled by the processor 510. And although the UWB device 500 is shown to have only one processor 510, it should be understood that the processor 510 may represent one or more central processing units, multi-core processors, microprocessors, microcontrollers, digital signal processors, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), and / or graphics processing units (GPUs), etc. in the UWB device 500. The UWB device 500 may be implemented as a standalone subsystem, as a board added to a computing device, and / or partially or completely implemented as a virtual machine.
[0051] The memory 520 may be used to store software executed by the UWB device 500 and / or one or more data structures used during operation of the UWB device 500. The memory 520 may include one or more types of machine-readable media. Some common forms of machine-readable media may include a floppy disk, a diskette, a hard disk, a magnetic tape, any other magnetic medium, a CD-ROM, any other optical medium, a punch card, a paper tape, any other physical medium having a pattern of holes, a RAM, a PROM, an EPROM, a flash-EPROM, any other memory chip or cartridge, and / or any other medium from which a processor or computer is suitable for reading.
[0052] The processor 510 and / or the memory 520 may be arranged in any suitable physical arrangement. In some aspects, the processor 510 and / or the memory 520 may be implemented on the same board, in the same package (e.g., a system in a package), on the same chip (e.g., a system on a chip), etc. In some aspects, the processor 510 and / or the memory 520 may include distributed, virtualized, and / or containerized computing resources. Consistent with such aspects, the processor 510 and / or the memory 520 may be located in one or more data centers and / or cloud computing facilities.
[0053] In some instances, memory 520 may include non-transitory tangible machine-readable media containing executable code that, when executed by one or more processors (e.g., processor 510), may cause the one or more processors to perform methods described in further detail herein. For example, as shown, memory 520 includes instructions for a session module 530 that may be used to implement and / or simulate systems and models, and / or implement any of the methods described herein. Session module 530 may receive input signal 540 via transceiver 515 and generate output signal 550, which may be a response to a message contained in input signal 540. Examples of input signals may include messages from and Figure 5Messages and transmissions of UWB devices different from the devices depicted in . Input signals can be structured in frames, which can take the form described in the FiRa standard, for example. Examples of output signals can include transmissions by UWB device 500 in response to received messages and transmissions of messages starting a ranging session.
[0054] The transceiver 515 may include a separate transmitter and receiver or any other means for transmitting in UWB.For example, the UWB device 500 may receive an input signal 540 (eg, a ranging message) at the transceiver 515 from another UWB device.
[0055] In some aspects, the session module 530 is configured to control the content and timing of the output signal 550. The session module 530 may further include a receive recovery submodule 531 (eg, including instructions for iterating cryptoStsIndex, as described herein). The receive recovery submodule 531 may be implemented by hardware and / or software.
[0056] Some examples of UWB devices (e.g., UWB device 500) may include a non-transitory tangible machine-readable medium that includes executable code that, when executed by one or more processors (e.g., processor 510), may cause the one or more processors to perform the processes of the method. Some common forms of machine-readable media that may include the processes of the method are, for example, floppy disks, diskettes, hard disks, magnetic tapes, any other magnetic media, CD-ROMs, any other optical media, punch cards, paper tapes, any other physical media with patterns of holes, RAM, PROMs, EPROMs, flash-EPROMs, any other memory chips or cartridges, and / or any other media from which a processor or computer is suitable for reading.
[0057] Figure 6 An exemplary method for recovering reception by a UWB-enabled device according to some aspects of the present disclosure is shown. Method 600 is merely an example and is not intended to limit the present disclosure beyond what is expressly recited in the claims. Additional operations may be provided before, during, and after method 600, and some of the operations described may be replaced, eliminated, or moved around for use in Figure 1-5 For ease of illustration, combined with Figure 1-5 describe Figure 6 In some aspects, method 600 may be performed by Figure 5 The invention may be implemented by a device such as the UWB device 500 in or any of the UWB devices described herein.
[0058] At step 602, a first device (e.g., DT tag 420) receives a first encrypted message (e.g., first response message 422) from a second device (e.g., DT anchor responder 412). In some aspects, the first encrypted message may be an ultra-wideband (UWB) message in an SP1 frame format. In some aspects, the first device may be a UWB-enabled tag device. In some aspects, the second device is a UWB-enabled anchor device.
[0059] At step 604, the first device decrypts the first encrypted message based on the first index (eg, where cryptoStsIndex=0) (eg, Figure 3 ), thereby generating a first decrypted message.
[0060] At step 606, the first device determines that the first decrypted message was unsuccessful in decryption (eg, Figure 3 310 or step 316 in FIG.
[0061] At step 608, the first device updates the first index (eg, Figure 3 314 in step 316 ) is the second index (eg, increment cryptoStsIndex from 0 to 1, 1 to 2, ..., or increment max_cryptoStsIndex-1 to max_cryptoStsIndex).
[0062] At step 610, the first device decrypts the first encrypted message based on the second index (eg, Figure 3 , 314 in step 315) (e.g., cryptoStsIndex=1, 2, ..., max_cryptoStsIndex), thereby generating a second decrypted message, wherein the second decrypted message includes the first data. In some cases, the first data includes a first transmission time of the first encrypted message from the second device and one or more coordinates representing the location of the second device. In some cases, the first index and the second index are associated with a first ranging slot and a second ranging slot, wherein the first ranging slot precedes the second ranging slot in the ranging round, for example, Figure 2 and 4 The signaling diagram is shown in FIG.
[0063] At step 612, the first device determines (e.g., Figure 2 The second decrypted message is decrypted successfully (eg, step 312 ), in step 316 ).
[0064] At step 614, the first device updates the second index to a third index (eg, increments cryptoStsIndex from 1 to 2 in anticipation of the second response message 424, which may be encrypted using cryptoStsIndex=2). In some aspects, steps 602-614 occur within 100 microseconds.
[0065] In some aspects, a method of receiving recovery may include: a first device receiving a second encrypted message (e.g., a second response message 424) from a third device after a first encrypted message; the first device decrypting the second encrypted message based on a third index (e.g., cryptoStsIndex=2), thereby generating a third decrypted message; and / or the first device determining a location of the first device based on the first data and the second data. In some cases, the third decrypted message includes the second data. In some cases, the second data includes a second transmission time of the second encrypted message from the third device and one or more coordinates representing the location of the third device.
[0066] In some aspects, the first index, the second index, and the third index are different values of cryptoStsIndex.
[0067] While some of the terminology used herein may match or approximate that of a particular standard (e.g., FiRa), those skilled in the art will recognize its relevance and application to other protocols based on the concept of ranging rounds (e.g., as defined in CCC-Car Connectivity Consortium).
[0068] Those skilled in the art will recognize improvements and modifications to the various aspects of the present disclosure. All such improvements and modifications fall within the scope of the concepts disclosed herein and the appended claims.
Claims
1. A method for recovering reception during a ranging round, comprising: receiving, at the first device, a first encrypted message from the second device; decrypting, at the first device, the first encrypted message based on a first index, thereby producing a first decrypted message; determining, at the first device, that decryption of the first decrypted message was unsuccessful; updating the first index to a second index at the first device; decrypting, at the first device, the first encrypted message based on the second index, thereby producing a second decrypted message, wherein the second decrypted message includes the first data; determining, at the first device, that decryption of the second decrypted message was successful; as well as The second index is updated to a third index at the first device.
2. The method according to claim 1, further comprising: receiving, at the first device, a second encrypted message from a third device subsequent to the first encrypted message; as well as The second encrypted message is decrypted at the first device based on the third index, thereby producing a third decrypted message, wherein the third decrypted message includes second data.
3. The method according to claim 2, wherein the first data comprises a first transmission time of the first encrypted message from the second device and one or more coordinates representing a location of the second device, and The second data includes a second transmission time of the second encrypted message from the third device and one or more coordinates representing a location of the third device.
4. The method according to claim 3, further comprising: A location of the first device is determined at the first device based on the first data and the second data.
5. The method of claim 1, wherein the first index and the second index are associated with a first ranging slot and a second ranging slot, wherein in the ranging round, the first ranging slot precedes the second ranging slot.
6. The method according to claim 1, wherein the first encrypted message is an ultra-wideband (UWB) message, wherein the first device is a UWB-enabled tag device, wherein the first index, the second index, and the third index are different values of cryptoStsIndex, and Wherein the second device is a UWB enabled anchor device.
7. The method of claim 1, wherein the steps of claim 1 occur within 100 microseconds.
8. A non-transitory machine-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to: receiving a first encrypted message from a device; decrypting the first encrypted message based on the first index to produce a first decrypted message; determining that decryption of the first decrypted message was unsuccessful; Updating the first index to the second index; decrypting the first encrypted message based on the second index to produce a second decrypted message, wherein the second decrypted message includes the first data; Determining that the second decrypted message is successfully decrypted; as well as Update the second index to the third index.
9. The non-transitory machine-readable medium of claim 8, further storing instructions that, when executed by the one or more processors, cause the one or more processors to perform: receiving a second encrypted message from a second device subsequent to the first encrypted message; and The second encrypted message is decrypted based on the third index, thereby producing a third decrypted message, wherein the third decrypted message includes second data.
10. The non-transitory machine-readable medium of claim 9, wherein the first data comprises a first transmission time of the first encrypted message from the device and one or more coordinates representing a location of the device, and The second data includes a second transmission time of the second encrypted message from the second device and one or more coordinates representing a location of the second device.
11. The non-transitory machine-readable medium of claim 10, further storing instructions that, when executed by the one or more processors, cause the one or more processors to perform: A location of a third device is determined based on the first data and the second data.
12. The non-transitory machine-readable medium of claim 8, wherein the first index and the second index are associated with a first ranging slot and a second ranging slot, wherein the first ranging slot precedes the second ranging slot in the ranging round.
13. The non-transitory machine-readable medium of claim 8, wherein the first encrypted message is an ultra-wideband (UWB) message, wherein the third device including the non-transitory machine-readable medium is a UWB-enabled tag device, wherein the first index, the second index, and the third index are different values of cryptoStsIndex, and Wherein the device is a UWB enabled anchor device.
14. The non-transitory machine-readable medium of claim 8, wherein the one or more processors are configured to execute the instructions within 100 microseconds.
15. An apparatus comprising: Transceiver; a non-transitory memory storing instructions; as well as One or more hardware processors configured to execute the instructions to cause the apparatus to perform operations including: receiving a first encrypted message from a second device; decrypting the first encrypted message based on the first index to produce a first decrypted message; determining that decryption of the first decrypted message was unsuccessful; Updating the first index to the second index; decrypting the first encrypted message based on the second index to produce a second decrypted message, wherein the second decrypted message includes the first data; Determining that the second decrypted message is successfully decrypted; as well as Update the second index to the third index.
16. The apparatus of claim 15, wherein the one or more hardware processors are configured to execute the instructions to cause the apparatus to perform operations further comprising: receiving a second encrypted message from a third device subsequent to the first encrypted message; and The second encrypted message is decrypted based on the third index, thereby producing a third decrypted message, wherein the third decrypted message includes second data.
17. The device according to claim 16, wherein the first data comprises a first transmission time of the first encrypted message from the device and one or more coordinates representing a location of the second device, and The second data includes a second transmission time of the second encrypted message from the third device and one or more coordinates representing a location of the third device.
18. The apparatus of claim 17, wherein the one or more hardware processors are configured to execute the instructions to cause the apparatus to perform operations further comprising: The location of the device is determined based on the first data and the second data.
19. The apparatus of claim 15, wherein the first index and the second index are associated with a first ranging slot and a second ranging slot, wherein the first ranging slot precedes the second ranging slot in the ranging round.
20. The apparatus of claim 15, wherein the one or more hardware processors are configured to execute the instructions within 100 microseconds.