System and method for scheduling ultra-wideband sessions

By calculating the access time of the UWB session and assigning integral values, selecting a UWB session with a higher integral value for access, the problem that low-priority UWB sessions in the prior art are denied access media during conflicts is solved, and a more fair access mechanism is achieved.

CN119789242APending Publication Date: 2025-04-08QORVO US INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411267228.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-05-24
Filing Date
2024-09-11
Publication Date
2025-04-08

AI Technical Summary

Technical Problem

There is no synchronization between different UWB sessions operating in the existing FiRa protocol, resulting in UWB sessions with lower priority being denied access to the medium in case of conflict, and there is an access loss problem.

Method used

By determining the conflicting UWB session, calculating the access time of each session and assigning integral values, selecting UWB sessions with higher integral values ​​for access to reduce the impact of conflict on low-priority sessions.

Benefits of technology

It effectively reduces the access loss of low-priority UWB sessions, improves the fairness of the system and the access opportunities of low-priority sessions, and avoids hunger.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119789242A_ABST
    Figure CN119789242A_ABST
Patent Text Reader

Abstract

The present disclosure relates to a system and method for scheduling ultra-wideband sessions. A method for scheduling ultra-wideband (UWB) sessions is provided. The method includes: determining a set of conflicting UWB sessions, the set of conflicting UWB sessions including a first UWB session and a second UWB session that partially overlap each other in time; calculating a first access time of the first UWB session and a second access time of the second UWB session; determining a first integral value based on at least the first access time, and determining a second integral value based on at least the second access time; and selecting the first UWB session or the second UWB session having a higher integral value.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to ultra-wideband (UWB) enabled devices and systems for scheduling UWB sessions, and in particular, to improve access of UWB sessions with lower priority. Background Art

[0002] Ultra-wideband (UWB) communications are widely used for short-range communications between electronic devices. Using UWB ranging, an electronic device can measure the distance to another electronic device and make decisions about operations based on the distance. Existing protocols define a set of use cases and protocols for UWB ranging. These protocols allow the creation of several UWB sessions that can run simultaneously. Each UWB session can be a different type that accesses the medium in a slightly different way. Each UWB session contains communications between a controller device and a set of controlled devices. The controller device issues a ranging round in the UWB session, starting the ranging round with a control message. The controlled device listens to this control message and applies the instructions contained in this message.

[0003] A common part of the protocol is that UWB sessions access the medium at regular intervals called block durations. Each UWB access is a round, the duration of which can be known in advance. When the duration of two UWB rounds overlap in time (for example, one UWB session round starts before another UWB session round ends), conflicts between UWB sessions may occur. A conflict may result in a UWB session being denied access to the medium due to its low priority. There are some existing ways to reduce conflicts, for example, it is possible to enable hopping to change the time when rounds are positioned into blocks, but this must be decided in advance so that the controlled device can know when the control message will be transmitted.

[0004] However, there is no synchronization between different UWB sessions operating in the existing FiRa protocol. Therefore, a method and system are needed to mitigate the impact of conflicts involving UWB sessions with lower priority. Summary of the invention

[0005] An embodiment of the present disclosure provides a method for scheduling an ultra-wideband (UWB) session. The method includes: determining a group of conflicting UWB sessions, the group of conflicting UWB sessions including a first UWB session and a second UWB session that partially overlap each other in time; calculating a first access time of the first UWB session and a second access time of the second UWB session; determining a first credit value based at least on the first access time, and determining a second credit value based at least on the second access time; and selecting the first UWB session or the second UWB session having a higher credit value.

[0006] In some embodiments, the determination of the first integral value includes calculating a first session deficiency value for the first UWB session based on the first access time and a previous first session deficiency value; and the determination of the second integral value includes calculating a second session deficiency value for the second UWB session based on the second access time and a previous second session deficiency value.

[0007] In some embodiments, the method further includes: selecting one of the first UWB session and the second UWB having a higher deficit value; updating a corresponding session deficit value of the selected UWB session by subtracting a turn duration of the selected UWB session; and performing access using the selected session.

[0008] In some embodiments, the calculation of the first access time of the first UWB session and the second access of the second UWB session includes: determining a time period in which the first UWB session overlaps with the second UWB session; determining a priority sum value, the priority sum value comprising the sum of a first priority value of the first UWB session and a second priority value of the second UWB session; calculating a first sharing time, the first sharing time being proportional to the length of the time period and the first priority value of the first UWB session and inversely proportional to the priority sum value; and calculating a second sharing time, the second sharing time being proportional to the length of the time period and the second priority value of the second UWB session and inversely proportional to the priority sum value.

[0009] In some embodiments, the calculation of the first access time includes adding the first shared time to the duration of the first UWB session that does not overlap with the second UWB session; and the calculation of the second access time includes adding the second shared time to the duration of the second UWB session that does not overlap with the first UWB session.

[0010] In some embodiments, the calculation of the first access time of the first UWB session and the second access of the second UWB session includes: determining a priority sum value, the priority sum value comprising the sum of priority values ​​of all conflicting UWB sessions; calculating the first access time, the first access time being proportional to the duration of the first UWB session and the first priority value of the first UWB session and inversely proportional to the priority sum value; and calculating the second access time, the second access time being proportional to the duration of the second UWB session and the second priority value of the second UWB session and inversely proportional to the priority sum value.

[0011] In some embodiments, the method further includes: calculating a first session deficiency difference value for the first UWB session equal to the first access time; and calculating a second session deficiency difference value for the second UWB session equal to the second access time.

[0012] In some embodiments, the determining of the first integral value includes determining a first deficit sum value equal to the first session deficit difference value and the first session deficit value; and the determining of the second integral value includes determining a second deficit sum value equal to the second session deficit difference value and the second session deficit value.

[0013] In some embodiments, selecting the one of the first UWB session or the second UWB session having the higher integral value comprises: selecting the one of the first UWB session and the second UWB session having a higher deficit value; and updating the corresponding session deficit value of the selected UWB session by subtracting a ranging round duration.

[0014] In some embodiments, the method further includes: determining corresponding round start times of the first UWB session and the second UWB session; determining an unselected UWB session that overlaps with the selected UWB session and has a corresponding round start time that is earlier than the round end time of the selected UWB session; updating the corresponding session deficiency value of the unselected UWB session by adding the corresponding session deficiency difference; and performing access using the selected session.

[0015] An embodiment of the present disclosure provides a method for determining a group of conflicting UWB sessions. The method includes: determining corresponding round start times and corresponding round end times of multiple UWB sessions in an out-of-window queue; determining a UWB session with an earlier round start time in the out-of-window queue as the first in-window session in the in-window queue, and determining another UWB session with a later round start time in the out-of-window queue as the first out-of-window session in the out-of-window queue; and determining a window period with a window start time and a window end time later than the window start time, the window end time being equal to the round end time of the first in-window session.

[0016] In some embodiments, the method further includes determining whether the out-of-window queue is empty. In some embodiments, in response to the out-of-window queue being not empty, the method further includes updating the window end time to the minimum of the round end time of the session in the first window or the round start time of the session outside the first window.

[0017] In some embodiments, the method further comprises calculating an access time of a corresponding UWB session using the corresponding priority value and a priority sum value comprising a sum of all priority values ​​of the UWB sessions in the window period.

[0018] In some embodiments, the method further comprises, after the updating of the window end time, calculating an access time of the corresponding UWB session using the corresponding priority value and a priority sum value comprising a sum of all priority values ​​of the UWB sessions in the window period.

[0019] In some embodiments, the method further includes: in response to the in-window queue being not empty, the out-window queue being not empty, and the round start time of the first out-window session being equal to the window end time, adding the first out-window session to the in-window session as a second in-window session; determining the second out-window session as a new first out-window session; and updating the in-window priority sum by including the priority value in the second window.

[0020] In some embodiments, the method further includes: in response to the queue in the window being empty, the queue outside the window being empty, or the round start time of the first outside-window session being different from the window end time, updating the window start time to the previous window end time; and determining whether the queue in the window is empty.

[0021] In some embodiments, the method further includes: in response to the in-window queue being not empty, updating the window end time to the round end time of the first in-window session; determining whether the out-window queue is empty; and in response to the out-window queue being not empty, updating the window end time to the minimum of the round end time of the first in-window session or the round start time of a new first out-window session.

[0022] In some embodiments, the method further includes: in response to the in-window queue being not empty and the round start time of the first in-window session being equal to the window end time: subtracting the priority value of the first in-window session from the priority sum value; updating a set of conflict sets to include the first in-window session; and determining the second in-window session as a new first in-window session.

[0023] An embodiment of the present disclosure provides a UWB device. The UWB device includes: a transceiver, which is operable to perform UWB communication; a memory, which is used to store program instructions, device information of multiple devices, round start times and round end times of multiple UWB sessions, and calculated access times of one or more devices in the multiple devices; and a processor, which is coupled to the transceiver and coupled to the memory. The processor is operable to execute program instructions. When executed by the processor, the UWB device performs the following operations to schedule the communication of the multiple devices. The operation includes: determining a set of conflicting UWB sessions, the set of conflicting UWB sessions including a first UWB session and a second UWB session that partially overlap each other in time; calculating a first access time of the first UWB session and a second access time of the second UWB session; determining a first integral value based at least on the first access time, and determining a second integral value based at least on the second access time; and selecting the first UWB session or the second UWB session with a higher integral value.

[0024] In some embodiments, the determination of the first integral value includes calculating a first session deficiency value for the first UWB session based on the first access time and a previous first session deficiency value; and the determination of the second integral value includes calculating a second session deficiency value for the second UWB session based on the second access time and a previous second session deficiency value.

[0025] In some embodiments, the method further includes: selecting one of the first UWB session and the second UWB having a higher deficit value; updating a corresponding session deficit value of the selected UWB session by subtracting a turn duration of the selected UWB session; and performing access using the selected session.

[0026] In some embodiments, the calculation of the first access time of the first UWB session and the second access of the second UWB session includes: determining a time period in which the first UWB session overlaps with the second UWB session; determining a priority sum value, the priority sum value comprising the sum of a first priority value of the first UWB session and a second priority value of the second UWB session; calculating a first sharing time, the first sharing time being proportional to the length of the time period and the first priority value of the first UWB session and inversely proportional to the priority sum value; and calculating a second sharing time, the second sharing time being proportional to the length of the time period and the second priority value of the second UWB session and inversely proportional to the priority sum value.

[0027] In some embodiments, the calculation of the first access time includes adding the first shared time to the duration of the first UWB session that does not overlap with the second UWB session; and the calculation of the second access time includes adding the second shared time to the duration of the second UWB session that does not overlap with the first UWB session.

[0028] In some embodiments, the calculation of the first access time of the first UWB session and the second access of the second UWB session includes: determining a priority sum value, the priority sum value comprising the sum of priority values ​​of all conflicting UWB sessions; calculating the first access time, the first access time being proportional to the duration of the first UWB session and the first priority value of the first UWB session and inversely proportional to the priority sum value; and calculating the second access time, the second access time being proportional to the duration of the second UWB session and the second priority value of the second UWB session and inversely proportional to the priority sum value.

[0029] In some embodiments, the method further includes: calculating a first session deficiency difference value for the first UWB session equal to the first access time; and calculating a second session deficiency difference value for the second UWB session equal to the second access time.

[0030] In some embodiments, the determining of the first integral value includes determining a first deficit sum value equal to the first session deficit difference value and the first session deficit value; and the determining of the second integral value includes determining a second deficit sum value equal to the second session deficit difference value and the second session deficit value.

[0031] In some embodiments, selecting the one of the first UWB session or the second UWB session having the higher integral value comprises: selecting the one of the first UWB session and the second UWB session having a higher deficit value; and updating the corresponding session deficit value of the selected UWB session by subtracting a ranging round duration.

[0032] In some embodiments, the method further includes: determining corresponding round start times of the first UWB session and the second UWB session; determining an unselected UWB session that overlaps with the selected UWB session and has a corresponding round start time that is earlier than the round end time of the selected UWB session; updating the corresponding session deficiency value of the unselected UWB session by adding the corresponding session deficiency difference; and performing access using the selected session.

[0033] An embodiment of the present disclosure provides a UWB device. The UWB device includes: a transceiver, which is operable to perform UWB communication; a memory, which is used to store program instructions, device information of multiple devices, round start times and round end times of multiple UWB sessions, window start times and window end times of window periods; and a processor, which is coupled to the transceiver and coupled to the memory. The processor is operable to execute program instructions. When executed by the processor, the UWB device performs the following operations to detect a group of conflicting UWB sessions. The operations include: determining the corresponding round start times and corresponding round end times of multiple UWB sessions in an out-of-window queue; determining a UWB session with an earlier round start time in the out-of-window queue as the first in-window session in the in-window queue, and determining another UWB session with a later round start time in the out-of-window queue as the first out-of-window session in the out-of-window queue; and determining a window period with a window start time and a window end time later than the window start time, the window end time being equal to the round end time of the first in-window session.

[0034] In some embodiments, the method further includes determining whether the out-of-window queue is empty. In some embodiments, in response to the out-of-window queue being not empty, the method further includes updating the window end time to the minimum of the round end time of the session in the first window or the round start time of the session outside the first window.

[0035] In some embodiments, the method further comprises, in response to the out-of-window queue being empty, calculating an access time of the corresponding UWB session using the corresponding priority value and a priority sum value including a sum of all priority values ​​of the UWB sessions in the window period.

[0036] In some embodiments, the method further comprises, after the updating of the window end time, calculating an access time of the corresponding UWB session using the corresponding priority value and a priority sum value comprising a sum of all priority values ​​of the UWB sessions in the window period.

[0037] In some embodiments, the method further includes: in response to the in-window queue being not empty, the out-window queue being not empty, and the round start time of the first out-window session being equal to the window end time, adding the first out-window session to the in-window session as a second in-window session; determining the second out-window session as a new first out-window session; and updating the in-window priority sum by including the priority value in the second window.

[0038] In some embodiments, the method further includes: in response to the queue in the window being empty, the queue outside the window being empty, or the round start time of the first outside-window session being different from the window end time, updating the window start time to the previous window end time; and determining whether the queue in the window is empty.

[0039] In some embodiments, the method further includes: in response to the in-window queue being not empty, updating the window end time to the round end time of the first in-window session; determining whether the out-window queue is empty; and in response to the out-window queue being not empty, updating the window end time to the minimum of the round end time of the first in-window session or the round start time of a new first out-window session.

[0040] In some embodiments, the method further includes: in response to the in-window queue being not empty and the round start time of the first in-window session being equal to the window end time: subtracting the priority value of the first in-window session from the priority sum value; updating a set of conflict sets to include the first in-window session; and determining the second in-window session as a new first in-window session.

[0041] Those skilled in the art will appreciate the scope of the present disclosure and understand additional aspects thereof after reading the following detailed description of the preferred embodiments and the related drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0042] The accompanying drawings incorporated in and forming a part of this specification illustrate several aspects of the disclosure, and together with the description serve to explain the principles of the disclosure.

[0043] Figure 1A An exemplary UWB communication system having multiple UWB devices according to some aspects of the present disclosure is shown.

[0044] Figure 1B An exemplary block diagram of a UWB scheduler is shown in accordance with some aspects of the present disclosure.

[0045] Figure 1C A conflict between two UWB sessions is shown in accordance with some aspects of the present disclosure.

[0046] Figure 2A-2C Each shows a flow chart of an exemplary process for calculating access time in contention according to some aspects of the present disclosure.

[0047] Figure 3A and 3B Each shows a flow chart of an exemplary process for scheduling a UWB session according to some aspects of the present disclosure.

[0048] Figure 4A and 4B A flow chart illustrating an exemplary process for detecting conflicts between UWB sessions in accordance with some aspects of the present disclosure.

[0049] Figure 4C and 4D An exemplary process for detecting conflicts between UWB sessions in accordance with some aspects of the present disclosure is shown.

[0050] Figure 5A A flow chart illustrating an exemplary process for scheduling a UWB session in accordance with some aspects of the present disclosure.

[0051] Figure 5B A flow chart illustrating an exemplary process for detecting a set of conflicting UWB sessions in accordance with some aspects of the present disclosure.

[0052] Fig. 6A and 6B Simulation results of scheduling a UWB session using an exemplary process of the present disclosure in accordance with some aspects of the present disclosure are shown. DETAILED DESCRIPTION

[0053] The embodiments set forth below represent information necessary to enable those skilled in the art to practice the embodiments and to illustrate the best mode for practicing the embodiments. Upon reading the following description in light of the accompanying drawings, those skilled in the art will understand the concepts of the present disclosure and will recognize the applications of these concepts not specifically described herein. It should be understood that these concepts and applications fall within the scope of the present disclosure and the appended claims.

[0054] It should be understood that although the terms first, second, etc. can be used to describe various elements in this article, these elements should not be limited by these terms. These terms are only used to distinguish one element from another element. For example, without departing from the scope of the present disclosure, the first element can be referred to as the second element, and similarly, the second element can be referred to as the first element. As used herein, the term "and / or" includes any and all combinations of one or more items in the associated listed items.

[0055] The terms used herein are only used for the purpose of describing specific embodiments and are not intended to limit the present disclosure. As used herein, unless the context clearly indicates otherwise, the singular forms "a, an" and "the" are also intended to include plural forms. It should also be understood that when used herein, the terms "comprises, comprising" and / or include, including specify the presence of the 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 their groups.

[0056] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by those of ordinary skill in the art to which the present disclosure belongs. It will be further understood that, unless explicitly defined herein, the terms used herein should be interpreted as having a meaning consistent with their meaning in the context of this specification and the relevant technology, and will not be interpreted in an idealized or overly formal sense. In addition, throughout this specification and drawings, similar reference numerals represent similar features.

[0057] It should be understood that the blocks in each signaling diagram or flowchart and the combination of signaling 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 generate components for performing the functions described in the blocks in conjunction with each signaling diagram or flowchart. Since the computer program instructions can be stored in a computer-usable or computer-readable memory, which can be directed to a computer or other programmable data processing device to implement the functions in a specified manner, the instructions stored in the computer-usable or computer-readable memory can produce a product containing instructions for performing the functions described in conjunction with the blocks in each signaling diagram or flowchart. Since the computer program instructions can be equipped in a computer or other programmable data processing device, a process executed by a computer as a series of operating steps performed by the computer or other programmable data processing device is generated and the instructions for operating the computer or other programmable data processing device can provide steps for performing the functions described in conjunction with the blocks in each signaling diagram or flowchart.

[0058] Each box may represent a module, a fragment or a portion of a code containing one or more executable instructions for performing a specified logical function. In addition, it should be noted that in some alternative execution examples, the functions mentioned in the box may occur in different orders. For example, depending on the corresponding functions, two boxes shown in succession may be executed substantially simultaneously or in reverse order.

[0059] In the following, the embodiments 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 the embodiments, as an example, the embodiments may also be applicable to other communication systems with similar technical backgrounds or features. For example, a communication system using Bluetooth or ZigBee may be included. In addition, the embodiments may be modified within such a range without significantly departing from the scope of the present disclosure, and such modifications may be applicable to other communication systems, as determined by a person of ordinary skill in the art.

[0060] UWB may refer to a short-range, high-rate wireless communication technology that uses a wide frequency band of several hundred MHz to several GHz or wider, 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 can achieve secure and accurate ranging between devices. Therefore, UWB achieves relative position estimation based on the distance between two devices, or achieves accurate position estimation of a device based on the distance to a fixed device (whose position is known, also referred to as an anchor or anchor device). The present disclosure assumes that a user carries a device that can communicate via UWB (referred to as a "UWB-enabled user device" or simply a user device).

[0061] As used herein, "time slot", "ranging round", "period", "session", "UWB session", and "block" each refer to a time period. A ranging round may contain multiple time slots or multiple periods, a session may contain one or more blocks, and a block may contain one or more ranging rounds. As used herein, "session" and "UWB session" are interchangeable. As used herein, the priority value of a UWB session is also referred to as the weight of the UWB session in various calculations of the present disclosure.

[0062] As used herein, a controller device refers to suitable hardware and / or software, such as a processor and corresponding instructions, that performs / initiates UWB coordination, scheduling, computing, and / or other UWB communication operations. A controlled device listens to and responds to a controller device. A UWB device that acts as a controller device in some UWB sessions, such as an electronic device capable of UWB functionality, may act as a controlled device in some other UWB sessions.

[0063] As used herein, a round start time refers to the start time of a ranging round in a UWB session, and a round end time refers to the end time of a ranging round in a UWB session. The round start time of a UWB session refers to the start time of the first ranging round in the UWB session, and the round end time of a UWB session refers to the end time of the last ranging round in the UWB session.

[0064] In existing protocols, such as the FiRa specification, a "priority" parameter or priority value between 1 and 100 is defined and assigned to a UWB session to indicate the urgency / importance of the UWB session. A higher priority value indicates a higher urgency / importance and vice versa. For example, a UWB system (or UWBS) embedded in a mobile device such as a mobile phone can schedule ranging of UWB sessions based on their priority values. In existing scheduling methods, the UWBS uses the priority value as a "hard priority" to schedule UWB sessions. For example, in the event of a conflict, the session with the higher / highest priority is typically granted access to the medium. Therefore, when two UWB sessions overlap within the same block duration, the session with the lower priority value is typically deferred for access, resulting in starvation.

[0065] Embodiments of the present disclosure provide a system and method for scheduling UWB sessions by a UWB scheduler. The method of the present disclosure uses an integral value to take into account the access loss of a UWB session due to its lower priority value, and allows access to a low-priority UWB session when its integral value is high enough. For example, the UWB scheduler updates the integral value of a UWB parameter based on the selection state of the UWB parameter in the conflict of each block duration. When a UWB session is selected to access a medium, the UWB scheduler reduces the session deficiency value of the UWB session. The session deficiency value is updated at least based on the calculated access time of the UWB session, and the calculated access time is calculated based on the priority value of the UWB session. Different ways of calculating the access time of a UWB session based on the priority value of the UWB session are provided. The calculated access time is compared with the access time calculated based on the ideal scheduling to evaluate its fairness on UWB sessions with different priority values. Using the method to calculate access time and schedule UWB sessions of different priorities, UWB sessions with lower priorities can have a higher probability of accessing the medium, and the scheduling is more "fair" than existing scheduling methods, and starvation is less likely to occur. As another aspect of the present disclosure, a method for detecting conflicts between UWB sessions is provided.

[0066] Figure 1AAn exemplary UWB communication system 100 according to some embodiments of the present disclosure is shown. The UWB communication system 100 may include a first device 102 and one or more second devices 104-1, 104-2, ..., 104-(n-1) and 104-n, where n is a positive number. In some embodiments, the first device 102 is a controller device, and the second devices 104-1, ..., 104-n are controlled devices. In some embodiments, the first device 102 is a controlled device. In other words, the method of the present disclosure may be performed by a controller device or a controlled device in a UWB device cluster. The first device 102 may communicate with the second devices 104-1, ...104-n via a communication link 106, and may act as a scheduler that schedules access to the medium for different UWB sessions. Each of the first device 102 and the second device 104-1, ... 104-n may be equipped with UWB capabilities so that the first device 102 can perform ranging with each of the second device 104-1, ..., 104-n. In some embodiments, the first device 102 and the second device 104-1, ..., 104-n may each transmit RF signals in one or more wireless communication protocols, such as UWB, WiFi, Bluetooth, NFC, etc. In some embodiments, the first device 102 may measure the distance to the second device based on ranging with the second device in a UWB session assigned to the second device, and determine its next operation based on the distance. For example, the first device 102 may act as a key that can unlock the second device when the distance is small enough. Examples of the first device 102 may include portable / wearable electronic devices, such as mobile phones, tablet computers, a pair of goggles, computing devices, personal digital assistants (PDAs), or any other suitable devices with wireless connection capabilities. Examples of second devices 104-1, ..., 104-n may include a safe, a digital lock, a door, a turnstile, a car, or any other digital device that can perform ranging with the first device 102 and perform an operation (e.g., unlocking) based on a message transmitted from the first device 102 in a UWB session assigned to the second device.

[0067] The first device 102 may measure distance with one or more second devices 104-1, ..., 104-n, and determine the distance between itself and each of the one or more second devices 104-1, ..., 104-n. In some embodiments, when the first device 102 determines that the distance is below a predetermined threshold distance d0, the first device 102 transmits a message to the corresponding second device. The communication between the first device 102 and the corresponding second device 104-1, ..., 104-n is performed in a corresponding UWB session assigned to the corresponding second device. For example, the communication from the first device 102 may include user credentials to enable authentication of the control device 102, a request for the second device to automatically unlock itself, or a request for the second device to automatically perform any other suitable operation upon receiving the control message. In an example, a car may start automatically, a garage door may open automatically, etc. In some embodiments, the first device 102 is close enough to more than one second device and is configured to communicate with more than one second device in more than one UWB session that may overlap (e.g., conflict) in time.

[0068] As previously mentioned, the control device 102 may be configured to schedule access of UWB sessions based on their priority values, which may be known to the control device 102. In some embodiments, the first device 102 obtains the priority values ​​of the second devices 104-1, ..., 104-n from a previous communication, such as an out-of-band (OOB) characterization before ranging. In some embodiments, the first device 102 pre-stores the priority values ​​of the second devices 104-1, ..., 104-n. The first device 102 may schedule access of more than one UWB session based on their priority values. In existing scheduling methods, if a conflict occurs between two UWB sessions, the first device 102 may allow access of the UWB session with a higher priority value and postpone access of the UWB session with a lower priority value.

[0069] Figure 1BAn example of a first device 102 such as a mobile phone is shown. The first device 102 may be in the form of a cellular phone, a smart phone, a laptop, a tablet computer, a personal digital assistant (PDA), a computing device, or any other mobile device with wireless connection capabilities. In some embodiments, the first device 102 includes a processor 103, a digital signal processor (DSP) 105, a transceiver 107, an antenna 117, a memory 109, an input device 111, an output device 113, and a bus 115. The hardware components of the first device 102 may be coupled to the bus 115 in a communicative manner. In some embodiments, the bus 115 may be used for communication between the cores of the processor 103 and / or between the memory 109. The processor 103 may include one or more general-purpose processors and / or one or more special-purpose processors (e.g., a digital signal processing chip, a graphics acceleration processor, etc.). The processor 103 may process a wireless signal 119 received by the transceiver 107, such as a ranging signal and / or data from a UWB communication. The input device 111 may include a camera, a mouse, a keyboard, a touch-sensitive screen / display, a touchpad, a keyboard, etc. The output device 113 may include a display, a printer, etc. In some embodiments, the user may load one or more unlocking applications, which automatically unlock one or more second devices if the distance to the corresponding second device is small enough.

[0070] The first device 102 can include a transceiver 107 communicatively coupled to the bus 115. The transceiver 107 can be operable to transmit and receive wireless signals 119 via an antenna 117. The wireless signals 119 can be transmitted / received via a wireless network, but this is not shown. In some embodiments, the wireless network can be any wireless network, for example, a local wireless network such as WiFi, a wireless network such as Matter, or The transceiver 107 may be configured to receive wireless signals 119 from a network control device (e.g., a gateway, a router, etc.), a cloud network, a satellite, etc. via an antenna 117. For example, the transceiver 107 may transmit a ranging signal to a second device and / or receive a ranging signal from a second device. The first device 102 may also be configured to decode and / or decrypt various signals received by the antenna 117 via the DSP 105 and / or the processor 103.

[0071] The memory 109 may include one or more non-transitory storage devices, which may include local and / or network accessible storage devices, disk drives, drive arrays, optical storage devices, solid-state storage devices, such as random access memory ("RAM") and / or read-only memory ("ROM"), programmable ROM, flash memory updateable ROM, etc. Such storage devices may be configured to implement any appropriate data storage, including but not limited to various file systems, database structures, etc. In some embodiments, the memory 109 includes a device database, which includes device information (e.g., unique device identification (ID), device key, priority value, round start time and round end time of multiple UWB sessions) of one or more of the first device 102 and / or the second device 104-1, ..., 104-n. In some embodiments, the memory 109 also stores a key derivation function (KDF) and a scrambled time stamp sequence (STS) for ranging.

[0072] In various embodiments, the functions / operations may be stored as one or more instructions or codes in the memory 109, such as on a computer-readable storage medium such as RAM, ROM, FLASH, or a disk drive, and executed by the processor 103 or the DSP 105. The first device 102 may also include software components (e.g., located in the memory 109), including, for example, an operating system, a device driver, an executable library, and / or other executable code, such as one or more applications. The application may include a computer program that is stored in the memory 109 and executed by the processor 103 and / or the DSP 105 to implement various functions under the control of the operating system. The computer program may have been pre-packaged in conjunction with the first device 102, or may have been downloaded by a user to the memory 109 of the first device 102. Some mobile applications may be more user-interactive applications, such as an application that prompts the first device 102 to unlock one or more second devices 104-1, ..., 104-n, while some other mobile applications may be less user-interactive in nature, such as an application that schedules one or more UWB sessions and automatically measures distance through one or more second devices 104-1, ..., 104-n in one or more UWB sessions to determine their distance to the first device 102.

[0073] Figure 1C1 shows a conflict scenario between UWB sessions 110 and 112 according to some embodiments of the present disclosure. In operation, each UWB session is allocated a plurality of ranging rounds, each ranging round comprising one or more time slots. The UWB session 110 may be allocated for the first device 102 to communicate with one of the second devices 104-1, ..., 104-n, and the UWB session 112 may be allocated for the first device 102 to communicate with another of the second devices 104-1, ..., 104-n. Figure 1C As shown in (I)-(III) of FIG. 1 , the UWB session 110 has a round start time t a1 and the round end time t b1 , and the UWB session 112 has a round start time t a2 and the round end time t b2 In a conflict, UWB session 110 may overlap at least a portion of UWB session 112 such that t a2 In t b1 In various embodiments, t a2 Can be less than, equal to or greater than t a1 , and t b2 Can be less than, equal to or greater than t b1 In various embodiments, UWB sessions 110 and 112 may have the same or different priority values.

[0074] Figure 2A , 2B 2C illustrate various methods 200, 210, and 220 for calculating access times of conflicting UWB sessions by a UWB scheduler (e.g., the first device 102) according to embodiments of the present disclosure. The access times calculated using methods 200, 210, and / or 220 may then be used in methods 300 and / or 301 to schedule access to the medium for all UWB sessions based on their session deficiency values ​​(e.g., “integral values”) so that access times may be more fairly (or evenly) distributed to all UWB sessions over time. Instead of an “all or nothing” situation in existing scheduling processes, scheduling UWB sessions based on calculated access times (e.g., calculated using methods 200, 210, and 220) may allow more or all conflicting UWB sessions with lower priority values ​​to access the medium.

[0075] The UWB scheduler may then use the calculated access time in the scheduling of the UWB session (method 300 or 301) to calculate a session deficit value, which acts as a scoring mechanism that is increased when a UWB session is not selected to access the medium. Thus, a UWB session with a lower priority value may accumulate a higher session deficit value after not being selected for access and may be more likely to be selected for the next access. Thus, the medium may be shared more fairly by UWB sessions with different priority values.

[0076] In some embodiments, the access time calculated (using each of methods 200, 210, and 220) reflects the ideal average access time that each conflicting UWB session is granted over a considerable period of time, such as hundreds or thousands of block durations. Methods 200, 210, and 220 may each be referred to as "general processor sharing" or GPS, which calculates the ideal sharing of different UWB sessions in a conflicting group based on their priority values ​​(e.g., weights) and durations, and may be used to evaluate the fairness of a scheduling method (e.g., 300). Using scheduling method 300 or 301, the actual average access time (e.g., the access time performed) of the UWB sessions may be sufficiently close to the ideal average access time calculated using one of methods 200, 210, and 220 over hundreds or thousands of block durations. In various embodiments, the fairness of each of methods 200, 210, and 220 may be evaluated by how close the ideal average access time is to the actual average access time.

[0077] exist Figure 2A-2C In the example shown in , assume that UWB session 202 has a priority value of 100, UWB session 204 has a priority value of 50, and UWB session 206 has a priority value of 50. For example, UWB sessions 202, 204, and 206 have durations of 10 ms, 25 ms, and 10 ms, respectively.

[0078] like Figure 2A As shown in FIG. 2 , UWB sessions 202, 204, and 206 may be in a conflict group and may partially overlap with each other, thereby causing one or more conflicts. UWB sessions 202 and 204 may be in conflict, and UWB sessions 204 and 206 may be in conflict. Method 200, also referred to as a “fine-grained” method, may be used to assign access time T to each UWB session. i It is calculated as the accumulation of the shared access time within the time period 240 occupied by the UWB session. Figure 2AAs shown in , the time period 240 occupied by UWB sessions 202, 204, and 206 can be divided into multiple sub-periods (i), (ii), (iii), (iv), and (v). UWB session 202 can occupy sub-period (i) alone, UWB session 204 can occupy sub-periods (iii) and (v) alone, while UWB sessions 202 and 204 can have a conflict in sub-period (ii), and UWB sessions 204 and 206 can have a conflict in sub-period (iv). The UWB scheduler can use method 200 to calculate the shared access time of each UWB session in each sub-period, and can add the shared time of each UWB session together to obtain the calculated access time (or total access time) of each UWB session.

[0079] In some embodiments, the shared access time of UWB session i in a sub-period is calculated as where w i Refers to the priority value (or weight value) of UWB session i, and sub-period_weight_sum refers to the sum of the priority values ​​in the sub-period. For example, in sub-period (i), the shared access time of UWB session 202 is calculated as 5×100 / 100=5ms, accounting for 100% of the duration of sub-period (i). In sub-period (ii), the shared access time of UWB session 202 is calculated as 5×100 / 150=3.33ms, accounting for 66% of the duration of sub-period (ii). Still in sub-period (ii), the shared access time of UWB session 204 is calculated as 5×50 / 150=1.66ms, accounting for 33% of the duration of sub-period (ii). Figure 2A As shown in , for sub-period (iii), UWB session 204 is calculated as occupying 100% (e.g., 5 ms) of the duration (e.g., 5 ms) of sub-period (iii); for sub-period (iv), UWB sessions 204 and 206 are each calculated as occupying 50% (e.g., 5 ms) of the duration (e.g., 10 ms) of the sub-period; and for sub-period (v), UWB session 204 is calculated as occupying 100% (e.g., 5 ms) of the duration (e.g., 5 ms) of sub-period (v).

[0080] like Figure 2AAs shown in , the calculated access time 212 of UWB session 202 may be the sum of its shared access time in sub-periods (i) and (ii); the calculated access time 214 of UWB session 204 may be the sum of its shared access time in sub-periods (ii), (iii), (iv), and (v); and the calculated access time 216 of UWB session 206 may be the sum of its shared access time in sub-period (iv). Therefore, the calculated access time 212 (T1) of UWB session 202 is equal to 8.33 ms, the calculated access time 214 (T2) of UWB session 204 is equal to 16.66 ms, and the calculated access time 216 (T3) of UWB session 206 is equal to 5 ms.

[0081] Figure 2B Another method 210 for calculating the access time of each UWB session in conflict according to some embodiments is shown. In the present disclosure, the method 210 is also referred to as the "conflict group granularity" method. In some embodiments, the access time T of UWB session i i is calculated as where w i is the priority value of UWB session i, r i is the round duration of UWB session i, and ∑w k It refers to the sum of the priority values ​​of all UWB sessions in the conflict group.

[0082] For example, the calculated access time 212 (T1) of UWB session 202 can be calculated as 100×10 / 200=5ms, which is 50% of the duration of UWB session 202; the calculated access time 214 (T2) of UWB session 204 can be calculated as 50×25 / 200=6.25ms, which is 25% of the duration of UWB session 204; and the calculated access time 216 (T3) of UWB session 206 can be calculated as 50×10 / 200=2.5ms, which is 25% of the duration of UWB session 206.

[0083] Figure 2C Another method 220 of calculating the access time of each UWB session in conflict according to some embodiments is shown. Using the method 220, sharing is done using the actual conflicting sessions of each sub-period of the conflicting group according to the priority value of the UWB session, and the minimum sharing time can be used for the entire conflicting group. Figure 2CAs shown in , in sub-period (iv), UWB sessions 204 and 206 may each be given 50% of the available time (duration) of sub-period (iv), but UWB session 204 may have followed UWB session 202 earlier and therefore did not use the 33% shared access time of sub-period (ii). Taking this into account, UWB session 202 may be given 66% of its duration as the calculated access time (T1=6.66ms), UWB session 204 may be given only 33% of its duration as the calculated access time (T2=8.33ms), and UWB session 206 may be given 66% of its duration as the calculated access time (T3=6.66ms).

[0084] Figure 3A A flow chart of a process 300 for scheduling UWB sessions by a UWB scheduler (e.g., the first device 102) according to some embodiments of the present disclosure is shown. The process 300 utilizes calculated access times obtained from GPS (e.g., ideal sharing of UWB sessions) and takes into account session deficit values ​​(e.g., integral values) for UWB sessions, which accumulate when UWB sessions are not selected for access and decrease when selected for access. Thus, UWB sessions with lower priority values ​​are more likely to be selected for access, and thus the allocation of access time improves fairness. The method 300 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 the method 300, and some of the operations described may be replaced, removed, or moved around for additional embodiments of the method 300. For ease of illustration, the method 300 is described in conjunction with the method 300. Figure 2A-2C describe Figure 3A In some embodiments, the method 300 is performed after each access performed and is repeated to prepare for the next access to be performed. In some embodiments, the method 300 proceeds back to step 302 after step 314 .

[0085] In some embodiments, when the controller 102 starts scheduling for the first block duration, an initialization step is performed before step 302. The controller 102 may initialize the values ​​of certain parameters. For example, the session deficit value for each UWB session may have an initial value of 0, and the calculated access time for each UWB session may have an initial value of 0, etc. In some embodiments, for each UWB session, the session deficit value from the previous block duration is updated in the next block duration.

[0086] At step 302 , the UWB scheduler determines a set of conflicting sessions. In some embodiments, the UWB scheduler may determine a set of conflicting sessions including UWB sessions 202 , 204 , and 206 . Figure 4A and 4BA method for detecting the set of conflicting sessions is described in.

[0087] At step 304, the UWB scheduler begins a loop that calculates a session deficit value for each UWB session in the conflicting group.

[0088] In step 306, the UWB scheduler calculates the access time of the UWB sessions in the conflicting group. In some embodiments, the UWB scheduler may calculate the access time using any of methods 200, 210, and 220 to obtain the calculated access time of the UWB session. For example, the UWB scheduler may calculate Figure 2A-2C 1 and 2. The access times of the UWB sessions 202, 204, and 206 in the conflicting group are shown in FIG.

[0089] At step 308, the UWB scheduler calculates a session deficit value for the UWB session. In some embodiments, the UWB scheduler calculates / updates the session deficit value for the UWB session by adding the calculated access time to the existing / current session deficit value.

[0090] The UWB scheduler may complete a loop for each UWB session and obtain a session deficit value for each UWB session in the conflict group. For example, the UWB scheduler may calculate session deficit values ​​for UWB sessions 202, 204, and 206. The method 300 may then proceed to step 310, where the UWB scheduler selects the UWB session with the highest deficit value. In some embodiments, the UWB scheduler selects the UWB session with the highest session deficit value to access the medium.

[0091] At step 312, the UWB scheduler decreases the session deficit value of the selected UWB session. In some embodiments, the UWB scheduler calculates / updates the session deficit value by subtracting the turn duration of the selected UWB session from the existing / current session deficit value of the selected UWB session.

[0092] In step 314, the UWB scheduler performs access using the selected session. In some embodiments, the controller 102 performs access using the selected UWB session so that the selected UWB session accesses the medium during the current block duration. The access time performed is the actual access time of the selected UWB session. In some embodiments, the UWB scheduler continues from step 302 for the next block duration and updates the session deficit value obtained from the previous block duration. In some embodiments, the method 300 proceeds to step 302 after performing step 314.

[0093] Figure 3BA flow chart of a process 301 for scheduling UWB sessions by a UWB scheduler according to some embodiments of the present disclosure is shown. Unlike process 300, method 301 allows UWB sessions that conflict with a selected UWB session to have a higher probability of being selected for access in a future block duration. The method calculates the sum of the session deficiency value and the session deficiency difference (e.g., an integral value) for each UWB session as the basis for selection. Method 301 is merely an example and is not intended to limit the present disclosure beyond what is explicitly recited in the claims. Additional operations may be provided before, during, and after method 301, and some of the operations described may be replaced, removed, or moved around for additional embodiments of method 301. For ease of illustration, the method 301 is described in conjunction with Figure 2A-2C describe Figure 3B .

[0094] In some embodiments, when the controller 102 starts scheduling for the first block duration, an initialization step is performed before step 303. The controller 102 may initialize the values ​​of certain parameters. For example, the session deficit value for each UWB session may have an initial value of 0, the session deficit difference for each UWB session may have an initial value of 0, the sum of the session deficit difference and the session deficit value may have an initial value of 0, and the calculated access time for each UWB session may have an initial value of 0, etc. In some embodiments, for each UWB session, the session deficit value and the session deficit difference from the previous block duration are updated in the next block duration.

[0095] At step 303 , the UWB scheduler determines a set of conflicting sessions. In some embodiments, the UWB scheduler may determine a set of conflicting sessions including UWB sessions 202 , 204 , and 206 .

[0096] At step 305, the UWB scheduler begins a loop of calculating a session deficit difference for each UWB session in the conflicting group.

[0097] In step 307, the UWB scheduler calculates the access time of the UWB sessions in the conflicting group. In some embodiments, the UWB scheduler may calculate the access time using any of methods 200, 210, and 220 to obtain the calculated access time of the UWB session. For example, the UWB scheduler may calculate Figure 2A-2C 1 and 2. The access times of the UWB sessions 202, 204, and 206 in the conflicting group are shown in FIG.

[0098] In step 309, the UWB scheduler calculates the session shortage difference of the UWB session. In some embodiments, the UWB scheduler calculates / updates the session shortage difference of the UWB session using the calculated access time obtained in step 309. For example, the UWB scheduler may calculate the session shortage difference of the UWB sessions 202, 204, and 206.

[0099] After the UWB scheduler completes the calculation of the session deficiency difference value for each UWB session in the conflict group, the method 301 proceeds to step 311, where the UWB scheduler calculates the sum of the session deficiency value and the session deficiency difference value for each UWB session and selects the UWB session with the highest sum of the session deficiency value and the session deficiency difference value. In some embodiments, the UWB scheduler adds the session deficiency difference value and the session deficiency value for each UWB session in the conflict group and selects the UWB session with the highest sum.

[0100] In step 313, the UWB scheduler reduces the session deficit value of the selected UWB session. In some embodiments, the UWB scheduler calculates / updates the session deficit value of the selected UWB session by subtracting the turn duration of the selected UWB session from the current UWB session. For example, if UWB session 202 is selected, a turn duration of 10 ms is subtracted from its session deficit value.

[0101] At step 315, the UWB scheduler begins a loop of calculating session deficit values ​​for each UWB session that conflicts with the selected UWB session. For example, the UWB scheduler may calculate session deficit values ​​for UWB sessions 202, 204, and 206.

[0102] In step 317, the UWB scheduler determines whether the UWB session starts before the selected UWB session ends. In some embodiments, the UWB scheduler determines whether the turn start time of the UWB session is before the turn end time of the selected UWB session, such as overlapping / conflicting with the selected UWB session. If yes, the method 301 proceeds to step 319; and if no, the method 301 proceeds to step 321.

[0103] At step 319, the UWB scheduler increases the session deficit value of the UWB sessions that overlap with the selected UWB session. Figure 2A , assuming that UWB session 202 is selected in step 311, the UWB scheduler may increase the session deficit value of UWB session 204 in step 319. In some embodiments, the UWB scheduler calculates / updates the session deficit value of the UWB session by adding the session deficit difference value calculated in step 309 to the current session deficit value.

[0104] At step 321, operations from steps 317 and 319 are directed to step 315 so that all UWB sessions in the conflicting group are checked to determine whether their session deficit values ​​need to be updated / increased.

[0105] After completing the updating of the session deficit values ​​of all UWB sessions in the conflict group, process 301 proceeds to step 323, where the UWB scheduler performs access using the selected UWB session. The access time performed is the actual access time of the selected UWB session.

[0106] Method 300 updates the deficit of all UWB sessions in the conflict group. Method 301 only updates the deficit of sessions that started their turn before the selected UWB session ended. The "session deficit difference" of method 301 is calculated to facilitate such updates in method 301. According to method 300, only one UWB session (e.g., with the highest session deficit value) is selected in the conflict group for access, and all other UWB sessions are blocked from access for the block duration, even those that do not conflict with the selected UWB session. Unlike method 300, in method 301, only UWB sessions that conflict with the selected UWB session are blocked from access for the block duration, and UWB sessions that do not conflict with the selected UWB session can still access the medium. The UWB scheduler (e.g., the first device 102) can block access to the UWB session that conflicts with the selected UWB session, and increase the access probability of the conflicting UWB session by increasing the session deficit value of the conflicting UWB session (at step 319). At the same time, since non-colliding UWB sessions can access the medium, the UWB scheduler does not increase its session deficit value.

[0107] Return to reference Figure 2A , using method 300, the control device allows only one access per conflicting group based on its session deficiency value. For example, if UWB session 202 is selected, the session deficiency values ​​of all other UWB sessions (e.g., UWB sessions 204 and 206) may be increased to account for their access loss. Using method 301, if UWB session 202 is selected for access, UWB session 206 (which does not conflict with UWB session 202) is not blocked from accessing the medium, and therefore its session deficiency value is not increased. In the next block duration, UWB session 206 is selected for access because it is the only UWB session remaining in the conflicting group. Therefore, method 301 allows more than one access per conflicting group.

[0108] In various embodiments, other ways are used to implement more than one access per conflict group. For example, the UWB scheduler processes each possible access as if the access is part of a different conflict group. This means that some UWB sessions may get "free" access and be allowed to use more medium time. In another example, the UWB scheduler may use method 220 (e.g., conflict granularity method) to calculate access time and track past session accesses of conflict groups. This is more expensive to implement both for access time calculation and for session book-keeping.

[0109] In some embodiments, the access time is calculated using method 210 (eg, the conflict group granularity method), and the UWB scheduler allows only one access per conflict group. This uses less medium time than possible, but avoids giving the UWB session longer than planned.

[0110] In some embodiments, the desynchronized UWB session attempts to receive a control frame from the UWB scheduler to resynchronize. This means that the session needs to listen to the medium as frequently as possible. When calculating the collision group, the collision group must be treated differently so that it does not extend the collision group beyond the last synchronized UWB session. If one or more desynchronized UWB sessions are not selected, their access requirements may be shortened to be able to listen to the medium before the collision group. In this case, another round of selection is performed to determine which desynchronized UWB session will have the right to access the medium. Another option is to listen to all desynchronized UWB sessions at the same time, so the desynchronized sessions do not need to meet the medium between them.

[0111] Figure 4A and 4B A method 400 for detecting conflicting groups by a UWB scheduler (eg, the first device 102 ) is shown in accordance with some embodiments of the present disclosure. Figure 4B yes Figure 4A The continuation of . Figure 4C and 4D 400. The method 400 utilizes a rolling window (e.g., a window period) of a time period that includes the relative positions of the turn end time and the turn start time of the UWB session to determine whether two UWB sessions conflict with each other and their conflict group. The method 400 is merely an example and is not intended to limit the present disclosure beyond what is explicitly recited in the claims. Additional operations may be provided before, during, and after the method 400, and some of the operations described may be replaced, removed, or moved around for additional embodiments of the method 400. For ease of illustration, the method 400 is described in conjunction with Figure 4C and 4D describe Figure 4A and 4B For example, a block duration with multiple UWB sessions 440, 442, 444, and 446 is shown as an example. The respective priority values ​​(eg, weights) of the UWB sessions 440, 442, 444, and 446 are 100, 50, 50, and 50.

[0112] At step 402, the UWB scheduler defines the parameters of the detection process. In some embodiments, the UWB scheduler: defines out_win as a priority queue of UWB sessions outside the window sorted by corresponding round start times; defines in_win as a priority queue of UWB sessions within the window sorted by round end times; defines in_win_weight_sum as the sum of the weights (priority values) of the UWB sessions within the window; defines win_begin_ms as the start time of the window; defines win_end_ms as the end time of the window; and defines cset as a conflict group.

[0113] At step 404, the UWB scheduler initializes the parameters of the detection process. In some embodiments, the UWB scheduler may add / include all valid UWB sessions in out_win, move the first UWB session of out_win to in_win as the first UWB session of in_win, and initialize in_win_weight_sum with the weight (priority value) of the first session of in_win. Figure 4C As shown in , in state 1, in_win_weight_sum is initialized to 100. In some embodiments, in step 404, the UWB scheduler determines the turn start time and the turn end time of each UWB session in out_win. In some embodiments, the UWB scheduler also initializes win_begin_ms with the turn start time of the first UWB session in in_win.

[0114] like Figure 4C As shown in , the UWB scheduler can detect / determine the turn start time and turn end time of each UWB session and can move UWB sessions 440, 442, 444, and 446 to out_win. The UWB scheduler can then move UWB session 440 to in_win as the first UWB session in_win. The UWB scheduler can initialize win_begin_ms using the turn start time of UWB session 440.

[0115] At step 406, the UWB scheduler determines whether in_win is empty. If so, the method 400 proceeds to the end; if not, the method 400 proceeds to step 408, where the UWB scheduler sets win_end_ms to the round end time of the first session of in_win. Figure 4C As shown in , the UWB scheduler may set win_end_ms to the round end time of the UWB session 404 .

[0116] At step 410, the UWB scheduler determines whether out_win is empty. If so, the method 400 proceeds to step 414; if not, the method 400 proceeds to step 412, where the UWB scheduler sets win_end_ms to the minimum of win_end_ms and the turn start time of the first session of out_win. Figure 4C , the UWB scheduler may set win_end_ms to the round start time of the UWB session 442. Figure 4C and 4D win_begin_ms and win_end_ms are shown as short dash-dot lines.

[0117] Method 400 then proceeds to step 414, which directs both steps 410 and 412 to step 416, where the UWB scheduler performs access time calculation using in_win and in_win_weight_sum. In some embodiments, step 416 is optional and is performed when the access time of each UWB session is calculated using method 200. That is, when method 200 is used, the access time calculation may be performed during method 400 or after method 400. For example, with reference to the description of method 200, each sub-period such as (i), ..., or (v) may be a window, and the calculated access time of the UWB session in the current window may be calculated as In some embodiments, when methods 210 and 220 are used, the calculation of the access time is performed after method 400. At step 418, the UWB scheduler determines that in_win is not null and the round end time of the first session of in_win is equal to win_end_ms. If yes, method 400 proceeds to step 420; if no, method 400 proceeds to step 424. Figure 4C , the UWB scheduler determines that in_win is not null and the turn end time of the UWB session 440 is not equal to win_end_ms (which is equal to the turn start time of the first UWB session 442 of out_win). The method 400 then proceeds to step 424 .

[0118] In step 424, the UWB scheduler determines whether in_win is not null and out_win is not null and the turn start time of the first session of out_win is equal to win_end_ms. If yes, the method 400 proceeds to step 426; if not, the method 400 proceeds to step 430. Figure 4C , the UWB scheduler determines that in_win is not null and out_win is not null and the turn start time of the UWB session 442 (eg, the first session of out_win) is equal to win_end_ms. The method 400 then proceeds to step 426.

[0119] In step 426, the UWB scheduler adds the weight (priority value) of the first session of out_win to in_win_weight_sum. Figure 4C , the UWB scheduler adds the priority value (50) of the UWB session 442 to the in_win_weight_sum (100), so that the in_win_weight_sum is updated to 150 for state 2.

[0120] At step 428, the UWB scheduler moves the first session from out_win to in_win. Figure 4C , the UWB scheduler moves / adds UWB session 442 to in_win. Method 400 then proceeds to step 424, where the UWB scheduler determines that in_win is not null and out_win is not null, and the turn start time of UWB session 444 (e.g., now the first session of out_win) is not equal to win_end_ms (which is equal to the turn start time of UWB session 442). Method 400 then proceeds to step 430, where the UWB scheduler sets win_begin_ms to win_end_ms. Reference Figure 4C , the UWB scheduler may set win_begin_ms to win_end_ms of state 1 (eg, the turn start time of the UWB session 442). The method 400 then proceeds to step 406 and begins state 2.

[0121] At step 406, the UWB scheduler determines that in_win is not null, and proceeds to step 408, where the UWB scheduler sets win_end_ms to the round end time of the first session of in_win. Figure 4C , the UWB scheduler sets win_end_ms to the turn end time of the UWB session 440. The method 400 proceeds to step 410, where the UWB scheduler determines that out_win is not empty, and the method 400 proceeds to step 412, where the UWB scheduler sets win_end_ms to the minimum of win_end_ms and the turn start time of the first session of out_win. Figure 4C, the UWB scheduler sets / maintains win_end_ms as the turn end time of UWB session 440, which is the minimum of the turn end time of UWB session 440 and the turn start time of UWB session 444. Method 400 may then proceed to steps 414 and 416, where the UWB scheduler calculates the access times of UWB sessions 440 and 442 in the window (between win_begin_ms and win_end_ms) using method 200.

[0122] The method 400 may then proceed to step 418, where the UWB scheduler determines that in_win is not null and the turn end time of the first session of in_win is equal to win_end_ms. If yes, the method 400 proceeds to step 420; if no, the method 400 proceeds to step 424. Figure 4C , the UWB scheduler determines that in_win is not empty and the turn end time of the UWB session 440 is equal to win_end_ms.

[0123] The method 400 then proceeds to step 420, where the UWB scheduler subtracts the weight (priority value) of the first session in_win from in_win_weight_sum. Figure 4C , the UWB scheduler subtracts the priority value of UWB session 440 (50) from in_win_weight_sum (150) so that in_win_weight_sum is 50 for state 3.

[0124] At step 422, the UWB scheduler moves the first session from in_win to cset. Figure 4C , in state 3, the UWB scheduler may move / add the UWB session 440 to cset. The method 400 then proceeds to step 418, where the UWB scheduler determines that in_win is not empty and the turn end time of the first session of in_win is not equal to win_end_ms. Figure 4C , the UWB scheduler determines that in_win is not null and the turn end time of UWB session 442 is not equal to win_end_ms (e.g., the turn end time of UWB session 440). The method 400 then proceeds to step 424, where the UWB scheduler determines that in_win is not null and out_win is not null and the turn start time of the first session of out_win is not equal to win_end_ms. Figure 4CIn state 2, the UWB scheduler determines that the turn start time of the UWB session 444 is not equal to win_end_ms (eg, the turn end time of the UWB session 440). The method 400 then proceeds to step 430, where the controller sets win_begin_ms to win_end_ms. Figure 4C , the UWB scheduler sets win_begin_ms to the current win_end_ms, which is the round end time of the UWB session 440 , and the method proceeds to step 406 .

[0125] Similar to the previous description of states 1 and 2, the UWB scheduler may then determine win_end_ms as the minimum of the turn start times of the first session of in_win (e.g., UWB session 442) and the first session of out_win (e.g., UWB session 444) in steps 408 and 412. Optionally, the UWB scheduler may calculate the access time (e.g., of UWB session 442) in the window in state 3. The UWB scheduler may then determine that in_win is not null and the turn end time of the first session of in_win (e.g., UWB session 442) is not equal to win_end_ms, and the method proceeds to step 424, where the UWB scheduler determines that in_win is not null and out_win is not null and the turn start time of the first session of out_win (e.g., UWB session 444) is equal to win_end_ms. The method 400 then proceeds to update in_win_weight_sum by adding the weight (priority value) of the first session (eg, UWB session 444) of out_win at step 426. Figure 4C As shown in FIG. 4 , in state 3, in_win_weight_sum is 100 in state 4. In step 428, the UWB scheduler moves the first session (e.g., UWB session 444) from out_win to in_win. The method 400 then proceeds to step 424 and determines that the turn start time of the first session (e.g., UWB session 446) in out_win is not equal to win_end_ms (e.g., the turn start time of UWB session 444), and then proceeds to step 430, where the UWB scheduler sets win_begin_ms to the current win_end_ms (e.g., the turn start time of UWB session 444).

[0126] Method 400 then proceeds to steps 406-412, where the UWB scheduler sets win_end_ms to the first session of in_win (e.g., UWB session 444), and then performs step 416 as an optional operation. Method 400 then proceeds to steps 418, 420, and 422, where the UWB scheduler subtracts the weight (priority value) of UWB session 444 from in_win_weight_sum (100) and obtains in_win_weight_sum of 50 at state 5. The UWB scheduler may then move UWB session 444 to cset. UWB session 442 may be the only session in in_win.

[0127] Method 400 then proceeds to steps 418, 424, and 430, where the UWB scheduler sets win_begin_ms to the current win_end_ms (e.g., the turn end time of UWB session 444). Method 400 then proceeds to steps 406 and 408, where the UWB scheduler sets win_end_ms to the turn end time of the first session of in_win (e.g., UWB session 442). Method 400 then proceeds to steps 410 and 412, where the UWB scheduler maintains win_end_ms to the turn end time of the first session of in_win (e.g., UWB session 442). Method 400 then proceeds to step 414, optional step 416, step 418, step 420, and step 422. In steps 420 and 422, the UWB scheduler subtracts the weight (priority value) of the first session in_win (e.g., UWB device 442) from in_win_weight_sum, so that in_win_weight_sum is 0 in state 6 / end state. The UWB scheduler also moves the first session (e.g., UWB device 442) from in_win to cset, as shown in state 6 / end state. Therefore, all conflicting UWB sessions, such as 440, 442, and 444, are in cset.

[0128] Method 400 then proceeds to step 424, and when in_win is null, proceeds to step 430, where the UWB scheduler sets win_begin_ms to the existing win_end_ms (eg, the turn end time of UWB session 442). Method 400 then proceeds to step 406, and then proceeds to "end" when in_win is null.

[0129] Figure 5A1 is a flow chart of a method 500 for a UWB scheduler (e.g., first device 102) to schedule one or more UWB sessions according to some embodiments of the present disclosure. The method 500 is merely an example and is not intended to limit the present disclosure beyond what is explicitly recited in the claims. Additional operations may be provided before, during, and after the method 500, and some of the operations described may be replaced, removed, or moved around for additional embodiments of the method 500. For ease of illustration, the method 500 is described in conjunction with Figure 2A-2C , 3A, 3B and 4D Description Figure 5A .

[0130] At step 502, the UWB scheduler determines that a set of conflicting UWB sessions including a first UWB session and a second UWB session (eg, UWB sessions 440, 442, 444) partially overlap with each other in time.

[0131] At step 504, the UWB scheduler calculates a first access time (eg, one of 212, 214, and 216) for the first UWB session and a second access time (eg, the other of 212, 214, and 216) for the second UWB session.

[0132] In step 506, the UWB scheduler determines a first integration value based on at least the first access time (eg, steps 309 and 319, or step 311), and determines a second integration value based on at least the second access time (eg, steps 309 and 319, or step 311).

[0133] In step 508, the UWB scheduler selects the first UWB session or the second UWB session, whichever has a higher integral value (eg, step 310 or step 311).

[0134] Figure 5B 1 is a flow chart of a method 501 for a UWB scheduler (e.g., first device 102) to detect a set of conflicting UWB sessions according to some embodiments of the present disclosure. In some embodiments, method 501 is performed before or simultaneously with method 500. Method 501 is merely an example and is not intended to limit the present disclosure beyond what is explicitly recited in the claims. Additional operations may be provided before, during, and after method 501, and some of the operations described may be replaced, removed, or moved around for additional embodiments of method 501. For ease of illustration, the method 501 is described in conjunction with Figures 4A-4D describe Figure 5B .

[0135] In step 503, the UWB scheduler determines corresponding turn start times and corresponding turn end times of the plurality of UWB sessions in the out-of-window queue (eg, step 404).

[0136] In step 505, the UWB scheduler determines the UWB session with an earlier turn start time in the out-of-window queue as the first in-window session in the in-window queue, and determines another UWB session with a later turn start time in the out-of-window queue as the first out-of-window session in the out-of-window queue (e.g., step 408).

[0137] In step 507, the UWB scheduler determines a window period having a window start time and a window end time later than the window start time, the window end time being equal to the turn end time of the session in the first window (eg, step 412).

[0138] Fig. 6A and 6B The simulation results for three UWB sessions, A with a priority value of 100, B with a priority value of 50, and C with a priority value of 25 are shown. "GPS" refers to ideal general processor sharing (e.g., access times calculated using method 200), "previous" refers to an existing hard priority scheduler, and "fair" refers to a fair scheduler using the scheduling method 300 of the present disclosure and the calculated access times (e.g., using method 200). It can be shown that, for the same duration, using the existing hard priority scheduler, UWB session A (with the highest priority value) can always access, while UWB sessions B and C have almost no access to the medium, resulting in starvation. In contrast, the fair scheduler of the present disclosure has average access times for UWB sessions A, B, and C that are comparable / similar to those calculated using GPS over several block durations, indicating that the fair scheduler can provide fairer, near-ideal scheduling for UWB sessions of different priority values, thereby avoiding starvation. Communication between a UWB scheduler and more than one second device can be improved.

[0139] Those skilled in the art will recognize improvements and modifications to the preferred embodiments of the present disclosure. All such improvements and modifications are considered to be within the scope of the concepts disclosed herein and the following claims.

Claims

1. A method for scheduling an ultra-wideband (UWB) session, comprising: determining a set of conflicting UWB sessions, the set of conflicting UWB sessions comprising a first UWB session and a second UWB session that partially overlap each other in time; Calculate a first access time of the first UWB session and a second access time of the second UWB session; determining a first integral value based at least on the first access time, and determining a second integral value based at least on the second access time; as well as The first UWB session or the second UWB session, whichever has a higher integral value, is selected.

2. The method according to claim 1, wherein: The determining of the first credit value comprises calculating a first session deficit value for the first UWB session based on the first access time and a previous first session deficit value; and The determination of the second credit value includes calculating a second session deficit value for the second UWB session based on the second access time and a previous second session deficit value.

3. The method according to claim 2, further comprising: selecting the one of the first UWB session and the second UWB session having a higher deficit value; updating a corresponding session deficit value for the selected UWB session by subtracting the turn duration for the selected UWB session; and Access is performed using the selected session.

4. The method of claim 2, wherein the calculation of the first access time of the first UWB session and the second access time of the second UWB session comprises: determining a time period in which the first UWB session overlaps with the second UWB session; determining a priority sum value, the priority sum value comprising a sum of a first priority value of the first UWB session and a second priority value of the second UWB session; calculating a first shared time, the first shared time being proportional to a length of the time period and a first priority value of the first UWB session and inversely proportional to the priority sum value; and A second shared time is calculated, the second shared time being proportional to the length of the time period and a second priority value of the second UWB session and inversely proportional to the priority sum value.

5. The method according to claim 4, wherein: The calculation of the first access time comprises adding the first shared time to a duration of the first UWB session that does not overlap with the second UWB session; and The calculation of the second access time includes adding the second shared time to a duration of the second UWB session that does not overlap with the first UWB session.

6. The method of claim 2, wherein the calculation of the first access time of the first UWB session and the second access time of the second UWB session comprises: determining a priority sum value, the priority sum value comprising a sum of priority values ​​of all conflicting UWB sessions; calculating the first access time, the first access time being proportional to a duration of the first UWB session and a first priority value of the first UWB session and inversely proportional to the priority sum value; and The second access time is calculated, the second access time being proportional to a duration of the second UWB session and a second priority value of the second UWB session and inversely proportional to the priority sum value.

7. The method according to claim 2, further comprising: calculating a first session deficiency difference of the first UWB session to be equal to the first access time; as well as A second session deficiency difference of the second UWB session is calculated to be equal to the second access time.

8. The method according to claim 7, wherein: The determining of the first integral value comprises determining a first deficit sum value that is equal to the first session deficit difference value and the first session deficit value; and The determination of the second integral value includes determining a second deficit sum value that is equal to the second session deficit difference value and the second session deficit value.

9. The method of claim 8, wherein the selecting the one of the first UWB session or the second UWB session having the higher integral value comprises: selecting the one of the first UWB session and the second UWB session having a higher deficit and value; as well as The corresponding session deficit value for the selected UWB session is updated by subtracting the ranging round duration.

10. A method for determining a set of conflicting ultra-wideband (UWB) sessions, comprising: Determine corresponding round start times and corresponding round end times of multiple UWB sessions in the queue outside the window; Determine the UWB session with an earlier round start time in the out-of-window queue as the first in-window session in the in-window queue, and determine another UWB session with a later round start time in the out-of-window queue as the first out-of-window session in the out-of-window queue; as well as A window period having a window start time and a window end time later than the window start time is determined, wherein the window end time is equal to a round end time of the session in the first window.