You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ESP boards now support three modules: Bluetooth (BT & BLE), IEEE802.15.4, and Wi-Fi. Each type of board has only one 2.4 GHz ISM band RF module, shared by two or three modules. Consequently, a module cannot receive or transmit data while another module is engaged in data transmission or reception. In such scenarios, {IDF_TARGET_NAME} employs the time-division multiplexing method to manage the reception and transmission of packets.
9
+
ESP boards now support three modules: Bluetooth (BT & BLE), IEEE 802.15.4 (Thread / Zigbee), and Wi-Fi. Each type of board has only one 2.4 GHz ISM band RF module, shared by two or three modules. Consequently, a module cannot receive or transmit data while another module is engaged in data transmission or reception. In such scenarios, {IDF_TARGET_NAME} employs the time-division multiplexing method to manage the reception and transmission of packets.
10
10
11
11
12
12
Supported Coexistence Scenario for {IDF_TARGET_NAME}
@@ -16,32 +16,32 @@ Supported Coexistence Scenario for {IDF_TARGET_NAME}
16
16
17
17
.. table:: Supported Features of Wi-Fi and BLE Coexistence
Routers in Thread and Zigbee networks maintain unsynchronized links with their neighbors, requiring continuous signal reception. With only a single RF path, increased Wi-Fi or BLE traffic may lead to higher packet loss rates for Thread and Zigbee communications.
92
126
93
-
Y: supported and performance is stable
94
-
C1: supported but the performance is unstable
95
-
X: not supported
96
-
S: supported and performance is stable in STA mode, otherwise not supported
127
+
To build a Wi-Fi based Thread Border Router or Zigbee Gateway product, we recommend using a dual-SoC solution (e.g., ESP32-S3 + ESP32-H2) with separate antennas. This setup enables simultaneous reception of Wi-Fi and 802.15.4 signals, ensuring optimal performance.
97
128
98
129
99
130
Coexistence Mechanism and Policy
@@ -102,7 +133,7 @@ Coexistence Mechanism and Policy
102
133
Coexistence Mechanism
103
134
^^^^^^^^^^^^^^^^^^^^^^^^^^^
104
135
105
-
The RF resource allocation mechanism is based on priority. As shown below, both Bluetooth module and Wi-Fi module request RF resources from the coexistence module, and the coexistence module decides who will use the RF resource based on their priority.
136
+
The RF resource allocation mechanism is based on priority. As shown below, Wi-Fi, Bluetooth and 802.15.4 modules request RF resources from the coexistence module, and the coexistence module decides who will use the RF resource based on their priority.
106
137
107
138
.. blockdiag::
108
139
:scale: 100%
@@ -122,12 +153,14 @@ The RF resource allocation mechanism is based on priority. As shown below, both
@@ -137,45 +170,48 @@ The RF resource allocation mechanism is based on priority. As shown below, both
137
170
Coexistence Policy
138
171
^^^^^^^^^^^^^^^^^^^^^^^^^^^
139
172
140
-
Coexistence Period and Time Slice
141
-
""""""""""""""""""""""""""""""""""""""""
173
+
.. only:: SOC_WIFI_SUPPORTED and SOC_BT_SUPPORTED
142
174
143
-
.. only:: esp32
175
+
Coexistence Period and Time Slice
176
+
""""""""""""""""""""""""""""""""""""""""
144
177
145
-
Wi-Fi, BT, and BLE have their fixed time slice to use the RF. A coexistence period is divided into 3 time slices in the order of Wi-Fi, BT, and BLE. In the Wi-Fi slice, Wi-Fi's request to the coexistence arbitration module will have higher priority. Similarly, BT/BLE can enjoy higher priority at their own time slices. The duration of the coexistence period and the proportion of each time slice are divided into four categories according to the Wi-Fi status:
178
+
.. only:: SOC_BLE_SUPPORTED and SOC_BT_CLASSIC_SUPPORTED
146
179
180
+
Wi-Fi, BT, and BLE have their fixed time slice to use the RF. A coexistence period is divided into 3 time slices in the order of Wi-Fi, BT, and BLE. In the Wi-Fi slice, Wi-Fi's request to the coexistence arbitration module will have higher priority. Similarly, BT/BLE can enjoy higher priority at their own time slices. The duration of the coexistence period and the proportion of each time slice are divided into four categories according to the Wi-Fi status:
147
181
148
-
.. only:: SOC_WIFI_SUPPORTED and SOC_BLE_SUPPORTED and not esp32
149
182
150
-
Wi-Fi and BLE have their fixed time slice to use the RF. In the Wi-Fi time slice, Wi-Fi will send a higher priority request to the coexistence arbitration module. Similarly, BLE can enjoy higher priority at their own time slice. The duration of the coexistence period and the proportion of each time slice are divided into four categories according to the Wi-Fi status:
183
+
.. only:: not SOC_BT_CLASSIC_SUPPORTED
151
184
152
-
.. only:: SOC_IEEE802154_SUPPORTED
185
+
Wi-Fi and BLE have their fixed time slice to use the RF. In the Wi-Fi time slice, Wi-Fi will send a higher priority request to the coexistence arbitration module. Similarly, BLE can enjoy higher priority at their own time slice. The duration of the coexistence period and the proportion of each time slice are divided into four categories according to the Wi-Fi status:
153
186
154
-
Currently, the only supported strategy ensures that the priority of BLE always takes precedence over IEEE802.15.4.
187
+
.. list::
155
188
156
-
.. list::
189
+
:SOC_BLE_SUPPORTED and SOC_BT_CLASSIC_SUPPORTED: 1) IDLE status: the coexistence of BT and BLE is controlled by Bluetooth module.
190
+
:not SOC_BT_CLASSIC_SUPPORTED: 1) IDLE status: RF module is controlled by Bluetooth module.
191
+
#) CONNECTED status: the coexistence period starts at the Target Beacon Transmission Time (TBTT) and is more than 100 ms.
192
+
#) SCAN status: Wi-Fi slice and coexistence period are longer than in the CONNECTED status. To ensure Bluetooth performance, the Bluetooth time slice will also be adjusted accordingly.
193
+
#) CONNECTING status: Wi-Fi slice is longer than in the CONNECTED status. To ensure Bluetooth performance, the Bluetooth time slice will also be adjusted accordingly.
157
194
158
-
:esp32: 1) IDLE status: the coexistence of BT and BLE is controlled by Bluetooth module.
159
-
:SOC_WIFI_SUPPORTED and SOC_BLE_SUPPORTED and not esp32: 1) IDLE status: RF module is controlled by Bluetooth module.
160
-
#) CONNECTED status: the coexistence period starts at the Target Beacon Transmission Time (TBTT) and is more than 100 ms.
161
-
#) SCAN status: Wi-Fi slice and coexistence period are longer than in the CONNECTED status. To ensure Bluetooth performance, the Bluetooth time slice will also be adjusted accordingly.
162
-
#) CONNECTING status: Wi-Fi slice is longer than in the CONNECTED status. To ensure Bluetooth performance, the Bluetooth time slice will also be adjusted accordingly.
163
195
196
+
According to the coexistence logic, different coexistence periods and time slice strategies will be selected based on the Wi-Fi and Bluetooth usage scenarios. A Coexistence policy corresponding to a certain usage scenarios is called a "coexistence scheme". For example, the scenario of Wi-Fi CONNECTED and BLE CONNECTED has a corresponding coexistence scheme. In this scheme, the time slices of Wi-Fi and BLE in a coexistence period each account for 50%. The time allocation is shown in the following figure:
164
197
165
-
According to the coexistence logic, different coexistence periods and time slice strategies will be selected based on the Wi-Fi and Bluetooth usage scenarios. A Coexistence policy corresponding to a certain usage scenarios is called a "coexistence scheme". For example, the scenario of Wi-Fi CONNECTED and BLE CONNECTED has a corresponding coexistence scheme. In this scheme, the time slices of Wi-Fi and BLE in a coexistence period each account for 50%. The time allocation is shown in the following figure:
:alt:Time Slice Under the Status of Wi-Fi CONNECTED and BLE CONNECTED
170
-
:figclass:align-center
203
+
Time Slice Under the Status of Wi-Fi CONNECTED and BLE CONNECTED
204
+
205
+
.. only:: SOC_IEEE802154_SUPPORTED
171
206
172
-
Time Slice Under the Status of Wi-Fi CONNECTED and BLE CONNECTED
207
+
The IEEE 802.15.4 module requests RF resources based on pre-assigned priorities. Normal receive operations are assigned the lowest priority, meaning Wi-Fi and BLE will take over the RF whenever needed, while 802.15.4 can only receive during the remaining time. Other 802.15.4 operations, such as transmitting or receiving ACKs and transmitting or receiving at given time, are assigned higher priorities. However, their access to RF ultimately depends on the priorities of Wi-Fi and BLE operations at that moment.
173
208
209
+
.. only:: SOC_WIFI_SUPPORTED and SOC_BT_SUPPORTED
174
210
175
-
Dynamic Priority
176
-
""""""""""""""""""""""""""""
211
+
Dynamic Priority
212
+
""""""""""""""""""""""""""""
177
213
178
-
The coexistence module assigns varying priorities to different statuses of each module, and these priorities are dynamic. For example, in every N BLE Advertising events, there is always one event with high priority. If a high-priority BLE Advertising event occurs within the Wi-Fi time slice, the right to use the RF may be preempted by BLE.
214
+
The coexistence module assigns varying priorities to different statuses of each module, and these priorities are dynamic. For example, in every N BLE Advertising events, there is always one event with high priority. If a high-priority BLE Advertising event occurs within the Wi-Fi time slice, the right to use the RF may be preempted by BLE.
0 commit comments