Bluetooth开发详解

【Bluetooth蓝牙开发】一、打造全网最详细的Bluetooth开发教程

Jan 19, 2024
本文阅读量
Tech
Bluetooth开发, 蓝牙开发教程, Bluetooth开发详解

【Bluetooth|蓝牙开发】一、开篇词 | 打造全网最详细的Bluetooth开发教程 # 1、前言 # 大家好,我是董哥! 随着物联网技术的快速发展,WiFi、蓝牙成了物联网通信主力军,但是不得不说,这两个技术的门槛还是比较高的,尤其是蓝牙,单单其官方文档,就有将近3000Page,让人望而生畏! 纵观全网,蓝牙技术的学习有三大难点: 其一:学习资料之杂 其二:极少有系统学习蓝牙的文章 其三:蓝牙协议晦涩难懂 这样就导致了蓝牙学习成本之高,劝退人数之多。 因此,为了让初学者快速上手并且掌握蓝牙开发相关技术,我也根据自己的开发经验,精心打造了这一期专栏,主要目的是可以帮助大家零基础入门蓝牙开发,并且可以创建一个交流平台,以供大家交流! 本专栏从四个大方面来学习蓝牙技术:蓝牙基础知识,蓝牙协议栈,蓝牙调试方法,蓝牙应用。我也一定会尽最大努力,帮助大家快速敲开蓝牙开发的大门。 2、蓝牙综合介绍 # 下面我们看一下零基础入门蓝牙开发的学习步骤,希望能够帮助到大家!!! 3、精华文章汇总 # ==为了方便大家快速找到文章,这里按照学习流程进行汇总,点击即可访问!== 章节 内容 1、开篇词 1. 文章总览 2、蓝牙开发入门 2.1 蓝牙基本概念 2.2 蓝牙发展历程 2.3 常见蓝牙架构 3. 蓝牙协议栈总览 2.1 从两个视角,了解蓝牙协议栈 4. 蓝牙协议栈——物理层 3.1 物理层的划分 5. 蓝牙协议栈——链路层 4.1 链路层状态、角色定义 4.2 空中接口数据包格式,字段分析 6. 蓝牙协议栈——传输层 5.1 HCI接口功能介绍 5.2 HCI层包的格式,字段分析 7. 蓝牙协议栈——L2CAP协议 6.1 L2CAP协议作用 6.2 L2CAP协议包的格式,字段分析 8. 蓝牙协议栈——ATT协议 7.1 ATT协议作用及由来 7.2 ATT数据结构 7.3 ATT协议的数据包格式,字段分析 9. 蓝牙协议栈——GATT协议 8. ...

【Bluetooth蓝牙开发】二、蓝牙开发入门

Jan 19, 2024
本文阅读量
Tech
Bluetooth开发, 蓝牙开发教程, Bluetooth开发详解

【Bluetooth|蓝牙开发】二、蓝牙开发入门 # 1、蓝牙基础概念 # 蓝牙,是一种利用低功率无线电,支持设备短距离通信的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换,蓝牙工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段,使用IEEE802.11协议。 2、蓝牙发展历程 # 自1994年由爱立信推出至今,蓝牙技术已经走过了20个岁月。从最初的Bluetooth V1.0,到Bluetooth V5.2,经历了近9个版本的修订后,发展为当前的状况。 “蓝牙”的形成背景是这样的: 1998 年 5 月,爱立信、诺基亚、东芝、 IBM和英特尔公司等五家著名厂商, 在联合开展短程无线通信技术的标准化活动时提出了蓝牙技术,其宗旨是提供一种短距离、 低成本的无线传输应用技术。 芯片霸主 Intel 公司负责半导体芯片和传输软件的开发,爱立信负责无线射频和移动电话软件的开发, IBM 和东芝负责笔记本电脑接口规格的开发。 1999 年下半年,著名的业界巨头微软、摩托罗拉、三星、朗讯与蓝牙特别小组的五家公司共同发起成立了蓝牙技术推广组织,从而在全球范围内掀起了一股“蓝牙”热潮。 全球业界即将开发一大批蓝牙技术的应用产品, 使蓝牙技术呈现出极其广阔的市场前景,并预示着 21 世纪初将迎来波澜壮阔的全球无线通信浪潮。 第一代蓝牙:关于短距离通讯早期的探索,使用的是BR技术,此时蓝牙的理论传输速率,只能达到721.2Kbps。 第二代蓝牙:新增的 EDR(Enhanced Data Rate)技术,使得蓝牙设备的传输率可达 3Mbps。 第三代蓝牙:核心是 AMP(Generic Alternate MAC/PHY),这是一种全新的交替射频技术,支持动态地选择正确射频,传输速率高达 24Mbps 第四代蓝牙:主推” Low Energy”低功耗, BLE(Bluetooth Low Energy)低功耗功能 第五代蓝牙:开启「物联网」时代大门,在低功耗模式下具备更快更远的传输能力 3、蓝牙技术概述 # 蓝牙协议包括两种技术:BR:Basic Rate和LE:Low Energy。这两种技术都包括搜索(discovery)管理、连接(connection)管理等机制,但它们是相互独立的,不能互通的技术! 厂商如果只实现了一种,那么只能与同样实现该技术的设备互通。 如果厂商要确保能和所有的蓝牙设备互通,那么就只能同时实现两种技术,而不去管是否真的需要。 3.1 Basic Rate(BR) # BR:Basic Rate是正宗的蓝牙技术,可以包括**可选(optional)的EDR(Enhanced Data Rate)技术,以及交替使用的(Alternate)**的MAC(Media Access Control)层和PHY层扩展(简称AMP(Alternate MAC and PHY layer extension))。 ...

【Bluetooth蓝牙开发】三、一篇文章,带你总览蓝牙协议

Jan 19, 2024
本文阅读量
Tech
Bluetooth开发, 蓝牙开发教程, Bluetooth开发详解

【Bluetooth|蓝牙开发】三、一篇文章,带你总览蓝牙协议 # 1、前言 # 在我们上一章节,学习了蓝牙的基础概念,发展历程,以及常见的蓝牙架构,相信大家对蓝牙也有了一定的了解! 为了更好的去踏入蓝牙开发的大门,蓝牙协议栈是一个我们不得不去跨越的门槛! 蓝牙协议及其复杂,并非一文能够道尽,本篇文章主要在于对蓝牙整体的协议架构进行梳理,文末官方协议附下载链接。 2、蓝牙芯片架构 # 蓝牙的核心架构,由一个Host和一个或多个Controller组成。 BT Host:一个逻辑实体,在HCI(Host Controller Interface)的上层。 BT Controller:一个逻辑实体,在HCI(Host Controller Interface)的下层。 Bluetooth的主控制器,可能是以下几种: BR/EDR Controller:内部包含Radio, Baseband,Link Manager,可选的HCI。 LE Controller :内部包含LE PHY,Link Layer ,可选的HCI BR/EDR & LE Controller :BR/EDR与LE的组合的控制器 MAC/PHY (AMP) Controller:二级控制器,可替代的,内部包含 802.11 PAL (Protocol Adaptation Layer),802.11 MAC,PHY,可选的HCI。 根据Host与Controller的组成关系,常见的蓝牙芯片也分为以下几种架构: 单模蓝牙芯片:单一传统蓝牙的芯片,单一低功耗蓝牙的芯片。即(1个Host结合1个Controller) 双模蓝牙芯片:同时支持传统蓝牙和低功耗蓝牙的芯片。即(1个Host结合多个Controller) 如下图: 3、蓝牙协议架构——视角1 # ==上图为官方协议中所提及的图片,由全局到局部来看== 3.1 全局分析 # 由下到上分析 Controller: BR/EDR Controller:由BR/EDR Radio、Link Controller、Link Manager组成 LE Controller:由 LE Radio 、Link Controller、Link Manager组成 AMP Controller:由, AMP PHY 、AMP MAC, 、AMP PAL组成 Host: ...

【Bluetooth蓝牙开发】四、BLE协议之物理层浅析

Jan 19, 2024
本文阅读量
Tech
Bluetooth开发, 蓝牙开发教程, Bluetooth开发详解

【Bluetooth|蓝牙开发】四、BLE协议之物理层浅析 # 1、前言 # 上文,通过对蓝牙协议框架进行整体了解,其包含BR/EDR((Basic Rate / Enhanced Data Rate))、AMP(Alternate MAC/PHYs)、LE(Low Energy)三种技术,不同技术对应不同的协议栈,本专栏目前对于BLE技术进行详解! ==下面我们将BLE部分单独抽离出来,单独对其进行研究。== BLE的协议可分为Bluetooth Application和Bluetooth Core两大部分,而Bluetooth Core又包含BLE Controller和BLE Host两部分。 快把小本本拿起来,一定要记住! 我们先从Physical Layer开始分析 2、Physical Channel # 任何一个通信系统,首先要确定的就是通信介质(物理通道,Physical Channel),BLE也不例外。在BLE协议中,“通信介质”的定义是由Physical Layer负责。 Physical Layer是这样描述BLE的通信介质的: BLE属于无线通信,则其通信介质是一定频率范围下的频带资源(Frequency Band) BLE的市场定位是个体和民用,因此使用免费的ISM频段(频率范围是2.400-2.4835 GHz) 为了同时支持多个设备,将整个频带分为40份,每份的带宽为2MHz,称作RF Channel。 经过上面的定义之后,BLE的物理通道划分已经明了了! $$ 频点(f)=2402(MHz)+k*2(MHz),k=(0…39) $$ 每个Channel的带宽为2MHz,如下图: 3、Physical Channel的细分 # 上面我们已经知道了,物理层被划分为了40个赛道,由于传输数据量的不同,为了更加充分利用好物理资源,进一步对通道进行了划分! 40个Physical Channel物理通道分别划分为3个广播通道advertising channel,和37个Data Channel数据通道。 对于数据量少,发送不频繁,时延不敏感的场景,使用广播通道通信。 例如一个传感器节点(如温度传感器),需要定时(如1s)向处理中心发送传感器数据(如温度)。 针对这种场景,BLE的Link Layer采取了一种比较懒的处理方式—-广播通信: 对于数据量大,发送频率高,时延较敏感的场景,使用数据通道。 BLE为这种场景里面的通信双方建立单独的通道(data channel)。这就是连接(connection)的过程。 同时,为了增加信道容量,增大抗干扰能力,连接不会长期使用一个固定的Physical Channel,而是在多个通道(如37个)之间随机但有规律的切换,这就是BLE的跳频(Hopping)技术。 对物理层的了解先止步于此,再往下面深入分析,意义不大。我们把重点放在BLE的Link Layer 欢迎关注【嵌入式艺术】,董哥原创!

【Bluetooth蓝牙开发】五、BLE协议之链路层

Jan 19, 2024
本文阅读量
Tech
Bluetooth开发, 蓝牙开发教程, Bluetooth开发详解

我的圈子: 高级工程师聚集地 创作理念:专注分享高质量嵌入式文章,让大家读有所得!   亲爱的读者,你好: 感谢你对我的专栏的关注和支持,我很高兴能和你分享我的知识和经验。如果你喜欢我的内容,想要阅读更多的精彩技术文章,可以扫码加入我的社群。 欢迎关注【嵌入式艺术】,董哥原创!

【Bluetooth蓝牙开发】六、BLE协议之传输层

Jan 19, 2024
本文阅读量
Tech
Bluetooth开发, 蓝牙开发教程, Bluetooth开发详解

我的圈子: 高级工程师聚集地 创作理念:专注分享高质量嵌入式文章,让大家读有所得!   亲爱的读者,你好: 感谢你对我的专栏的关注和支持,我很高兴能和你分享我的知识和经验。如果你喜欢我的内容,想要阅读更多的精彩技术文章,可以扫码加入我的社群。 欢迎关注【嵌入式艺术】,董哥原创!

【Bluetooth蓝牙开发】七、BLE协议之L2CAP

Jan 19, 2024
本文阅读量
Tech
Bluetooth开发, 蓝牙开发教程, Bluetooth开发详解

我的圈子: 高级工程师聚集地 创作理念:专注分享高质量嵌入式文章,让大家读有所得!   亲爱的读者,你好: 感谢你对我的专栏的关注和支持,我很高兴能和你分享我的知识和经验。如果你喜欢我的内容,想要阅读更多的精彩技术文章,可以扫码加入我的社群。 欢迎关注【嵌入式艺术】,董哥原创!

【Bluetooth蓝牙开发】八、BLE协议之ATT

Jan 19, 2024
本文阅读量
Tech
Bluetooth开发, 蓝牙开发教程, Bluetooth开发详解

我的圈子: 高级工程师聚集地 创作理念:专注分享高质量嵌入式文章,让大家读有所得!   亲爱的读者,你好: 感谢你对我的专栏的关注和支持,我很高兴能和你分享我的知识和经验。如果你喜欢我的内容,想要阅读更多的精彩技术文章,可以扫码加入我的社群。 欢迎关注【嵌入式艺术】,董哥原创!

【Bluetooth蓝牙开发】九、BLE协议——GATT

Jan 19, 2024
本文阅读量
Tech
Bluetooth开发, 蓝牙开发教程, Bluetooth开发详解

我的圈子: 高级工程师聚集地 创作理念:专注分享高质量嵌入式文章,让大家读有所得!   亲爱的读者,你好: 感谢你对我的专栏的关注和支持,我很高兴能和你分享我的知识和经验。如果你喜欢我的内容,想要阅读更多的精彩技术文章,可以扫码加入我的社群。 欢迎关注【嵌入式艺术】,董哥原创!

【Bluetooth蓝牙开发】十、BLE蓝牙通信流程(建立连接,广播,扫描,断开连接)

Jan 19, 2024
本文阅读量
Tech
Bluetooth开发, 蓝牙开发教程, Bluetooth开发详解

我的圈子: 高级工程师聚集地 创作理念:专注分享高质量嵌入式文章,让大家读有所得!   亲爱的读者,你好: 感谢你对我的专栏的关注和支持,我很高兴能和你分享我的知识和经验。如果你喜欢我的内容,想要阅读更多的精彩技术文章,可以扫码加入我的社群。 欢迎关注【嵌入式艺术】,董哥原创!