Bluetooth Architecture Overview
Bluetooth Architecture Overview
Abstract
Describes the Bluetooth layered architecture as implemented on Windows Embedded Compact 7, and
how it relates to the software implemented on Bluetooth controllers.
The layered architecture of the Host Protocol Stack
The supported Bluetooth Profiles
The Host Controller Interface that connects the Host to a Bluetooth controller
Bluetooth Host...................................................................................................................................... 5
Bluetooth Stack................................................................................................................................. 5
Bluetooth Profile Component ............................................................................................................. 7
Bluetooth-Enabled Applications...................................................................................................... 8
Profiles .......................................................................................................................................... 8
Bluetooth Stack Extensions............................................................................................................ 9
Windows Embedded Compact Component ..................................................................................... 10
Bluetooth Controller............................................................................................................................ 11
Conclusion ......................................................................................................................................... 12
Introduction
This article provides an overview of the layered Bluetooth architecture for Windows Embedded
Compact 7. It describes the layers of this architecture and how they relate to each other, so that
embedded OS designers and developers can identify the components that are referenced in the
Bluetooth (http://go.microsoft.com/fwlink/?LinkId=209918) documentation for Windows Embedded
Compact 7.
Each layer is a collection of components that include protocol implementations, APIs, applications, and
services. The description of each layer includes its contents, purpose, and location in relation to the
Bluetooth stack. These layers are divided into three primary components.
The following table describes these components from the highest to lowest level layers.
Component Description
Host Controller Interface (HCI) Transport Layer Delivers data between the Bluetooth host and
the Bluetooth controller.
Windows Embedded Compact 7 provides core implementations of the Bluetooth host and HCI transport
layer that are compatible with Bluetooth 2.1 + EDR compliant Bluetooth controllers.
Figure 1 below displays the location of each layer in the Bluetooth architecture for Windows Embedded
Compact 7.
Bluetooth Host
The Bluetooth host contains the logical layers of the Bluetooth architecture. These layers include the
core implementation of the Bluetooth stack and the layers that support and extend the functionality of
the Bluetooth stack.
The following table describes the components of the Bluetooth host.
Component Description
Windows Embedded Compact Component The basic layers that support application
development over the Bluetooth stack and
provide the Bluetooth stack with the most
common functionality.
Networking and communications protocols and
APIs used by the Bluetooth stack and
Bluetooth-enabled applications. Not used
exclusively for Bluetooth functionality.
Bluetooth Stack
In this article, the term "Bluetooth stack" (also known as "host protocol stack") refers to the Windows
Embedded Compact implementation of the Bluetooth protocol stack. The Bluetooth protocol stack is a
layered set of protocols that define the core Bluetooth functionality and is managed by the Bluetooth
Special Interest Group (SIG). The Bluetooth stack is a Bluetooth 2.1 + EDR compliant stack. For
information on the specification for the Bluetooth protocol stack, see the Bluetooth SIG website
(http://go.microsoft.com/fwlink/?LinkId=182073).
On Windows Embedded Compact 7, the Bluetooth stack implements the host controller interface
(HCI) and the host stack portion of the Bluetooth protocol stack. Each layer of the Bluetooth stack
implements a unique protocol or service. For information on adding the Bluetooth stack to your OS, see
Bluetooth Catalog Items and Sysgen Variables (http://go.microsoft.com/fwlink/?LinkId=209918). The
following table describes the layers of the Bluetooth stack in Windows Embedded Compact 7.
Layer Description
COM Port Emulation An API that supports virtual COM ports over
RFCOMM channels.
Radio Frequency Communications (RFCOMM) Emulates RS-232 serial ports over the L2CAP
Serial Port Emulation layer. This protocol is based on the TS07.10
specification at the ETSI (European
Telecommunications Standards Institute)
website
(http://go.microsoft.com/fwlink/?LinkId=209939).
Includes the following functionality:
Base for COM port emulation
Base for derived point-to-point protocols
Implements multiplexing
Implements flow control
Carrier for attention (AT) commands
Transport layer for Object Exchange
protocol (OBEX) over Bluetooth
Logical Link Control and Adaption Protocol Communicates directly with the HCI. Converts
(L2CAP) data from high-level layers into a format that is
Layer Description
supported by lower-level layers of a Bluetooth
controller.
Provides the following services:
Packet SAR (Segmentation and
Reassembly), which converts packets from
high-level layers into packets supported by
the Baseband layer
Protocol multiplexing
Group abstraction, which maps groups of
addresses from high-level layers to
piconets, which are supported by the
Baseband layer
Host Controller Interface (HCI) Provides the Bluetooth stack with access to a
Bluetooth controller. An interface for Bluetooth
hardware that is responsible for controller
management, link establishment, and
maintenance.
Has direct access to the L2CAP layer.
Communicates with a Bluetooth controller
through the HCI transport layer.
Type Description
Type Description
Embedded Compact 7. You can also create
your own profiles.
Bluetooth-Enabled Applications
The primary way for an application to use Bluetooth technology is through the Winsock interface, which
exposes the RFCOMM layer to the application. A Bluetooth-enabled application must then interface
with certain profiles to support specific types of Bluetooth activity. For example, an application must
interface with the human interface device (HID) profile to use a wireless keyboard over a Bluetooth
connection.
Profiles
A Bluetooth profile is a specification that describes how devices must use Bluetooth protocols to
implement a particular task. These descriptions detail how Bluetooth devices must communicate when
an application implements specific functionality. For specifications on Bluetooth profiles, see the
Bluetooth SIG website (http://go.microsoft.com/fwlink/?LinkId=182073).
The following table describes the profiles that are supported by Windows Embedded Compact 7.
Profile Description
Generic Access Profile (GAP) Defines the generic requirements for detecting
and establishing a connection to a Bluetooth
device. All profiles are based on GAP.
A core profile that is available by default.
Generic Object Exchange Profile (GOEP) Defines the requirements for OBEX usage
models.
A core profile that is available by default.
Serial Port Profile (SPP) Defines the requirements for virtual serial port
connections over the RFCOMM layer. Each
serial port connection can connect two
Bluetooth-enabled devices.
Profile Description
A core profile that is available by default.
Object Push Profile (OPP) Defines how to exchange small data objects,
such as calling card exchanges, between
Bluetooth devices using the OBEX protocol.
Depends on GOEP.
File Transfer Profile (FTP) Defines how to transfer data and manipulate
objects on or with a peer Bluetooth device.
Depends on GOEP.
Layer Description
Transport Driver Interface Layer (TDI) An adaption layer for Winsock-based APIs. It is
used by Winsock to communicate with the
transport stack. This layer enables Winsock
APIs to access the callback mechanism that is
built into the Bluetooth stack.
Network Driver Interface Specification (NDIS) An API for communicating with network
interface cards. Used by the PAN profile.
For information on NDIS, see Network Drivers
Layer Description
(http://go.microsoft.com/fwlink/?LinkId=209918).
Driver Description
Bluetooth Universal Transport An intermediate transport driver that detects and loads the appropriate
Manager (BthUniv) built-in or third-party transport driver.
Built-In Transport Drivers Built-in transport drivers that are supported by the HCI transport layer.
The following list displays the supported transport drivers that can be
found in
%_WINCEROOT%\Public\Common\OAK\Drivers\Bluetooth\Transports.
USB – Bthusb.dll
UART – Bthuart.dll
BCSP – Bthcsr.dll
For more information on the HCI transport layer, see HCI Transport Layer Reference
(http://go.microsoft.com/fwlink/?LinkId=209918).
Bluetooth Controller
The Bluetooth controller is a Bluetooth device such as a USB dongle. The Bluetooth controller
implements the lowest level protocols from the Bluetooth protocol stack, including the physical layer
and radio transceiver. This component is not provided by Windows Embedded Compact 7. For the
specifications of these protocols, see the Bluetooth 2.1 + EDR protocol stack specification at the
Bluetooth SIG website (http://go.microsoft.com/fwlink/?LinkId=182073).
The Bluetooth controller receives commands from the Bluetooth host through the HCI transport layer.
Layer Description
Conclusion
The Bluetooth architecture for Windows Embedded Compact 7 is a layered architecture that consists of
two primary components that are implemented by Microsoft: the Bluetooth host and the HCI transport
layer. The Bluetooth host contains the logical layers such as the Bluetooth stack, Bluetooth profile
component, and Windows Embedded Compact component. The HCI transport layer transfers data
between the Bluetooth host and Bluetooth controller. The Bluetooth controller is the hardware
component of the Bluetooth architecture and is not provided by Microsoft. The Bluetooth controller
contains the physical layers of the Bluetooth architecture, such as the LMP, Baseband, and Radio
layers.
Additional Resources
Windows Embedded website (http://go.microsoft.com/fwlink/?LinkID=183524)