|
Architectural Overview of Intel's Bluetooth* Software Stack (continued) DEVICE INTERACTION Figure 6 shows the interactions that result when a file is transferred between two devices using Bluetooth technology.
![]() Figure 6: File transfer between devices On the left-hand side of the picture you see a PC with a Bluetooth module interfacing to the USB controller. The right-hand side of the picture shows another Bluetooth device. For the purposes of this example, it is assumed that both devices implement file transfer profile. An inquiry process results in discovery of the device, and user selection of the device in the UI and an attempt to obtain services result in the PC learning about the file transfer service on the remote device. The Bluetooth modules in the two devices have the radio, baseband, and LMP implemented in them. They also have HCI implemented as a means of interfacing with the host controller. On the PC side, access to the device HCI is enabled through USB. The PC communicates with the other device using over-the-air packets. The inquiry process is initiated by a user command (or is initiated automatically after some fixed period of time, based on user policy settings on the PC), and it results in a command to the Bluetooth host controller on the module through the HCI. This results in the LMP and baseband firmware executing the inquiry sequence. The PC discovers the other Bluetooth device, and this is communicated back to the host driver stack through some HCI events carried across USB. Thus the HCI driver communicates virtually with the HCI firmware on the host Bluetooth module to learn about the new device. To achieve this, the USB minidriver interfaces virtually with the USB firmware on the module, and the USB stack, native to the OS, interfaces with the USB controller and interfaces with the USB hardware on the host module. Once the HCI driver knows about the new device through the event, the RFBD propagates this information to the user. The user drives further actions on the device, particularly those relating to service discovery. In order to perform service discovery, the SDP and L2CAP implementations in the PC and the other Bluetooth device communicate in accordance with the Bluetooth specifications and profiles. Once the PC discovers that the other device supports file transfer, the user on the PC can initiate file transfers to the other device. In this case, the PC is the client using the file transfer service on the other device. Initiation of file transfer is performed by a drag-and-drop operation on the file. The RFCOMM driver on the PC stack communicates with the RFCOMM implementation on the device to set up the RFCOMM channels on the L2CAP. Once RFCOMM channels have been established, the two applications use the IrOBEX protocol to exchange files, in accordance with the Bluetooth profiles. This example has glossed over details relating to individual implementation features including inquiry, driver loading, service discovery, L2CAP, security, RFCOMM, virtual comm port creation, and user interfaces.
|
* Bluetooth is a trademark owned by its proprietor and used by Intel under license.