首页 > 其他分享 >【Bluetooth开发】一、蓝牙开发入门详解

【Bluetooth开发】一、蓝牙开发入门详解

时间:2023-02-18 17:31:38浏览次数:43  
标签:低功耗 蓝牙 技术 Bluetooth EDR 开发 BR AMP


 

【Bluetooth开发】一、蓝牙开发入门详解_低功耗蓝牙

【Bluetooth开发】一、蓝牙开发入门详解_低功耗蓝牙_02编辑

BLE

蓝牙设备在生活中无处不在,但是我们也只是将其作为蓝牙模块进行使用,发送简单的AT命令实现数据收发。

那么,像对于一些复杂的使用场合:“车载蓝牙”、"智能手表"、“蓝牙音箱”等,我们不得不去了解底层的蓝牙实现原理。

1、蓝牙概念

2、蓝牙发展历程

3、蓝牙技术概述

3.1 Basic Rate(BR)
3.2 Low Energy(LE)

4、常见蓝牙架构

4.1 SOC蓝牙单芯片方案
4.2 SOC蓝牙+MCU方案
4.3 蓝牙host + controller分开方案
4.4 使用场景

5、参考文档

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)​​)。

  • ​BR​​:最早期的蓝牙技术,速度只能达到721.2Kbps,在那个年代,已为高大上了。
  • ​EDR​​:随着技术的提升,使用EDR技术的蓝牙,理论速率可以达到2.1Mbps
  • ​AMP​​:使用AMP技术的蓝牙,理论速率可以达到54Mbps

​AMP​​的​​Alternate交替使用​​体现在:由于蓝牙自身的物理层和AMP技术差异太明显,​​BR/EDR​​和​​AMP​​是不能同时使用的。

简单的说,就是:​​BR​​和​​EDR​​是可以同时存在的,但​​BR/EDR​​和​​AMP​​只能二选一

3.2、Low Energy(LE)

上面所讲的BR技术的进化路线,就是传输速率的加快、加快、再加快。但能量是守恒的,你想传的更快,代价就是消耗更多的能量。而有很多的应用场景,并不关心传输速率,反而非常关心功耗。这就是​​Bluetooth LE​​(称作蓝牙低功耗)产生的背景。

从它的英文名字上就可以看出它是一种低功耗蓝牙技术,是蓝牙技术联盟设计和销售的一种个人局域网技术,旨在用于医疗保健、运动健身、信标、安防、家庭娱乐等领域的新兴应用。

低功耗蓝牙与经典蓝牙使用相同的​​2.4GHz​​无线电频率,因此双模设备可以共享同一个天线。低功耗蓝牙使用的调制系统更简单。

​LE​​技术相比​​BR​​技术,差异非常大,或者说就是两种不同的技术,凑巧都加一个“蓝牙”的前缀而已。

目前​​BLE​​主要广泛应用于IoT产品领域。

【Bluetooth开发】一、蓝牙开发入门详解_低功耗_03

4、常见蓝牙架构

市面上,大致有几种蓝牙架构

4.1、SOC蓝牙单芯片方案

一般是半导体厂商半开源协议栈,把开发的蓝牙协议栈直接烧写到蓝牙芯片中,(比如CSR BC4/5,CSR8670,CSR8675,TI CC2540,NRF51xxx,NRF52xxx,乐鑫ESP32等等),架构如下:

【Bluetooth开发】一、蓝牙开发入门详解_低功耗蓝牙_04

此类芯片一般可以直接做为MCU用,这类产品一般用于消费类电子,集成度很高,调调部参数可以直接使用,常见的有蓝牙耳机。

4.2、SOC蓝牙+MCU方案

在集成好的蓝牙芯片基础上,通过特定的接口(UART居多),发送自定义的​​command​​来达到想要的功能。比如发送0x01代表搜索周围设备......

【Bluetooth开发】一、蓝牙开发入门详解_linux嵌入式_05

​此部分的应用,将蓝牙作为一个外设使用,用于远程通信.

4.3、蓝牙host + controller分开方案

这种应用算是蓝牙最复杂的应用,客户需要使用蓝牙的场景有很多,牵涉到的蓝牙协议也有很多,需要将​​Host​​与​​Controller​​分开,集成更多的蓝牙协议,比如蓝牙电话(HFP),蓝牙音频(A2DP),蓝牙音乐控制(AVRCP),蓝牙电话本(PBAP),蓝牙短信(MAP)等。

其中Transport是一个协议,H2就是在USB的基础上的协议,​​H4,H5,BCSP​​是UART基础上的协议,当然还有​​SDIO​​。

此部分应用,将定制蓝牙的各种服务,实现蓝牙多功能需求。

【Bluetooth开发】一、蓝牙开发入门详解_低功耗_06

4.4、使用场景

大概列举了以下几种,帮助理解

  • 手机的蓝牙复杂应用,注定要用第3种方案,也就是蓝牙协议栈(host)在主芯片中,蓝牙芯片为HCI架构的。
  • 蓝牙音响,蓝牙耳机:此种应用一般用单芯片方案就能hold住,比如CSR8670/8675/杰理蓝牙等,好处在于开发便捷。
  • 蓝牙手表:要看功能复杂性,如果仅仅有时间显示,传感器交互,那么可以选择单芯片方案(也就是方案1),如果有网络等比较复杂的功能就要使用MCU+蓝牙芯片方案(也就是方案3)了
  • 蓝牙手环,蓝牙心率带等:基本上是单芯片方案

5、参考文档

[1] 蓝牙官网:https://www.bluetooth.com/

[2] https://blog.csdn.net/XiaoXiaoPengBo/article/details/107462426

[3] https://blog.csdn.net/XiaoXiaoPengBo/article/details/107466841


标签:低功耗,蓝牙,技术,Bluetooth,EDR,开发,BR,AMP
From: https://blog.51cto.com/u_11947739/6065480

相关文章

  • Chrome开发者工具:利用网络面板做性能分析
    Chrome开发者工具(简称DevTools)是一组网页制作和调试的工具,内嵌于GoogleChrome浏览器中。Chrome开发者工具有很多重要的面板,比如与性能相关的有网络面板、Performance......
  • 我的flask钉钉企业内部开发机器人
    人工智障火的一塌糊涂,智死方休。虽然博主也在使用,使用过程中多少还是有问题的(遇到死循环代码生成,重复回答等)。但是此篇文章主角是dingtalk的机器人,而不是那玩意,可以自行集成......
  • Centos7中配置c++开发环境
    Centos7中配置c++开发环境c++不像Java等语言是跨平台的,在Windows开发之后,在Linux直接部署就行了,而是需要在Linux中进行开发和调试,那怎么在Windows系统里面模拟一个Linux的......
  • 房产楼盘报备H5小程序开发
    房产楼盘报备H5微信头条小程序开发功能特性:可以展示楼盘及其详细的信息,比如,位置,周边,效果图,佣金。房贷计算器和地图寻盘.微信小程序客户端和服务端全部源代码.小程序简洁的UI......
  • i.MX8M开发板Yocto系统使用Gstarwmra视频转换
    iTOP-iMX8MM提供了一个视频转换组件:imxvideoconvert_g2d,输入以下命令查看具体的信息。gst-inspect-1.0imxvideoconvert_g2d​​​​更多内容:可以了解IMX8M开发板......
  • 嵌入式Linux入门级板卡的神经网络框架ncnn移植与测试-米尔i.MX6UL开发板
    本篇测评由电子发烧友的优秀测评者“ALSET”提供。 米尔MYD-Y6ULX-V2开发板,基于NXPi.MX6UL/i.MX6ULL处理器,该开发板被米尔称之为经典王牌产品。本次测试目标是在此......
  • vscode 远程连接 linux 远程开发
    1.安装拓展remote-ssh2.设置云主机git控制台使用命令ssh-keygen#生成一个sshkey#登录远程主机#[email protected]#adduserwhmmm#addgro......
  • iTOP3568开发板快速使用代码编辑工具安装cscope
    在/home/topeet/目录下执行以下命令安装cscope,安装完成后,如下图所示:sudoapt-getinstallcscope​​​​......
  • #yyds干货盘点#Electron 开发音视频
    创建Electron项目前提条件在使用Electron进行开发之前,需要安装Node.js。要检查Node.js是否正确安装,请在您的终端输入以下命令:node-vnpm-v脚手架创建electron应用程......
  • 《阿里巴巴Java开发规范》领域模型的部分介绍
    《阿里巴巴Java开发规范》关于领域模型的部分介绍如下分层领域模型规约:DO(DataObject):此对象与数据库表结构一一对应,通过DAO层向上传输数据源对象。DTO(DataTran......