170 likes | 269 Views
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
E N D
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 • What parts of the solution should be implemented where? • Can lead to integration problems in later development stages • Power • 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 • Actual footprint currently • Power management • “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
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
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
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
Where to from here? • Test and debug practical image • Hopefully deploy onto a development board for full testing with the other team members