BT Basic Architecture
The Bluetooth system is divided into three parts: BT Host, HCI, and BT Controller:
BT Host: consists of three parts: Application, Framework, and Host stack:
Application: contains Bluetooth APIs and the applications built upon them, including Peripheral, Central, Scatternet, Mesh, A2DP, LE Audio, and others.
Framework: contains LE audio lib, BLE mgr lib, BT mgr lib and system lib. The LE audio lib and BLE mgr lib implement BAP CAP and BLE profile required by LE audio, BT mgr lib implements BR/EDR profile, while system lib provides various system-related functionalities.
LE audio lib:
sdk\component\bluetooth\rtk_stack\platform\amebaxxx\lib\(km4/kr4/ca32)\leaudio.a
BLE mgr lib:
sdk\component\bluetooth\rtk_stack\platform\amebaxxx\lib\(km4/kr4/ca32)\ble_mgr.a
BT mgr lib:
sdk\component\bluetooth\rtk_stack\platform\amebaxxx\lib\(km4/kr4/ca32)\bt_mgr.a
system lib:
sdk\component\bluetooth\rtk_stack\platform\amebaxxx\lib\(km4/kr4/ca32)\sysm.a
Host stack: contains Host stack lib(
sdk\component\bluetooth\rtk_stack\platform\amebaxxx\lib\(km4/kr4/ca32)\(ble_only/dual_mode)\btgap.a
), implements the functions of the upper layers of the Bluetooth protocol stack, including GAP, GATT, L2CAP, ATT, SMP, and others.
HCI: Host Controller Interface, is the only communication interface between the Controller and the Host, and all data interactions between them are carried out through this interface.
Controller: Provided as a binary array(
sdk\component\bluetooth\driver\platform\amebaxxx\hci\bt_normal_patch.c
),it implements the functions of the lower layers of the Bluetooth protocol stack, including the Link Layer, PHY, and others.
Bluetooth Architecture
BT IC Feature Support Table
Physical |
RTL8721Dx |
RTL8726EA |
RTL8720EA |
RTL8713EA |
RTL8730E |
RTL8721F |
---|---|---|---|---|---|---|
BR/EDR |
N |
Y |
N |
Y |
Y |
N |
BLE |
Y |
Y |
Y |
Y |
Y |
Y |
BLE 4.0 |
RTL8721Dx |
RTL8726EA |
RTL8720EA |
RTL8713EA |
RTL8730E |
RTL8721F |
|
---|---|---|---|---|---|---|---|
Advertiser |
Y |
Y |
Y |
Y |
Y |
Y |
|
Scanner |
Y |
Y |
Y |
Y |
Y |
Y |
|
Initiator |
Y |
Y |
Y |
Y |
Y |
Y |
|
Master |
Y |
Y |
Y |
Y |
Y |
Y |
|
Slave |
Y |
Y |
Y |
Y |
Y |
Y |
|
Link Layer Encryption |
Y |
Y |
Y |
Y |
Y |
Y |
|
Max Link (Theoretical value) |
BLE |
8 Master Link + 3 Slave Link |
8 Master Link + 3 Slave Link |
8 Master Link + 3 Slave Link |
8 Master Link + 3 Slave Link |
8 Master Link + 3 Slave Link |
8 Master Link + 3 Slave Link |
BR/EDR |
NULL |
7 Master Link + 3 Slave Link |
NULL |
7 Master Link + 3 Slave Link |
7 Master Link + 3 Slave Link |
NULL |
BLE 4.1 |
RTL8721Dx |
RTL8726EA |
RTL8720EA |
RTL8713EA |
RTL8730E |
RTL8721F |
---|---|---|---|---|---|---|
BR/EDR Secure Connection |
N |
Y |
N |
Y |
Y |
N |
Low Duty Cycle Directed Advertising |
Y |
Y |
Y |
Y |
Y |
Y |
MWS Coexistence |
N |
Y |
Y |
Y |
Y |
N |
LE Ping |
Y |
Y |
Y |
Y |
Y |
Y |
LE Link Layer Topology |
Y |
Y |
Y |
Y |
Y |
Y |
LE Scatternet |
Y |
Y |
Y |
Y |
Y |
Y |
BLE 4.2 |
RTL8721Dx |
RTL8726EA |
RTL8720EA |
RTL8713EA |
RTL8730E |
RTL8721F |
---|---|---|---|---|---|---|
LE Data Length Extension |
Y |
Y |
Y |
Y |
Y |
Y |
LE Secure Connection |
Y |
Y |
Y |
Y |
Y |
Y |
Link Layer Privacy |
Y |
Y |
Y |
Y |
Y |
Y |
Link Layer Extended Scanner Filter Policies |
Y |
Y |
Y |
Y |
Y |
Y |
BLE 5.0 |
RTL8721Dx |
RTL8726EA |
RTL8720EA |
RTL8713EA |
RTL8730E |
RTL8721F |
---|---|---|---|---|---|---|
LE 2Mbps PHY |
Y |
Y |
Y |
Y |
Y |
Y |
LE Long Range |
Y |
Y |
Y |
Y |
Y |
Y |
LE Advertising Extensions |
Y |
Y |
Y |
Y |
Y |
Y |
LE Channel Selection Algorithm #2 |
Y |
Y |
Y |
Y |
Y |
Y |
High Duty Cycle Non-Connectable Advertising |
Y |
Y |
Y |
Y |
Y |
Y |
LE Periodic Advertising |
N |
Y |
Y |
Y |
Y |
N |
BLE 5.1 |
RTL8721Dx |
RTL8726EA |
RTL8720EA |
RTL8713EA |
RTL8730E |
RTL8721F |
---|---|---|---|---|---|---|
Periodic Advertising Sync Transfer (PAST) |
N |
Y |
Y |
Y |
Y |
N |
LE Connection Oriented AoA/AoD |
N |
Y |
Y |
Y |
Y |
N |
LE Connectless AoA/AoD |
N |
Y |
Y |
Y |
Y |
N |
BLE 5.2 |
RTL8721Dx |
RTL8726EA |
RTL8720EA |
RTL8713EA |
RTL8730E |
RTL8721F |
---|---|---|---|---|---|---|
LE Connected Isochronous Stream (CIS) |
N |
Y |
Y |
Y |
Y |
N |
LE Broadcast Isochronous Streams (BIS) |
N |
Y |
Y |
Y |
Y |
N |
LE Power Control |
N |
Y |
Y |
Y |
Y |
N |
BT Feature Configuration
Link Layer Privacy: Using Peripheral as an example, , set privacy_enable
to true
in sdk\component\bluetooth\example\ble_peripheral\peripheral.c
.
LE Advertising Extensions: Set RTK_BLE_5_0_AE_ADV_SUPPORT
and RTK_BLE_5_0_AE_SCAN_SUPPORT
to 1
in sdk\component\bluetooth\api\include\bt_api_config.h
.
LE Periodic Advertising: Set the corresponding SOC’s RTK_BLE_5_0_AE_ADV_SUPPORT
, RTK_BLE_5_0_AE_SCAN_SUPPORT
, RTK_BLE_5_0_PA_ADV_SUPPORT
and RTK_BLE_5_0_PA_SYNC_SUPPORT
to 1
in sdk\component\bluetooth\api\include\bt_api_config.h
.
Periodic Advertising Sync Transfer (PAST): Set the corresponding SOC’s RTK_BLE_5_0_AE_ADV_SUPPORT
, RTK_BLE_5_0_AE_SCAN_SUPPORT
, RTK_BLE_5_0_PA_ADV_SUPPORT
, RTK_BLE_5_0_PA_SYNC_SUPPORT
RTK_BLE_5_1_PAST_SENDER_SUPPORT
and RTK_BLE_5_1_PAST_RECIPIENT_SUPPORT
to 1
in sdk\component\bluetooth\api\include\bt_api_config.h
.
SMP OOB: Enabled by default, you can set RTK_BLE_SMP_OOB_SUPPORT
to 0
in sdk\component\bluetooth\api\include\bt_api_config.h
to disable it.
LE Data Length Extension: Enabled by default, you can set RTK_BLE_4_2_DATA_LEN_EXT_SUPPORT
to 0
in sdk\component\bluetooth\api\include\bt_api_config.h
to disable it.
SET PHYS: Enabled by default, you can set RTK_BLE_5_0_SET_PHYS_SUPPORT
to 0
in sdk\component\bluetooth\api\include\bt_api_config.h
to disable it.
LE POWER CONTROL: Set RTK_BLE_5_2_POWER_CONTROL_SUPPORT
to 1
in sdk\component\bluetooth\api\include\bt_api_config.h
.
EATT: Set RTK_BT_5_2_EATT_SUPPORT
to 1
in sdk\component\bluetooth\api\include\bt_api_config.h
.