-
2019-09-13 13:40:50
为了方便大家学习,现与我爱蓝牙网联合推出【QCC300x/CSR867x/QCC30xx/QCC51xx开发板】。
技术交流QQ群号:743434463
开发板会员QQ群号:725398389(凭订单号入群,赠独家学习资料)
——————————正文分割线———————————–1. 前言
蓝牙技术因其成本低、功耗低、可拓展性强,被公认为应用最广泛的短距无线通信技术。搭载蓝牙技术的产品市场占有率逐年提高,随之产生了巨大的开发人才需求。但由于蓝牙技术的迭代速度较快、与其他技术领域交叉重叠较多、缺乏成熟的培训体系等种种原因,使得企业难以找到合适的人才,从而推高企业的用人成本,从长远的角度看,并不利于行业的健康发展。
作者从2015年开始自学蓝牙技术,没有积累到很多成功的经验,犯过的错和走过的弯路倒是可以说出不少,在此总结出几个要点,期望大家早日学有所成。
2. 选择适合的平台切入
很多新接触蓝牙技术的朋友,对方案的难度和自身技术储备了解不够。比如有遇到一直做硬件开发的朋友,想快速深入到5124平台的软件开发,不知从何下手;再或者有对安卓或Linux环境的开源协议栈很熟悉的朋友,发现8670的中间层代码不开源,就觉得高通的方案开发起来容易出问题。
在此给大家提供一个高通蓝牙平台软件开发难易度的简单梳理:
芯片型号 技能需求 开发难度 软件可编程 CSR863x 会使用一般电脑软件 低 不可编程 CSR867x C语言/汇编语言 高 底层固件不可编程,应用可编程,DSP可编程 QCC300x C语言 中 底层固件不可编程,应用可编程,DSP可编程 QCC30xx C语言 中高 底层固件部分可编程,应用可编程,DSP可部分编程 QCC512x C语言/汇编语言 高 底层固件部分可编程,应用可编程,DSP可编程 - 底层固件不可编程,开发人员需要熟悉软件接口,高通方案的软件接口是比较丰富的;底层固件部分可编程,指的是QCC30xx和51xx系列将一部分软件接口的源码开放出来,降低开发者理解和运用的难度
- 应用层有源码,软件框架是完整的,可以增删一些功能
- DSP可编程,意味着可以移植客户的自有算法,属于较高级的功能,一般ODM厂商不会涉及到。QCC30xx的DSP是部分可编程,意思是可以调用预置的算法模块并重新设计音频链路,但不能新建算法模块
- 对于不可编程的部分,绝大多数情况下是可以稳定工作的,也不排除有个别问题需要修复,此时可以通过打patch(补丁)的方式来解决此问题,当然这需要原厂的支持
- 软件开放程度越高,芯片通用性越强,价格越高;软件开放程度越低,芯片专用性越强,价格越低
按照方案开发的难易度,推荐的学习路线如下:
- 从300x开始上手,熟悉基础的sink模式蓝牙耳机功能
- 再学习8675,熟悉source蓝牙发射器模式和传统tws耳机模式
- 接着学习30xx,熟悉earbuds蓝牙豆模式,并能够用kymera自定义音频链路
- 最后学习512x,熟悉kymera仿真C语言算法的方法,能够自行开发算法模块并集成到音频链路
3. 大量阅读文档
学习蓝牙开发的过程中需要阅读大量的文档,才能在大脑中形成足够数量的知识点,再通过阅读代码和实际调试将知识点形成知识网络,产生解决实际问题的能力。
蓝牙技术类的文档主要由如下几部分组成:
- 官方技术规格文档,如“bluetooth core spec 5.0”/"GATT profile"等,在蓝牙官网下载,权威性和指导性是最强的,阅读难度也是最大的。不建议直接硬啃,可作为词典在阅读代码时查询,加深对协议中很多抽象概念的理解。
- 芯片平台技术资料,如高通ADK中的众多“user guide”等,用高通的开发者账号下载,入门引导、实操示范为主,对开发产品的具体功能是有很强的指导意义的,必读且要精读。很多读者容易在繁多的文档中迷失方向,建议阅读顺序是总体方案概述->硬件规格书类->软件系统类->示例讲解类。
- 公开网络资料,如csdn博客、专业蓝牙技术论坛(52bluetooth)等,各自有用户权限,知识点讲解、问题解决方案分享为主,阅读难度不大,但需要有较多的背景知识和实际经验才有帮助。
4. 先基础再延申
高通蓝牙方案可以支持的功能有很多,体现在终端产品上是多个功能的集合,学习时容易找不到合适的切入点。
蓝牙平台的一些功能(如打电话、听音乐、BLE传输数据)在同类型的产品中总会出现,然后是基于一种或多种功能延申出的增强功能(如语音助手)。建议按照功能的依赖关系安排学习步骤:
- 基础功能
- 接听电话 HFP/HSP
- 听音乐 A2DP
- 虚拟串口通讯 SPP/RFCOMM
- 呼出电话 AGHFP
- 音频发射 A2DP
- 显示电池电量 BLE/HFP
- 增强功能
- 语音助手 HFP/A2DP+SCO
- OTA升级固件 SPP/RFCOMM/GATT
- 安卓app控制 SPP/GATT
- iOS app控制 GATT/iAP2
5. 记录和分享
在学习过程中收集到的知识,应该尽可能记录下重点内容和出处,以免日后需要用时找不到相关信息。在有阶段性学习成果时,尝试通过网络分享给更多人,可能会收获感谢和赞美,激励自己不断学习,形成良性循环。
更多相关内容 - 底层固件不可编程,开发人员需要熟悉软件接口,高通方案的软件接口是比较丰富的;底层固件部分可编程,指的是QCC30xx和51xx系列将一部分软件接口的源码开放出来,降低开发者理解和运用的难度
-
低功耗蓝牙开发技术基本概念和体系结构
2020-07-15 15:30:36在低功耗蓝牙方面工作的人们都使用他们自己的术语来描述一些技术特征和规范,下面介绍几个相关术语:自适应跳频(Adaptive Frequency Hopping, AFH):一种使用某个频率子集的技术,使设备可以避免其他非自适应技术... -
蓝牙的基本概念以及发展轨迹 - 蓝牙的前生后世
2020-07-20 18:01:58第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。 第二篇:Transport层介绍,主要介绍蓝牙协议栈跟蓝牙芯片之前的硬件传输协议,比如基于UART的H4,H5,BCSP,...一. 声明
本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下:
第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。
第二篇:Transport层介绍,主要介绍蓝牙协议栈跟蓝牙芯片之前的硬件传输协议,比如基于UART的H4,H5,BCSP,基于USB的H2等
第三篇:传统蓝牙controller介绍,主要介绍传统蓝牙芯片的介绍,包括射频层(RF),基带层(baseband),链路管理层(LMP)等
第四篇:传统蓝牙host介绍,主要介绍传统蓝牙的协议栈,比如HCI,L2CAP,SDP,RFCOMM,HFP,SPP,HID,AVDTP,AVCTP,A2DP,AVRCP,OBEX,PBAP,MAP等等一系列的协议吧。
第五篇:低功耗蓝牙controller介绍,主要介绍低功耗蓝牙芯片,包括物理层(PHY),链路层(LL)
第六篇:低功耗蓝牙host介绍,低功耗蓝牙协议栈的介绍,包括HCI,L2CAP,ATT,GATT,SM等
第七篇:蓝牙芯片介绍,主要介绍一些蓝牙芯片的初始化流程,基于HCI vendor command的扩展
第八篇:附录,主要介绍以上常用名词的介绍以及一些特殊流程的介绍等。
另外,开发板如下连接红字,对于想学习蓝牙协议栈的最好人手一套。以便更好的学习蓝牙协议栈,相信我,学完这一套视频你将拥有修改任何协议栈的能力(比如Linux下的bluez,Android下的bluedroid)。
------------------------------------------------------------------------------------------------------------------------------------------
CSDN学院链接(进入选择你想要学习的课程):https://edu.csdn.net/lecturer/5352?spm=1002.2001.3001.4144
蓝牙交流扣扣群:970324688
Github代码:https://github.com/sj15712795029/bluetooth_stack
入手开发板:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22329603896.18.5aeb41f973iStr&id=622836061708
------------------------------------------------------------------------------------------------------------------------------------------
另外,欢迎关注公众号,我会定期推送干货给你们
二. 前言
首先在介绍以下内容之前,我们先来介绍下我们的CSDN课程,以下介绍内容都会在 CSDN课程 手把手教你蓝牙协议栈入门(点击我)中第二小节介绍。
三. 蓝牙概念
蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。
蓝牙作为一种小范围无线连接技术,能在设备间实现方便快捷、灵活安全、低成本、低功耗的数据通信和语音通信,因此它是目前实现无线个域网通信的主流技术之一。与其他网络相连接可以带来更广泛的应用。是一种尖端的开放式无线通信,能够让各种数码设备无线沟通,是无线网络传输技术的一种,原本用来取代红外。
蓝牙技术是一种无线数据与语音通信的开放性全球规范,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接。其实质内容是为固定设备或移动设备之间的通信环境建立通用的无线电空中接口(Radio Air Interface),将通信技术与计算机技术进一步结合起来,使各种3C设备在没有电线或电缆相互连接的情况下,能在近距离范围内实现相互通信或操作。简单的说,蓝牙技术是一种利用低功率无线电在各种3C设备间彼此传输数据的技术。蓝牙工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段,使用IEEE802.11协议。作为一种新兴的短距离无线通信技术,正有力地推动着低速率无线个人区域网络的发展。
四. 蓝牙的产生背景
“蓝牙”的形成背景是这样的: 1998 年 5 月,爱立信、诺基亚、东芝、 IBM和英特尔公司等五家著名厂商, 在联合开展短程无线通信技术的标准化活动时提出了蓝牙技术,其宗旨是提供一种短距离、 低成本的无线传输应用技术。 这五家厂商还成立了蓝牙特别兴趣组, 以使蓝牙技术能够成为未来的无线通信标准。 芯片霸主 Intel 公司负责半导体芯片和传输软件的开发,爱立信负责无线射频和移动电话软件的开发, IBM 和东芝负责笔记本电脑接口规格的开发。 1999 年下半年,著名的业界巨头微软、摩托罗拉、三星、朗讯与蓝牙特别小组的五家公司共同发起成立了蓝牙技术推广组织,从而在全球范围内掀起了一股“蓝牙”热潮。全球业界即将开发一大批蓝牙技术的应用产品, 使蓝牙技术呈现出极其广阔的市场前景,并预示着 21 世纪初将迎来波澜壮阔的全球无线通信浪潮。
关于蓝牙这个名字的由来还有一个小故事。 “蓝牙” 这名称来自 10 世纪的丹麦国王哈拉尔德 (Harald Gormsson) 的外号。出身海盗家庭的哈拉尔德统一了北欧四分五裂的国家,成为维京王国的国王。 由于他喜欢吃蓝莓, 牙齿常常被染成蓝色,而获得“蓝牙”的绰号,当时蓝莓因为颜色怪异的缘故被认为是不适合食用的东西,因此这位爱尝新的国王也成为创新与勇于尝试的象征。 1998 年,爱立信公司希望无线通信技术能统一标准而取名“蓝牙” 。
随着蓝牙技术由手机、 游戏、耳机、 便捷式电能和汽车等传统应用领域向物联网、医疗等新领域扩展,市场对低功耗的要求越来越高。蓝牙 4.0 协议版本是蓝牙 3.0 高速版本基础上增加了低能消耗协议部分。 嵌入式设备在很多应用场景要求能耗非常低,传输速率要求也不高,对于这类设备,可以仅实现 4.0 协议中低耗能蓝牙部分,通过与支持双模的主机设备进行通信或者跟同类设备通信。
由于蓝牙 4.0 协议拥有极低的运行和待机功耗, 使用一粒纽扣电池甚至可持续工作数年之久;同时还有低成本、 跨厂商互操互作性、 2 毫秒低延迟、 AES-128加密等诸多特色,可以广泛应用于计步器、心律监视器、智能仪表、传感器物联网等众多领域,大大扩展蓝牙技术的应用范围。 所以, 目前很多蓝牙厂商也都推出了符合蓝牙 4.0 版本的低功耗协议的蓝牙芯片
五. 蓝牙发展轨迹
如果你想看一下的那么多文字,又想吹水下发展历程,那么观看我们CSDN学院的课程就好:
https://edu.csdn.net/course/detail/30065
1998 年 5 月 20 日,爱立信联合 IBM、英特尔、诺基亚及东芝公司等 5 家著名厂商成立“特别兴趣小组”(Special Interest Group,SIG),即蓝牙技术联盟的前身,目标是开发一个成本低、效益高、可以在短距离范围内随意无线连接的蓝牙技术标准。当年蓝牙推出 0.7 规格,支持 Baseband 与 LMP(Link Manager Protocol)通讯协定两部分。
1999 年先后推出 0.8 版、0.9 版、1.0 Draft 版。完成了 SDP(Service Discovery Protocol)协定和 TCS(Telephony Control Specification)协定。
1999 年 7 月 26 日正式公布 1.0A 版,确定使用 2.4GHz 频段。和当时流行的红外线技术相比,蓝牙有着更高的传输速度,而且不需要像红外线那样进行接口对接口的连接,所有蓝牙设备基本上只要在有效通讯范围内使用,就可以进行随时连接。
1999 年下半年,微软、摩托罗拉、三星、朗讯与蓝牙特别小组的五家公司共同发起成立了蓝牙技术推广组织,从而在全球范围内掀起了一股“蓝牙”热潮。
到 2000 年 4 月,SIG 的成员数已超过 1500,其成长速度超过任何其他的无线联盟。
蓝牙技术变迁历史
第一代蓝牙:关于短距离通讯早期的探索
1999 年:蓝牙 1.0
早期的蓝牙 1.0 A 和 1.0B 版存在多个问题,有多家厂商指出他们的产品互不兼容。同时,在两个设备“链接”(Handshaking)的过程中,蓝牙硬件的地址(BD_ADDR)会被发送出去,在协议的层面上不能做到匿名,造成泄漏数据的危险。
因此,当 1.0 版本推出以后,蓝牙并未立即受到广泛的应用。除了当时对应蓝牙功能的电子设备种类少,蓝牙装置也十分昂贵。
2001 年:蓝牙 1.1
蓝牙 1.1 版正式列入 IEEE 802.15.1 标准,该标准定义了物理层(PHY)和媒体访问控制(MAC)规范,用于设备间的无线连接,传输率为 0.7Mbps。但因为是早期设计,容易受到同频率之间产品干扰,影响通讯质量。
2003 年:蓝牙 1.2
蓝牙 1.2 版针对 1.0 版本暴露出的安全性问题,完善了匿名方式,新增屏蔽设备的硬件地址(BD_ADDR)功能,保护用户免受身份嗅探攻击和跟踪,同时向下兼容 1.1 版。此外,还增加了四项新功能:
AFH(Adaptive Frequency Hopping)适应性跳频技术,减少了蓝牙产品与其它无线通讯装置之间所产生的干扰问题;
eSCO(Extended Synchronous Connection-Oriented links)延伸同步连结导向信道技术,用于提供 QoS 的音频传输,进一步满足高阶语音与音频产品的需求;
Faster Connection 快速连接功能,可以缩短重新搜索与再连接的时间,使连接过程更为稳定快速;
支持 Stereo 音效的传输要求,但只能以单工方式工作。
代表作:爱立信第一台蓝牙手机 T39mc
第二代蓝牙:发力传输速率的 EDR 时
2004 年:蓝牙 2.0
蓝牙 2.0 是 1.2 版本的改良版,新增的 EDR(Enhanced Data Rate)技术通过提高多任务处理和多种蓝牙设备同时运行的能力,使得蓝牙设备的传输率可达 3Mbps。
蓝牙 2.0 支持双工模式:可以一边进行语音通讯,一边传输文档/高质素图片。
同时,EDR 技术通过减少工作负债循环来降低功耗,由于带宽的增加,蓝牙 2.0 增加了连接设备的数量。
2007 年:蓝牙 2.1
蓝牙 2.1 新增了 Sniff Subrating 省电功能,将设备间相互确认的讯号发送时间间隔从旧版的 0.1 秒延长到 0.5 秒左右,从而让蓝牙芯片的工作负载大幅降低。
另外,新增 SSP 简易安全配对功能,改善了蓝牙设备的配对体验,同时提升了使用和安全强度。
支持 NFC 近场通信,只要将两个内置有 NFC 芯片的蓝牙设备相互靠近,配对密码将通过 NFC 进行传输,无需手动输入。
代表作:正在以蓝牙与无线耳机沟通的 Sony Ericsson P910i PDA 手机
第三代蓝牙:High Speed,传输速率高达 24Mbps
2009 年:蓝牙 3.0
蓝牙 3.0 新增了可选技术 High Speed,High Speed 可以使蓝牙调用 802.11 WiFi 用于实现高速数据传输,传输率高达 24Mbps,是蓝牙 2.0 的 8 倍,轻松实现录像机至高清电视、PC 至 PMP、UMPC 至打印机之间的资料传输。
蓝牙 3.0 的核心是 AMP(Generic Alternate MAC/PHY),这是一种全新的交替射频技术,允许蓝牙协议栈针对任一任务动态地选择正确射频。
功耗方面,蓝牙 3.0 引入了 EPC 增强电源控制技术,再辅以 802.11,实际空闲功耗明显降低。
此外,新的规范还加入 UCD 单向广播无连接数据技术,提高了蓝牙设备的相应能力。
代表作:蓝牙适配器
第四代蓝牙:主推” Low Energy”低功耗
2010 年:蓝牙 4.0
蓝牙 4.0 是迄今为止第一个蓝牙综合协议规范,将三种规格集成在一起。其中最重要的变化就是 BLE(Bluetooth Low Energy)低功耗功能,提出了低功耗蓝牙、传统蓝牙和高速蓝牙三种模式:
”高速蓝牙“主攻数据交换与传输;“传统蓝牙”则以信息沟通、设备连接为重点;”低功耗蓝牙“以不需占用太多带宽的设备连接为主,功耗较老版本降低了 90%。
BLE 前身是 NOKIA 开发的 Wibree 技术,本是作为一项专为移动设备开发的极低功耗的移动无线通信技术,在被 SIG 接纳并规范化之后重命名为 Bluetooth Low Energy(后简称低功耗蓝牙)。这三种协议规范还能够互相组合搭配、从而实现更广泛的应用模式。
蓝牙 4.0 的芯片模式分为 Single mode 与 Dual mode。Single mode 只能与蓝牙 4.0 互相传输无法向下与 3.0/2.1/2.0 版本兼容;Dual mode 可以向下兼容 3.0/2.1/2.0 版本。前者应用于使用纽扣电池的传感器设备,例如对功耗要求较高的心率检测器和温度计;后者应用于传统蓝牙设备,同时兼顾低功耗的需求。
此外,蓝牙 4.0 还把蓝牙的传输距离提升到100米以上(低功耗模式条件下)。拥有更快的响应速度,最短可在 3 毫秒内完成连接设置并开始传输数据。更安全的技术,使用 AES-128 CCM 加密算法进行数据包加密和认证。
^ 代表作:苹果 iPhone 4S 是第一款支持蓝牙 4.0 标准的智能手机
2013 年:蓝牙 4.1
蓝牙 4.1 在传输速度和传输范围上变化很小,但在软件方面有着明显的改进。此次更新目的是为了让 Bluetooth Smart 技术最终成为物联网(Internet of Things)发展的核心动力。
支持与 LTE 无缝协作。当蓝牙与 LTE 无线电信号同时传输数据时,那么蓝牙 4.1 可以自动协调两者的传输信息,以确保协同传输,降低相互干扰。
允许开发人员和制造商「自定义」蓝牙 4.1 设备的重新连接间隔,为开发人员提供了更高的灵活性和掌控度。
支持「云同步」。蓝牙 4.1 加入了专用的 IPv6 通道,蓝牙 4.1 设备只需要连接到可以联网的设备(如手机),就可以通过 IPv6 与云端的数据进行同步,满足物联网的应用需求。
支持「扩展设备」与「中心设备」角色互换。支持蓝牙 4.1 标准的耳机、手表、键鼠,可以不用通过 PC、平板、手机等数据枢纽,实现自主收发数据。例如智能手表和计步器可以绕过智能手机,直接实现对话。
2014 年:蓝牙 4.2
蓝牙 4.2 的传输速度更加快速,比上代提高了 2.5 倍,因为蓝牙智能(Bluetooth Smart)数据包的容量提高,其可容纳的数据量相当于此前的10倍左右。
改善了传输速率和隐私保护程度,蓝牙信号想要连接或者追踪用户设备,必须经过用户许可。用户可以放心使用可穿戴设备而不用担心被跟踪。
支持 6LoWPAN,6LoWPAN 是一种基于 IPv6 的低速无线个域网标准。蓝牙 4.2 设备可以直接通过 IPv6 和 6LoWPAN 接入互联网。这一技术允许多个蓝牙设备通过一个终端接入互联网或者局域网,这样,大部分智能家居产品可以抛弃相对复杂的 WiFi 连接,改用蓝牙传输,让个人传感器和家庭间的互联更加便捷快速。
LE链接安全
从Spec定义上蓝牙4.0和4.1的配对加密环节都是基于AES-CCM加密,但是由于蓝牙4.1双方共享同一密钥,所以存在被破解风险和漏洞。蓝牙4.2的pairing环节,采用Diffie-Hellman Key Exchange密钥交换算法进行加密,每一个设备有一对密钥对,公钥和私钥,私钥自己保存,公钥公开给对方,数据交互时,一方通过自己的私钥和对方的公钥进行加密文件,接收方通过自己私钥和传输方的公钥进行解密,从而有效的防止中间人破解密钥的事件发生。
历代蓝牙标准性能
隐私保护
蓝牙在广播过程中会携带自己的BD address (bluetooth device address)即为蓝牙唯一的MAC地址,在某些应用,比如物流追踪应用当中是非常有帮助的,可以根据BD address固定物流设备。
但是在某些应用不希望自己的BD address暴露在主端设备的监控下,蓝牙4.2给出了灵活的选择,蓝牙4.2规定,从机设备可以选择在广播模式下发送随机BD address,这样主端设备除了接该到设备之后才能获取其真实BD address,除此该设备广播模式的BD address为随机序列。
第五代蓝牙:开启「物联网」时代大门
2016 年:蓝牙 5.0
蓝牙 5.0 在低功耗模式下具备更快更远的传输能力,传输速率是蓝牙 4.2 的两倍(速度上限为 2Mbps),有效传输距离是蓝牙 4.2 的四倍(理论上可达 300 米),数据包容量是蓝牙 4.2 的八倍。
支持室内定位导航功能,结合 WiFi 可以实现精度小于 1 米的室内定位。
针对 IoT 物联网进行底层优化,力求以更低的功耗和更高的性能为智能家居服务。
低功耗版蓝牙与经典版蓝牙参数
Mesh 网状网络:实现物联网的关键”钥匙“
Mesh 网状网络是一项独立研发的网络技术,它能够将蓝牙设备作为信号中继站,将数据覆盖到非常大的物理区域,兼容蓝牙 4 和 5 系列的协议。
传统的蓝牙连接是通过一台设备到另一台设备的「配对」实现的,建立「一对一」或「一对多」的微型网络关系。
而 Mesh 网络能够使设备实现「多对多」的关系。Mesh 网络中每个设备节点都能发送和接收信息,只要有一个设备连上网关,信息就能够在节点之间被中继,从而让消息传输至比无线电波正常传输距离更远的位置。
这样,Mesh 网络就可以分布在制造工厂、办公楼、购物中心、商业园区以及更广的场景中,为照明设备、工业自动化设备、安防摄像机、烟雾探测器和环境传感器提供更稳定的控制方案。
办公楼里的 Mesh 网络
物联网:未来蓝牙技术的新主场
2019年1月:蓝牙5.1
增加AoA/AoD,号称厘米级误差定位
2019年12月31:蓝牙5.2
增加BLE audio,LC3的编解码方式
总结起来就几张图吧,如下:
-
基于蓝牙技术的车载无线电通讯技术应用.pdf
2019-09-14 20:50:09要分析了车载蓝牙技术的基本概念,然后分析了车载蓝牙技术 的开发和应用意义,并对基于蓝牙技术的车载无线电通讯技术 需要实现的功能进行了详细总结,最后探讨了基于蓝牙技术的 车载无线电通讯技术设计和应用情况... -
蓝牙基础概念
2019-06-22 11:24:52本篇文章很多内容摘抄自蜗窝科技的蓝牙...自1994年由爱立信推出至今,蓝牙技术已经走过了20多个岁月。从最初的Bluetooth V1.0,到Bluetooth V5.0,经历了近10多个版本的修订后,发展为当前的状况。 如今的蓝牙,像一...本篇文章很多内容摘抄自蜗窝科技的蓝牙协议分析!
1. 蓝牙发展过程
自1994年由爱立信推出至今,蓝牙技术已经走过了20多个岁月。从最初的Bluetooth V1.0,到Bluetooth V5.0,经历了近10多个版本的修订后,发展为当前的状况。
如今的蓝牙,像一个大杂烩:BR/EDR沿用旧的蓝牙规范;LE抄袭802.15.4;AMP直接使用802.11。而这一切的目的,就是以兼容性和易用性为基础,在功耗和传输速率之间左右为难,这并不是优雅的设计。
版本 规范发布时间 增强功能 0.7 1998.10.19 Baseband、LMP 0.8 1999.01.21 HCI、L2CAP、RFCOMM 0.9 1999.04.30 OBEX于IrDA的互通性 1.0 Draft 1999.07.05 SDP、TCS 1.0 A 1999.07.26 第一个正式版本 1.0 B 2000.10.01 安全性,厂商设备之间连接兼容性 1.1 2001.02.22 IEEE 802.15.1 1.2 2003.11.05 快速连接、自适应跳频、错误检查、流程控制和同步能力 2.0+EDR 2004.11.09 EDR传输率提升至2-3Mbps 2.1+EDR 2007.07.26 扩展查询响应、简易安全配对、暂停与继续加密、Sniff省电 3.0+HS 2009.04.21 交替射频技术(AMP)、802.11协议适配层、电源管理、取消了UMB的应用 4.0+BLE 2010.06.30 低功耗物理层和链路层、AES加密、ATT、GATT和SM等 4.1 2013.13.03 与4G不构成干扰,通过IPV6连接到网络,可同步发送和接收数据 4.2 2014.12.04 数据传输更快、隐私功能更强大,支持6LoWPAN 5.0 2016.06.16 更快的传输速度,更远的传输距离,更低的功耗,导航功能,物联网功能 2. 蓝牙技术的概述
2.1 两种蓝牙技术:Basic Rate(BR)和Low Energy(LE)
蓝牙协议包括两种技术:Basic Rate(简称BR)和Low Energy(简称LE)。这两种技术,都包括搜索(discovery)、连接(connection)等机制,但它们是不能互通的。
如果厂商要确保能和所有的蓝牙设备互通,那么就只能同时实现两种技术。可以说BR和LE是完全不同的两种技术。2.1.1 Basic Rate(BR)
Basic Rate是正宗的蓝牙技术,包括可选(optional)的EDR(Enhanced Data Rate)技术,以及交替使用的(Alternate)的MAC(Media Access Control)层和PHY层扩展(简称AMP)。
说着很拗口,不过通过背后的应用场景,就好理解了:(1)蓝牙诞生之初,使用的是BR技术,此时蓝牙的理论传输速率只能达到721.2Kbps。在那个年代,56Kbps的Modem就是高大上了,这个速度可以说是惊为天人了啊!但是科技变化太快了,BR技术转眼就过时了。那怎么办呢?缝缝补补一下,增强速度呗,Enhanced Data Rate就出现了。
(2)使用EDR技术的蓝牙,理论速率可以达到2.1Mbps。这一次的升级换代,还算优雅,因为没有改变任何的硬件架构、软件架构和使用方式上的改变。
(3)也许你也猜到了,EDR又落伍了,看看人家WIFI(WLAN),几十Mbps,上百Mbps,咱们才2.1Mbps,也太寒酸了吧!那怎么办呢?蓝牙组织想了个坏主意:哎,WIFI!把你的物理层和MAC层借我用用呗!这就是AMP(Alternate MAC and PHY layer extension)。艾玛,终于松口气了,我们可以达到54Mbps了。
(4)不过呢,由于蓝牙自身的物理层和AMP技术差异太明显了,这次扩展只能是交替使用(Alternate)的,也就是说,有我(BR/EDR)没你(AMP)。NOTE: 细心的读者可能会注意到,这里特别强调了optional和alternate这两个字眼,这是蓝牙Spec的原话。它意味着,BR和EDR是可以同时存在的,但BR/EDR和AMP只能二选一。
2.1.2 Low Energy(LE)
BR技术的进化路线,就是传输速率的加快、加快、再加快。但能量是守恒的,你想传的更快,代价就是消耗更多的能量。而有很多的应用场景,并不关心传输速率,反而非常关心功耗。这就是Bluetooth LE(称作蓝牙低功耗)产生的背景。
LE技术相比BR技术,差异非常大,或者说就是两种不同的技术,凑巧都加一个“蓝牙”的前缀而已。后面我们会详细的解释这种差异,以及LE的行为特征。
2.2 蓝牙系统的组成
蓝牙系统的组成,涉及到Bluetooth Application、Bluetooth Core、Bluetooth Host、Bluetooth Controller等部分。从core5.0摘录的架构图如下:
(1)这几部分都是逻辑实体,而不是都能对应特定的硬件设备。所谓的“逻辑实体”,需要和日常生活中的“物理实体”区隔开。如在做电路设计时,一个蓝牙芯片、一个主控CPU,就是指物理实体。而蓝牙协议所描述的这些“逻辑实体”,不一定会和物理实体一一对应,如在实际应用中,Host和Bluetooth Application可能会位于同一个物理实体中(主控CPU),而Controller单独位于另一个物理实体中(蓝牙芯片)。
(2)蓝牙协议规定了两个层次的协议,分别为蓝牙核心协议(Bluetooth Core)和蓝牙应用层协议(Bluetooth Application)。蓝牙核心协议关注对蓝牙核心技术的描述和规范,它只提供基础的机制,并不关心如何使用这些机制;蓝牙应用层协议,是在蓝牙核心协议的基础上,根据具体的应用需求,定义出的策略,如AVRCP、A2DP、HID等。
(3)Bluetooth Core由两部分组成,Host和Controller。这两部分在不同的蓝牙技术中(BR/EDR、AMP、LE),承担角色略有不同,但大致的功能是相同的。Controller负责定义RF、Baseband等偏硬件的规范,并在这之上抽象出用于通信的逻辑链路(Logical Link);Host负责在逻辑链路的基础上,进行更为友好的封装,这样就可以屏蔽掉蓝牙技术的细节,让Bluetooth Application更为方便的使用。
(4)在一个系统中,Host只有一个,但Controller可以一个,也可以有多个。如:单独的LE Controller;单独的BR/EDR Controller;单独的LE+BR/EDR Controller;在单独的BR/EDR Controller或LE+BR/EDR Controller基础上,增加一个或多个额外的AMP Controller。BR/EDR、AMP、BLE等技术有如下的特点:
首先如下图总结:
(1)BR/EDR技术,侧重“点对点”通信,以至于虽然在协议的底层(如Logical Link)有提及多播(Unidirectional)和广播(Broadcast)的概念,但在上层的应用场景中,几乎不存在相应的应用。
(2)随着物联网的发展,业界对简单的、不需要连接的多播或广播通信的需求越来越迫切,因此BLE技术在RF和Baseband的协议中,就做出了修改,以适应这种需求,即:修改原有的79个channel的跳频方式,将channel的个数减少为40个,并保留了不少于3个的固定channel,用于广播通信。为仅仅在剩下的37个data channel上跳频。
(3)因为这种改变,原有的搜索/连接/配对等概念,在BLE上就不再存在了,取而代之的是Advertisor、Initiator等概念。但在之后的数据通信的层次上,尽量保持了一致。
(4)对于AMP来说,是基于BR/EDR的controller,在完成通常的点对点连接之后,两个蓝牙设备商议,是否需要将后续的数据通信,转移至AMP controller上。这就是Bluetooth 3.0引入的AMP技术。2.3 功率
蓝牙发射功率分三级:一级功率100mW(20dBm);二级功率2.5mW(4dBm);三级功率1mW(0dBm)
3. 协议架构
蓝牙协议是通信协议的一种,为了把复杂问题简单化,任何通信协议都具有层次性,特点如下:
从下到上分层,通过层层封装,每一层只需要关心特定的、独立的功能,易于实现和维护;
在通信实体内部,下层向上层提供服务,上层是下层的用户;
在通信实体之间,协议仅针对每一层,实体之间的通信,就像每一层之间的通信一样,这样有利于交流、理解、标准化。蓝牙协议分为四个层次:物理层(Physical Layer)、逻辑层(Logical Layer)、L2CAP Layer和应用层(APP Layer)。
物理层,负责提供数据传输的物理通道(通常称为信道)。通常情况下,一个通信系统中存在几种不同类型的信道,如控制信道、数据信道、语音信道等等。
逻辑层,在物理层的基础上,提供两个或多个设备之间、和物理无关的逻辑传输通道(也称作逻辑链路)。
L2CAP层,L2CAP是逻辑链路控制和适配协议(Logical Link Control and Adaptation Protocol)的缩写,负责管理逻辑层提供的逻辑链路。基于该协议,不同Application可共享同一个逻辑链路。类似TCP/IP中端口(port)的概念。
APP层,理解蓝牙协议中的应用层,基于L2CAP提供的channel,实现各种各样的应用功能。Profile是蓝牙协议的特有概念,为了实现不同平台下的不同设备的互联互通,蓝牙协议不止规定了核心规范(称作Bluetooth core),也为各种不同的应用场景,定义了各种Application规范,这些应用层规范称作蓝牙profile。在以上四个层次的基础上,蓝牙协议又将物理层和逻辑层划分了子层,分别是Physical Channel/Physical Links和Logical Transports/Logical Links,这一划分,相当使人崩溃,要多花费大量的脑细胞去理解它们,具体请参考下面的分析。
3.1 物理层
物理层负责提供数据传输的物理信道,蓝牙的物理层分为Physical Channel和Physical Links两个子层。我们先介绍Physical Channel。
3.1.1 Physical Channel(物理信道)
一个通信系统中通常存在多种类型的物理信道,蓝牙也不例外。蓝牙存在BR/EDR、LE和AMP三种技术,这三种技术在物理层的实现上就有很大的差异,下面让我们一一介绍。
首先是相同点,BR/EDR、LE和AMP的RF都使用2.4GHz ISM(Industrial Scientific Medical) 频段,频率范围是2.400-2.4835 GHz。
地理位置 ISM频段范围 射频信道频率 中国、美国、欧洲 2400.0~2483.5MHz F=(2402+k)MHz,k在0、1、……78中随机取值 法国 2446.5~2483.5MHz F=(2454+k)MHz,k在0、1、……22中随机取值 日本 2471.0~2497.0MHz F=(2473+k)MHz,k在0、1、……22中随机取值 西班牙 2445.0~2475.0MHz F=(2449+k)MHz,k在0、1、……22中随机取值 NOTE: 不同国家和地区蓝牙的频率和信道分配情况是不同,本文所有的描述都以中国采用的“欧洲和美国”标准为准。
我国的蓝牙频率在2.402GHz~2.483GHz,蓝牙每个频道的宽度为1MHz,为了减少带外辐射的干扰,保留上、下保护为3.5MHz和2MHz,79个跳频点中至少75个伪随机码跳动,30S内任何一个频点使用时长不能超过0.4S。
除了相同点,剩下的都是不同点了。
BR/EDR是传统的蓝牙技术,它这样定义物理信道:
(1)ISM频率范围内被分成79个channel,每一个channel占用1M的带宽,在0 channel和78 channel之外设立guard band(保护带宽,Lower Guard Band为2MHz,Upper Guard Band为3.5MHz)。
(2)采用跳频技术(hopping),也就是说,某一个物理信道,并不是固定的占用79个channel中的某一个,而是以一定的规律在跳动(该规律在技术上叫做"伪随机码",就是"假"的随机码)。因此蓝牙的物理信道,也可以称作跳频信道(hopping channel)。
(3)BR/EDR技术定义了5种物理信道(跳频信道),BR/EDR Basic Piconet Physical Channel、BR/EDR Adapted Piconet Physical Channel、BR/EDR Page Scan Physical Channel、BR/EDR Inquiry Scan Physical Channel和BR/EDR Synchronization Scan Channel。
(4)BR/EDR Inquiry Scan Physical Channel用于蓝牙设备的发现操作(discovery),即我们常用的搜索其它蓝牙设备(discover)以及被其它蓝牙设备搜索(discoverable)。
(5)BR/EDR Page Scan Physical Channel用于蓝牙设备的连接操作(connect),即我们常用的连接其它蓝牙设备(connect)以及被其它蓝牙设备连接(connectable)。
(6)BR/EDR Basic Piconet Physical Channel和BR/EDR Adapted Piconet Physical Channel主要用在处于连接状态的蓝牙设备之间的通信。它们的区别是,BR/EDR Adapted Piconet Physical Channel使用较少的RF跳频点。BR/EDR Basic Piconet Physical Channel使用全部79个跳频点,而BR/EDR Adapted Piconet Physical Channel是根据当前的信道情况使用79个跳频点中的子集,但是跳频数目也不能少于20个。这个主要是因为蓝牙使用ISM频段,当蓝牙和WIFI共存的时候,部分跳频点被WIFI设备占用而使得蓝牙设备在这些跳频点上的通信总是失败,因此,需要避过那些WIFI设备占用的频点。
(7)BR/EDR Synchronization Scan Channel可用于无连接的广播通信,后续文章会详细介绍。
(8)同一时刻,BT 设备只能在其中一个物理信道上通信,为了支持多个并行的操作,蓝牙系统采用时分方式,即不同的时间点采用不同的信道。LE是为蓝牙低功耗而生的技术,为了实现低功耗的目标,其物理信道的定义与BR/EDR有些差异:
(1)ISM频率范围内被分成40个channel,每一个channel占用2M的带宽,在0 channel和39 channel之外设立guard band(保护带宽,Lower Guard Band为2MHz,Upper Guard Band为3.5MHz)。
(2)LE技术定义了2种物理信道,LE Piconet channel和LE Advertisement Broadcast Channel。
(3)LE Piconet Channel用在处于连接状态的蓝牙设备之间的通信,和BR/EDR一样,采用跳频技术。和BR/EDR不一样的地方是,只会在40个频率channel中的37个上面跳频。
(4)LE Advertisement Broadcast Channel用于在设备间进行无连接的广播通信,这些广播通信可用于蓝牙的设备的发现、连接(和BR/EDR类似)操作,也可用于无连接的数据传输。
(5)和BR/EDR一样,同一时刻,BT 设备只能在其中一个物理信道上通信,为了支持多个并行的操作,蓝牙系统采用时分方式,即不同的时间点采用不同的信道。AMP是为高速数据传输设计的技术,其物理层规范直接采用802.11(WIFI)的PHY规范,主要有如下特点:
AMP物理信道只有一种,即AMP Physical Channel,主要用于已连接设备之间的数据通信,和BR/EDR技术中的BR/EDR Adapted Piconet Physical Channel位于一个级别,可以互相切换使用。
3.1.2 Physical Links(物理链路)
由3.1.1的描述可知,蓝牙协议为BR/EDR、LE和AMP三种技术定义了8种类型的物理信道,包括:
AMP physical channel
BR/EDR Basic Piconet Physical Channel
BR/EDR Adapted Piconet Physical Channel
BR/EDR Page Scan Physical Channel
BR/EDR Inquiry Scan Physical Channel
BR/EDR Synchronization Scan Channel
LE Piconet Channel
LE Advertisement Broadcast Channel而物理链路,则是对这些物理信道(主要是BR/EDR技术中的Basic Piconet Physical Channel和Adapted Piconet Physical Channel)的进一步封装,其主要特征是:
(1)Physical Link是一个虚拟概念,不对应协议中任何的实体,数据包封包/解包的过程中不被体现。
(2)AMP Physical Channel、LE Piconet Channel、LE Advertisement Broadcast Channel均有一个一一对应的Physical Link,分别是AMP Physical Link、LE Active Physical Link、LE Advertising Physical Channel。
(3)BR/EDR Page Scan Physical Channel、BR/EDR Inquiry Scan Physical Channel、BR/EDR Synchronization Scan Channel只在特定时间段使用,且无法控制任何属性,因此不需要再Physical Link中体现。
(4)BR/EDR Basic Piconet Physical Channel和BR/EDR Adapted Piconet Physical Channel是BR/EDR技术中已连接设备之间进行数据通信的通道,且同一时刻只能根据应用场景选择一种channel进行数据传输。因此这两个channel被map到BR/EDR Active Physical Link、BR/EDR Parked Physical Link和BR/EDR Connectionless Slave Broadcast Physical Link三个物理链路上。
(5)BR/EDR Active Physical Link和BR/EDR Parked Physical Link的抽象主要有两个方面的意义:
(5-1)屏蔽底层的Basic/Adapted Piconet Physical Channel之间的差异,统一使用Physical Link取代。在需要的时候,可以通过上层的链路管理协议,指定使用哪一种physical channel(Basic or Adapted)。
(5-2)可以通过Physical Link的抽象,控制Physical Channel的一些属性(如发射功率、收发周期等),以达到节省功耗的目的。而上面的层次(如逻辑层)不需要对这些动作知情。
(6)BR/EDR Active Physical Link定义了连接状态的蓝牙设备在链路处于active状态时的物理链路,该物理链路对应的设备的发射功率是可修改的。
(7)BR/EDR Parked Physical Link定义了连接状态的蓝牙设备在链路处于parked状态时的物理链路。parked状态是一种特殊的连接状态,连接双方没有正在进行的数据传输,所有的链路消耗,都是为保持连接所做的事情。此时可以通过降低在物理信道上的收发频率而降低功耗。该物理链路和BR/EDR Active Physical Link使用相同的物理信道。
(8)BR/EDR Connectionless Slave Broadcast Physical Link使用BR/EDR Adapted Piconet Physical Channel,用于一点到多点的广播通信。
(9)由上面的描述可知,物理链路这一层抽象,实在是可有可无,希望大家不要纠结,知道怎么回事即可。3.2 逻辑层
逻辑层的主要功能,是在已连接(LE Advertisement Broadcast可以看做一类特殊的连接)的蓝牙设备之间,基于物理链路,建立逻辑信道。所谓的逻辑信道,和城市道路上的车道类似:
一条城市道路可以看做一个物理链路(可能有两个方向,我们只考虑其中一个即可),该物理链路根据行车用途,可以划分为多个逻辑信道,如直行车道、右转车道、左转车道、掉头车道、快速车道、慢速车道等等
这里的车道(逻辑信道),从物理角度看,并没有什么分别,只是为了方便交通(数据传输),人为的抽象出来的。和车道类似,蓝牙逻辑信道的划分依据是传输类型,主要包括下面3类(即Logical Link):
(1)用于管理底层物理链路的控制类传输,包括AMP-C、ACL-C、PSB-C、LE-C、ADVB-C。
(2)传输用户数据的用户类传输,包括AMP-U、ACL-U、PSB-U、LE-U、ADVB-U。
(3)其它比较特殊的传输类型,包括流式传输(stream)、PBD(Profile Broadcast Data)。以上每种Logic Link都会在下层对应一个Logical Transport,这些Logical Transport具有一些属性值,如流控、应答/重传机制等。如下:
AMP ACL(Asynchronous Connection-Oriented Link),基于AMP技术的、面前连接的、异步传输链路,为AMP-U提供服务。
BR/EDR ACL,基于BR/EDR技术的ACL链路,为ACL-C、ACL-U提供服务。
SCO/eSCO(Synchronous Connection-Oriented/Extended SCO),基于BR/EDR技术的、面向连接的、同步传输链路,为stream类型的Logical Link提供服务。
ASB(Active Slave Broadcast)、PSB(Parked Slave Broadcast),基于BR/EDR技术的、面向连接的广播传输链路,为ACL-U、PSB-U、PSB-C提供服务。
CSB(Connectionless Slave Broadcast),基于BR/EDR技术的、无连接的广播链路,为PBD提供服务。
LE ACL,基于LE技术的、面前连接的、异步传输链路,为LE-U、LE-C提供服务。
ADVB(Advertising Broadcast),基于LE技术的、广告/广播链路,为ADVB-U、ADVB-C提供服务。
AMP-C没有对应的Logical Transport,而是直接控制AMP Physical Link完成所需功能。3.3 L2CAP Channels
L2CAP是Logical Link Control and Adaptation Protocol(逻辑链路控制和适配协议)的缩写,蓝牙协议到这个层次的时候,就清爽多了:
对下,它在用户类XXX-U Logical Link的基础上,抽象出和具体技术无关的数据传输通道(包括单播和广播两类),至此用户就不再需要关心繁杂的蓝牙技术细节。
对上,它以L2CAP channel endpoints的概念(类似TCP/IP中的端口),为具体的应用程序(profile)提供独立的数据传输通道(当然,也是一个逻辑通道)。
3.4 Profiles
profile是蓝牙Application的代指,也可以翻译为服务,为了实现不同平台下的不同设备的互联互通,蓝牙协议为各种可能的、有通用意义的应用场景,都制定的了规范,如SPP、HSP、HFP、FTP、IPv6/6LoWPAN等等。
Profiles基于L2CAP提供的L2CAP channel endpoints实现,在它们对应的层次上进行数据通信,以完成所需功能。有关蓝牙profile的介绍,会在后续文章中陆续给出,这里就不再详细说明了。
转载自:
作者:yk150915
来源:CSDN
原文:https://blog.csdn.net/yk150915/article/details/86437776
版权声明:本文为博主原创文章,转载请附上博文链接! -
蓝牙解析(1):蓝牙的基本概念
2018-09-28 10:03:112. 蓝牙技术的概述 2.1 两种蓝牙技术:Basic Rate(BR)和Low Energy(LE) 蓝牙协议包括两种技术:Basic Rate(简称BR)和Low Energy(简称LE)。这两种技术,都包括搜索(discovery)管理、连接(connection...2. 蓝牙技术的概述
2.1 两种蓝牙技术:Basic Rate(BR)和Low Energy(LE)
蓝牙协议包括两种技术:Basic Rate(简称BR)和Low Energy(简称LE)。这两种技术,都包括搜索(discovery)管理、连接(connection)管理等机制,但它们是不能互通的!这也是蜗蜗抱怨蓝牙协议不优雅的原因之一。
厂商要么实现这两种技术中的一种,这时就只能和同样实现了这个技术的设备互通,而不能和实现另外一种技术的设备互通。如果厂商要确保能和所有的蓝牙设备互通,那么就只能同时实现两种技术,而不去管是否真的需要,这样就能碰到什么人说什么话了!
2.1.1 Basic Rate(BR)
Basic Rate是正宗的蓝牙技术,可以包括可选(optional)的EDR(Enhanced Data Rate)技术,以及交替使用的(Alternate)的MAC(Media Access Control)层和PHY层扩展(简称AMP)。说着真拗口,不过通过背后的应用场景,就好理解了:
蓝牙诞生之初,使用的是BR技术,此时蓝牙的理论传输速率,只能达到721.2Kbps。在那个年代,56Kbps的Modem就是高大上了,这个速度可以说是惊为天人了啊!但是科技变化太快了,BR技术转眼就过时了。那怎么办呢?缝缝补补一下,增强速度呗,Enhanced Data Rate就出现了。
使用EDR技术的蓝牙,理论速率可以达到2.1Mbps。这一次的升级换代,还算优雅,因为没有改变任何的硬件架构、软件架构和使用方式上的改变。
也许你也猜到了,EDR又落伍了,看看人家WIFI(WLAN),几十Mbps,上百Mbps,咱们才2.1Mbps,也太寒酸了吧!那怎么办呢?蓝牙组织想了个坏主意:哎,WIFI!把你的物理层和MAC层借我用用呗!这就是AMP(Alternate MAC and PHY layer extension)。艾玛,终于松口气了,我们可以达到54Mbps了。
不过呢,由于蓝牙自身的物理层和AMP技术差异太明显了,这次扩展只能是交替使用(Alternate)的,也就是说,有我(BR/EDR)没你(AMP)。嗯!不优雅!
埋个问题:只能交替使用,那它们怎么切换呢?蜗蜗会在后续的内容中,根据主流蓝牙芯片的解决方案,来探讨一下该问题。
【注1:细心的读者可能会注意到,这里特别强调了optional和alternate这两个字眼,这是蓝牙Spec的原话。它意味着,BR和EDR是可以同时存在的,但BR/EDR和AMP只能二选一。】
2.1.2 Low Energy(LE)
上面所讲的BR技术的进化路线,就是传输速率的加快、加快、再加快。但能量是守恒的,你想传的更快,代价就是消耗更多的能量。而有很多的应用场景,并不关心传输速率,反而非常关心功耗。这就是Bluetooth LE(称作蓝牙低功耗)产生的背景。
LE技术相比BR技术,差异非常大,或者说就是两种不同的技术,凑巧都加一个“蓝牙”的前缀而已。后面我们会详细的解释这种差异,以及LE的行为特征。
2.2 蓝牙系统的组成
蓝牙系统的组成,涉及到Bluetooth Application、Bluetooth Core、Bluetooth Host、Bluetooth Controller等词汇,不知道是因为对英文理解的歧义,还是因为蓝牙规范本身定义的歧义,蜗蜗理解这些词汇时感觉有点别扭。因此特意在这个章节中,对相关概念及其背后的意义进行说明。
1)图中所描述的蓝牙系统的组成部分,如Bluetooth Core和Bluetooth Application,如Host和Controller,都是指“逻辑实体”。所谓的“逻辑实体”,需要和日常生活中的“物理实体”区隔开。如在做电路设计时,一个蓝牙芯片、一个主控CPU,就是指物理实体。而蓝牙协议所描述的这些“逻辑实体”,不一定会和物理实体一一对应,如在实际应用中,Host和Bluetooth Application可能会位于同一个物理实体中(主控CPU),而Controller单独位于另一个物理实体中(蓝牙芯片)。
2)蓝牙协议规定了两个层次的协议,分别为蓝牙核心协议(Bluetooth Core)和蓝牙应用层协议(Bluetooth Application)。蓝牙核心协议关注对蓝牙核心技术的描述和规范,它只提供基础的机制,并不关心如何使用这些机制;蓝牙应用层协议,是在蓝牙核心协议的基础上,根据具体的应用需求,百花齐放,定义出各种各样的策略,如FTP、文件传输、局域网等等。
3)Bluetooth Core由两部分组成,Host和Controller。这两部分在不同的蓝牙技术中(BR/EDR、AMP、LE),承担角色略有不同,但大致的功能是相同的。Controller负责定义RF、Baseband等偏硬件的规范,并在这之上抽象出用于通信的逻辑链路(Logical Link);Host负责在逻辑链路的基础上,进行更为友好的封装,这样就可以屏蔽掉蓝牙技术的细节,让Bluetooth Application更为方便的使用。
4)在一个系统中,Host只有一个,但Controller可以一个,也可以有多个。如:单独的LE Controller;单独的BR/EDR Controller;单独的LE+BR/EDR Controller;在单独的BR/EDR Controller或LE+BR/EDR Controller基础上,增加一个或多个额外的AMP Controller。
【注2:有关Bluetooth Core的详细描述,蜗蜗会在下一篇文章中描述,本文就不再深入介绍了。】
3. BR/EDR vs LE vs AMP
我们先从下面图片对BR/EDR、AMP和BLE三种技术有些更进一步的认识(点击这里可以查看放大后的原图):
该图片是对Bluetooth Core的一个Overview,从RF的Physical Channel,到Baseband的Physical Link、Logical Link、LMP、L2CAP等概念,都有一些粗略的介绍。由该图片可以看出,BR/EDR、AMP、BLE等技术有如下的特点:
1)BR/EDR技术,过于侧重“点对点”通信,以至于虽然在协议的底层(如Logical Link)有提及多播(Unidirectional)和广播(Broadcast)的概念,但在上层的应用场景中,几乎不存在(也不可能存在)相应的应用。
2)但随着物联网的发展,业界对简单的、不需要连接的多播或广播通信的需求越来越迫切,因此BLE技术在RF和Baseband的协议中,就做出了修改,以适应这种需求,即:修改原有的79个channel的跳频方式,将channel的个数减少为40个,并保留了不少于3个的固定channel,用于广播通信。为仅仅在剩下的37个data channel上跳频。
3)正因为这种改变,原有的搜索/连接/配对等概念,在BLE上就不再存在了,取而代之的是Advertisor、Initiator等概念。但在之后的数据通信的层次上,尽量保持了一致。
4)对于AMP来说,是基于BR/EDR的controller,在完成通常的点对点连接之后,两个蓝牙设备商议,是否需要将后续的数据通信,转移至AMP controller上。这就是Bluetooth 3.0引入的AMP技术。
我们暂时在这篇文章中对蓝牙技术做一个感性认识,在后续的文章中,会基于各个层次的协议,一步一步展开、推进,争取能把蓝牙技术分析透彻。
--------------------- 本文来自 no输给现实 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/z497544849/article/details/53929380?utm_source=copy
-
蓝牙mesh基本概念讲解
2021-08-03 23:02:121.蓝牙MESH基本概念 网状网(mesh) Mesh网络,就是一个多对多网络(Many to Many)。 每个设备节点都可以和别的节点自由通讯。在这种拓扑中,因为很多节点可以中继(relay)收到的消息(Message), 所以端对端的通信... -
蓝牙技术介绍
2019-09-29 21:17:34蓝牙技术 -
蓝牙基本概念
2018-04-14 10:28:381. 前言自1994年由爱立信推出至今,蓝牙技术已经走过了20个岁月。从最初的Bluetooth V1.0,到Bluetooth V4.0(最新的为V4.1,2013年底发布),经历了近9个版本的修订后,发展为当前的状况。说实话,如今的蓝牙4.1,... -
一篇文章足够你学习蓝牙技术,提供史上最全的蓝牙技术(传统蓝牙/低功耗蓝牙)文章总结,文档下载总结...
2020-08-03 08:09:52主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍,内容如下: 章节 文章标题 文章链接 视频课程 第一章 蓝牙概述 1. 蓝牙的基本概念以及发展轨迹. -
蓝牙 BLE 协议学习: 有关概念介绍
2021-03-13 14:06:11在学校内就用过蓝牙技术参加过比赛(并拿了奖);而蓝牙作为物联网中比较常见的协议,有必要进行深入的学习。此后的文章会以 ble(v4.0) 进行学习。 介绍 蓝牙技术最初由电信巨头爱立信公司于 1994 年创制,当时是... -
蓝牙学习笔记(一)——蓝牙相关概念和术语整理(小白版)
2020-07-17 11:21:481.单模蓝牙/双模蓝牙 我们常说的单模蓝牙...双模蓝牙芯片也能与标准蓝牙技术芯片以及使用传统蓝牙技术的其他双模蓝牙芯片通信。 蓝牙BR/EDR 蓝牙4.0双模 BLE单模 Bluetooth Bluetooth Smart Ready Bluetoo -
蓝牙基础概念(一)
2020-07-24 18:42:28蓝牙系统分为两 种不不同的技术:经典蓝牙 (Classic Bluetooth) 和蓝牙低功耗 (Bluetooth Low Energy)。 ESP32 支持双模蓝牙,即同时支持经典蓝牙和蓝牙低功耗。 从整体结构上,蓝牙可分为控制器器 (Controller) 和... -
蓝牙技术简述
2018-12-13 11:27:13相关术语有哪些? https://blog.csdn.net/myxmu/article/details/12611923 什么是蓝牙? 蓝牙是一种短程宽带无线电技术。 蓝牙实现了什么功能,使用什么技术实现的? 实现语音和数据无线传输功能,它使用跳频扩... -
智能蓝牙技术原理及设计方案集锦
2019-04-08 12:56:58智能蓝牙技术原理及设计方案集锦 UMTS“蓝牙”( Bluetooth)技术是由世界著名的5家大公司——爱立信(Ericsson)、诺基亚(Nokia、东芝(TOShiba)、国际商用机器公司(IBM)和英特尔(Intel),于1998年5月联合... -
蓝牙开发相关概念
2016-09-12 14:29:23蓝牙实际上分为了三类:单模、双模和经典,最官方的蓝牙版本称呼就是,单模蓝牙、双模蓝牙和经典蓝牙。 单模 双模 经典 单模 LE LE 无 双模 LE 经典 经典 经典 无 经典 ... -
Android 蓝牙技术(一)- 经典蓝牙
2020-04-18 16:06:03Android平台支持蓝牙设备通过蓝牙协议栈来实现无线通信。应用层提供了Bluetooth APIs来使用蓝牙功能, 这些API可以使应用可以无线连接其他蓝牙设备实现点对点及多点间通信。 使用Bluetooth APIs,应用可以实现以下... -
BLE蓝牙技术
2021-09-01 10:07:211) 技术规范 每个规范版本按通信距离可再分为Class1和Class2: •Class1:传输功率高、传输距离远,但成本高、耗电量大,不适合作为个人通信产品,多用于部分商业特殊应用场合,通信距离大约在80m~100m之间。 •... -
蓝牙Mesh基本概念
2020-05-12 11:35:24(原文地址:https://blog.csdn.net/JaLLs/article/details/88864967) Sig Mesh 就是蓝牙技术联盟统一推出的Mesh公有协议(基于CSR),Sig Mesh有三种类型地址,唯一地址(元素使用的unicast address)、虚拟地址、... -
关于蓝牙开发必须知道的概念及开发中的常见的问题
2021-01-07 20:32:00蓝牙技术凭借其普遍性与简洁性改变了设备之间的无线通信。由于其功耗与成本较低,在健康医疗、体育健身、家庭楼宇自动化、信标等应用领域的发展过程中发挥着至关重要的作用。 蓝牙给我们带来很多方便,不过对于一些... -
开发接近相关的蓝牙应用该如何使用RSSI
2020-07-25 08:31:50开发接近(Proximity)相关的蓝牙(Bluetooth)应用时,开发者需要在不同的信号强度测量方法之间做出选择,比如我的应用是该采用RX还是RSSI呢?想要更好地理解这一问题,我们不妨先来回顾一下射频(RF)通信的基本... -
蓝牙核心技术概述(一):蓝牙概述
2020-05-02 15:10:58关键词:蓝牙 核心技术 协议 版本 历史作者:xubin341719(欢迎转载,请注明作者,请尊重版权,谢谢)欢迎指正错误,共同学习、共同进步!!下载连接:Bluetooth PROFILE SPECIFICATIONS (基本涵盖所有蓝牙协议)、... -
物联网BLE应用程序开发 -- (0)一些关于低功耗蓝牙的基本概念
2020-06-15 10:24:22一些关于低功耗蓝牙的基本概念 在开始进行低功耗蓝牙BLE开发之前,先来了解一些关于低功耗蓝牙的基本概念。...低功耗蓝牙是一种低成本,短距离,可互操作,强鲁棒性的无线通信技术,工作在免许可的2.4GHz I... -
一文带你了解蓝牙
2022-04-23 20:37:581998 年 5 月,爱立信、诺基亚、东芝、 IBM 和英特尔公司等五家著名厂商, 在联合开展短程无线通信技术的标准化活动时提出了蓝牙技术,其宗旨是提供一种短距离、低成本的无线传输应用技术。 蓝牙名字的由来: “蓝牙... -
带你了解蓝牙
2020-04-11 16:26:15带你了解蓝牙(低功耗蓝牙) 一、定义 1、蓝牙是一种支持设备短距离通信的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多...2、简单的说,蓝牙技术是一种利用低功率无线电在各种3C设备间... -
自己动手实现蓝牙MESH应用系列 | 第一篇:蓝牙MESH基础概念介绍
2019-07-24 17:57:40如果想要详细了解的同学我推荐关注蓝牙技术联盟的微信公众号,里面有10篇汉化后的文章更详细的介绍了蓝牙基本概念,我相信对后续开发蓝牙MESH应用也会有很大的帮助。 解密蓝牙mesh系列 | 第一篇 解密蓝牙mesh... -
iOS蓝牙技术
2017-03-19 17:11:34蓝牙开发分为中心者和管理者模式: ...蓝牙开发需要先了解几个概念: 服务 (services) :蓝牙外设对外广播必定会有一个服务,可能有多个,服务下面包含一些特征,服务可以理解成一个模块的窗口; -
【计算机网络】第三部分 数据链路层(14) 无线局域网和蓝牙技术
2022-02-17 01:18:21线以太网)和蓝牙技术一一一个用于小型无线局域网的技术。虽然这两种协议需要在几个层 中运行,但本书集中讨论物理层和数据链路层。 14.1 IEEE 802.11 由 IEEE定义的无线局域网规范称做 IEEE 802.11