Android 蓝牙驱动 概要

在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等),与蓝牙通信,使其正常工作了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值