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 * :ref:`hci_uart <bluetooth-hci-uart-sample>`
101 * :ref:`hci_usb <bluetooth-hci-usb-sample>`
102 * :ref:`hci_spi <bluetooth-hci-spi-sample>`
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
115 * **Host-only build**: A Zephyr OS Host build will contain the Application and
116 the BLE Host, along with an HCI driver (UART or SPI) to interface with an
125 used for Controller-only builds can be built as Host-only
128 Controller, and it is used exclusively for single-chip (SoC) configurations.
137 used for Controller-only builds can be built as Combined
139 The picture below shows the SoC or single-chip configuration when using a Zephyr
147 A Combined build on a Single-Chip configuration
149 When using connectivity or dual-chip configurations, several Host and Controller
154 :alt: BLE dual-chip configuration builds
156 Host-only and Controller-only builds on dual-chip configurations
161 contains the application, the BLE Host and the selected HCI driver (UART or
163 :ref:`hci_uart <bluetooth-hci-uart-sample>`, or the
164 :ref:`hci_spi <bluetooth-hci-spi-sample>` app to provide an interface to
170 via UART or USB to one or more instances of the Zephyr OS Controller build.
181 The host stack. This is where the HCI command and event handling
186 Bluetooth Controller implementation. Implements the controller-side of
187 HCI, the Link Layer as well as access to the radio transceiver.
194 HCI transport drivers. Every HCI transport needs its own driver. For example,
195 the two common types of UART transport protocols (3-Wire and 5-Wire)
213 The Bluetooth Host implements all the higher-level protocols and
214 profiles, and most importantly, provides a high-level API for
224 Lowest down in the host stack sits a so-called HCI driver, which is
225 responsible for abstracting away the details of the HCI transport. It
227 host, and vice-versa.
229 Perhaps the most important block above the HCI handling is the Generic
233 * Connection-oriented roles
239 * Connection-less roles
245 Each role comes with its own build-time configuration option:
248 connection-oriented roles central implicitly enables observer role, and
259 Most Zephyr-based BLE devices will most likely be peripheral-role
271 Central role may not be as common for Zephyr-based devices as peripheral
303 non-connectable, i.e. other device will not be able to connect to it.
320 Man-In-The-Middle (MITM) attacks, it is recommended to use some
321 out-of-band channel during the pairing. If the devices have a sufficient
325 a set of optional callbacks that can be used during the pairing - if the
352 using separate mesh-specific APIs.
360 so-called Connection-oriented Channels (CoC) mode. More information on
390 .. _bluetooth-persistent-storage:
400 .. code-block:: none
414 .. _Bluetooth Specification: https://www.bluetooth.com/specifications/bluetooth-core-specification