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?