Bluetooth stack
A Bluetooth stack refers to an implementation of the Bluetooth protocol stack.
Bluetooth stacks can be roughly divided into two:
- 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.
- Embedded system implementations intended for use in devices where resources are limited and demands are lower, such as Bluetooth peripheral devices.
General-purpose implementations
Windows
WIDCOMM
WIDCOMM is 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.[1] Broadcom continues to license the stack for inclusion with many Bluetooth-powered end-user devices.
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.
Despite its inclusion with Windows, many devices still come with bundled third-party stacks which cannot be used simultaneously. Microsoft has not released an official Bluetooth stack for older Windows versions, such as Windows 2000 or Windows Me.
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 some Dell and Sony laptops.
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 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.[2] It was initially developed by Qualcomm, and is available for Linux kernel versions 2.4.6 and up.
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.
See also
References
- ^ "Broadcom to Acquire WIDCOMM, the Industry's Leading Provider of Critical Software for Bluetooth® Wireless Devices" (Press release). Broadcom. 2004-04-19. Retrieved 2007-03-02.
- ^ Selim Çιracι, Evren Karaca, Mark Reşat Pariente (2006-05-19). "Bluetooth Audio Streaming on Linux-Based Embedded Devices" (PDF). Bilkent University. Retrieved 2007-03-05.
{{cite journal}}
: Check date values in:|date=
(help); Cite journal requires|journal=
(help)CS1 maint: multiple names: authors list (link)