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.

../../_images/bt_architecture.svg

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 .