Linux 下Bluetooth开发包--BTX的开发的背景介绍

来源:互联网 发布:ios编程语言是什么 编辑:程序博客网 时间:2024/05/16 23:36
作者:Sam(甄峰) sam_code@hotmail.com

BTX背景介绍:
Sam所在公司需要Linux下与Bluetooth Game Control连接,Linux为操作系统的嵌入式设备使用USBBluetooth Dongle与Bluetooth GameControl连接,并收发数据。Sam评估后决定用以下结构:

1. HID,L2cap, hci 这三层protocol使用Linux下官方Bluetooth 协议栈--BlueZ.Bluez详细介绍见:[注1]

2. Bluetooth USB Dongle的驱动使用BlueZ提供的hci_usb 驱动。

3. 使用BlueZ提供的函数库和应用程序接口,创建一个针对手柄的连接库。即为BTX。这个手柄连接库提供的接口如下:
1>.Bluetooth USB Dongle初始化
2>.得到Bluetooth USB Dongle信息。
3>.查找周边Bluetooth Device设备。
4>.连接指定手柄。
5>.断开指定手柄。
6>.读取数据。
7>.写数据。
其中连接手柄是建立2个l2cap连接。PSM=0x11. 0x13.
这一层是提供给公司与所有手柄连接的库。任何一代手柄都将使用这个库作基本连接。

4. 使用BTX库和接口,开发一套针对某一代手柄所使用的库。BTRC--Bluetooth Remote Control.
因为每一代手柄连接过程中都有自己独特的加密与验证过程。并且数据格式也各不相同。所以使用这一层将这些不同与上层程序隔绝开来。

5.使用BTRC库,开发一套包含不同动作分析 的库供更上层程序使用。



注[1]:
BlueZ介绍:
Linux OS开放的bluetooth 协议栈主要包括IBM公司的BlueDrekar, Nokia公司的Affix,Axis公司的OpenBT和官方的协议栈BlueZ.
Bluetooth协议栈BlueZ分为两部分:内核代码和用户态程序及工具集。
其中内核代码由BlueZ核心协议驱动程序组成;Bluetooth协议实现在内核源代码/net/bluetooth中。包括hci,l2cap,hid,rfcomm,sco,SDP,BNEP等协议的实现。驱动程序放在/driver/bluetooth中,包含Linux kernel对各种接口的Bluetoothdevice的驱动。例如:USB接口,串口等。
用户态程序及工具集包括应用程序接口和BlueZ工具集。BlueZ提供函数库以及应用程序接口,便于程序员开发bluetooth应用程序。BlueZutils是主要工具集,实现对bluetooth设备的初始化和控制。
原创粉丝点击