Providing Bluetooth Functionality on Embedded Devices: A Survey

Download Report

Transcript Providing Bluetooth Functionality on Embedded Devices: A Survey

Providing Bluetooth Functionality on
Embedded Devices: A look at
Embedded Operating Systems and
Bluetooth Stacks
Brian Fox
Supervisors:
Dr Greg Foster
Prof. Peter Clayton
Introduction
Part of the Automated Wireless
Identification System project
 Specifically focused on how to expose
Bluetooth functionality in embedded
devices


I.e. design and build a custom OS image
which exposes some form of API allowing
access to the Bluetooth stack
Timeline

Look at the various OS builders in use
for various embedded OS’s


This entailed identifying and studying the
architecture of some embedded OS’s on
the market and looking at the tools
provided to help create a custom image
for that OS
Create and build own custom Windows
CE .NET platform
Problems involved with Embedded
Systems Design

Hardware / Software partitioning



Power


What parts of the solution should be
implemented where?
Can lead to integration problems in later
development stages
Some microprocessors can operate in “sleep
mode” and only wake up on a timer tick
Debugging

Hooks provided in microprocessor circuitry
Embedded Operating Systems
Highly modular/componentised
 Support wide variety of target
hardware and processors through use
of BSPs
 Real-time
 Power management

Windows CE .NET


Designed around mobile devices
Minimum footprint of 200k


Power management




Actual footprint currently
“Instant On”
Control of device level power states
Wide range of board support packages
(BSPs)
Microsoft is the only vendor to supply a
Bluetooth stack with the operating system
Windows CE .NET Architecture
Applications
Embedded Shell
Remote
Connectivity
Windows CE Shell Services
WIN32 APIs
COREDLL, WINSOCK, OLE, COMMCTRL, COMMDLG, WININET, TAPI
Kernel
Library
OAL
Bootloader
GWES
Drivers
File
Manager
Device
Manager
Device
Drivers
File Drivers
OEM Hardware
Bluetooth
TCP/IP
Platform Builder

Integrated Development Environment




Provides the means to create, build, deploy and
debug a custom image of the OS
Provides an emulator to allow for simultaneous
hardware and software development
Automatically determines dependencies
between modules
Practical experience

Have built a headless operating environment
exposing Bluetooth functionality through the
WINSOCK API
Platform Builder
QNX Neutrino





Designed around microkernel and central
software bus
“Plug-in” type architecture
Inter-process communication via message
passing handled by the microkernel
OS exposes standard POSIX API
Platform creation either manual or through
use of the Momentics Professional Edition
IDE

Will run on multiple host platforms
QNX Neutrino Architecture
Wind River VxWorks

Modules implemented on top of the
core OS


Core OS consists of a microkernel and
debug agent and interacts with the BSP
Platform creation either manual or
through use of the Torando IDE
Bluetooth Stacks

Means by which the OS and
applications access and control the
Bluetooth hardware

Expose an API to application developers
Modular in concept and design
 May need to be ported to a specific OS
 Bluetooth Qualification


Need to implement all core stack layers
and Generic Access Profile and Serial
Port Profile
Microsoft Bluetooth Stack
Stonestreet One Bluetopia
Where to from here?
Test and debug practical image
 Hopefully deploy onto a development
board for full testing with the other
team members

Questions?