Lines Matching +full:hci +full:- +full:uart

1 .. _bluetooth-arch:
13 Zephyr supports mainly Bluetooth Low Energy (BLE), the low-power
18 .. _bluetooth-layers:
27 multiple (non real-time) network and transport protocols enabling
31 low-level, real-time protocol which provides, in conjunction with the Radio
32 Hardware, standard-interoperable over-the-air communication. The LL schedules
39 .. _bluetooth-hci:
46 (HCI) protocol. HCI can be implemented over a range of different physical
47 transports like UART, SPI, or USB. This protocol defines the commands that a Host
49 the format for user and protocol data that needs to go over the air. The HCI
54 .. _bluetooth-configs:
63 * **Single-chip configuration**: In this configuration, a single microcontroller
65 system-on-chip (SoC) implementation. In this case the BLE Host and the BLE
67 Bluetooth specification does not specify how HCI is implemented in this
68 single-chip configuration and so how HCI commands, events, and data flows between
69 the two can be implementation-specific. This configuration is well suited for
72 * **Dual-chip configuration**: This configuration uses two separate ICs,
74 and the Radio Hardware. This is sometimes also called a connectivity-chip
76 Hosts when using the Zephyr OS as a Controller. Since HCI ensures
85 .. _bluetooth-build-types:
94 BLE-enabled builds that can be produced from the Zephyr project codebase:
96 * **Controller-only build**: When built as a BLE Controller, Zephyr includes
98 depending on the physical transport chosen for HCI:
100 * :zephyr:code-sample:`bluetooth_hci_uart`
101 * :zephyr:code-sample:`bluetooth_hci_usb`
102 * :zephyr:code-sample:`bluetooth_hci_spi`
104 This application acts as a bridge between the UART, SPI or USB peripherals and
105 the Controller subsystem, listening for HCI commands, sending application data
116 * **Host-only build**: A Zephyr OS Host build will contain the Application and
117 the BLE Host, along with an HCI driver (UART or SPI) to interface with an
126 together with enabling the device tree node for some other HCI driver and making
127 sure that the ``zephyr,bt-hci`` device tree chosen property points at it.
130 used for Controller-only builds can be built as Host-only
133 Controller, and it is used exclusively for single-chip (SoC) configurations.
143 used for Controller-only builds can be built as Combined
145 The picture below shows the SoC or single-chip configuration when using a Zephyr
153 A Combined build on a Single-Chip configuration
155 When using connectivity or dual-chip configurations, several Host and Controller
160 :alt: BLE dual-chip configuration builds
162 Host-only and Controller-only builds on dual-chip configurations
167 contains the application, the BLE Host and the selected HCI driver (UART or
169 :zephyr:code-sample:`bluetooth_hci_uart`, or the
170 :zephyr:code-sample:`bluetooth_hci_spi` app to provide an interface to
176 via UART or USB to one or more instances of the Zephyr OS Controller build.
187 :ref:`The host stack <bluetooth_le_host>`. This is where the HCI command and
192 :ref:`Bluetooth LE Controller <bluetooth-ctlr-arch>` implementation.
193 Implements the controller-side of HCI, the Link Layer as well as access to the
201 HCI transport drivers. Every HCI transport needs its own driver. For example,
202 the two common types of UART transport protocols (3-Wire and 5-Wire)
206 :zephyr:code-sample-category:`Sample Bluetooth code <bluetooth>`. This is a good reference to
217 .. _Bluetooth Specification: https://www.bluetooth.com/specifications/bluetooth-core-specification