The present disclosure relates to ultra-wideband (UWB) enabled devices and systems for scheduling UWB sessions, in particular, to improve the access of UWB sessions with lower priorities.
Ultra-wideband (UWB) communication is widely used in short-range communication amongst electronic devices. Using UWB ranging, an electronic device can measure the distance from another electronic device, and make decisions on the operation based on the distance. Existing protocols define a set of use cases and protocols for UWB ranging. These protocols allow to create several UWB sessions which can be run concurrently. Each UWB session can be of a different type, using a slightly different way to access the medium. Each UWB session includes communication between a controller device and a set of controlee devices. The controller device issues ranging rounds in the UWB session, starting the ranging round with a control message. The controlee devices listen to this control message and apply instructions contained in this message.
A common part of the protocols is that UWB sessions access the medium at a regular interval, called a block duration. Each UWB access is a round, whose duration may be known in advance. Collision between UWB sessions can happen when the durations of two UWB rounds overlap in time (e.g., one UWB session round starts before the end of the other UWB session round). A collision can cause a UWB session to be denied access to the medium for its low priority. There are some existing ways to reduce collision, for example, it is possible to enable hopping to change the time at which the round is positioned into the block, but this must be decided in advance so that controlee devices are able to know the time at which the control message will be transmitted.
However, there is no synchronization between different UWB sessions operated in the existing FiRa protocols. Thus, a method and a system to mitigate the impact of collisions involving UWB session with lower priorities are desired.
Embodiments of the disclosure provide a method for scheduling ultra-wideband (UWB) sessions. The method includes: determining a set of colliding UWB sessions that comprises a first UWB session and a second UWB session partially overlaps with each other in time; computing 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 a second credit value based at least on the second access time; and selecting one of the first UWB session or the second UWB with a higher credit value.
In some embodiments, the determining of the first credit value comprises computing a first session deficit value of the first UWB session based on the first access time and a previous first session deficit value; and the determining of the second credit value comprises computing a second session deficit value of the second UWB session based on the second access time and a previous second session deficit value.
In some embodiments, the method further includes: selecting one of the first UWB session and the second UWB with a higher deficit value; updating a respective session deficit value of the selected UWB session by subtracting a round duration of the selected UWB session; and perform access with the selected session.
In some embodiments, the computing of the first access time of the first UWB session and the second access 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 including a sum of a first priority value of the first UWB session and a second priority value of the second UWB session; computing a first shared time 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 computing a second shared time 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.
In some embodiments, the computing of the first access time comprises adding the first shared time with a duration of the first UWB session that is non-overlapping with the second UWB session; and the computing of the second access time comprises adding the second shared time with a duration of the second UWB session that is non-overlapping with the first UWB session.
In some embodiments, the computing of the first access time of the first UWB session and the second access of the second UWB session comprises: determining a priority sum value including a sum of priority values of all colliding UWB sessions; computing the first access time 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 computing the second access time 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.
In some embodiments, the method further includes: computing a first session deficit difference value of the first UWB session to be equal to the first access time; and computing a second session deficit difference value of the second UWB session to be equal to the second access time.
In some embodiments, the determining of the first credit value comprises 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 credit value comprises determining a second deficit sum value equal to the second session deficit difference value and the second session deficit value.
In some embodiments, the selecting one of the first UWB session or the second UWB with the higher credit value comprises: selecting one of the first UWB session and the second UWB with a higher deficit sum value; and updating a respective session deficit value of the selected UWB session by subtracting a ranging round duration.
In some embodiments, the method further includes: determining a respective round begin time of the first UWB session and the second UWB session; determining a non-selected UWB session overlapping with the selected UWB session and having the respective round begin time earlier than a round end time of the selected UWB session; updating a respective session deficit value of the non-selected UWB session by adding the respective session deficit difference value; and perform access with the selected session.
Embodiments of the present disclosure provides a method for determining a set of colliding UWB sessions. The method includes: determining respective round begin times and respective round end times of a plurality of UWB sessions in an out-window queue; determining a UWB session with an earlier round begin time in the out-window queue as a first in-window session in an in-window queue, and another UWB session with a later round begin time in the out-window queue as a first out-window session in the out-window queue; and determining a window period with a window begin time and a window end time later than the window begin time, the window end time being equal to a round end time of the first in-window session.
In some embodiments, the method further includes determining whether the out-window queue is empty. In some embodiments, in response to the out-window queue not being empty, the method further includes updating the window end time to be a minimum of the round end time of the first in-window session or a round begin time of the first out-window session.
In some embodiments, the method further includes computing access time of a respective UWB session using the respective priority value and a priority sum value including a sum of all priority values of the UWB sessions in the window period.
In some embodiments, the method further includes, after the updating of the window end time, computing an access time of a respective UWB session using the respective priority value and a priority sum value including a sum of all priority values of the UWB sessions in the window period.
In some embodiments, the method further includes, in response to the in-window queue not empty, the out-window queue not empty, and the round begin 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 a second out-window session to be a new first out-window session; and updating an in-window priority sum by including a priority value of the second in-window.
In some embodiments, the method further includes: in response to the in-window queue empty, the out-window queue empty, or the round begin time of the first out-window session being different from the window end time, updating the window begin time to the previous window end time; and determining whether the in-window queue is empty.
In some embodiments, the method further includes: in response to the in-window queue not being 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 not being empty, updating the window end time to be a minimum of the round end time of the first in-window session or an round begin time of the new first out-window session.
In some embodiments, the method further includes: in response to the in-window queue not empty and the round begin time of the first in-window session being equal to the window end time: subtracting a priority value of the first in-window session from the priority sum value; updating the set of collision sets to include the first in-window session; and determining the second in-window session to be a new first in-window session.
Embodiments of the present disclosure provide a UWB device. The UWB device includes a transceiver operable to perform a UWB communication, a memory for storing program instructions, device information of a plurality of devices, round begin times and round end times of the plurality of UWB sessions, and computed access times for one or more of the plurality of devices, and a processor coupled to the transceiver and to the memory. The processor is operable to execute the program instructions. When executed by the processor, the UWB device performs the following operations to schedule communication of the plurality of devices. The operations include: determining a set of colliding UWB sessions that comprises a first UWB session and a second UWB session partially overlaps with each other in time; computing 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 a second credit value based at least one the second access time; and selecting one of the first UWB session or the second UWB with a higher credit value.
In some embodiments, the determining of the first credit value comprises computing a first session deficit value of the first UWB session based on the first access time and a previous first session deficit value; and the determining of the second credit value comprises computing a second session deficit value of the second UWB session based on the second access time and a previous second session deficit value.
In some embodiments, the method further includes: selecting one of the first UWB session and the second UWB with a higher deficit value; updating a respective session deficit value of the selected UWB session by subtracting a round duration of the selected UWB session; and perform access with the selected session.
In some embodiments, the computing of the first access time of the first UWB session and the second access 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 including a sum of a first priority value of the first UWB session and a second priority value of the second UWB session; computing a first shared time 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 computing a second shared time 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.
In some embodiments, the computing of the first access time comprises adding the first shared time with a duration of the first UWB session that is non-overlapping with the second UWB session; and the computing of the second access time comprises adding the second shared time with a duration of the second UWB session that is non-overlapping with the first UWB session.
In some embodiments, the computing of the first access time of the first UWB session and the second access of the second UWB session comprises: determining a priority sum value including a sum of priority values of all colliding UWB sessions; computing the first access time 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 computing the second access time 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.
In some embodiments, the method further includes: computing a first session deficit difference value of the first UWB session to be equal to the first access time; and computing a second session deficit difference value of the second UWB session to be equal to the second access time.
In some embodiments, the determining of the first credit value comprises 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 credit value comprises determining a second deficit sum value equal to the second session deficit difference value and the second session deficit value.
In some embodiments, the selecting one of the first UWB session or the second UWB with the higher credit value comprises: selecting one of the first UWB session and the second UWB with a higher deficit sum value; and updating a respective session deficit value of the selected UWB session by subtracting a ranging round duration.
In some embodiments, the method further includes: determining a respective round begin time of the first UWB session and the second UWB session; determining a non-selected UWB session overlapping with the selected UWB session and having the respective round begin time earlier than an round end time of the selected UWB session; updating a respective session deficit value of the non-selected UWB session by adding the respective session deficit difference value; and perform access with the selected session.
Embodiments of the present disclosure provide a UWB device. The UWB device includes a transceiver operable to perform a UWB communication, a memory for storing program instructions, device information of a plurality of devices, round begin times and round end times of a plurality of UWB sessions, a window begin time and a window end time of a window period, and a processor coupled to the transceiver and to the memory. The processor is operable to execute the program instructions. When executed by the processor, the UWB device performs the following operations to detect a set of colliding UWB sessions. The operations include: determining respective round begin times and respective round end times of a plurality of UWB sessions in an out-window queue; determining a UWB session with an earlier round begin time in the out-window queue as a first in-window session in an in-window queue, and another UWB session with a later round begin time in the out-window queue as a first out-window session in the out-window queue; and determining a window period with a window begin time and a window end time later than the window begin time, the window end time being equal to a round end time of the first in-window session.
In some embodiments, the method further includes determining whether the out-window queue is empty. In some embodiments, in response to the out-window queue not being empty, the method further includes updating the window end time to be a minimum of the round end time of the first in-window session or a round begin time of the first out-window session.
In some embodiments, the further includes, in response to the out-window queue being empty, computing access time of a respective UWB session using the respective priority value and a priority sum value including a sum of all priority values of the UWB sessions in the window period.
In some embodiments, the method further includes, after the updating of the window end time, computing an access time of a respective UWB session using the respective priority value and a priority sum value including a sum of all priority values of the UWB sessions in the window period.
In some embodiments, the method further includes, in response to the in-window queue not empty, the out-window queue not empty, and the round begin 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 a second out-window session to be a new first out-window session; and updating an in-window priority sum by including a priority value of the second in-window.
In some embodiments, the method further includes: in response to the in-window queue empty, the out-window queue empty, or the round begin time of the first out-window session being different from the window end time, updating the window begin time to the previous window end time; and determining whether the in-window queue is empty.
In some embodiments, the method further includes: in response to the in-window queue not being 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 not being empty, updating the window end time to be a minimum of the round end time of the first in-window session or an round begin time of the new first out-window session.
In some embodiments, the method further includes: in response to the in-window queue not empty and the round begin time of the first in-window session being equal to the window end time: subtracting a priority value of the first in-window session from the priority sum value; updating the set of collision sets to include the first in-window session; and determining the second in-window session to be a new first in-window session.
Those skilled in the art will appreciate the scope of the present disclosure and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures.
The accompanying drawing figures 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.
The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the embodiments and illustrate the best mode of practicing the embodiments. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the disclosure and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.
It will be understood that, although 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 only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed 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.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes,” and/or “including” when used herein specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. It will be further understood that terms used herein should be interpreted as having a meaning that is consistent with their meaning in the context of this specification and the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein. Additionally, like reference numerals denote like features throughout specification and drawings.
It should be appreciated that the blocks in each signaling diagram or flowchart and combinations of the signaling diagrams or flowcharts may be performed by computer program instructions. Since the computer program instructions may be equipped in a processor of a general—use computer, a special-use computer or other programmable data processing devices, the instructions executed through a processor of a computer or other programmable data processing devices generate means for performing the functions described in connection with a block(s) of each signaling diagram or flowchart. Since the computer program instructions may be stored in a computer-available or computer-readable memory that may be oriented to a computer or other programmable data processing devices to implement a function in a specified manner, the instructions stored in the computer-available or computer-readable memory may produce a product including an instruction for performing the functions described in connection with a block(s) in each signaling diagram or flowchart. Since the computer program instructions may be equipped in a computer or other programmable data processing devices, instructions that generate a process executed by a computer as a series of operational steps are performed by the computer or other programmable data processing devices and operate the computer or other programmable data processing devices may provide steps for executing the functions described in connection with a block(s) in each signaling diagram or flowchart.
Each block may represent a module, segment, or part of a code including one or more executable instructions for executing a specified logical function(s). Further, it should also be noted that in some replacement execution examples, the functions mentioned in the blocks may occur in different orders. For example, two blocks that are consecutively shown may be performed substantially simultaneously or in a reverse order depending on corresponding functions.
Hereinafter, embodiments are described in detail with reference to the accompanying drawings. Further, although a communication system using ultra-wideband (UWB) is described in connection with embodiments, as an example, the embodiments may also apply to other communication systems with similar technical background or features. For example, a communication system using Bluetooth or ZigBee may be included therein. Further, embodiments may be modified in such a range as not to significantly depart from the scope of the present disclosure under the determination by one of ordinary skill in the art and such modifications may be applicable to other communication systems.
UWB may refer to a short-range high-rate wireless communication technology using a wide frequency band of several hundreds of MHz to several GHz or more, low spectral density, and short pulse width (e.g., 1 nsec to 4 nsec) in a baseband state. UWB may mean a band itself to which UWB communication is applied. UWB may enable secure and accurate ranging between devices. Thus, UWB enables relative position estimation based on the distance between two devices or accurate position estimation of a device based on the distance from fixed devices (whose positions are known, also referred to as anchors or anchor devices). The present disclosure assumes that the user is carrying a device capable of communicating through UWB (referred to as “UWB-enabled user device” or simply user device).
As used herein, a “slot,” a “ranging round,” a “period,” a “session,” a “UWB session,” and a “block” each refers to a time period. A ranging round may include a plurality of slots or a plurality of periods, a session may include one or more blocks, and a block may include one or more ranging rounds. As used herein, “a session” and “a UWB session” are interchangeable. As used herein, a priority value of a UWB session is also referred to as a weight of the UWB session in various computations of this disclosure.
As used herein, a controller device refers to the suitable hardware and/or software, e.g., a processor and corresponding instructions, that performs/initiates the UWB coordination, scheduling, computation, and/or other UWB communication operations. A controlee devices listens to and responds to the controller device. A UWB device, e.g., an electronic device capable of UWB functions, that functions as a controller device in some UWB sessions may function as a controlee device in some other UWB sessions.
As used herein, a round begin time refers to the begin 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. A round begin time of a UWB session refers to the begin time of the first ranging round in the UWB session, and a round end time of a UWB session refers to the end time of the last ranging round in the UWB session.
In existing protocols, e.g., 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. A UWB system (or UWBS), e.g., embedded in a mobile device such as a mobile phone, may schedule ranging for UWB sessions based on their priority values. In an existing scheduling method, the UWBS schedules a UWB session using the priority value as a “hard priority.” For example, in case of a collision, the session with the higher/highest priority is often granted access to the medium. As a result, when two UWB sessions overlap in the same block duration, the session with the lower priority value is often deferred access, leading to starvation.
Embodiments of the present disclosure provide a system and methods for scheduling UWB sessions by a UWB scheduler. The methods of the present disclosure take into account of the loss of access for a UWB session as a result of its lower priority value using a credit value, and allow access of the low-priority UWB session when its credit value is sufficiently high. For example, a UWB scheduler updates the credit value of a UWB parameter based on its selection status in a collision for each block duration. When the UWB session is selected to access the medium, the UWB scheduler decreases the session deficit value of the UWB session. The session deficit value is updated based at least on a computed access time of the UWB session, which is computed based on the priority value of the UWB session. Different ways to compute the access time of a UWB session based on its priority value are provided. The computed access time is compared to the access time computed based on an ideal scheduling to evaluate its fairness on UWB sessions of different priority values. Using the methods to compute access time and schedule UWB sessions of different priorities, UWB sessions of lower priorities can have a higher chance of accessing the medium, the scheduling is more “fair” compared to the existing scheduling methods, and starvation is less likely to happen. As another aspect of the present disclosure, a method to detect collision between UWB sessions is provided.
First device 102 may range 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 first device 102 determines a distance is below a predetermined threshold distance d0, first device 102 transmits a message to the respective second device. The communication between first device 102 and respective second devices 104-1, . . . , 104-n are performed in respective UWB sessions allocated to the respective second device. For example, the communication from first device 102 may include a user credential that enables authentication of control device 102, a request to the second device to automatically unlock itself, or a request to the second device to automatically performs any other suitable operations upon receiving the control message. In an example, a car can start automatically, a garage door can automatically open, etc. In some embodiments, first device 102 is sufficiently close to more than one second device, and is configured to communicate with more than one second devices in more than one UWB sessions that may overlap (e.g., collide) in time.
As previously mentioned, control device 102 may be configured to schedule the access of UWB sessions based on their priority values, which may be known to control device 102. In some embodiments, first device 102 obtains the priority values of second devices 104-1, . . . , 104-n from prior communication, e.g., out-of-band (OOB) characterization prior to ranging. In some embodiments, first device 102 is pre-stored with priority values of second devices 104-1, . . . , 104-n. First device 102 may schedule the access of the more than one UWB session based on their priority values. In an existing scheduling method, if a collision occurs between two UWB sessions, first device 102 may allow access of the UWB session of a higher priority value, and defer access of the UWB session of a lower priority value.
First device 102 may include a transceiver 107 communicatively coupled to bus 115. Transceiver 107 may be operable to transmit and receive wireless signals 119 via antenna 117. Wireless signals 119 may be transmitted/received via a wireless network, although not shown in this figure. In some embodiments, the wireless network may be any wireless network such as a local wireless network, such as WiFi, a Personal Access Network (PAN), such as Matter, Bluetooth® or Zigbee®, or a cellular network (e.g., 4G, 5G). Transceiver 107 may be configured to receive wireless signals 119 via antenna 117 from a network control device (e.g., a gateway, a router, etc.), a cloud network, a satellite, and/or the like. For example, transceiver 107 may transmit ranging signals to a second device and/or receive a ranging signal from a second device. First device 102 may also be configured to decode and/or decrypt, via the DSP 105 and/or processor 103, various signals received by antenna 117.
Memory 109 may include one or more non-transitory storage devices that can include local and/or network accessible storage, a disk drive, a drive array, an optical storage device, a solid-state storage device such as a random access memory (“RAM”) and/or a read-only memory (“ROM”), a programmable ROM, a flash-updateable ROM, and/or the like. Such storage devices may be configured to implement any appropriate data storage, including without limitation, various file systems, database structures, and/or the like. In some embodiments, memory 109 includes a device database, including device information (e.g., unique device identification (ID), device keys, priority values, round begin times and round end times of a plurality of UWB sessions, vendor information, device type, etc.) of first device 102 and/or one or more of second devices 104-1, . . . , 104-n. In some embodiments, memory 109 is also stored with key derivation function (KDF) and scrambled timestamp sequence (STS) used for ranging.
In various embodiments, functions/operations may be stored as one or more instructions or code in memory 109, such as on a computer-readable storage medium, such as RAM, ROM, FLASH, or disc drive, and executed by processor 103 or DSP 105. First device 102 may also include software components (e.g., located within memory 109), including, for example, an operating system, device drivers, executable libraries, and/or other executable code, such as one or more application programs. The application programs may include computer programs, stored in memory 109, executed by processor 103 and/or DSP 105 to implement various functions under the control of the operating system. The computer programs may have been pre-packaged with first device 102 or may have been downloaded by a user into memory 109 of the first device 102. Some mobile applications may be more user-interactive applications, such as an application to prompt a first device 102 to unlock one or more second devices 104-1, . . . , 104-n, whereas some other mobile applications may be less user-interactive in nature, such as an application that schedules one or more UWB sessions and automatically ranges with one or more second devices 104-1, . . . , 104-n in the one or more UWB sessions to determine their distances to first device 102.
The computed access times can then be used, by the UWB scheduler, in the scheduling (method 300 or 301) of the UWB sessions for the computation of a session deficit value, which functions as a credit mechanism that increases when a UWB session is not selected for access the medium. Thus, a UWB session with a lower priority value, may have accumulated 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 can be more fairly shared by UWB sessions of different priority values.
In some embodiments, the computed access time (using each of methods 200, 210, and 220) reflects the ideal average access time each colliding UWB session is permitted over a reasonably long time, e.g., tens of hundreds of block durations. Methods 200, 210, and 220 may each be referred to as “generalized processor sharing” or GPS, which computes the ideal sharing of different UWB sessions based on their priority values (e.g., weights) and duration in a collision set, and can be used to evaluate how fair a scheduling method (e.g., 300) is. The actual average access time for a UWB session (e.g., the performed access time) over tens of hundreds of block durations, using scheduling method 300 or 301, may be sufficiently close to the ideal average access time computed using one of methods 200, 210, and 220. 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.
In the examples shown in
As shown in
In some embodiments, the shared access time of UWB session i in a sub-period is computed as
in which wi refers to the priority value (or weight value) of UWB session i, and sub-period_weight_sum refers to the sum of priority values in the sub-period. For example, in sub-period (i), shared access time of UWB session 202 is computed as 5×100/100=5 ms, accounting for 100% of the duration of sub-period (i) In sub-period (ii), shared access time of UWB session 202 is computed as 5×100/150=3.33 ms, accounting for 66% of the duration of sub-period (ii). Still in sub-period (ii), shared access time of UWB session 204 is computed as 5×50/150=1.66 ms, accounting for 33% of the duration of sub-period (ii). As shown in
As shown in
where wi refers to the priority value of UWB session i, ri refers to the round duration of UWB session i, and Σwk refers to the sum of priority values of all UWB sessions in a collision set.
For example, the computed access time 212 (T1) of UWB session 202 may be computed as 100×10/200=5 ms, accounting for 50% of the duration of UWB session 202; the computed access time 214 (T2) of UWB session 204 may be computed as 50×25/200=6.25 ms, accounting for 25% of the duration of UWB session 204; and the computed access time 216 (T3) of UWB session 206 may be computed as 50×10/200=2.5 ms, accounting for 25% of the duration of UWB session 206.
In some embodiments, an initialization step is performed prior to step 302 when controller 102 starts scheduling for the first block duration. Controller 102 may initialize the values of certain parameters. For example, the session deficit value of each UWB session may have an initial value of 0, and the computed access time of each UWB session may have an initial value of 0, etc. In some embodiments, for each UWB session, the session deficit value from a previous block duration is updated in the next block duration.
At step 302, the UWB scheduler determines the set of colliding sessions. In some embodiments, the UWB scheduler may determine the set of colliding sessions that includes UWB session 202, 204, and 206. The method to detect the set of colliding sessions is described in
At step 304, the UWB scheduler starts a loop to compute the session deficit value for each UWB session in the colliding set.
At step 306, the UWB scheduler computes the access time for a UWB session in the colliding set. In some embodiments, the UWB scheduler may compute the access time using any one of methods 200, 210, and 220 to obtain the computed access time for the UWB session. For example, the UWB scheduler may compute the access time for UWB sessions 202, 204, and 206 in a colliding set shown in
At step 308, the UWB scheduler computes a session deficit value for the UWB session. In some embodiments, the UWB scheduler computes/updates the session deficit value of the UWB by adding the computed access time to the existing/current session deficit value.
The UWB scheduler may complete the loop for each UWB session and obtain a session deficit value for each UWB session in the colliding set. For example, the UWB scheduler may compute the session deficit values for UWB sessions 202, 204, and 206. Method 300 may then proceed to step 310, at which the UWB scheduler select 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.
At step 312, the UWB scheduler reduces the session deficit value of the selected UWB session. In some embodiments, the UWB scheduler computes/updates the session deficit value by subtracting the round duration of the selected UWB session from the existing/current session deficit value of the selected UWB session.
At step 314, the UWB scheduler performs access with the selected session. In some embodiments, controller 102 performs access with the selected UWB session such that the selected UWB session access the medium in the current block duration. The performed access time is the actual access time of the selected UWB session. In some embodiments, the UWB scheduler starts from step 302 for the next block duration, and update the session deficit value obtained from the previous block duration. In some embodiments, method 300 proceeds to step 302 after performing step 314.
In some embodiments, an initialization step is performed prior to step 303 when controller 102 starts scheduling for the first block duration. Controller 102 may initialize the values of certain parameters. For example, the session deficit value of each UWB session may have an initial value of 0, the session deficit difference value of each UWB session may have an initial value of 0, the sum of session deficit difference value and session deficit value may have an initial value of 0, and the computed access time of 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 value from a previous block duration is updated in the next block duration.
At step 303, the UWB scheduler determines the set of colliding sessions. In some embodiments, the UWB scheduler may determine the set of colliding sessions that includes UWB session 202, 204, and 206.
At step 305, the UWB scheduler starts a loop to compute the session deficit difference value for each UWB session in the colliding set.
At step 307, the UWB scheduler computes the access time for a UWB session in the colliding set. In some embodiments, the UWB scheduler may compute the access time using any one of methods 200, 210, and 220 to obtain the computed access time for the UWB session. For example, the UWB scheduler may compute the access time for UWB sessions 202, 204, and 206 in a colliding set shown in
At step 309, the UWB scheduler computes a session deficit difference value for the UWB session. In some embodiments, the UWB scheduler computes/updates the session deficit difference value of the UWB with the computed access time obtained in step 309. For example, the UWB scheduler may compute the session deficit difference values for UWB sessions 202, 204, and 206.
After the UWB scheduler completes the computation of session deficit difference values for each UWB session in the colliding set, method 301 proceeds to step 311, at which the UWB scheduler computes a sum of session deficit value and session deficit difference value for each UWB session, and selects the UWB session with the highest sum of session deficit value and session deficit difference value. In some embodiments, the UWB scheduler adds the session deficit difference value and the session deficit value of each UWB session in the colliding set, and selects the UWB session with the highest sum.
At step 313, the UWB scheduler reduces the session deficit value of the selected UWB session. In some embodiments, the UWB scheduler computes/updates the session deficit value of the selected UWB session by subtracting the round duration of the selected UWB session from the current UWB session. For example, if UWB session 202 is selected, round duration of 10 ms is subtracted from its session deficit value.
At step 315, the UWB scheduler starts a loop to compute the session deficit value of each UWB session that collides with the selected UWB session. For example, the UWB scheduler may compute the session deficit values for UWB sessions 202, 204, and 206.
At step 317, the UWB scheduler determines whether a UWB session starts before the end of the selected UWB session. In some embodiments, the UWB scheduler determines whether the round begin time of the UWB session is before the round end time of the selected UWB session, e.g., overlaps/collide with the selected UWB session. If yes, method 301 proceeds to step 319; and if no, method 301 proceeds to step 321.
At step 319, the UWB scheduler increases the session deficit value for the UWB session that overlaps with the selected UWB session. Referring back to
At step 321, the operations from steps 317 and 319 are directed to step 315 such that all UWB sessions in the colliding set are checked to determine if their session deficit values need to be updated/increased.
After completing the update of session deficit values for all UWB sessions in the colliding set, process 301 proceeds to step 323, at which the UWB scheduler performs access with the selected UWB session. The performed access time is the actual access time of the selected UWB session.
Method 300 updates the deficit of all UWB sessions in the colliding set. Method 301 only updates the deficit of sessions which round starts before the end of the selected UWB session. The “session deficit difference” of method 301 is computed 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 for access in the colliding set, and all other UWB sessions, even those do not collide with the selected UWB session, are prevented access in the block duration. Different from method 300, in method 301, only the UWB sessions that collide with the selected UWB session are prevented access in the block duration, and UWB sessions that do not collide with the selected UWB session can still access the medium. The UWB scheduler (e.g., first device 102) may prevent access of the UWB session colliding with the selected UWB session and increase the chance of access for the colliding UWB sessions by increasing its session deficit value (at step 319). Meanwhile, since the non-colliding UWB session can access the medium, the UWB scheduler does not increase its session deficit value.
Referring back to
In various embodiments, other ways are used to enable more than one access per colliding set. For example, the UWB scheduler handles each possible access as if it was part of a different colliding set. This means that some UWB sessions may get “free” accesses, and are allowed to use more medium time. In another example, the UWB scheduler may use method 220 (e.g., the collision granularity method) to compute the access time and keep track of colliding set for past sessions access. This is more costly to implement, both for the access time computation and for session book-keeping.
In some embodiments, the UWB scheduler permits only one access per colliding set, using method 210 (e.g., the colliding set granularity method) to compute the access time. This uses less medium time than possible, but avoid giving a UWB session more time than planned.
In some embodiments, desynchronized UWB sessions try to a receive control frame from a UWB scheduler to resynchronize. This means that they need to listen to the medium as often as possible. When computing the colliding set, they must be handled differently so they do not extend the colliding set past the last synchronized UWB session. If one or several desynchronized UWB sessions are not selected, they may have their access requirement shortened to be able to listen to the medium before the colliding set. In that case another round of selection is done to determine which desynchronized UWB session will have access to the medium. Another option is to listen for all desynchronized UWB sessions at the same time, so desynchronized sessions do not need to content for the medium between them.
At step 402, the UWB scheduler defines parameters for the detection process. In some embodiments, the UWB scheduler defines: out_win as a priority queue of UWB sessions out of window, sorted by respective round begin times; in_win as a priority queue of UWB sessions in window, sorted by round end times; in_win_weight_sum as the sum of weight (priority values) of UWB sessions in window; win_begin_ms as the begin time of the window; win_end_ms as the end time of the window; and cset as the colliding set.
At step 404, the UWB schedulers initializes parameters for the detection process. In some embodiments, the UWB scheduler may add/include all active 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 initializes in_win_weight_sum with the weight (priority value) of the first session of in_win. As shown in
As shown in
At step 406, UWB scheduler determines whether in_win is empty. If yes, method 400 proceeds to end; if no, method 400 proceeds to step 408, at which the UWB scheduler sets win_end_ms to round end time of first session of in_win. As shown in
At step 410, the UWB scheduler determines whether out_win is empty. If yes, method 400 proceeds to step 414; if no, method 400 proceeds to step 412, at which the UWB scheduler set win_end_ms to the minimum of win_end_ms and round begin time of the first session of out_win. Referring to
Method 400 then proceeds to step 414, which directs both steps 410 and 412 to step 416, at which the UWB scheduler uses in_win and in_win_weight_sum for access time computation. In some embodiments, step 416 is optional, and is performed when using method 200 to compute access time for each UWB session. That is, when using method 200, the computation of access time can be performed during method 400 or after method 400. For example, referring to the description of method 200, each sub-period, e.g., (i), . . . , or (v), may be a window, and the computed access time of the UWB session in the current window may be computed as
In some embodiments, when using methods 210 and 220, the computation of access time is performed after method 400. At step 418, the UWB scheduler determines whether in_win is not empty and round end time of first session of in_win equals win_end_ms. If yes, method 400 proceeds to step 420; if no, method 400 proceeds to step 424. Referring to
At step 424, the UWB scheduler determines whether in_win is not empty and out_win is not empty and round begin time of the first session of out_win equals win_end_ms. If yes, method 400 proceeds to step 426; if no, method 400 proceeds to step 430. Referring to
At step 426, the UWB scheduler adds weight (priority value) of the first session of out_win to in_win_weight_sum. Referring to
At step 428, the UWB scheduler moves first session from out_win to in_win. Referring to
At step 406, the UWB scheduler determines in_win not empty, and proceeds to step 408, which the UWB scheduler set win_end_ms to the round end time of the first session of in_win. Referring to
Method 400 may then proceed to step 418, at which the UWB scheduler determines whether in_win is not empty and round end time of first session of in_win equals win_end_ms. If yes, method 400 proceeds to step 420; if no, method 400 proceeds to step 424. Referring to
Method 400 then proceeds to step 420, at which the UWB scheduler subtracts weight (priority value) of first session of in_win from in_win_weight_sum. Referring to
At step 422, the UWB scheduler moves the first session from in_win to cset. Referring to
Similar to previous description of states 1 and 2, the UWB scheduler may then determine win_end_ms to be the minimum of first session of in_win (e.g., UWB session 442) and the round begin time of the first session of out_win (e.g., UWB session 444) at steps 408 and 412. Optionally, the UWB scheduler may compute the access time (e.g., of UWB session 442) in the window in state 3. UWB scheduler may then determine in_win not empty and round end time of first session of in_win (e.g., UWB session 442) is not equal to win_end_ms, and method proceeds to step 424, at which the UWB scheduler determines in_win not empty and out_win not empty and round begin time of first session of out_win (e.g., UWB session 444) is equal to win_end_ms. Method 400 then proceeds to update in_win_weightLsum by adding weight (priority value) of first session of out_win (e.g., UWB session 444) at step 426. As shown in
Method 400 then proceeds to steps 406-412, at which 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 step 418, 420, and 422, where the UWB scheduler subtract weight (priority value) of UWB session 444 from in_win_weight_sum (100), and obtains 50 for in_win_weight_sum, at state 5. UWB scheduler may then move UWB session 444 to cset. UWB session 442 may be the only session in in_win.
Method 400 then proceeds to step 418, 424, and 430, at which the UWB scheduler sets win_begin_ms to the current win_end_ms (e.g., the round end time of UWB session 444). Method 400 then proceeds to steps 406 and 408, at which the UWB scheduler sets win_end_ms to the round end time of the first session of in_win (e.g., UWB session 442). Method 400 proceeds to steps 410 and 412, at which the UWB scheduler maintains win_end_ms as the round 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. At steps 420 and 422, the UWB scheduler subtracts weight (priority value) of the first session of in_win (e.g., UWB device 442) from in_win_weight_sum, resulting in_win_weight_sum to be 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. Thus, all colliding UWB sessions, e.g., 440, 442, and 444 are in cset.
Method 400 then proceeds to step 424, as in_win is empty, and then to step 430, at which the UWB scheduler sets win_begin_ms to the existing win_end_ms (e.g., the round end time of UWB session 442). Method 400 then proceeds to step 406, and then proceeds to “End” as in_win is empty.
At step 502, the UWB scheduler determines a set of colliding UWB sessions that comprises a first UWB session and a second UWB session (e.g., UWB sessions 440, 442, 444) partially overlaps with each other in time.
At step 504, the UWB scheduler computes a first access time (e.g., one of 212, 214, and 216) of the first UWB session and a second access time (e.g., another one of 212, 214, and 216) of the second UWB session.
At step 506, the UWB scheduler determines a first credit value (e.g., step 309 and 319, or step 311) based at least on the first access time and a second credit value (e.g., step 309 and 319, or step 311) based at least on the second access time.
At step 508, the UWB scheduler selects one of the first UWB session or the second UWB with a higher credit value (e.g., step 310 or step 311).
At step 503, the UWB scheduler determines respective round begin times and respective round end times of a plurality of UWB sessions in an out-window queue (e.g., step 404).
At step 505, the UWB scheduler determines a UWB session with an earlier round begin time in the out-window queue as a first in-window session in an in-window queue, and another UWB session with a later round begin time in the out-window queue as a first out-window session in the out-window queue (e.g., step 408).
At step 507, the UWB scheduler determines a window period with a window begin time and a window end time later than the window begin time, the window end time being equal to a round end time of the first in-window session (e.g., step 412).
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 within the scope of the concepts disclosed herein and the claims that follow.
This application claims priority to U.S. Provisional Patent Application No. 63/587,943 filed Oct. 4, 2023 and U.S. Provisional Patent Application No. 63/651,755 filed May 24, 2024, which are incorporated by reference herein in their entireties.
Number | Date | Country | |
---|---|---|---|
63651755 | May 2024 | US | |
63587943 | Oct 2023 | US |