蓝牙(Bluetooth) IEEE 802.15.1 协议学习

catalogue

1. 蓝牙概念
2. 配对和连接
3. 机密安全性
4.  蓝牙协议分类
5. 蓝牙协议栈

 

1. 蓝牙概念

蓝牙(Bluetooth)是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换(使用2.4~2.485GHz的ISM波段的UHF无线电波)。蓝牙技术最初由电信巨头爱立信公司于1994年创制,当时是作为RS232数据线(短程串口)的替代方案。蓝牙可连接多个设备,克服了数据同步的难题
如今蓝牙由蓝牙技术联盟(Bluetooth Special Interest Group,简称SIG)管理。蓝牙技术联盟在全球拥有超过25000家成员公司,它们分布在电信、计算机、网络、和消费电子等多重领域。IEEE将蓝牙技术列为IEEE 802.15.1,但如今已不再维持该标准。蓝牙技术联盟负责监督蓝牙规范的开发,管理认证项目,并维护商标权益。制造商的设备必须符合蓝牙技术联盟的标准才能以"蓝牙设备"的名义进入市场。蓝牙技术拥有一套专利网络,可发放给符合标准的设备

蓝牙的波段为2400–2483.5MHz(包括防护频带)。这是全球范围内无需取得执照(但并非无管制的)的工业、科学和医疗用(ISM)波段的2.4 GHz短距离无线电频段
蓝牙使用跳频技术,将传输的数据分割成数据包,通过79个指定的蓝牙频道分别传输数据包。每个频道的频宽为1 MHz。蓝牙4.0使用2 MHz 间距,可容纳40个频道。第一个频道始于2402 MHz,每1 MHz一个频道,至2480 MHz。有了适配跳频(Adaptive Frequency-Hopping,简称AFH)功能,通常每秒跳1600次
最初,高斯频移键控(Gaussian frequency-shift keying,简称GFSK)调制是唯一可用的调制方案。然而蓝牙2.0+EDR 使得 π/4-DQPSK和 8DPSK 调制在兼容设备中的使用变为可能。运行GFSK的设备可以以基础速率(Basic Rate,简称BR)运行,瞬时速率可达1Mbit/s。增强数据率(Enhanced Data Rate,简称EDR)一词用于描述π/4-DPSK 和 8DPSK 方案, 分别可达2 和 3Mbit/s。在蓝牙无线电技术中,两种模式(BR和EDR)的结合统称为"BR/EDR射频"
蓝牙是基于数据包、有着"主从架构"的协议。一个主设备至多可和同一网域中的七个从设备通讯。所有设备共享主设备的时钟。分组交换基于主设备定义的、以312.5µs为间隔运行的基础时钟。两个时钟周期构成一个625µs的槽,两个时间隙就构成了一个1250µs的缝隙对。在单槽封包的简单情况下,主设备在双数槽发送信息、单数槽接受信息。而从设备则正好相反。封包容量可长达1、3、或5个时间隙,但无论是哪种情况,主设备都会从双数槽开始传输,从设备从单数槽开始传输

0x1: 功率射程

类别
最大功率容量
射程范围
m)
(mW)
dBm
1
100
20
~100
2
2.5
4
~10
3
1
0
~1

蓝牙是一个标准的无线通讯协议,基于设备低成本的收发器芯片,传输距离近、低功耗。由于设备使用无线电(广播)通讯系统,他们并非是以实际可见的线相连,然而准光学无线路径则必须是可行的。射程范围取决于功率和类别,但是有效射程范围在实际应用中会各有差异

0x2: 数据吞吐量

版本
数据率
最大应用吞吐量
1.2
1Mbit/s
>80 kbit/s
2.0 + EDR
3 Mbit/s
>80 kbit/s
3.0 + HS
24 Mbit/s
请参考3.0 + HS
4.0
24 Mbit/s
请参考4.0 LE

有效射程因传输条件、材料覆盖、生产样本的变化、天线配置和电池状态有关。多数蓝牙应用是为室内环境而设计的,由于墙的衰减和信号反射造成的信号衰落会使得射程远小于蓝牙产品规定的射程范围。多数蓝牙应用是由电池供电的2类设备,无论对方设备是1类或2类,射程差异均不明显,因为射程范围通常取决于低功率的设备(木桶效应)。某些情况下,当2类设备连接到一个敏感度和发射功率都高于典型的2类设备的1类收发器上时,数据链的有效射程可被延长。然而多数情况下,1类设备与2类设备的敏感度是相近的。
两个敏感度和发射功率都较高的1类设备相连接,射程可远高于一般水平的100m,取决于应用所需要的吞吐量。有些设备在开放的环境中的射程能够高达1km甚至更高
蓝牙核心规范规定了最小射程,但是技术上的射程是由应用决定、且是无限的。制造商可根据实际的用例调整射程

0x3: 应用场景

要使用蓝牙无线技术,设备必须能够解译某些蓝牙配置文件,蓝牙配置文件定义了可能的应用,并规定了蓝牙设备之间通信的一般行为。这些配置文件包括对通信参数和控制的最初设定。配置文件能够节约在双向链路起效之前重新发送参数的时间。广泛的蓝牙配置文件描述很多不同种类的应用或设备用例

1. 移动电话和免提耳机之间的无线控制和通信(便携式蓝牙耳机)
2. 移动电话与兼容蓝牙的汽车音响系统之间的无线控制和通信(车载蓝牙耳机)
3. 对搭载IOS或Android的平板电脑和音箱等设备进行无线控制和通信
4. 无线蓝牙耳机和对讲机。耳机有时被简称为"一个蓝牙"
5. 输送至耳机的无线音频流、无通信功能
6. 有限空间内对带宽要求不高的PC之间的无线网络
7. 电脑与输入输出设备间的无线连接,常见的有鼠标、键盘、打印机
8. 在可进行对象交换的设备之间传输文件、详细通讯录信息、日历安排、备忘录等(例如QQ和PC同步文件)
9. 取代早前在测试设备、GPS接收器、医疗设备、条形码扫描器、交通管制设备上的有线RS-232串行通信
10. 用于之前使用红外线的控制
11. 无需更高的USB带宽、需要无线连接的低带宽应用
12. 从采用蓝牙的广告版向其他可被发现的蓝牙设备发送小型广告
13. 两个工业以太网(如PROFINET)网络之间的无线网桥
14. 第七代和第八代游戏机,任天堂的Wii和索尼的PlayStation 3 的控制器都分别采用了蓝牙
15. 个人电脑或PDA的拨号上网可使用有数据交换能力的移动电话作为无线调制解调器
16. 健康传感器数据从医疗设备向移动电话、机顶盒或特定的远距离卫生设备进行短距离传输 
17. 允许无绳电话代替附近的移动电话响铃或接听电话 
18. 实时定位系统(RTLS)可用于实时追踪和确认物体位置,这是通过"节点"、粘贴或嵌入物体内的"标签",和从这些标签上接收并处理无线信号的"读写器" 来确认位置的
19. 智能手机上防止物品丢失或遭窃的个人保安应用。受保护的物件上蓝牙标识(如一个标签),以与电话保持持续通信。如果连接中断(如标识离开电话的范围),那么警报会响起。这也可用作人落水警报。自2009年起已有了采用此技术的产品
20. 加拿大阿尔伯塔省卡尔加里的道路交通部门使用从旅行者的蓝牙设备中收集的数据来帮助驾车者预测旅行时间和道路拥堵 
21. 音频的无线传输(比FM发射器更可靠的选择)

0x4: 版本更替

1.1版本

1. 2002年获批为IEEE 802.15.1标准
2. 1.0B规格中的许多错误得以修正
3. 添加了未加密频道的可能性
4. 接收信号强度指示(RSSI)

1.2版本

1. 更快的连接和发现
2. 自适应跳频扩频(AFH),通过避免在跳频序列中使用拥挤的频率,提高了对射频干扰的抵抗
3. 实际应用中的传输速度相较1.1版本提升,高达721 kbit/s
4. 延伸同步连结(eSCO)通过允许重新发送损坏的封包,提高了音频的音质,还可以选择性的提高音频延迟,以提供更好的并行数据传输
5. 与三线UART的主机控制器接口(HCI)操作
6. 2005年获批为IEEE 802.15.1标准
7. 为L2CAP引入了流量控制和传输模式

2.0 + EDR版本

1. 这一蓝牙核心版本发布于2004年。主要不同在于增强数据率(EDR)的推出,它能够实现更快速的数据传输。EDR的标称速率是3 Mbit/s,尽管实践中的数据传输速率为2.1 Mbit/s
2. EDR使用GFSK、相移键控(PSK)调制和π/4-DQPSK、 8DPSK两个变量的组合
3. EDR可通过减少工作周期提供更低的功耗
4. 这一规格命名为Bluetooth v2.0 + EDR,意谓EDR是选择性的功能
5. 除了EDR,2.0 规格还包括其它一些小的改进。产品无需支持更高速的数据率也可完成蓝牙2.0的合规性认证 

2.1 + EDR版本

1. 蓝牙核心规范2.1 + EDR 是蓝牙技术联盟于2007年7月26日推出的
2. 2.1最大的特点是安全简易配对(SSP): 它为蓝牙设备提高了配对体验,同时也提升了安全性的实际应用和强度
3. 2.1还包括其他一些改进,包括"延长询问回复"(EIR),在查询过程中提供更多信息,让设备能在连接前更好地进行筛选
4. 低耗电监听模式(Sniff Subrating): 它能够在低功耗模式下降低耗电

3.0 + HS版本

1. 蓝牙核心规格3.0 + HS版本是蓝牙技术联盟2009年4月21日推出的
2. 蓝牙3.0+HS的传输速率理论上可高达24 Mbit/s,尽管这并非是通过蓝牙链接本身。相反,蓝牙链接是用于协商和建立,高速的数据传输是由相同位置的802.11链接完成的
3. 主要的新特性是AMP(Alternative MAC/PHY),它也是802.11新增的高速传输功能。高速并非该规格的强制特性,因此只有标注了"+HS"商标的设备才是真正通过802.11高速数据传输支持蓝牙。没有标注"+HS"后缀的蓝牙3.0设备仅支持核心规格3.0版本或之前的核心规范 
4. L2CAP增强模式
5. 加强版重传模式(Enhanced Retransmission Mode,简称ERTM)采用的是可靠地L2CAP 通道,而流模式(Streaming Mode,简称SM)采用的是没有重传和流量控制的不可靠的网络通道。推出于核心规格 
6. Alternative MAC/PHY: 蓝牙配置文件数据可通过备用的MAC和PHYs传输。蓝牙射频仍用于设备发现、初始连接和配置文件配置。但是当有大量数据传输需求时,高速的备选MAC PHY 802.11(通常与Wi-Fi有关)可传输数据。这意味着蓝牙在系统闲置时可使用已经验证的低功耗连接模型,在需要传输大量数据时使用更快的无线电。AMP链接需要加强型L2CAP 模式
7. 单向广播无连接数据(Unicast Connectionless Data): 单向广播无连接数据无需建立明确的L2CAP通道即可传输服务数据。主要用于对用户操作和数据的重新连接/传输要求低延迟的应用。它仅适用于小量数据传输
8. 增强型电源控制(Enhanced Power Control): 增强型电源控制更新了电源控制功能,移除了开环功率控制,还明确了EDR新增调制方式所引入的功率控制。增强型电源控制规定了期望的行为。这一特性还添加了闭环功率控制,意味着RSSI过滤可于收到回复的同时展开。此外,还推出了"直接开到最大功率(go straight to maximum power)"的请求,旨在应对耳机的链路损耗,尤其是当用户把电话放进身体对侧的口袋时

4.0版本

1. 蓝牙技术联盟于2010年6月30日正式推出蓝牙核心规格4.0(称为Bluetooth Smart)。它包括
    1) 经典蓝牙: 经典蓝牙包括旧有蓝牙协议
    2) 高速蓝牙: 高速蓝牙基于Wi-Fi
    3) 蓝牙低功耗协议: 蓝牙低功耗,也就是早前的Wibree,是蓝牙4.0版本的一个子集,它有着全新的协议栈,可快速建立简单的链接。作为蓝牙1.03.0版本中蓝牙标准协议的替代方案,它主要面向对功耗需求极低、用纽扣电池供电的应用。芯片设计可有两种:双模、单模和增强的早期版本。早期的Wibree和蓝牙ULP(超低功耗)的名称被废除,取而代之的是后来用于一时的BLE 
2. 单模情况下,只能执行低功耗的协议栈。意法半导体、笙科电子、CSR、北欧半导体和德州仪器已经发布了单模蓝牙低功耗解决方案。单模芯片的成本降低,使设备的高度整合和兼容成为可能。它的特点之一是轻量级的链路层,可提供低功耗闲置模式操作、简易的设备发现、和可靠地点对多数据传输,并拥有成本极低的高级节能和安全加密连接
3. 双模情况下,Bluetooth Smart功能整合入既有的经典蓝牙控制器。截至2011年3月,高通创锐讯、CSR、博通和德州仪器已宣布发表符合此标准的芯片。适用的架构共享所有经典蓝牙既有的射频和功能,相比经典蓝牙的价格上浮也几乎可以忽略不计
4. 4.0版本的一般性改进包括推进蓝牙低功耗模式所必需的改进、以及通用属性配置文件(GATT)和AES加密的安全管理器(SM)服务

4.1版本

1. 蓝牙技术联盟于2013年12月正式宣布采用蓝牙核心规格4.1版本。 这一规格是对蓝牙4.2版本的一次软件更新,而非硬件更新
2. 这一更新包括蓝牙核心规格并添加了新的功能、提高了消费者的可用性。这些特性包括
    1) 提升了对LTE和批量数据交换率共存的支持
    2) 以及通过允许设备同时支持多重角色帮助开发者实现创新 
3. 移动无线服务共存信号
4. Train nudging与通用接口扫描
5. 低占空比定向广播
6. 基于信用实现流控的L2CAP面向连接的专用通道
7. 双模和拓扑
8. 低功耗链路层拓扑
9. 802.11n PAL
10. 宽带语音的音频架构更新
11. 更快的数据广告时间间隔(Fast Data Advertising Interva)
12. 有限的发现时间

4.2版本

1. 蓝牙4.2发布于2014年12月2日。它为IOT推出了一些关键性能,是一次硬件更新。 但是一些旧有蓝牙硬件也能够获得蓝牙4.2的一些功能,如通过固件实现隐私保护更新
2. 低功耗数据包长度延展
3. 低功耗安全连接
4. 链路层隐私权限
5. 链路层延展的扫描过滤策略
6. Bluetooth Smart设备可通过网络协议支持配置文件(Internet Protocol Support Profile,简称IPSP)实现IP连接
7. IPSP为Bluetooth Smart添加了一个IPv6连接选项,是互联家庭和物联网应用的理想选择
8. 蓝牙4.2通过提高Bluetooth Smart的封包容量,让数据传输更快速
9. 业界领先的隐私设置让Bluetooth Smart更智能,不仅功耗降低了,窃听者将难以通过蓝牙联机追踪设备 

Relevant Link:

http://baike.baidu.com/link?url=ztPEM5-eLcdlUb4MGq6-r7DinR9syCSxb03VWXhpfPH3YvwjvDjigzXvqqrDmqnohifr1Oc-UIo_SHqnZZYiga

 

2. 配对和连接

1. 蓝牙所能提供多很多服务都可能显示个人数据或受控于相连的设备。出于安全上的考量,有必要识别特定的设备,以确保能够控制哪些设备能与蓝牙设备相连的
2. 同时,蓝牙设备也有必要让蓝牙设备能够无需用户干预即可建立连接(比如在进入连接范围的同时)
3. 为解决该矛盾,蓝牙使用一种叫bonding(连接)的过程。Bond是通过配对(paring)过程生成的。配对过程通过或被自用户的特定请求引发而生成bond(比如用户明确要求"添加蓝牙设备"),或是当连接到一个出于安全考量要求需要提供设备ID的服务时自动引发。这两种情况分别称为dedicated bonding和general bonding
4. 配对通常包括一定程度上的用户互动,已确认设备ID。成功完成配对后,两个设备之间会形成Bond,日后再再相连时则无需为了确认设备ID而重复配对过程。用户也可以按需移除连接关系

0x1: 实施

1. 配对过程中,两个设备可通过一种创建一种称为"链路字"的共享密钥建立关系。如果两个设备都存有相同的链路字,他们就可以实现paring或bonding
2. 一个只想与已经bonding的设备通信的设备可以使用密码验证对方设备的身份,以确保这是之前配对的设备
3. 一旦链路字生成,两个设备间也许会加密一个认证的异步无连接(Asynchronous Connection-Less,简称ACL)链路,以防止交换的数据被窃取。用户可删除任何一方设备上的链路字,即可移除两设备之间的bond,也就是说一个设备可能存有一个已经不在与其配对的设备的链路字
4. 蓝牙服务通常要求加密或认证,因此要求在允许设备远程连接之前先配对。一些服务,比如对象推送模式,选择不明确要求认证或加密,因此配对不会影响服务用例相关的用户体验 

0x2: 配对机制

在蓝牙2.1版本推出安全简易配对(Secure Simple Pairing)之后,配对机制有了很大的改变

1. 旧有配对

这是蓝牙2.0版及其早前版本配对的唯一方法。每个设备必须输入PIN码;只有当两个设备都输入相同的PIN码方能配对成功。任何16-比特的 UTF-8字符串都能用作PIN码。然而并非所有的设备都能够输入所有可能的PIN码

1. 有限的输入设备: 显而易见的例子是蓝牙免提耳机,它几乎没有输入界面。这些设备通常有固定的PIN,如"0000""1234",是设备硬编码的
2. 数字输入设备: 比如移动电话就是经典的这类设备。用户可输入长达16位的数值
3. 字母数字输入设备: 比如个人电脑和智能电话。用户可输入完整的UTF-8 字符作为PIN码。如果是与一个输入能力有限的设备配对,就必须考虑到对方设备的输入限制,并没有可行的机制能够让一个具有足够输入能力的设备去决定应该如何限制用户可能使用的输入 

2. 安全简易配对(SSP)

这是蓝牙2.1版本要求的,尽管蓝牙2.1版本的也许设备只能使用旧有配对方式和早前版本的设备互操作。 安全简易配对使用一种公钥密码学(public key cryptography),某些类型还能防御中间人(man in the middle,简称MITM)攻击。SSP 有以下特点

1. 即刻运行(Just works):正如其字面含义,这一方法可直接运行,无需用户互动。但是设备也许会提示用户确认配对过程。此方法的典型应用见于输入输出功能受限的耳机,且较固定PIN机制更为安全。此方法不提供中间人(MITM)保护
2. 数值比较(Numeric comparison):如果两个设备都有显示屏,且至少一个能接受二进制的"是/否"用户输入,他们就能使用数值比较。此方法可在双方设备上显示6位数的数字代码,用户需比较并确认数字的一致性。如果比较成功,用户应在可接受输入的设备上确认配对。此方法可提供中间人(MITM)保护,但需要用户在两个设备上都确认,并正确的完成比较
3. 万能钥匙进入(Passkey Entry):此方法可用于一个有显示屏的设备和一个有数字键盘输入的设备(如计算机键盘),或两个有数字键盘输入的设备
    1) 第一种情况下,显示屏上显示6位数字代码,用户可在另一设备的键盘上输入该代码
    2) 第二种情况下,两个设备需同时在键盘上输入相同的6位数字代码。两种方式都能提供中间人(MITM)保护
//中间人MITM防御的核心的就是人工交互介入
4. 非蓝牙传输方式(OOB):此方法使用外部通信方式,如近场通信(NFC),交换在配对过程中使用的一些信息。配对通过蓝牙射频完成,但是还要求非蓝牙传输机制提供信息。这种方式仅提供OOB机制中所体现的MITM保护水平

Relevant Link:

http://baike.baidu.com/link?url=uLM3It4waAyvnRHpOeUvr_K1z3a1Ok3uLlKajn1EclfOZb-lg3qsJ3U45Z8zAnfG

 

3. 机密安全性

蓝牙拥有机密性、完整性和基于SAFER+分组密码的定制算法的密钥导出。蓝牙密钥生成通常基于蓝牙PIN,这是双方设备都必须输入的。如果一方设备(如耳机、或类似用户界面受限的设备)有固定PIN,这一过程也可能被修改。配对过程中,初始密钥或主密钥通过E22算法生成。 E0流密码也用于加密数据包、授权机密性,它是基于公共加密的、也就是之前生成的链路字或主密钥。这些密钥可用于对通过空中接口传输的数据进行后续加密,密钥有赖于双方或一方设备中输入的PIN

0x1: 风险

蓝牙技术有它的优势,但它易遭受基于通信协议的网络攻击

1. 拒绝服务攻击
2. 窃听
3. 中间人攻击
4. 消息修改
5. 资源滥用

0x2: Bluejacking

Bluejacking是指用户通过蓝牙无线技术向对方不知情的用户发送图片或信息。常见的应用包括短信息,比如“你被Bluejack了”。Bluejacking不涉及设备上任何数据的删除或更改。Bluejacking可能涉及取得对移动设备的无线控制和拨打属于Bluejack发起者的付费电话

Relevant Link: 

http://baike.baidu.com/link?url=uLM3It4waAyvnRHpOeUvr_K1z3a1Ok3uLlKajn1EclfOZb-lg3qsJ3U45Z8zAnfG

 

4.  蓝牙协议分类

0x1: HFP(Hands-free Profile)

HFP(Hands-free Profile),让蓝牙设备可以控制电话,如接听、挂断、拒接、语音拨号等,拒接、语音拨号要视蓝牙耳机及电话是否支持

0x2: HSP

HSP 描述了 Bluetooth 耳机如何与计算机或其它 Bluetooth 设备(如手机)通信。连接和配置好后,耳机可以作为远程设备的音频输入和输出接口,这是最常用的配置,为当前流行支持蓝牙耳机与移动电话使用。它依赖于在64千比特编码的音频/s的CVSD的或PCM以及AT命令从GSM 07.07的一个子集,包括环的能力最小的控制,接听来电,挂断以及音量调整
典型的使用情景是使用无线耳机与手机进行连接。可能会使用HSP的若干设备类型:耳机、手机、PDA、个人电脑、手提电脑

0x3: A2DP

A2DP全名是Advanced Audio Distribution Profile(蓝牙音频传输模型协定),A2DP是能够采用耳机内的芯片来堆栈数据,达到声音的高清晰度。有A2DP的耳机就是蓝牙立体声耳机。声音能达到44.1kHz,一般的耳机只能达到8kHz。如果手机支持蓝牙,只要装载A2DP协议,就能使用A2DP耳机了。还有一般所说的技术参数提到蓝牙V1.0 V1.1 V1.2 V2.0——这些是指蓝牙的技术版本,是指通过蓝牙传输的速度,他们是否支持A2DP具体要看蓝牙产品制造商是否使用这个技术

0x4: AVRCP

1. AVRCP(Audio/Video Remote Control Profile),也就是音频/视频远程控制规范
2. AVRCP设计用于提供控制TV、Hi-Fi设备等的标准接口。此配置文件用于许可单个远程控制设备(或其它设备)控制所有用户可以接入的A/V设备。它可以与 A2DP 或 VDP 配合使用
3. AVRCP定义了如何控制流媒体的特征。包括
    1) 暂停
    2) 停止
    3) 启动重放
    4) 音量控制
    5) 其它类型的远程控制操作
4. AVRCP 定义了两个角色
    1) 控制器: 控制器通常为远程控制设备,控制器将检测到的用户操作翻译为 A/V 控制信号,然后再将其传输至远程 Bluetooth 设备。对于"随身听"类型的媒体播放器,控制设备可以是允许跳过音轨的耳机
    2) 目标设备: 目标设备为特征可以更改的设备。在 AVRCP 中,目标设备则是实际的播放器。常规红外遥控器的可用功能可以在此协议中实现
5. AVRCP 协议规定了AV/C 数字接口命令集的应用范围,实现了简化实施和易操作性。此协议为控制消息采用了AV/C 设备模式和命令格式,这些消息可以通过音频/视频控制传输协议 (AVCTP) 传输

0x5: OPP

蓝牙通信程序部分需采用用于设备之间传输数据对象OPP Profile: Object Push Profile由于OPP profile又细分为OPPC (client)端和OPPS(server)端profile,这两个profile区别在于只有client端可以发起数据传输的过程,但是附件设备与手机通信的情景中,既有手机发起数据传输请求也有设备侧发起传输请求的需要,所以要在设备中实现OPPC和OPPS两个profile

0x6: PBAP

电话号码簿访问协议(Phonebook Access Profile)

Relevant Link:

http://wenku.baidu.com/link?url=0ReRCk6zOXdA-HMlYuns3niA21ICv3M47frNWB9jq_rcbo4jfb9lmL04EaDfEsrKLCR2tPp67AXU_1z-2-0q8PVX4dc-MA8k3PMYRd7D3Z7

 

5. 蓝牙协议栈

蓝牙协议规范遵循开放系统互连参考模型(OSI/RM),从低到高地定义了蓝牙协议堆栈的各个层次。
SIG所定义的蓝牙技术规范的目的是使符合该规范的各种应用之间能够实现互操作。互操作的远端设备需要使用相同的协议栈,不同的应用需要不同的协议栈。但是,所有的应用都要使用蓝牙技术规范中的数据链路层和物理层

0x1: 协议栈架构

完整的蓝牙协议栈如下图所示,不是任何应用都必须使用全部协议,而是可以只使用其中的一列或多列

技术分享

蓝牙的核心协议由基带,链路管理,逻辑链路控制与适应协议和服务搜索协议等4部分组成

1. 核心协议
    1) BaseBand(基带协议): 基带协议确保各个蓝牙设备之间的射频连接,以形成无线网络
    2) LMP(链路管理协议): 链路管理协议(LMP)负责蓝牙各设备间连接的建立和设置。LMP通过连接的发起,交换和核实进行身份验证和加密,通过协商确定基带数据分组大小; 除此之外还控制无线设备的节能模式和工作周期,以及无线网络内设备单元的连接状态 
    3) L2CAP(逻辑链路控制和适配协议): 逻辑链路控制和适配协议(L2CAP)是基带的上层协议,可以认为L2CAP与LMP并行工作。L2CAP与LMP的区别在于当业务数据不经过LMP时,L2CAP为上层提供服务
    4) SDP(使用服务搜索协议): 使用服务搜索协议(SDP)可以查询到设备信息和服务类型,从而在蓝牙设备间建立相应的连接 
2. 电缆替代协议: PFCOMM
3. 电话传送控制协议
    1) TCS-Binary
    2) AT命令集
4. 选用协议
    1) PPP
    2) UDP/TCP/IP
    3) OBEX
    4) WAP
    5) vCard
    6) vCal
    7) IrMC
    8) WAE

除上述协议层外,规范还定义了主机控制器接口(HCI),它为基带控制器、连接管理器、硬件状态和控制寄存器提供命令接口,HCI位于L2CAP的下层,但HCI也可位于L2CAP上层
蓝牙核心协议由SIG制定的蓝牙专用协议组成。绝大部分蓝牙设备都需要核心协议(加上无线部分),而其他协议则根据应用的需要而定。总之,电缆替代协议、电话控制协议和被采用的协议在核心协议基础上构成了面向应用的协议

1. 蓝牙核心协议介绍

1. 基带协议
基带和链路控制层确保微微网内各蓝牙设备单元之间由射频构成的物理连接。蓝牙的射频系统是一个跳频系统,其任一分组在指定时隙、指定频率上发送。它使用查询和分页进程同步不同设备间的发送频率和时钟,为基带数据分组提供了两种物理连接方式,即
    1) 面向连接(SCO): SCO适用于话音以及话音与数据的组合,所有的话音和数据分组都附有不同级别的前向纠错(FEC)或循环冗余校验(CRC),而且可进行加密。此外,对于不同数据类型(包括连接管理信息和控制信息)都分配一个特殊通道
    2) 无连接(ACL): ACL适用于数据分组
在同一射频上可实现多路数据传送,可使用各种用户模式在蓝牙设备间传送话音,面向连接的话音分组只需经过基带传输,而不到达L2CAP。话音模式在蓝牙系统内相对简单,只需开通话音连接就可传送话音
 
2. 连接管理协议(LMP)
该协议负责各蓝牙设备间连接的建立。它通过连接的发起、交换、核实,进行身份认证和加密,通过协商确定基带数据分组大小。它还控制无线设备的电源模式和工作周期,以及微微网内设备单元的连接状态

3. 逻辑链路控制和适配协议(L2CAP)
该协议是基带的上层协议,可以认为它与LMP并行工作,它们的区别在于,当业务数据不经过LMP时,L2CAP为上层提供服务。L2CAP向上层提供面向连接的和无连接的数据服务,它采用了多路技术、分割和重组技术、群提取技术。L2CAP允许高层协议以64k字节长度收发数据分组。虽然基带协议提供了SCO和ACL两种连接类型,但L2CAP只支持ACL 

4. 服务发现协议(SDP)
发现服务在蓝牙技术框架中起着至关紧要的作用,它是所有用户模式的基础。使用SDP可以查询到设备信息和服务类型,从而在蓝牙设备间建立相应的连接 

2. 电缆替代协议(RFCOMM)

RFCOMM是基于ETSI-07.10规范的串行线仿真协议。它在蓝牙基带协议上仿真RS-232控制和数据信号,为使用串行线传送机制的上层协议(如OBEX)提供服务

3. 电话控制协议

1. 二元电话控制协议(TCS-Binary或TCSBIN): 该协议是面向比特的协议,它定义了蓝牙设备间建立语音和数据呼叫的控制信令,定义了处理蓝牙TCS设备群的移动管理进程。基于ITU TQ.931建议的TCSBinary被指定为蓝牙的二元电话控制协议规范 
2. AT命令集电话控制协议: SIG定义了控制多用户模式下移动电话和调制解调器的AT命令集,该AT命令集基于ITU TV.250建议和GSM07.07,它还可以用于传真业务

4. 选用协议

1. 点对点协议(PPP): 在蓝牙技术中,PPP位于RFCOMM上层,完成点对点的连接
2. TCP/UDP/IP: 该协议是由互联网工程任务组制定,广泛应用于互联网通信的协议。在蓝牙设备中,使用这些协议是为了与互联网相连接的设备进行通信
3. 对象交换协议(OBEX): IrOBEX(简写为OBEX)是由红外数据协会(IrDA)制定的会话层协议,它采用简单的和自发的方式交换目标。OBEX是一种类似于HTTP的协议,它假设传输层是可靠的,采用客户机/服务器模式,独立于传输机制和传输应用程序接口(API)
4. 电子名片交换格式(vCard)、电子日历及日程交换格式(vCal)都是开放性规范,它们都没有定义传输机制,而只是定义了数据传输格式。SIG采用vCard/vCal规范,是为了进一步促进个人信息交换
5. 无线应用协议(WAP): 该协议是由无线应用协议论坛制定的,它融合了各种广域无线网络技术,其目的是将互联网内容和电话传送的业务传送到数字蜂窝电话和其他无线终端上 

0x2: 用户模式及协议栈(应用层协议)

1. 文件传输模式

文件传输模式提供两终端间的数据通信功能,可传输后缀为.xls、.ppt、.wav、.jpg和.doc的文件等,以及完整的文件夹、目录或多媒体数据流等,提供远端文件夹浏览功能

技术分享

Relevant Link:

http://baike.baidu.com/link?url=RpMymzECJfvnLTx7z4VG9zLfrFVz7ign55vRqF1TBeMDLPdhE9ykVzkkFZPUeAgPowi57JSHzo6Li-8aXQbnSq
http://blog.chinaunix.net/uid-21411227-id-2780269.html

 

Copyright (c) 2016 LittleHann All rights reserved

 

文章来自:http://www.cnblogs.com/LittleHann/p/5598425.html
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3