http://blog.sina.com.cn/s/blog_6fba73770100nme8.html

http://blog.csdn.net/jmq_0000/article/details/7379802


在linux中,蓝牙设备驱动是网络设备,使用网络接口。 蓝牙设备的网络协议,所定义的协议族为: AF_BLUETOOTH (31) 蓝牙协议部分头文件: include/net/bluetooth/hci_core.h include/net/bluetooth/bluetooth.h 蓝牙协议源代码文件: net/bluetooth/* 蓝牙系统的协议和驱动程序在内核进行menuconfig配置时,配置选项为:networking support >bluetooth subsystem support >bluetooth device drivers. 蓝牙协议对应的配置文件为:net/bluetooth/Kconfig;蓝牙系统驱动程序对应的配置文件为:drivers/bluetooth/Kconfig 在蓝牙协议部分,包含了主控制接口(HCI),SCO(SCO audio links)模块,L2CAP(Logical Link Control and Adaptation Protocol)模块,BNEP模块(蓝牙网络封装协议)等,BNEP等模块内容包含在其中的几个子目录中。 蓝牙驱动中的不同接口文件: hci_vhci.c 蓝牙虚拟主控制器驱动程序; hci_uart.c 蓝牙串口驱动程序; btusb.c    蓝牙usb驱动程序; btsdio.c   蓝牙sdio驱动程序;

 Android 的蓝牙协议栈使用BlueZ实现来对GAP, SDP以及RFCOMM等应用规范的支持,并获得了SIG认证。由于Bluez使用GPL授权, 所以Android 框架通过D-BUS IPC来与bluez的用户空间代码交互以避免使用未经授权的代码。             

 蓝牙的驱动程序一般都通过标准的HCI控制实现。但根据硬件接口和初始化流程的不同,又存在一些差别。这类初始化动作一般是一些晶振频率,波特率等基础设置。比如CSR的芯片一般通过BCSP协议完成最初的初始化配置,再激活标准HCI控制流程。对Linux来说,一旦bluez可以使用HCI与芯片建立起通信(一般是hciattach + hciconfig),便可以利用其上的标准协议(SCO, L2CAP等),与蓝牙通信,使其正常工作了。



更多相关文章

  1. Android&Js相关
  2. Android(安卓)sdk manager 显示 “Done loading packages”,停下
  3. 使用http协议获取网络图片
  4. Android平台开发-Bluez function porting-蓝牙功能移植
  5. Linux 安装android
  6. Android系统中的输入输出设备
  7. Android(安卓)关于蓝牙的文章
  8. Android(安卓)1.5 1.6 2.0 2.1 2.2区别
  9. Android的蓝牙实例代码中找不到REQUEST_ENABLE_BT

随机推荐

  1. Android:Service之远程服务和AIDL的创建
  2. Android技术归档
  3. Android下进行单元测试
  4. Android 保存 JNI 层 opencv cvMat 图片
  5. XML中的命名空间问题
  6. Android内核编译
  7. Android图形系统分析与移植 -- 四、Surfa
  8. Android:shape的使用详解(2)
  9. Android AES加密算法,现在实际上
  10. android 触屏反馈原理