The present application is related to U.S. Provisional Patent Application Ser. No. 63/306,204 filed on Feb. 3, 2022, and entitled “LINK LAYER CONTROL IN ULTRA WIDEBAND SYSTEMS,” the contents of which are incorporated herein by reference in its entirety.
The technology of the disclosure relates generally to defining link layers in the Fine Ranging (FiRa) standard for ultra-wideband (UWB) systems.
Computing devices abound in modern society, and more particularly, mobile communication devices have become increasingly common. The prevalence of these mobile communication devices is driven in part by the many functions that are now enabled on such devices. Increased processing capabilities in such devices means that mobile communication devices have evolved from pure communication tools into sophisticated mobile entertainment centers, thus enabling enhanced user experiences.
One such function is the introduction of fine ranging (FiRa). In April of 2020, the FiRa Consortium published “PHY Technical Requirements,” setting forth physical layer (PHY) requirements based on IEEE 802.15.4z standard for ultra-wideband (UWB)-enabled devices. The FiRa Consortium followed this with the publication of “UWB MAC Technical Requirements” in May of 2020. While these two documents set forth requirements to be FiRa-certified UWB-enabled devices, there remains room in these specifications for specific details to be defined, and there is room for data communication protocols to be further defined.
In particular, the FiRa v. 2.0 standard introduced data transfer capability using either a defined message of a ranging round or using a data phase having slots. However, the standard leaves open how the slots within the UWB framework are scheduled, leaving room for innovation related thereto.
Aspects disclosed in the detailed description include systems and methods for a fine ranging (FiRa) slot scheduler in ultra-wideband (UWB)-enabled devices. In particular, exemplary aspects of the present disclosure allocate slots within a UWB data phase based on required quality of service (QOS) parameters. More particularly, a control circuit may set up one or more connections based on connection requests that are accompanied by QoS indicators. The control circuit may then allocate slots according to the QoS indicator, where slots are initially allocated to connections with the highest QoS indicator and then allocated through connections with increasingly lower QoS indicators. In this manner, the QoS guarantees are satisfied, improving the overall user experience.
In this regard, in one aspect, an integrated circuit (IC) is disclosed. The IC comprises a UWB circuit comprising a control circuit. The control circuit is configured to allocate slots within a UWB data phase based on a QoS indicator for a connection.
In another aspect, a method for allocating slots in a UWB data phase is disclosed. The method comprises receiving multiple connection requests, wherein each connection request has an associated QoS indicator. The method also comprises allocating slots within the UWB data phase based on the associated QoS indicator.
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.
It will be understood that when an element such as a layer, region, or substrate is referred to as being “on” or extending “onto” another element, it can be directly on or extend directly onto the other element, or intervening elements may also be present. In contrast, when an element is referred to as being “directly on” or extending “directly onto” another element, there are no intervening elements present. Likewise, it will be understood that when an element such as a layer, region, or substrate is referred to as being “over” or extending “over” another element, it can be directly over or extend directly over the other element, or intervening elements may also be present. In contrast, when an element is referred to as being “directly over” or extending “directly over” another element, there are no intervening elements present. It will also be understood that when an element is referred to as being “connected” or “coupled” to another element, it can be directly connected or coupled to the other element, or intervening elements may be present. In contrast, when an element is referred to as being “directly connected” or “directly coupled” to another element, there are no intervening elements present.
Relative terms such as “below” or “above” or “upper” or “lower” or “horizontal” or “vertical” may be used herein to describe a relationship of one element, layer, or region to another element, layer, or region as illustrated in the Figures. It will be understood that these terms and those discussed above are intended to encompass different orientations of the device in addition to the orientation depicted in the Figures.
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.
Aspects disclosed in the detailed description include systems and methods for a fine ranging (FiRa) slot scheduler in ultra-wideband (UWB)-enabled devices. In particular, exemplary aspects of the present disclosure allocate slots within a UWB data phase based on required quality of service (QOS) parameters. More particularly, a control circuit may set up one or more connections based on connection requests that are accompanied by QoS indicators. The control circuit may then allocate slots according to the QoS indicator, where slots are initially allocated to connections with the highest QoS indicator and then allocated through connections with increasingly lower QoS indicators. In this manner, the QoS guarantees are satisfied, improving the overall user experience.
Before addressing particular aspects of the present disclosure, some additional background information is provided. In particular, the FiRa Consortium has proposed FiRa as a UWB technology that allows connections between peer devices and which allows secure transactions between a controller device and a controlee device when the two are within a predefined distance of each other. Some possible use cases are payment transactions or streaming of content. The current language of the specification calls for a media access control (MAC) layer for inband data transfer and a link layer, but currently, the specification is silent about how to create and manage connections between the controller and controlee(s) or how UWB resources are allocated. Further, the specification is silent about how slots within the UWB framework are assigned to various signals. This silence leads to room for innovation, particularly to help assign slots in a fashion that supports specific QoS metrics.
In this regard,
The authors of the present disclosure have proposed, in the related '204 application referenced above, a link layer (LL) control plane to facilitate establishing communication links for the signals 104A, 108A. In particular, the LL control plane acts as a black box to abstract all the UWB logical connection creation and management so that application developers do not have to program such details. It should be appreciated that the mobile computing device 100, the computing device 102, and the mobile computing device 106 may each include a control circuit, such as control circuits 110, 112, 114, respectively, that, with software, implements aspects of the present disclosure.
With continued reference to
For the first function, the LL control plane 224 of the Controller considers all the requests of the logical connection creation and also solicits how the upper layer clients (i.e., the application) intend to use the logical connection. Thus, the application developer may designate in the application what the use is as well as whether the connection is unidirectional or bidirectional in the upper layer 202. Additionally, the developer may provide an indication of what a target volume of data to be exchanged is. There may additionally be some indication as to how critical latency is and, if latency is critical, what is a target guaranteed latency. Further, the developer may provide an indication if the bitrate is critical and any guaranteed bitrate. As still another option, the developer may provide an indication as to whether the connection is not critical (e.g., background process) and only uses best effort data transfers.
The developer may also provide an indication as to whether the connection is intended for an authentication request/response application. Authentication request/response applications are different in some ways, such as the responder does not have any data to transmit until after the responder has received and processed the Authentication request. This time waiting for the request may be non-trivial since some cryptographic computation is required. Thus, the developer may provide an indication of the delay between the request and the response (as well as a size for the request and/or response).
In an exemplary aspect, the LL 206 exposes a high-level interface, which abstracts the UWB protocol. The semantics of this interface is relatively simple such that the developer only indicates the change in state of the link (create, pause, resume, delete) for a connection in the current data phase of the ranging round. The developer may also indicate the type of connection (latency critical, best effort, authentication, or bitrate critical) through a QoS class indicator (QCI). Note that this list is not exhaustive, and other QCIs may be used. For example, QCI=1 may be a guaranteed bitrate QoS indicator for streaming use cases; QCI=0 may be a guaranteed latency QoS indicator; QCI=2 may be a best effort QoS indicator for connections such as for a peer-to-peer file transfer; and QCI=3 may be for Authentication connections. Note that the precise assignment of a given number to a given QoS class is arbitrary and may be rearranged without departing from the present disclosure (e.g., guaranteed latency may be QCI=0).
Having provided a QCI, the developer may have to provide additional information such as for QCI=1, the developer may specify a target bitrate and a disorder metric (i.e., how many frames can be received out of order and still allow the receiving application to reorder them with no noticeable impact on the user experience). For guaranteed latency connections, the developer may also specify a maximum size of the burst data and an amount of data being transmitted. Note that the list of QCIs is not exclusive, and there may be other sorts of auxiliary information provided by the application developer.
Table 1 provides details about a logical connection creation:
Table 2 provides details about a logical connection deletion:
For the second function (i.e., create the connection), the LL control plane 224 of the Controller uses this interface to create the UWB logical connections. The LL control plane 224 relies on radio data bearers between the UWB link layer entities to establish a logical connection between upper layers 202. The LL control plane 224 of the Controller creates two radio data bearers per connection: one bearer from Controller to Controlee and one bearer from Controlee to Controller. The bearer carries either LL data, LL acknowledgments (ACKs), or both, as shown in Table 3.
The concept of the data bearer to establish different connections makes the overall system very compact and reduces LL overhead in the data transfer itself. That is, every bearer has some attributes (e.g., a bearer that carries data has a transmit window and a maximum retransmission number; a bearer that carries only ACKs does not). These bearer parameters are determined by the LL control plane 224 of the Controller from the connection QCI and auxiliary information.
For example, for a QCI=0 connection, the maximum retransmission number of the associated bearers is small, whereas, for a QCI=2, the maximum retransmission number of the associated bearers is greater (to increase the bearer reliability). Once these bearer attributes are determined and once the LL control plane 224 of the Controller has allocated the internal resources of the UWB (buffer allocation to manage the transmit window, management of identifiers in the pool of identifiers, and the like), the LL control plane 224 builds and sends a control LL PDU (i.e., one element of bubble 226) “create connection” as shown in Table 4. This control LL PDU is sent over a signaling bearer which is a broadcast bearer. Each connection may be individually configured with a connection descriptor.
Table 5 provides a possible structure for the control PDU to acknowledge successful connection creation.
The Controller 302 host may want to stop a connection after the upper layer 304 has finished its transaction or because the UWB link is broken. When the LL control plane 224 of the Controller 302 receives this information over the interface, it does not allocate UWB slots to this device and sends a stop bit in a MAC control message which is sent as better seen by signal flow 400 in
Specifically, the upper layer 304 detects a broken link or completed transaction and sends a UCI connection delete command signal 402 that identifies a particular Controlee 314 to the UWB system 308. The UWB system 308 sends a signal 404 containing a new DTPCM identifying the Controlee 314 and a stop bit for the concerned Controlee. After, both UWB systems 308 and 312 send a UCI connection deleted notification 406, 408, respectively.
Other signal formats may be possible. However, the examples provided herein allow for easy integration since the application developer uses an abstracted API to create and control connections with a semantic approach. The signaling is compact and has low overhead while also allowing for different QoS demands to be met.
In addition to identifying the different QoS demands, exemplary aspects of the present disclosure provide a way to schedule slots in the UWB framework that help meet the identified QoS demands. In this regard,
The control circuit may randomly select a free slot sf within set S within [0,Tk], and sf is removed from the set S. Further, the control circuit may compute an ideal transmit slot index si,k=sf+i*Tk of slots of S. Then the control circuit may select a subset s′i,k as the free slots of S as close to si,k as possible and assign the slot or slots to bearer k. Then, the slots s′i,k are removed from the set S (block 606).
The control circuit may then determine if there is another latency-guaranteed bearer (block 608). If the answer to block 608 is yes, the process returns to block 604 for the next latency-guaranteed bearer (i.e., stepping through the k latency-guaranteed bearers). If, however, the answer to block 608 is no, the process moves to the second pass 602.
The second pass 602 begins by selecting the latency-guaranteed bearer k and identifying a reverse data bearer k0 (block 610). It should be appreciated that the reverse data bearer k0 is a bearer with swapped source and destination addresses relative to the original bearer k. For every subset pair (s′i,k s′i+1,k), the control circuit checks if there is a slot for the reverse data bearer k0, which can be used for acknowledgment (ACK) signals. If there is no such slot for ACK signals, the control circuit may randomly allocate a free slot within the set S, and more particularly within subsets (s′i,k, s′i+1,k) to return an ACK signal to the bearer k0 and the assigned slot is removed from the set S (block 612).
The control circuit determines if there is another latency-guaranteed bearer (block 614). If the answer at block 614 is no, then the second pass 602 ends (block 616), and the process 500 increments to block 504 (see
The control system may then select the first free slot sf of the set S1 and remove Sf1 from the set S1. The control system may compute a number nk of available free slots in S1 and an ideal interval of free slots (Dk) of the set S1, where Dk=nk/Nk. The control circuit may then assign slots with an index of si,k=si−1,k+Dk free slots of set S1 to the bearer k, where i is between 1 and Nk. The assigned slots are then removed from the set S1 (block 706). The control circuit may then determine if there is another bitrate-guaranteed bearer (block 708). If the answer is yes, then the first pass 700 is repeated. If, however, the answer to block 708 is no, then the second pass 702 begins.
In the second pass 702, the control circuit selects a bitrate-guaranteed bearer k and predicts a number of application data slots from recent statistics. Then, the control system may identify a reverse data bearer k0 and compute Lk corresponding to a number of transmit slots for the bearer k, which can be used without receiving an ACK signal (block 710). Conceptually, it may be more efficient to minimize a number of slots for ACK responses.
For every Lk slot allocated to bearer k, starting with a slot whose index is si, si, =si(LK) is the index of the Lkth slot assigned to the bearer k following the slot si. The control circuit may check to see if there is a slot between si and sj(LK) for bearer k0, which can be used to send an ACK response. If the answer is yes, then the control circuit selects the highest slot index sm, which satisfies this condition, and it may search for the highest slot index sj of these Lk allocated slots so that sj>=sm, and redo this processing starting with new slot sj. If the answer is no, a free slot of the set S1, as close to the highest slot allocated to the bearer k (i.e., as close to si(LK)), is allocated to bearer k0 to be used for an ACK response; the control circuit shifts to the next Lk slots allocated to the bearer k, starting with slot index>si(LK), and redo this processing (block 712).
Once processing is completed, the control circuit may determine if there is another bitrate-guaranteed bearer (block 714). If the answer is yes, the process returns to block 710. If the answer is no, then the process ends (block 716), and the process 500 moves to block 506 (see
The control system may, for each best effort bearer k, determine a number of allocated slots yk=0.9*rk*W to bearer k and zk=0.1*rk*W to bearer k0 (block 802).
For each best effort bearer k, the control circuit may randomly select yk slots for bearer k and zk slots for bearer k0. These slots are removed from set S2 (block 804).
Using the process 500, the highest QoS indicator receives the first allocation of slots, the next highest QoS indicator receives the next allocation of slots, and best-effort gets any slots that are remaining. This process 500 thus helps meet the guaranteed QoS.
In a first pass (block 1002), the process 1000 allocates N consecutive slots to send the Authentication Requests. nk is the number of Authentication segments to transmit the complete Authentication Request to Controlee k. nk is determined from the attribute Authentication Request size
The slots 1 to N are allocated to the Controller so that it can send sequentially the Authentication Requests to all the Controlees, where N is:
Then one slot is allocated to each Controlee so that it can acknowledge the received Authentication Request PDUs, in the same order as the Authentication requests have been sent. Then C slots are allocated to the Controller as opportunities to retransmit a PDU which is not received by a Controlee (where C is the number of Controlees present in the session).
In a second pass (block 1004), the slots are allocated to send the Authentication Responses.
In a worst case, the Authentication Request is fully received by any Controlee at slot N+2C. Tk is the maximum processing delay of the Controlee k to process the Authentication request and prepare the response. The Controlee k is ready to send its response at slot Lk=N+2C+Tk/slot duration in a worst case, where Tk is a QoS attribute of the connection provided by the Upper Layer in the logical connection creation command.
For each Controlee k, the process 1000 allocates nk slots in the set of free slots, in ascending order, with slot index>Lk. The allocated slots are removed from the set of free slots. Lk,f is the last allocated slot. Then for each Controlee k, the process 1000 allocates one slot to the Controller in the set of free slots so that the Controller can acknowledge the received PDUs of the Authentication response of the Controlee k: its slot index Ak is the smallest index larger than Lk,f.
Then for each Controlee k, the process 1000 allocates one slot to the Controlee k in the set of free slots so that it can retransmit a negatively acknowledged segment. Its slot index is the smallest index larger than Ak. At the end of the process 1000, a table of slot allocations, such as shown in
It is also noted that the operational steps described in any of the exemplary aspects herein are described to provide examples and discussion. The operations described may be performed in numerous different sequences other than the illustrated sequences. Furthermore, operations described in a single operational step may actually be performed in a number of different steps. Additionally, one or more operational steps discussed in the exemplary aspects may be combined. It is to be understood that the operational steps illustrated in the flowchart diagrams may be subject to numerous different modifications, as will be readily apparent to one of skill in the art. Those of skill in the art will also understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations. Thus, the disclosure is not intended to be limited to the examples and designs described herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
The present application claims priority to U.S. Provisional Patent Application Ser. No. 63/369,110 filed on Jul. 22, 2022, and entitled “FINE RANGING SLOT SCHEDULER,” the contents of which is incorporated herein by reference in its entirety. The present application also claims priority to U.S. Provisional Patent Application Ser. No. 63/312,990 filed on Feb. 23, 2022, and entitled “UWB SLOT SCHEDULER,” the contents of which is incorporated herein by reference in its entirety.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2023/013473 | 2/21/2023 | WO |
Number | Date | Country | |
---|---|---|---|
63312990 | Feb 2022 | US | |
63369110 | Jul 2022 | US |