buletooth
文章平均质量分 90
yuanzhangmei1
这个作者很懒,什么都没留下…
展开
-
蓝牙连接的建立过程
物理信道(physical channel)是蓝牙系统的最底层结构,它以一伪随机跳频序列、特定的发送时槽定时、接入码及帧头编码来表征。蓝牙定义了一系列物理信道用于不同的应用,包括用于匹克网内设备通信的匹克网物理信道,用于查找设备的查找扫描物理信道和用于寻呼设备的寻呼扫描物理信道。两台设备必须采用相同的物理信道才能进行通信。主从设备建立连接的过程就是建立相同的匹克网信道的过程,这样主从设备才能以同样转载 2014-05-04 17:55:24 · 7710 阅读 · 1 评论 -
Bluedroid的结构和代码分布
在android4.2中,Google更换了android的蓝牙协议栈,从Bluez换成Bluedroid,我也是初涉这个方面,顺便记录一下。http://source.android.com/devices/bluetooth.htmlandroid development对于4.3蓝牙的介绍:android提供BlueDroid作为默认的协议栈,BlueDroid分为两转载 2014-05-05 19:22:24 · 2200 阅读 · 0 评论 -
FTS抓包看蓝牙验证的过程
1.概述 在进行蓝牙设备的连接时,为了保护个人隐私和数据保密的需要,需要进行验证。2.一些FrameFrame74:本地发送Authentication requset command00010001 00000100 00000010 00001001 00000000Opcode: 0x0411Connection Handle: 0x09 =转载 2014-05-05 19:23:13 · 4269 阅读 · 1 评论 -
FTS抓包看L2CAP Connection的建立(一)
一.概述 在前面的文章中介绍了inquiry和ACL connection的建立过程。这个连接建立后,L2CAP signaling channel(CID = 0x0001)就已经存在,可以进行L2CAP连接二.基本概念HCI ACL Data Format:Connection的建立(一)" title="FTS抓包看L2CAP Connection的建立(一)"转载 2014-05-05 19:24:43 · 2625 阅读 · 0 评论 -
FTS抓包看L2CAP Connection的建立(二)
1.概述 前面一篇博文已经介绍到远端设备对本地的Connection request进行了response,目前L2CAP的连接处于pending状态。这篇将继续抓取下面的一些packets,来看L2CAP Connection的建立过程。 2.一些FrameFrame50:HCI收到ACL Data,传到L2CAP层,是远端的information request转载 2014-05-05 19:25:34 · 1801 阅读 · 0 评论 -
在HCI层ACL Connection的建立
一.概述 上一篇博文介绍的是inquiry的整个过程中HCI层的command和event。在寻找到有效的远端蓝牙设备后,开始建立ACL连接,这里仅仅反应HCI层的数据包,对于LM层和Baseband层的数据可能需要抓取FW的log进行查看。二.建立ACL连接的过程1. Create_Connection command 该命令参数如下:BD_ADDR,转载 2014-05-05 19:26:07 · 2080 阅读 · 0 评论 -
在HCI层看从inquiry的整个过程
一.概述 在windows下寻找远端蓝牙设备,从最开始的inquiry寻找设备,到连接设备,到最后配对完成,整个HCI层所发的command和event以及Data包可以反应整个蓝牙的inquiry,pair等原理和过程。这篇笔记就是分析这个过程,结合Spec的具体描述,以此熟悉蓝牙的配对流程。二.Inquiry流程 这个流程主要是inquiry远端的蓝牙设备,不进行连转载 2014-05-05 19:27:04 · 3291 阅读 · 0 评论 -
用FTS分析蓝牙数据包
1.简介 FTS软件相当于蓝牙的数据分析仪器,它可以抓取通过蓝牙IC的数据包,从包中我们可以看到HCI,L2CAP等各层的封包数据,是一个十分有用的软件。2.HCI的command和event以及Data的格式HCI Command Format:HCI Event Format:HCI ACL Data Format:HCI SCO Data For转载 2014-05-05 19:27:43 · 1793 阅读 · 0 评论 -
Bluetooth在andriod下的开发基本操作
1.硬件 主板通过USB给蓝牙芯片供电,蓝牙芯片通过Uart接口与主板通信,通过主板的miniUSB接口可以进行andriod开发。Firmware的Log信息通过串口转USB(接串口转USB的RX和GND),可以在PC上查看。2.抓取底层Firmware的log信息 通过Bluetooth芯片的LED0 Pin可以输出Firmware的log信息,根据这些信息可以转载 2014-05-05 19:28:26 · 2755 阅读 · 1 评论 -
蓝牙4.0的LM层说明
1.概念The Link Manager Protocol (LMP) is used to control and negotiate all aspects of the operation of the Bluetooth connection between two devices. This includes the set-up and control of logical转载 2014-05-05 19:14:10 · 1058 阅读 · 0 评论 -
Bluetooth Security Manager
一.概念 The Security Manager defines methods of pairing and key distribution, a protocol for those methods and a security toolbox to be used by those methods and other parts of an LE device.Secu转载 2014-05-05 19:18:19 · 1478 阅读 · 0 评论 -
Android 4.2蓝牙介绍
Tieto公司某蓝牙大牛写得《程序员》投稿文章Android 4.2蓝牙介绍蓝牙一词源于公元十世纪丹麦国王HaraldBlatand名字中的Blatand。Blatand的英文之意就是Blue tooth。这是因为这位让丹麦人引以为傲的国王酷爱吃蓝莓以至于牙龈都被染成蓝色。由于Blatand统一了丹麦和挪威,所以,作为无线通信技术的一种,蓝牙技术之所以取名Bluetooth可谓转载 2014-05-05 16:13:32 · 1643 阅读 · 1 评论 -
蓝牙core系统体系结构
摘自core spec v4.1原创 2014-05-07 16:26:36 · 2187 阅读 · 0 评论 -
蓝牙技术
蓝牙技术Bluetooth 历史“Bluetooth”这个名称来源于公元 10 世纪丹麦国王 Harald Blatand - 英译为 Harold Bluetooth。在行业协会筹备阶段,需要一个极具有表现力的名字来命名这项高新技术。通过对欧洲历史及对这一无线技术未来发展的一夜的讨论,好些人 认为以国王 Blatand 的名号来命名此技术再恰当不过。国王 Blatand 统一了战争纷扰的转载 2014-05-07 19:01:08 · 5746 阅读 · 0 评论 -
蓝牙开启源码分析
首先介绍下几个重要的类:原创 2014-05-20 14:54:50 · 4252 阅读 · 1 评论 -
Bluetooth in Android 4.2 and 4.3:Scan remote devices
来源:http://blog.csdn.net/wendell_gong/article/details/16864467转载 2014-05-26 19:14:32 · 1873 阅读 · 0 评论 -
android下的callback机制
按照我个人的理解,就是: 用java的回调机制来实现C语言中的函数指针的传递。 为了了解什么是回调函数,在网上查阅了如下资料,整理如下: 资料一:首先说说什么叫回调函数? 在WINDOWS中,程序员想让系统DLL调用自己编写的一个方法,于是利用DLL当中回调函数(CALLBACK)的接口来编写程序,使它调用,这个就 称为回调。在调用接口转载 2014-06-11 17:38:10 · 19300 阅读 · 6 评论 -
FTS抓包看AVDTP
1.概述 测试过程为打开Audio连接,没有听音乐,人后断开Audio连接,主要目的是为了测试AVDTP的工作流程。2.Frame分析 首先贴出抓取的关于AVDTP的包: 在L2CAP层,分别由Maste和Slave建立了两条关于AVDTP的L2CAP连接,并完成了configure的过程,如下:我们可以看到AVDTP的主要Signaling的转载 2014-05-05 19:21:41 · 2374 阅读 · 0 评论 -
Android4.2和4.3中enable bluetooth
以下是基于Android 4.2代码,对Bluetooth BR/EDR Enable process的分析。BluetoothAdapter类代表的是local device Bluetooth adapter,而BluetoothDevice类代表的是remote Bluetooth device。在Android 4.3中引入了一个新的类BluetoothManager,它是一个high l转载 2014-05-05 19:20:46 · 1687 阅读 · 0 评论 -
蓝牙协议的命令和事件
蓝牙协议的命令和事件(廖铮 2001年06月18日 16:21)命令下表列出蓝牙协议中从L2CAP到物理层的命令和事件映射。希望这个列表可以帮助你分析蓝牙协议中从协议高层发给较低层次的控制命令和消息命令。我们还会通过讲解一个示例来具体地说明协议高层收到连接请求时的情况。L2CAPHCILMP/BASEBAND连接和转载 2014-04-30 17:36:52 · 1949 阅读 · 0 评论 -
bcm4330蓝牙分析总结
对于蓝牙无论最底层的硬件驱动如何实现,都会在HCI层进行统一。也就是说,HCI在主机端的驱动主要是为上层提供统一接口,让上层协议不依赖于具体的硬件实现。HCI在硬件中的固件与HCI在主机端的驱动通信方式有多种,比如UART,USB和SDIO等。 HCI层在所有的设备面前都被抽象为一个hci_dev结构体,因此,无论实际的设备是哪种蓝牙设备、通过什么方式连接到主机,都需要向HCI转载 2014-05-04 17:58:36 · 5021 阅读 · 2 评论 -
蓝牙及蓝牙耳机工作原理
蓝牙及蓝牙耳机工作原理1 蓝牙技术的特点 1.1 蓝牙协议体系结构 整个蓝牙协议体系结构可分为底层硬件模块、中间协议层和高端应用层三大部分。链路管理层(LMP)、基带层(BBP)和蓝牙无线电信道构成蓝牙的底层模块。BBP层负责跳频和蓝牙数据及信息帧的传输。LMP层负责连接的建立和拆除以及链路的安全和控制,它们为上层软件模块提供了不同的访问人口,但是两个转载 2014-05-04 17:57:39 · 2258 阅读 · 0 评论 -
android bluetooth 移植相关注意事项
bluedroid的通用架构框图:由上图可知,bluedroid包含如下的核心组件:Bluetooth core stack libraryHCI libraryVendor Specific HCI libraryUART, RFKILL,TUN/TAP and UHID转载 2014-05-05 15:28:56 · 8732 阅读 · 0 评论 -
Bluetooth in Android 4.2 and 4.3(一):综述
从Android 4.2开始,Bluetooth stack发生了重大改变:从Bluez换成了由Google和Broadcom联合开发的Bluedroid(当然,核心的部分还是Broadcom的,Google主要是做了和上层Framework相关的部分)。通过http://source.android.com/devices/bluetooth.html可以大概了解新的Bluetooth st转载 2014-05-05 16:04:16 · 1428 阅读 · 0 评论 -
Android4.3 Bluetooth开篇
时间飞逝,感觉停止写blog也没多久,但是一看自己上篇blog的更新时间,才知道很久没有写了。主要是时间抽不过来,不过我会争取一些时间来写这个专题的blog。 说实话,写这个专题的blog,我也没有太大的把握写完,Bluetooh是一个庞大的东西,而不是说他有多难,而是他的内容比较多,有N多协议,要想掌握它,没个4-5年,我估计还是比较困难的。我为什么要写这个blog,主要原因是andr转载 2014-05-05 15:18:14 · 2711 阅读 · 1 评论 -
Android4.3 Bluetooth基本介绍
蓝牙定义 蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术。能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对转载 2014-05-05 15:20:52 · 7000 阅读 · 0 评论 -
Android4.3 Bluetooth 抓取hci log
Android4.2之前抓取hci log都是通过hcidump命令完成的,但是Android4.2 Bluetooth引入了Bluedroid,这是一个新的蓝牙协议栈。所以抓取hci log的方法也改变了。在我的Bluetooth计划里,本来是没打算写这篇blog的,但是在留言里看见有人问,所以写出来分享给那些目前还不会的。在Android 4.2之后, Bluetooth控制h转载 2014-05-05 15:21:19 · 16742 阅读 · 6 评论 -
A2DP协议笔记
1.概述 A2DP(Advanced Audio Distribution Profile)是蓝牙的音频传输协议,典型应用为蓝牙耳机。A2DP协议的音频数据在ACL Link上传输,这与SCO上传输的语音数据要区别。A2DP不包括远程控制的功能,远程控制的功能参考协议AVRCP。AVDTP则定义了蓝牙设备之间数据流句柄的参数协商,建立和传输过程以及相互交换的信令实体形式,该协议是转载 2014-05-05 19:09:58 · 6948 阅读 · 0 评论 -
蓝牙的OBEX协议
1.概述 OBEX为Object Exchange,用于在蓝牙设备间传数据对象,来源于红外定义的协议,后被蓝牙采用。OBEX在蓝牙协议层中的位置如下图(在之前的OBEX版本中,OBEX是通过RFCOMM挂在L2CAP上的):2.Object Model OBEX定义了Object model来进行数据的交换,形式为Request-Response转载 2014-05-05 19:10:46 · 1497 阅读 · 0 评论 -
蓝牙Host Controller Interface笔记
1.概述 HCI提供了一个统一的使用蓝牙控制器(BR/EDR Controller,BR/EDR/LE Controller,LE Controller,AMP Controller等)的方法,它屏蔽了蓝牙的基带部分,提供了统一的数据进入基带的方法。 首先,蓝牙的BaseBand部分有以下几种控制器:• BR/EDR Controller• BR/EDR/LE Co转载 2014-05-05 19:12:14 · 3012 阅读 · 1 评论 -
蓝牙的L2CAP协议
1.概述 L2CAP能向上层提供面向连接的或者无连接的数据服务,拥有multiplexing capability and segmentation and reassembly operation。能够接受上层协议或者应用的数据,最大为64K byte,每一个通道都可以进行Flow Control和retransmission。结构如下图: 几个主要特点:(1)转载 2014-05-05 19:13:30 · 4637 阅读 · 0 评论 -
蓝牙的Baseband说明
蓝牙的radio部分使用2.4GHz的ISM段,2400 - 2483.5 MHz,通道间隔1MHz,GFS调制,采用跳频技术,每秒至少1600次。连接完成后的跳频次数为1600次/s,在inquiry和page时为3200次/s。1.时钟有三种是CLK,如下图:CLK是Master的时钟,代表某一个piconet的是时钟。slave根据下图来调整自己的时钟以达到和mast转载 2014-05-05 19:15:11 · 1894 阅读 · 0 评论 -
蓝牙的SDP协议总结
1.概念 SDP协议让客户机的应用程序发现存在的服务器应用程序提供的服务以及这些服务的属性。SDP只提供发现服务的机制,不提供使用这些服务的方法。每个蓝牙设备都需要一个SDP Service,只做Client的蓝牙设备除外。2.ServiceRecord 每一个Service利用ServiceRecord来表示(具有唯一的32bit的Handle),每一转载 2014-05-05 19:16:00 · 2741 阅读 · 0 评论 -
GATT协议
1.主要用于寻找和配置服务端的属性,其实就是寻找、配置和读写servcice端的各种attribute,使其按需要的方式工作。它有两个角色:Server和Client,一个实际的例子:2.概述GATT使用Attribute Protocol来传输data:Opcode表示该PDU的类型,包括command, request, respon转载 2014-05-05 19:19:12 · 4497 阅读 · 0 评论 -
Android4.2关于bluetooth在HAL层的分析(1)
1.一些常用的数据结构hardware/libhardware/include/hardware.h中定义了三个重要的结构:struct hw_module_t; //模块类型struct hw_module_methods_t; //模块方法struct hw_device_t; //设备类型hw_module_t中包含结构hw_m转载 2014-05-05 19:19:52 · 3486 阅读 · 0 评论 -
android system.img,ramdisk.img,boot.img 分析
android 源码编译后得到system.img,ramdisk.img,userdata.img映像文件。其中, ramdisk.img是emulator的 文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,emulator负责加载这3个映像文件后,会 把system.img和userdata.img分别加载到 ramdisk文件系统中的sys转载 2014-07-22 10:55:27 · 1134 阅读 · 0 评论