转自:http://blog.csdn.net/shichaog/article/details/51931898

参考:

https://www.cnblogs.com/yanghong-hnu/p/4713222.html

https://www.crifan.com/summary_bluetooth_specification_download/

http://blog.csdn.net/xlc2845321/article/details/58606676

http://blog.csdn.net/Innost/article/details/9187199

http://blog.csdn.net/androidstarjack/article/details/60468468

http://blog.csdn.net/xubin341719/article/details/38519555

http://www.cnblogs.com/zjutlitao/p/4742428.html

蓝牙profile的作用

蓝牙子系统应用程序的交互通过蓝牙profile实现。profile有些文献将其解释为子协议,似乎不是很准确,我依然以profile称呼它。蓝牙profile定义了蓝牙子系统分层结构中的每一层需要具有的功能和特性。
GAP(Generic Access Profile):基本的profile,每一个蓝牙设备都要实现该profile。对于BR/EDR,其定义了Radio,Baseband,Link Manager,L2CAP以及服务发现功能。对于LE,定义了Physical Layer,Link Layer,L2CAP,Security Manager,Attribute Protocol以及Generic Attribute Profile。
在BR/EDR中,GAP定义了设备发现,连接建立,安全,授权相关的模型和服务发现的行为和方法。

Physical channels, apart from the synchronization scan physical channel (which uses a set of fixed RF channels), are defined by a pseudo-random RF channel hopping sequence, the packet (slot) timing and an access code.

Five Bluetooth physical channels are defined. Each is optimized and used for a different purpose. Two of these physical channels (the basic piconet channel and adapted piconet channel) are used for communication between connected devices and are associated with a specific piconet. Other physical channels are used for discovering (the inquiry scan channel) and connecting (the page scan channel) Bluetooth devices. The synchronization scan physical channel is used by devices to obtain timing and frequency information about the Connectionless Slave Broadcast physical link or to recover the current piconet clock.

Whenever a Bluetooth device is synchronized to the timing, frequency and access code of a physical channel it is said to be 'connected' to this channel (whether or not it is actively involved in communications over the channel.)
A physical link represents a baseband connection between devices.

BT,核心规范

BT设备根据BT规范进行协议信息交换。系统核心规范是:radio(RF)协议,link(LC)控制协议,link(LM)管理协议以及 logical link control and adaptation protocol (L2CAP)。
最底下的三层是,RF,LC,LM,它们通常被放在一起组成蓝牙的(BT controller)控制子系统,蓝牙控制子系统通过(HCI,Host Controller Interface)接口和蓝牙系统(BT host)其它部分进行双向通信。
Primary controller可以是如下三种情况:
    BR/EDR:包括RF,基带,LM,也可能包括HCI
    LE:包括LE PHY,Link layer,也可能包括HCI
    BR/EDR和LE双模:LE PHY, Link layer,它们共享同一个设备地址。

Bluetooth Basic Rate/Enhanced Data Rate (BR/EDR), Bluetooth with low energy (LE)

蓝牙层次图

分为controller,host以及app三个层次。

Physical(PHY)层

控制蓝牙通信通道的2.4GHz RF信号的发送和接收,BR/EDR提供窄带更多通道,LE则使用宽带更少的通道,这是蓝牙芯片支持的功能。

Link Layer

定义了数据包结构/通道,发现/连接过程以及发送/接收数据

Direct Test Mode

可以让测试者指定PHY层发送或接收给定序列的数据包,通过HCI或者2线UART接口控制,认证测试会使用到这个模式。

Host to Controller Interface(HCI)

Logical Link Control and Adaptation Protocol(L2CAP) Layer

基于发送到HCI或者直接发送到LM的数据包协议,支持更高层协议复用,分包和组包以及将QoS信息发送到上层。

Attribute Protocol(ATT)

定义了当连接建立时客服端/服务端数据交互协议。属性将被GATT Profile打包,ATT使用在LE模式上,偶尔用在BR/EDR模式。

Security Manger

定义了设备间管理配对完整性/授权/加密的协议和行为。

Generic Attribute Profile(GATT)

主要用于寻找和配置服务端的属性,其实就是寻找、配置和读写servcice端的各种attribute,使其按需要的方式工作。

Generic Access Profile(GAP)

在LE模式下和GATT一起定义了发现和共享蓝牙设备信息的过程和角色。

OPP:对象存储规范(Object Push Profile),最为常见的,文件的传输都是使用此协议。

HID(Human Interface Device)人机接口设备。

中间协议层
L2CAP:Logical Link Control and Adaptation Protocol,数据的拆装,服务质量和协议复用等功能
SDP:(Service Discovery Protocol),提供一种机制来发现网络中可用的服务及其特性
GAP:(Generic Acess Profile),该profile保证不同的Bluetooth产品可以互相发现对方并建立连接。
EDR(Enhanced Data Rate)
HS(High Speed):是bt能够利用wifi作为传输方式进行数据传输。

其分层对应的框图

这张图显示了哪里是firmware,哪里是hardware,哪里是sofware实现的,基带控制器是硬件实现的,HCI firmware,Link Manager以及physical bus是蓝牙芯片厂商实现的,并在其提供的firmware中。

软件层需要实现的包括接口驱动,hci驱动以及其它更高层次的驱动。

蓝牙协议栈

蓝牙在安卓中的代码

蓝牙profile

顶层应用框架(Profiles)
SPP(Serial prot profile):串行端口服务配置文件,通过蓝牙技术将手机与PC连接。
OPP(object push profile):对象操作配置文件。主要是手机与手机,或是手机与电脑之间通过蓝牙进行文件操作。(如,名片交换/便签/日历/书签等。)
FTP(File Transfer Profile):文档传输配置文件。其同OPP操作时的文件不同。在进行FTP操作时,还可以建立新的复制/删除等操作,并且在文件传输过程中可以进行接受/拒绝或者中断等操作。而OPP操作时则不能进行此类动作。
A2DP(Anvanced Audio Distribution Profile)蓝牙音频传输模型配置文件。无线传输立体声。
A2DP采样率44.1KHz,采样位数:16位。
HFP:采样率是8KHz,采样位数8位。
只在音乐播放器播放音乐或者电影播放器中播放电影使用A2DP,其余情况使用HFP协议。
AVRCP(Audio/Video Remote Control Profile),音频/视频远程控制配置文件,比如用户通过蓝牙耳机远程遥控手机,包括:暂停/停止/播放/切歌/音频控制。
HSP(Headset profile),耳机配置文件。
HFP(Hands free profile),免提配置文件。蓝牙耳机,蓝牙音箱等设备,HFP相关的配置文件有HSP,PBAP。
PBAP(Phonebook Acess profile),电话本访问配置文件。主要用于读取手机中通信录。
SAP(SIM Access Profile),可访问手机内的SIM卡。
HRP(Heart Rate Profile),心率配置文件。使用与和医疗/健康相关的应用场景中,它使得蓝牙设备能与心率传感器交互。
BPP(Basic Printing Profile),基本 打印配置文件,可将文件/电子邮件传至打印机打印。
CTP(Cordless Telephony Profile),无线电话规范,蓝牙无线电话之间沟通的规范。
HID()人性化接口设备
BT4.1支持Multi-Link,其类似于Zigbee技术。
HDP (Health Device Profile) 蓝牙医疗设备模式 可以创建支持蓝牙的医疗设备,使用蓝牙通信的应用程序,例如心率监视器,血液,温度计和秤。

Generic Attribute Profile (GATT) 通过BLE连接,读写属性类小数据的Profile通用规范。
MAP:message access profile。
PAN个人区域网用户 (PANU) 设备、小组临时网络 (GN) 设备或网络访问点 (NAP) 设备。

传输速率

Basic Rate system offers synchronous and aysnchronous connections.
721.2kb/s for Basic Rate.
2.1Mb/s for Enhanced Data Rate
54Mb/s for high speed with 802.11 AMP.Alternate MAC/PHY (AMP).

接入模式和跳频

LE employs two multiple access schemes: Frequency division multiple access (FDMA) and time division multiple access (TDMA). Forty (40) physical channels, separated by 2 MHz, are used in the FDMA scheme. Three (3) are used as advertising channels and 37 are used as data channels.

The basic hopping pattern is a pseudo-random ordering of the 79 frequencies, separated by 1 MHz, in the ISM band.

FHSS,跳频技术 (Frequency-Hopping Spread Spectrum)在同步、且同时的情况下,接受两端以特定型式的窄频载波来传送讯号,对于一个非特定的接受器,FHSS所产生的跳动讯号对它而言,也只算是脉冲噪声。FHSS所展开的讯号可依特别设计来规避噪声或One-to-Many的非重复的频道,并且这些跳频讯号必须遵守FCC的要求,使用75个以上的跳频讯号、且跳频至下一个频率的最大时间间隔(Dwell Time)为400ms。

在主从设备的物理通道(channel)之间会建立物理链路(link)。但是在查询扫描(inquiry scan)和页扫描(page scan)物理通道并没有关联物理链路。物理链路提供了主从设备之间的双向packet(命令和数据)的传输,一个特例是没有和主建立链接的从设备广播自己的物理链路(Physical link)。

蓝牙4.0

BT协议栈在整个蓝牙使用架构中的位置

Bluedroid下的蓝牙开发具体流程

模拟串口RFCOMM协议如下:

RFcomm是串口模拟协议,

HFP涉及的profile如下:

蓝牙bluetooth相关推荐

  1. 蓝牙Bluetooth技术小知识

    蓝牙Bluetooth技术以及广泛的应用于各种设备,并将继续在物联网IoT领域担任重要角色.下面搜集整理了一些关于蓝牙技术的小知识,以备参考. 蓝牙Bluetooth技术始创于1994年,其名字来源于 ...

  2. 蓝牙Bluetooth技术手册规范下载【转】

    蓝牙Bluetooth技术手册规范下载 http://www.crifan.com/summary_bluetooth_specification_download/ [背景] 之前就已经整理和转帖了 ...

  3. 【无线电波】蓝牙Bluetooth来源 原理?有无辐射影响健康 是否安全!?

    今天我们主要学习无线电波蓝牙Bluetooth诞生来源?蓝牙Bluetooth是怎么运行的?是否安全,有无辐射,会不会影响健康? 蓝牙名字的诞生及来源,与"烂"牙有什么关系 我们称 ...

  4. 深入了解Android蓝牙Bluetooth——《基础篇》

    深入了解Android蓝牙Bluetooth--<基础篇> 什么是蓝牙?   也可以说是蓝牙技术.所谓蓝牙(Bluetooth)技术,实际上是一种短距离无线电技术,是由爱立信公司公司发明的 ...

  5. Android开发之蓝牙(Bluetooth)操作(一)--扫描已经配对的蓝牙设备

    版权声明:本文为博主原创文章,未经博主允许不得转载. 一. 什么是蓝牙(Bluetooth)? 1.1  BuleTooth是目前使用最广泛的无线通信协议 1.2  主要针对短距离设备通讯(10m) ...

  6. android -- 蓝牙 bluetooth (四)OPP文件传输

    原址 在前面android -- 蓝牙 bluetooth (一) 入门文章结尾中提到了会按四个方面来写这系列的文章,前面已写了蓝牙打开和蓝牙搜索,这次一起来看下蓝牙文件分享的流程,也就是蓝牙应用op ...

  7. 蓝牙(BlueTooth)技术标准

    蓝牙(BlueTooth)技术标准 在值得关注的无线技术中还有蓝牙,很多文章都爱讨论蓝牙和采用Wi-Fi技术WLAN谁会取带谁的问题,其实蓝牙做为一种短距无线技术其从开始就并没有定位于Wi-Fi技术的 ...

  8. android -- 蓝牙 bluetooth解读

    入手一个新的模块或应用,当然首先要知道它都有什么了,与它相关的代码在那里,所以先一起看下蓝牙代码分布吧. 1. 代码分布: packages/apps/Bluetooth/ 看这路径肯定是蓝牙应用方面 ...

  9. android -- 蓝牙 bluetooth (一) 入门

    android -- 蓝牙 bluetooth (一) 入门 分类: Android的原生应用分析 2013-05-19 21:44 19998人阅读 评论(42) 收藏 举报 bluetooth4. ...

  10. Android Studio 基础 之 获取蓝牙Bluetooth 的状态,设置的蓝牙Bluetooth 的开关状态,并监听蓝牙Bluetooth 的状态变化方法整理

    Android Studio 基础 之 获取蓝牙Bluetooth 的状态,设置的蓝牙Bluetooth 的开关状态,并监听蓝牙Bluetooth 的状态变化方法整理 目录 Android Studi ...

最新文章

  1. 建立循环单链表(尾插法)
  2. 【JZOJ4835】【GDOI2017模拟10.31】量化交易
  3. ArcGIS网络分析之Silverlight客户端最近设施点分析(四)
  4. Polygon Cruncher减边用法
  5. css 文字可选,在HTML5中如何使用CSS建立不可选的文字
  6. python导入自己写的py_卧槽,神操作!一句查询让Python帮忙自己写程序
  7. mysql 查询记录成纵向_Mysql中查询(数据库中的)纵向转(查询结果显示为)横向.
  8. 【渝粤题库】国家开放大学2021春2737市场调查与商情预测题目
  9. 高通 MSM 8916与MSM8926芯片的区别
  10. 制作基于WiFi局域网的自动开门装置2.0(Arduino+微信小程序)
  11. Git之(一)Git是什么
  12. 递归实现费氏数列:0,1,1,2,3,5,8,13,21,34,55,89,... ...
  13. 百度招聘的一个小彩蛋
  14. 无法登录苹果开发者_苹果企业开发者账号怎么申请?失败的原因是什么
  15. ffmpeg Unknown encoder ‘libx264‘
  16. 团队管理2 | 管理的天时、地利、人和
  17. 《弃子长安》第八章 昨日黄花
  18. android 霍尔传感器,浅析MTK hall霍尔传感器之原理
  19. 招标文件 服务器参数,深信服超融合平台招标参数.docx
  20. hnc8进linux环境,最新发布linux指令大全总汇详解完整珍藏版-8

热门文章

  1. 电子邮件协议:SMTP、POP3、IMAP4
  2. PHP的设计模式及场景应用介绍
  3. mysql 全库备份_MySQL 数据库完全备份
  4. android 测量距离 app,手机测距软件哪个好?6款手机测距APP推荐
  5. html网上日记本设计,个人博客的设计_网上日记本的开发ASP334
  6. Flash音乐暂停播放按钮
  7. unity 录屏插件总结 以及 AVProMovieCapture 5.0.0 安卓录制失败问题
  8. 微信公众账号调取用户昵称和用户头像
  9. MATLAB角度转换
  10. TypeError: from_buffer() cannot return the address of the raw string within a str or unicode or byte