首页文章android u蓝牙驱动 手机蓝牙驱动android手机驱动「android u蓝牙驱动 手机蓝牙驱动」

android u蓝牙驱动 手机蓝牙驱动android手机驱动「android u蓝牙驱动 手机蓝牙驱动」

时间2025-01-16 14:35:41发布yu分类文章浏览142
导读:Android之蓝牙驱动开发总结一 Bluetooth基本概念1二 Android Bluetooth架构12.1 Bluetooth架构图12.2 Bluetooth代码层次结构3三 Bluetooth协议栈分析4...


Android之蓝牙驱动开发总结

一 Bluetooth基本概念1

二 Android Bluetooth架构1

2.1 Bluetooth架构图1

2.2 Bluetooth代码层次结构3

三 Bluetooth协议栈分析4


3.1 蓝牙协议栈4

3.2 Android与蓝牙协议栈的关系5

四 Bluetooth之HCI层分析5

4.1 HCI层与基带的通信方式6

4.2 包的分析及研究7

4.3 通信过程的研究与分析8

五 Bluetooth之编程实现8

5.1 HCI层编程8

5.2 L2CAP层编程10

5.3 SDP层编程12

六 Bluetooth之启动过程实现13

6.1 Bluetooth启动步骤14

6.2 Bluetooth启动流程14

6.3 Bluetooth数据流向14

6.4 Bluez控制流程14

6.5 Bluetooth启动过程分析15

七 Bluetooth之驱动移植15

7.1 android系统配置15

7.2 启动项修改16

7.3 电源管理rfkill驱动16

7.4 Rebuild Android image and reboot16

7.5 实现BT睡眠唤醒机制16

7.6 系统集成17

八 Bluetooth之调试与编译17

8.1 Bluetooth驱动调试17

8.2 Bluetooth 调试工具18

九 Bluetooth之应用程序开发18

9.1 Bluetooth的API开发18

9.2 The Basics开发18

9.3 Bluetooth Permissions开发19

9.4 Setting Up Bluetooth服务19

9.5 Finding Devices服务20

9.6 Connecting Devices服务22

9.7 Managing a Connection服务26

9.8 Working with Profiles服务28

十 总结与疑问29

一 Bluetooth基本概念

蓝牙是无线数据和语音传输的开放式标准,它将各种通信设备、计算机及其终端设备、各种数字数据系统、甚至家用电器采用无线方式联接起来。它的传输距离为10cm~10m,如果增加功率或是加上某些外设便可达到100m的传输距离。它采用2.4GHz I频段和调频、跳频技术,使用权向纠错编码、ARQ、TDD和基带协议。TDMA每时隙为0.625μs,基带符合速率为1Mb/s。蓝牙支持64kb/s实时语音传输和数据传输,语音编码为CVSD,发射功率分别为1mW、2.5mW和100mW,并使用全球统一的48比特的设备识别码。由于蓝牙采用无线接口来代替有线电缆连接,具有很强的移植性,并且适用于多种场合,加上该技术功耗低、对人体危害小,而且应用简单、容易实现,所以易于推广。

蓝牙技术的系统结构分为三大部分:底层硬件模块、中间协议层和高层应用。底层硬件部分包括无线跳频(RF)、基带(BB)和链路管理(LM)。无线跳频层通过2.4GHz无需授权的I频段的微波,实现数据位流的过滤和传输,本层协议主要定义了蓝牙收发器在此频带正常工作所需要满足的条件。基带负责跳频以及蓝牙数据和信息帧的传输。链路管理负责连接、建立和拆除链路并进行安全控制。

二 Android Bluetooth架构

2.1 Bluetooth架构图

Android蓝牙系统分为四个层次,内核层、BlueZ库、BlueTooth的适配库、BlueTooth的JNI部分、Java框架层、应用层。下面先来分析Android的蓝牙协议栈。

图1 面向库的架构视图

Linuxkernel层:

bluez协议栈、uart驱动, h4协议, hci,l2cap, sco, rfcomm

bluez层:

这是bluez用户空间的库,开源的bluetooth代码,包括很多协议,生成libbluetooth.so。

library层:

libbluedroid.so等

framework层:

实现了Headset /Handsfree 和 A2DP/AVRCP profile,但其实现方式不同Handset/Handfree是直接 在bluez的RFCOMM Socket上开发的,没有利用bluez的audio plugin,而A2DP/AVRCP是在bluez的audio plugin基础上开发的,大大降低了实现的难度。

Android的蓝牙协议栈采用BlueZ来实现,BlueZ分为两部分:内核代码和用户态程序及工具集。

图2 面向进程的架构视图

2.2 Bluetooth代码层次结构

(1)JAVA层

巴音郭楞蒙古版权声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com

展开全文READ MORE
驱动手机蓝牙蓝牙手机
雷鸟手机和红米手机哪个好雷鸟手机「雷鸟手机和红米手机哪个好」 手机怎么调不在服务区手机暂停服务是怎么回事「手机怎么调不在服务区」