1st
Place




AVR WINNERS ANNOUNCEMENT

1st Place

Molnar Zoltan-Istvan
Cluj-Napoca, Romania

BLUEPORT – Bluetooth interface for embedded systems

Abstract

BLUEPORT is a small, card sized module intended to be used as a smart SPI peripheral and providing seamless communication over Bluetooth for any embedded application. The application designer doesn’t have to take care about all the inner works of the Bluetooth protocol stack since these are handled by the BLUEPORT. From the application designer point of view, communication over Bluetooth is reduced to writing some API calls to the SPI port to open/close a communication channel to an other Bluetooth device and to send/receive data to/from the remote device.

BLUEPORT has its applicability in any embedded application where wireless communication over Bluetooth has to be achieved with minimum code overhead.

An AT90S8515 with 32K external SRAM, running at 11.0592MHz and an Ericsson ROK100108 Bluetooth module runs a mini Bluetooth stack, implemented according to the Generic Access Profile from the Bluetooth specification v1.1.

All Bluetooth functionality is hidden behind an easy to use API, accessible through the SPI.

Top view and block diagram of BLUEPORT:

 

Implementing the Bluetooth stack lower layers: HCI and L2CAP, BLUEPORT handles all operations required to communicate over Bluetooth: managing baseband connections, logical channels, packet segmentation/reassembly and provides 57600 bps data rate through the radio link.

BLUEPORT handles up to two baseband ACL links and up to four logical channels. Implementation in the host controller of higher layer protocols such as SDP, RFCOMM or TCP/IP is possible .

It is presented the test application for BLUEPORT which also could be a typical application: an AT90S8515 is linked to the BLUEPORT through its SPI port, and to a host PC through its hardware UART. On an other PC is running the OGENEK Bluetooth stack (see www.cstack.com). The host PC, running a simple terminal program will send through its UART at 57600bps numbers, indexing BLUEPORT API calls. The host AVR will translate these indexes in real API calls and send these calls to the BLUEPORT. Events and data received from the BLUEPORT through the SPI is sent through the UART to the PC.

With this configuration I’ve realized Bluetooth connections and data transfers initiated both from the PC running the OGENEK stack and from the PC running the terminal program. This sample application is the base for a Bluetooth dongle for the PC serial port: BLUEPORT is running the basic Bluetooth stack, while the other AVR controller runs the higher layer protocols such as SDP and RFCOMM and bridges data from the PC UART to BLUEPORT SPI port.

Typical application: an application running on a PC with Bluetooth interface monitor several embedded applications, each running a Bluetooth stack in BLUEPORT.

 

 
     
 
sponsored by