Skip to content

Commit 80f9c87

Browse files
committed
Updated architecture.
1 parent 6754faa commit 80f9c87

File tree

2 files changed

+29
-19
lines changed

2 files changed

+29
-19
lines changed

src/Architecture.md

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,36 @@
11
# Architecture
22

3+
## Hardware
4+
5+
### General
6+
Wireless communications on the ESP32 chip are interfaced via an RF (Radio Frequency) [peripheral designed by Riviera-Waves](https://www.ceva-ip.com/press/espressif-licenses-and-deploys-ceva-bluetooth-in-esp32-iot-chip/) (now [Ceva-Waves](https://www.ceva-ip.com/)).
7+
8+
### Diagram
39
```mermaid
410
block-beta
511
columns 2
6-
block:wifi["Wi-Fi"]:1
7-
columns 1
8-
wifimac["Wi-Fi MAC"]
9-
wifibb["Wi-Fi Baseband"]
10-
end
11-
block:bt["Bluetooth"]:1
12-
columns 1
13-
btlc["Bluetooth Link Controller"]
14-
btbb["Bluetooth Baseband"]
15-
end
16-
block:rf["Radio frequency"]:2
17-
clkgen["Clock generator"]
18-
switch["Switch"]
19-
balun["Balun"]
20-
rfrx["RF receiver"]
21-
rftx["RF transmit"]
22-
end
12+
wifibb["Wi-Fi Baseband"]:1
13+
btbb["Bluetooth Baseband"]:1
14+
adcs["ADCs"]:1
15+
dacs["DACs"]:1
16+
rfsynth["RF Synthesizer"]:1
17+
rfmixer["RF Mixer"]:1
18+
balun["Balun"]:2
19+
antenna["Antenna"]:2
2320
```
21+
**NOTE:** This diagram is an "educated" guess. If you know any better or seek someone to blame for incorrectness: [Frostie314159](https://github.com/Frostie314159).
2422

25-
Wireless communications on the ESP32 chip are interfaced via an RF (Radio Frequency) [peripheral designed by Riviera-Waves](https://www.ceva-ip.com/press/espressif-licenses-and-deploys-ceva-bluetooth-in-esp32-iot-chip/) (now [Ceva-Waves](https://www.ceva-ip.com/)).
23+
### Description
24+
The air interface on the ESP32 consists of two parts. The first is the RF frontend, which is in charge of everything analog. The second is the basebands, which implement the physical layer for WiFi and Bluetooth. Data is shared between these two, in the form of a digital quadrature signal.
25+
26+
#### Basebands
27+
As previously stated, the basebands implement the PHY of WiFi and Bluetooth. Each baseband is it's own peripheral and is controlled individually.
28+
29+
#### RF Frontend
30+
The RF frontend contains a balun, RF synthesizer, RF mixer, RF switch and an analog/digital frontend consisting of two ADCs and two DACs. The reason there are two is, that the ESP32 uses complex/IQ sampling. When a signal arrives from one of the basebands, it passes through the DACs and gets converted to an IQ signal, which then passes through the RF switch and enters the mixer, where it's converted to RF. For receiving it's the whole processes in reverse.
31+
The purpose of the RF switch is to select between the TX and RX paths inside the chip. It can also be set to bridge TX and RX which is used for calibrating the IQ imbalance caused by manufacturing inaccuracies.
2632

27-
On top of that, software stacks for Wi-Fi, Bluetooth and others can be run.
33+
## Software
34+
The hardware on the ESP32 is controlled by proprietary blobs, which are interfaced with through a shallow API.
35+
### WiFi
36+
The WiFi peripheral on the ES32 is controlled by two FreeRTOS tasks, one of which handles the MAC and the other one the PHY. They interface with each other through a number of message queues, on top of which an `ioctl`-interface exists. Espressif chose a SoftMAC architecture for the ESP32, with only ACKing implemented in hardware.

src/Glossary.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
| Short term | Meaning | Notes |
44
| -- | -- | -- |
55
| MAC | Medium Access Control | This is context dependent |
6+
| PHY | Physical Layer | |
67
| RF | Radio frequency | |
78
| ISM Band | Industrial Scientific and Medical Band | The frequency band, in which WiFi, BT and IEEE 802.15.4 operate, is the 2.4GHz ISM BAND |
89
| WLAN | Wireless Local Area Network | This is defined in IEEE 802.11 |

0 commit comments

Comments
 (0)