PRIORITIZATION OF ISOCHRONOUS STREAMS IN MULTI-PROTOCOL SYSTEM
20240276306 ยท 2024-08-15
Inventors
- Jitesh Rachamadugu (Hyderabad, IN)
- Srinivasa Reddy Konatham (Hyderabad, IN)
- Ayan Ghosh (Hyderabad, IN)
Cpc classification
H04W28/06
ELECTRICITY
International classification
H04W28/06
ELECTRICITY
Abstract
A multi-protocol wireless communications system uses prioritization of isochronous streams to increase the reliability and improve bandwidth utilization. Placement of subevents in an isochronous interval according to link quality reduces fragmentation of the isochronous interval. A method for multi-protocol communications between wireless communications devices using a wireless communications interface includes placing in an isochronous group event, by a first wireless communications device, at least one subevent for each isochronous stream of a plurality of isochronous streams of an isochronous group based on a historical retransmission rate for each isochronous stream of the plurality of isochronous streams. The method may include counting retransmissions for each isochronous stream of the plurality of isochronous streams to thereby determine the historical retransmission rate for each isochronous stream of the plurality of isochronous streams.
Claims
1. A method for multi-protocol communications between wireless communications devices using a wireless communications interface, the method comprising: placing in an isochronous group event, by a first wireless communications device, at least one subevent for each isochronous stream of a plurality of isochronous streams of an isochronous group based on a historical retransmission rate for each isochronous stream of the plurality of isochronous streams.
2. The method as recited in claim 1, further comprising: counting retransmissions for each isochronous stream of the plurality of isochronous streams to thereby determine the historical retransmission rate for each isochronous stream of the plurality of isochronous streams.
3. The method as recited in claim 1, further comprising: transmitting by a first wireless communications device packets corresponding to each subevent of the isochronous group using an isochronous physical channel.
4. The method as recited in claim 1, wherein the at least one subevent is placed in the isochronous group event in an order linearly related to the historical retransmission rate for each isochronous stream of the plurality of isochronous streams.
5. The method as recited in claim 1 wherein placing includes adjusting a timing parameter associated with an isochronous stream based on the historical retransmission rate.
6. The method as recited in claim 5 wherein the adjusting comprises adjacently placing all transmitted subevents of each isochronous event in an isochronous interval and adjacently placing all transmitted isochronous events of the isochronous group in the isochronous interval.
7. The method as recited in claim 1 wherein the isochronous group event is associated with a first wireless communications protocol and all subevents of the isochronous group event are transmitted contiguously before transmitting an event of another communications protocol.
8. The method as recited in claim 1 wherein the wireless communications interface is a Bluetooth Low Energy interface, the first wireless communications device is configured as a central device, and a second wireless communications device is configured as a peripheral device.
9. A wireless communications system comprising: a first wireless communications device comprising: a transmitter circuit; and a controller circuit configured to cause the transmitter circuit to transmit, using an isochronous physical channel, at least one subevent for each isochronous stream of a plurality of isochronous streams of an isochronous group based on a historical retransmission rate for each isochronous stream of the plurality of isochronous streams.
10. The wireless communications system as recited in claim 9 wherein the controller circuit comprises: a storage element; and a processor configured to execute instructions stored in the storage element, the instructions being executable by the processor to cause the processor to place in an isochronous group event, the at least one subevent for each isochronous stream of the plurality of isochronous streams of the isochronous group based on the historical retransmission rate for each isochronous stream of the plurality of isochronous streams.
11. The wireless communications system as recited in claim 10 wherein the processor is further configured to count retransmissions for each isochronous stream of the plurality of isochronous streams to thereby determine the historical retransmission rate for each isochronous stream of the plurality of isochronous streams.
12. The wireless communications system as recited in claim 9 wherein the controller circuit is further configured to place at least one subevent in an isochronous group event in an order linearly related to the historical retransmission rate for each isochronous stream of the plurality of isochronous streams.
13. The wireless communications system as recited in claim 9 wherein the wireless communications system is a Bluetooth Low Energy system, the first wireless communications device is configured as a central device, and a second wireless communications device is configured as a peripheral device.
14. The wireless communications system as recited in claim 10 wherein the processor is further configured to adjust a timing parameter associated with an isochronous stream based on the historical retransmission rate.
15. The wireless communications system as recited in claim 14 wherein all transmitted subevents of each isochronous event are placed adjacently in an isochronous interval and all transmitted events of the isochronous group are adjacently placed in the isochronous interval.
16. The wireless communications system as recited in claim 14 wherein the isochronous group event is associated with a first wireless communications protocol and all subevents of the isochronous group event are transmitted contiguously before transmitting an event of another communications protocol.
17. The wireless communications system as recited in claim 9 further comprising: a second wireless communications device comprising: a receiver circuit; and a second controller circuit configured to cause the receiver circuit to receive, using the isochronous physical channel, the at least one subevent.
18. A method for communicating between devices using a wireless communications interface, the method comprising: receiving at least one subevent for each isochronous stream of a plurality of isochronous streams of an isochronous group in an order based on a historical retransmission rate for each isochronous stream of the plurality of isochronous streams.
19. The method as recited in claim 18 wherein the order is linearly related to the historical retransmission rate of each of the plurality of isochronous streams of the isochronous group.
20. The method as recited in claim 18 wherein the at least one subevent is adjacently placed in an isochronous interval.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030] The use of the same reference symbols in different drawings indicates similar or identical items.
DETAILED DESCRIPTION
[0031] A multi-protocol wireless communications system uses prioritization of isochronous streams to increase the reliability and improve bandwidth utilization. Placement of subevents in an isochronous interval according to link quality reduces fragmentation of the isochronous interval.
[0032] Referring to
[0033] In at least one embodiment, transmitter 114, receiver 116, local oscillator 115, data processing circuitry 138, and memory 136 are included in a controller implementing a physical layer (RF and PHY), which controls radio frequency communications, and a link layer of a BLE device. In an embodiment of wireless communications system 100, wireless communications device 112 and wireless communications device 122 are BLE audio devices (e.g., earbuds) and data processing circuitry 138 and data processing circuitry 158 provide signals to driver 160 and driver 164, respectively, which drive transducer 162 and transducer 166, respectively, to generate audio signals. In some embodiments, wireless communications device 112 and wireless communications device 122 are hearing aid devices and include at least one microphone (not shown), telecoil, or sensor coupled to data processing circuitry 138 or data processing circuitry 158.
[0034]
[0035] Frequency mixer 127 provides the translated output signal as a set of two signals, an in-phase (I) signal, and a quadrature (Q) signal. The I and Q signals are analog time-domain signals. In at least one embodiment of receiver 116, the analog amplifiers and filters 128 provide amplified and filtered versions of the I and Q signals to analog-to-digital converter (ADC) 130, which converts those versions of the I and Q signals to digital I and Q signals (i.e., I and Q samples). Exemplary embodiments of ADC 130 use a variety of signal conversion techniques (e.g., delta-sigma (i.e., sigma-delta) analog to digital conversion). ADC 130 provides the digital I and Q signals to signal processing circuitry 132. In general, signal processing circuitry 132 performs processing (e.g., demodulation, frequency translation (e.g., using mixer 131), filtering (e.g., digital filters 140), or signal correction) of the digital I and Q signals. In at least one embodiment, signal processing circuitry 132 includes demodulator 141, which retrieves or extracts information from digital I and Q signals (e.g., data signals, that were modulated by a transmitter (not shown) and provided to antenna 101 as RF signals). In at least one embodiment, one or more circuits of signal processing circuitry 132 converts digital I and Q signals from a Cartesian representation into polar representation (i.e., instantaneous phase and instantaneous amplitude) for use by frequency correction circuit 142 or phase measurement circuit 143.
[0036] Data processing circuitry 138 may perform a variety of functions (e.g., logic, arithmetic, etc.). For example, data processing circuitry 138 may use the demodulated data in a program, routine, or algorithm (whether in software, firmware, hardware, or a combination thereof) to perform desired control or data processing tasks. In at least one embodiment, data processing circuitry 138, which includes memory 136, controls other circuitry, sub-system, or systems (not shown). In an embodiment, data processing circuitry 138 implements a BLE link layer that includes a state machine, defines state transitions, defines packet formats, performs scheduling, performs radio control, and provides link-layer decryption consistent with the BLE protocol.
[0037]
[0038] Referring to
[0039] Baseband resource manager 214 negotiates access contracts, i.e., commitments to deliver a predetermined QoS that is required by a user application to provide expected performance. Baseband resource manager 214 also includes a scheduler that grants time on physical channels to entities that have negotiated an access contract. Isochronous Adaptation Layer (ISOAL) 218 converts between upper layer data units and lower layer data units, e.g., using fragmentation and recombination or segmentation and reassembly operations. ISOAL allows the size of isochronous data packets as created and consumed by upper layers of the architecture to be different from the size of data packets used by the link layer. In addition, ISOAL allows an upper layer to use timing intervals that differ from those used by the link layer so that the rate of Service Data Units (SDUs) exchanged with the upper layers is not the same as the rate with which they are exchanged with the link layer. Link manager 216 creates, modifies, and releases logical links (and associated logical transports, if required) and updates parameters related to physical links between devices. In an embodiment, wireless communications device 112 implements Host-to-Controller Interface (HCI) 220, which is a standard service interface.
[0040] In an embodiment, host 204 includes Generic Audio Framework (GAF) 206, Logical Link Control and Adaptation Protocol (L2CAP) resource manager 224, Attribute Protocol (ATT) 228, Generic Attribute Protocol (GATT) 232, Generic Access Profile (GAP) 226, and Security Manager (SM) 230. L2CAP resource manager 224 manages ordering of submission of PDU fragments and some relative scheduling between channels to ensure that L2CAP channels with QoS commitments are not denied access to the physical channel due to controller resource exhaustion. L2CAP resource manager 224 polices traffic to ensure that applications submit L2CAP SDUs within bounds of negotiated QoS settings. In an exemplary wireless communications device 200, GATT 232 defines the way that two BLE devices communicate data using services and characteristics. In an embodiment, GATT 232 uses a generic data protocol stored in ATT 228, which is used to store services, characteristics and related data in a simple lookup table using 16-bit identifiers for each entry in the table. SM 230 implements a peer-to-peer protocol for generating encryption keys and identity keys and generates random addresses and resolves random addresses to known device identities. SM 230 provides stored keys to controller 202 for encryption and authentication during encryption or pairing procedures. GAP 226 represents base functionality common to all Bluetooth devices, e.g., modes and access procedures used by transports, protocols, and application profiles. GAP services include device discovery, connection modes, security authentication, associate models and service discovery. GAF 206 includes Script and API 234, application 238, and profiles 236, which adds application specific information to GAF 206. For example, profiles 236 includes hearing access profile (HAP) and hearing access service (HAS), which provide applications for a hearing aid ecosystem, profiles 236 includes telephony and media audio profile (TMAP), which specifies higher quality codec settings and more complex media and telephony control, and profiles 236 includes public broadcast profile (PBP), which facilitates selecting globally interoperable broadcast systems.
[0041] Low complexity communications codec (LC3) 222 includes a codec for high performance telephony speech, wideband and super-wideband speech, and high-quality audio. LC3 222 encodes audio data into different channel streams (e.g., stereo is encoded as separate left and right streams). LC3 222 provides audio data as SDUs to the link layer, which generates PDUs for isochronous data streams. The link layer provides SDUs based on received PDUs to LC3 222 for decoding.
[0042]
[0043] Link layer state machine 900 may enter connection state 912 from initiating state 908 or advertising state 906. When entering connection state 912 from initiating state 908, the connection state is the central role (i.e., the wireless communications device is configured as a central device) and the wireless communications device communicates with another wireless communications device having a connection state of a peripheral role (i.e., the other wireless communications device is configured as a peripheral device) and defines the timings of transmissions. When entering connection state 912 from advertising state 906, the connection state is the peripheral role and the link layer communicates with a single other wireless communications device configured in the central role. In some embodiments, during connection state 912, the link layer transmits data physical channel PDUs in connection events. A connection event typically contains at least one packet sent by the central device. The same data channel index is used for all packets in a connection event. In some embodiments, during a connection event, the central device and peripheral device alternate sending and receiving packets.
[0044] In an embodiment, the link layer uses one physical channel (RF channel) at a time. Each transmission on a physical channel is associated with corresponding access address. In general, two wireless communications devices use a shared physical channel to communicate with each other. Whenever the link layer of a wireless communications device is synchronized to the timing, frequency, and access address of a physical channel, the link layer is connected on the data physical channel or synchronized to a periodic physical channel or an isochronous physical channel regardless of whether it is actively involved in communications over the channel. The link layer generates a new access address for each CIS it creates. Connections are exclusive, i.e., a peripheral device can be connected to only one central device at a time. As soon as a peripheral device connects to a central device, it stops advertising itself and other wireless communications devices are no longer able to see it or connect to it until the existing connection is broken.
[0045]
[0046]
[0047] Referring to
[0048] Referring back to
[0049] In general, a connection event between BLE devices starts when a central device sends a packet to a peripheral device at a predetermined connection interval. The central device controls initiating and managing multiple connections with one or more peripheral device. The peripheral device can respond in a predetermined amount of time (e.g., 150 ?s) after it has received a packet from the central device. If the peripheral device has no data to send, the peripheral device can skip a certain number of connection events defined by a peripheral latency parameter. If the central device or peripheral device does not receive any packets within a time defined by a supervision timeout, the corresponding device terminates the connection. In general, a connection event refers to a time within a timing-event reserved for sending or receiving packets.
[0050] Isochronous data exchange using a physical channel occurs at synchronized intervals referred to as isochronous connection events, which occur at a gap in an isochronous connection interval. Services break data up into logical entities and contain specific chunks of data called characteristics. Each service has a unique user ID (UUID). Characteristics can be read from the peripheral device or written to send data back to the peripheral device. For example, a CIS reserves transmission and reception periods known as subevents on an isochronous physical channel and can be configured to retransmit packets in subevents of a current or subsequent event. Each CIS event starts at a moment called the CIS anchor point (e.g., based on a clock of a central device) and ends when closed. The CIS anchor points are regularly spaced apart by an isochronous interval. A first subevent of a CIS event starts at the CIS anchor point. Consecutive CIS subevents start a subinterval apart. A subinterval is greater than or equal to the subevent length (SE_length). The subevent length equals equals MPT_C+T_IFS+MPT_P+T_MSS, where MPT_C and MPT_P are the time taken by the central device and peripheral device, respectively, to transmit a packet containing a CIS PDU with a payload of Max_PDU octets (for that direction) on the PHY being used for the CIS, where the Minimum Subevent Space (T_MSS) is 150 ?s. These values should include the MIC if it is possible that the CIS will be encrypted. Each CIS is part of a CIG of one or more CISes having a common timing reference based on a clock of a central device. In at least one embodiment, the connection interval is 7.5 ms-4000 ms, connection latency is 0-500 connection intervals, and the supervision timeout is 100 ms-3200 ms. However, in other embodiments, different timing intervals are used.
[0051] In at least one embodiment, the central device and the peripheral device each include a 16-bit connection event counter used to synchronize link layer control procedures. The connection event counter includes the value connEventCount for each asynchronous connected link connection. Each counter is initialized to zero on the first connection event, is incremented by one for each new connection event, and wraps from 0xFFFF to 0x0000. The start of the connection event is called the anchor point. The central device starts to transmit a data physical channel PDU to a peripheral device at the anchor point.
[0052] Referring to
[0053] Referring to
[0054]
[0055] A CIG event includes the corresponding CIS events of each CIS in the CIG. Each CIG event starts at the anchor point of the earliest (in transmission order) CIS of the CIG and ends at the end of the last subevent of the latest CIS of the same CIG event. Two CIG events using the same CIG shall not overlap, i.e., the last CIS event of a CIG event shall end before the first CIS anchor point of the next CIG event. The link layer of the central device provides timing parameters (CIS_Sync_Delay and CIG_Sync_Delay) to the link layer(s) of the peripheral device(s). The timing parameters enable synchronization of isochronous data at the application layer. Each CIG Event has a CIG reference point and a CIG synchronization point that are CIG_Sync_Delay apart. Each CIG event starts no earlier than the CIG reference point and ends no later than the CIG synchronization point. For a CIS, the CIS anchor point is a fixed offset (greater than or equal to zero) after the CIG reference point. Thus, CIG reference points are spaced an ISO_Interval apart and CIG synchronization points are also spaced an ISO_interval apart.
[0056] For each CIS, CIS_Sync_Delay equals the time from the CIS anchor point to the CIG synchronization point. CIG_Sync_Delay is no less than the maximum possible time for a CIG event, i.e., the time from the CIG reference point to the end of the peripheral's packet in the last subevent when both central device and peripheral device transmit packets containing Max_PDU octets. CIG_Sync_Delay will have the same value for all CISes in the same CIG. CIS_Sync_Delay for each CIS equals CIG_Sync_Delay minus the offset from the CIG reference point to the CIS anchor point. The actual maximum possible time for a CIG event is not determined until all the CISes in the CIG have been created. Therefore, the value that the central device sends is an upper bound. The maximum possible time for a CIS event (i.e., CIS_Sync_Delay parameter) equals:
[0057] where the Time Inter Frame Space (T_IFS) Time is the interval between consecutive packets on same channel index. The CIS events included in a CIG event need not have the same values of a CIS event counter, but the difference between the counters will be the same for the lifetime of the CIG. Both a central device and a peripheral device include a CIS event counter for each CIS. The CIS event counter is set to 0 for a first CIS event of a CIS and is incremented by one for each CIS event whether or not the central device transmits any CIS PDUs during the event.
[0058] A conventional link layer either sequentially arranges subevents of CIG events that include more than one CIS or interleaves subevents of the CIG by setting the values of the Sub_Interval and the spacing between the CIS anchor points appropriately. Referring to
[0059] Referring to
[0060] In some embodiments, wireless communications device 450 then establishes at least one additional CIS between wireless communications device 450 and wireless communications device 470, which is configured as another peripheral device, that culminates in communications of CIS data PDUs and isochronous data between the link layer of wireless communications device 450 and the link layer of wireless communications device 470 and corresponding hosts. The CIS is established by the wireless communications device 450 and wireless communications device 470 using a sequence of messages communicated between host 452 of wireless communications device 450, link layer 456 of wireless communications device 450, link layer 476 implemented by controller 474 of wireless communications device 470, and host 472 of wireless communications device 470.
[0061] In an embodiment, a wireless communications system implements the BLE communications specification and an IEEE 802.11 protocol (e.g., Wi-Fi) or other protocol. All CISes are associated with links of equal quality and the controller places in a CIG a maximum number of subevents for each CIS.
[0062] In at least one embodiment of the wireless communications system, the CIS links have different quality levels that cause the links to use different numbers of retransmissions, i.e., different numbers of subevents per CIS event. Referring to
[0063] Referring to
[0064] A technique for increasing the reliability and on-air bandwidth utilization by isochronous streams in a wireless communications system using multiple communications protocols includes prioritization of CIS subevents according to CIS link quality. A baseband resource manager or scheduler in a controller of the wireless communications device grants time on the physical channel during an isochronous interval based on prioritization according to CIS link quality. During a first state (e.g., an initialization state), the controller places subevents in a CIG according to conventional sequential or interleaved placement policies, as described above, and counts retransmissions for each CIS link to determine a historical retransmission rate for each of the plurality of CISes. In at least one embodiment, the historical retransmission rate for each of the plurality of CISes is determined using a link quality for the CIS link. For example, a measure of the quality of a link between two BLE controllers can be obtained by issuing using a command that reads the link quality, which is continuously monitored and updated every isochronous interval. In at least one embodiment, link quality is computed as follows:
where EmTx and EmReTx are exponential moving averages of transmit packets and retransmit packets, respectively, over the monitoring window and curr_Tx and ReTx are the numbers of packets successfully transmitted and Retransmitted, respectively, in the receive window.
[0065] After determining the historical retransmission rate for each of the plurality of CISes, the controller updates the placement of CIS subevents in a CIG according to the historical retransmission rates. For example, the controller adjusts one or more timing parameters associated with a CIS of the CIG based on the historical retransmission rate, e.g., using updates to the CIS_offset in the LL_CIS_IND to implement target placements of subevents in the CIG.
[0066] In at least one embodiment, the controller places in the CIG subevents associated with CIS links in an order of lowest historical retransmission rate to highest historical retransmission rate, for example, each CIS has a number of subevents corresponding to the closest integer greater than or equal to one plus the historical retransmission rate, up to the maximum number of subevents per CIS. Referring to
[0067] Thus, techniques for reducing fragmentation of a transmission by placing a CIG subevents in an isochronous interval based on quality of each CIS link in have been described. The technique decreases the number of radio switching delays in an isochronous interval, thereby improving performance (e.g., throughput) of BLE communications or communications using the other protocol as compared to a conventional BLE system. For example, a conventional BLE system implements BLE Audio with two CIS links providing 96 kbps of audio using an isochronous interval of 10 ms. If both CIS links need to send a data packet in the isochronous interval, one transmit and one receive use approximately 1200 usec. In this configuration, a maximum number of sub events is three and the second CIS link takes approximately 3.6 ms to start and the total duration used by BLE is approximately 5 ms, leaving approximately 5 ms for another protocol (e.g., Wi-Fi). The BLE to Wi-Fi switching consumes approximately 2 ms, leaving only approximately 3 ms for a Wi-Fi event in a conventional BLE communications system. The techniques described above uses only 2.4 ms (2?1200 ?s) for the BLE Audio communications leaving Wi-Fi or other protocol approximately 5.5 ms (i.e., 7.5 ms?2 ms) after a radio switching delay, an improvement of approximately 2.5 msec.
[0068] The techniques described herein do not require modification to the receiving wireless communications device. The techniques for reducing fragmentation of a transmission may be implemented using software executing on a processor (which includes firmware) or by a combination of software and hardware. Software, as described herein, may be encoded in at least one tangible (i.e., non-transitory) computer readable medium. As referred to herein, a tangible computer-readable medium includes at least a disk, tape, or other magnetic, optical, or electronic storage medium.
[0069] The description of the invention set forth herein is illustrative and is not intended to limit the scope of the invention as set forth in the following claims. The terms first, second, third, and so forth, as used in the claims, unless otherwise clear by context, is to distinguish between different items in the claims and does not otherwise indicate or imply any order in time, location or quality. For example, a first received signal, a second received signal, does not indicate or imply that the first received signal occurs in time before the second received signal. Variations and modifications of the embodiments disclosed herein may be made based on the description set forth herein, without departing from the scope of the invention as set forth in the following claims.