Tuesday, April 1, 2008

Bluetooth stack


A Bluetooth stack refers to an implementation of the Bluetooth protocol stack.

Bluetooth stacks can be roughly divided into two:

1. General-purpose implementations that are written with emphasis on feature-richness and flexibility, usually for desktop computers. Support for additional Bluetooth profiles can typically be added through drivers.
2. Embedded system implementations intended for use in devices where resources are limited and demands are lower, such as Bluetooth peripheral devices.

Generally, only a single stack can be used at any time: switching usually requires uninstalling the current stack, although a trace of previous stacks remains in the registry. However, there are some cases where two stacks can be used on the same computer, each using their own separate Bluetooth radio hardware

General-purpose implementations

Windows

Widcomm

Widcomm was the first Bluetooth stack for the Windows operating system. The stack was initially developed by a company named Widcomm Inc., which was acquired by Broadcom Corporation in April 2004. Broadcom continues to license the stack for inclusion with many Bluetooth-powered end-user devices.

An API is available for interacting with the stack from a custom application. For developers there is also a utility named BTServer Spy Lite bundled with the stack (some vendor-tied versions excluded) which monitors Bluetooth activity on the stack at a very low level - although the category and level of trace is configurable. Uniquely, this stack also allows use of RFCOMM without creating a virtual serial port in the operating system.

Microsoft Windows stack

Windows XP includes a built-in Bluetooth stack starting with the Service Pack 2 update, released on 2004-08-06.

Prior to this, Microsoft released a QFE of its Bluetooth stack for Windows XP Service Pack 1 labelled as QFE323183. Microsoft only released this directly to third-party companies and did not directly release it to the public. The third-party companies were then allowed to release the QFE as part of their own Bluetooth device's software installation. Microsoft no longer supports this QFE.

Windows Vista also includes a built-in Bluetooth stack which is an expansion over the Windows XP Bluetooth stack. In addition to supporting more Bluetooth profiles than Windows XP Service Pack 2, it also supports third-party driver development which enables third-parties to add support for additional Bluetooth Profiles. This was lacking in the Windows XP Service Pack 2 built-in Bluetooth stack, which only allowed application development on top of the Microsoft Bluetooth stack, which some observers felt slowed the adoption of the Microsoft Windows Bluetooth stack. This stack does however provide RFCOMM support using sockets instead of virtual serial ports.

Microsoft has not released an official Bluetooth stack for older Windows versions, such as Windows 2000 or Windows Me.

EtherMind stack

EtherMind is a Bluetooth protocol stack from MindTree's for embedded devices and host platforms.[citation needed] A non-disclosure agreement is required to obtain the API documentation.

Toshiba stack

Toshiba has created its own Bluetooth stack for use on Microsoft Windows. This stack is not the same as the Microsoft Windows Bluetooth stack but is its own version. Toshiba licenses their stack to other OEMs and has shipped with some Fujitsu Siemens,Dell and Sony laptops. A non-disclosure agreement must be signed to obtain the API.

BlueSoleil

BlueSoleil is a product of the IVT Corporation, which produces stacks for embedded devices and desktop systems. The stack is available in both standard and VOIP versions for Windows desktop operating system. The desktop version supports: DUN, FAX, HFP, HSP, LAP, OBEX, OPP, PAN SPP, AV, BIP, FTP, GAP, HID, SDAP, and SYNC. An API is freely available. The graphical user interface provided shows API activity in real time, which aids in software development.

Linux

The Linux operating system currently has two widespread Bluetooth stack implementations:

* BlueZ, included with the official Linux kernel distributions, initially developed by Qualcomm.
* Affix, developed by Nokia Research Center.

BlueZ

BlueZ is the official[citation needed] Bluetooth stack for Linux. Its goal is to make an implementation of the Bluetooth wireless standards specifications for Linux. As of 2006, the BlueZ stack supports all core Bluetooth protocols and layers.It was initially developed by Qualcomm, and is available for Linux kernel versions 2.4.6 and up.

In addition to the basic stack, the Bluez-utils and Bluez-firmware packages contain low level utilities such as dfutool which can interrogate the Bluetooth adapter chipset to determine whether its firmware can be upgraded.

hidd is the Bluetooth HID daemon

Embedded implementations

lwBT

lwBT is an open source lightweight Bluetooth protocol stack for embedded systems. It acts as a network interface for the lwIP protocol stack.

It supports some Bluetooth protocols and layers, such as the H4 and BCSP UART layers. Supported higher layers include: HCI, L2CAP, SDP, BNEP, RFCOMM and PPP. The supported profiles are: PAN (NAP, GN, PANU), LAP, DUN and Serial Port.

lwBT has been ported to the Renesas M16C and Atmega AVR line of microcontrollers, and Linux as well as Windows.

Windows CE

Windows CE is Microsoft's embedded operating system, which also supports Bluetooth. However, different stacks can be installed on windows CE devices, including Microsoft, Widcomm, and Toshiba, depending on the embedded device on which the OS is installed.

BlueLet

Also a product of IVT Corporation. DUN, FAX, HFP, HSP, LAP, OBEX, OPP, PAN and SPP are currently supported.

No comments: