蓝牙入门基础知识(一)

  • 蓝牙起源

1995年5月20日,在美国华盛顿州,索尼爱立信、IBM、英特尔、诺基亚、东芝成立了蓝牙技术联盟(Bluetooth Special Interest Group,SIG)。SIG是一个制定蓝牙规范,推送蓝牙技术发展的国际组织。SIG授权制造商使用蓝牙技术和蓝牙商标,并对蓝牙产品进行认证。但其本身不不进行蓝牙产品的设计和制造,只制定蓝牙标准。

蓝牙官网地址:https://www.bluetooth.com/

  • 蓝牙的版本

4.0增加了BLE(Bluetooth Low Energy)即低功耗蓝牙,属于蓝牙的一个分支,也是在产品中比较普及的一个版本。BLE在经典蓝牙基础上裁减掉了需要更大传输速率的Audio部分的信道。音频可以分为Voice和Audio,Voice一般指的是8bit 8K采样率如打电话,Audio一般指的是立体声如听音乐。

5.0增建了LE Long Range,LE Long Range就是在不增加发射功率的前提下,通过降低通讯速率和软件纠错实现传统蓝牙数倍的通讯距离。蓝牙的传输速率和传输距离是两个对立的参数,速率高就距离近,距离远就速率低。因此需要根据使用场景进行选择,如传感器只需少量数据交互,但需要无线通讯的距离比较长,则可以选择通讯速率低的蓝牙模式。

LE Mesh Profile是在蓝牙5.0的软件基础上,增加的一层软件,并不对蓝牙下层的协议栈进行改动。因为是在应用层,因此在4.2以上的版本上都可以实现Mesh。

5.1版本增加了AOA和AOD的蓝牙定位模式,使蓝牙定位精度更加准确。

5.2使得BLE也可使实现Audio的传输,之前要实现Audio必须使用经典蓝牙实现,因为BLE的传输速率是不够的。

在蓝牙官网https://www.bluetooth.com/specifications/archived-specifications/可以看到各个蓝牙版本的当前状态(停产、不再授权、正常支持)。授权指的是蓝牙芯片或蓝牙产品开发完成后,需要送至SIG进行付费认证,认证成功才会授权PID和允许使用蓝牙商标。  在产品开发时,应该根据产品预估的开发周期和产品成本等因素综合选择使用的蓝牙版本(不要选停产或不再授权的蓝牙版本,否则产品研发出来也无法量产)。当产品开发周期较长时尽量选择比较新的芯片,避免出现产品开发出来了却发现所使用的蓝牙版本已经停止授权或已经停产的情况。当然蓝牙版本越新对应的蓝牙芯片、模组成本也越贵,资料也相对较少,因此需要综合考量。

  • 蓝牙各版本及其重点

V1.X中的PHY并不是硬件层,而是和硬件直接打交道的软件层,V2.0和V2.1称为经典蓝牙(Bluetooth Classic)。

蓝牙3个分支:传统(经典)蓝牙、高速蓝牙、低功耗蓝牙。因为高速蓝牙使用的是WIFI的协议标准,属于另一套标准因此将其排除在外。同时包含传统蓝牙和低功耗蓝牙的设备称为双模设备,只包含其一的称为单模设备。需要注意的是,不同模式的设备相互不能通讯(蓝牙速率不同)。4.1的协议栈支持了主从一体设备,增加了蓝牙设备的灵活性。4.1版本将原本的蓝牙星形拓扑变为树形拓扑或网络拓扑,从而可以实现蓝牙组网。

 

通讯速率和距离之间进行权衡,Long Range通讯速率慢,但传输距离提升数倍。LE Long Range在蓝牙5.0协议栈中是一个可配置的选项,因此5.0版本的蓝牙芯片不一定支持Long Range的功能,因为需要底层硬件支持。部分芯片可以将蓝牙协议栈由4.2升级为5.0,但一定实现不了Loong Range的功能,因为无硬件支持。

RSSI(Recevied Signal Strength Indication)定位非常粗略,但是简单易用,RSSI是区域定位而非精确定位。 蓝牙5.1增加的AOA和AOD可以进行精准的定位,但具体计算复杂一些。也可以使用UWB进行定位。

蓝牙5.2在BLE的协议栈之上支持了Audio,TWS使用的是经典蓝牙。LE Audio广播的使用场景在未来很有前景,如在会议中多人可以连接语音,可选择自己使用收听语言。在公共场合也可以直接接收同样一个音源发送出来的音频。

  • 无线协议的比较

NFC的RF是成熟的能量采集方案。国内BLE-MESH比较火。

PAN:personal Area Network

LAN:Local Area Network

WAN:Wide Area Network

  • ISM频段

ISM频段是免费、开放的,因此Wifi、蓝牙等都在这个频段内。频率越低,波长越长,传得越远。在低功耗、长距离、穿透力上,900Mhz的sub-G更具有优势。

  • 蓝牙协议栈

 

最右边框图的高速蓝牙的PHY用的是WIFI的协议栈,因此单独被独立了出来。

HCI(Host Controller Interface)是非常重要的一个接口,蓝牙认证和生产测试时是需要用到HCI接口的。相当于是芯片或产品对外的通讯接口,物理接口一般为串口。

  • BLE协议栈

DTM对上层通过HCI接口,通过串口出去供生产测试时使用。DTM(Direct Test Mode)即直接测试模式,是SIG联盟在蓝牙核心规范中规定的用于蓝牙射频性能测试的模式。DTM是蓝牙规范的一部分,符合蓝牙核心规范的芯片都可以进行DTM测试。

DTM测试分为发射测试和接收测试,发射测试能够获得被测蓝牙产品的发射功率、频偏、频率漂移等信息,接收测试可以测试被测蓝牙产品的接收灵敏度等。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用python将图片写入ppt_用python做ppt服务用于导入图片

项目需要做WINFORM程序与powerpoint交互,把winform生成的图片自动拷贝到ppt中。目前使用python做了一个简单的服务解决。由于要求是32位程序,所以下面全都是32位的版本。第一步,安装python2.7 32位。第二部,安装py2exe 32位。第三…

C#语言入门详解---委托(刘铁猛)

委托:函数指针的升级版,可以类比C语言中的函数指针进行理解 变量的本质就是以变量名所对应的内存地址为起点的一段内存,这段内存中存储的就是变量的数据,这段内存的大小由变量的数据类型决定。 函数代表算法,函数的本…

【LintCode题集】Q6、Q64

最近开始刷LintCode上的题目,先从标签为容易的开始刷。今天刷的这两题目差不多为同一类型的题目,都是为按照一定的规则合并两个已经有序的数组。 [Q6] 描述: 合并两个排序的整数数组A和B变成一个新的数组。 样例: 给出A[1,2,3,4]&…

input标签的值只能两位小数_解决input只能输入金额类型的方案(金额输入框只能输入2位小数)...

欢迎加我技术交流QQ群 :811956471前言:最近在用uni-app框架,写一个项目(支付宝和微信小程序)遇到一个需求,要求金额输入框只能输入2位小数,且第一位数不能是 ".",只能是数字。发现用 input事件监…

C# winform中判断控件类型

C# winform中对控件类型的判断: public void UpdataControl(Control control, string data) {if (control is TextBox){doSomething1();}if (control is Label){doSomething1();}if (control is Button){doSomething1();}}

单元测试原来是这样的呼

我们要先创建一个界面: 显示的界面是这样的: 接下来我们来写java代码, 在输入框里的内容,点击button,将数据显示到上面的textview. 后面写测试用例,但我不知道哪里出错了,不知道是不是创建就出错…

python生成表达式_说说 Python 的生成器表达式

列表推导与生成器表达式都可以用于初始化元组、数组或其他类型的序列。但列表推导需要先建立一个完整的列表,然后再把这个列表传递到某个构造函数。而生成器表达式会逐个产出元素,这样显然能够节省内存。列表推导写法:codes [ord(symbol) fo…

C#中宏定义#define、预处理#if #else #endif的使用

C#中预处理的使用: 预处理指令并不会被编译为执行代码中的指令,但使用预处理指令可以选择编译程序中的哪部分代码。一般在调试代码时或在发布不同功能等级的软件版本中使用。 需要特别注意的是,宏定义必须在C#的.cs源文件最开头的位置定义&am…

华硕vm510l装固态硬盘_华硕VM510L拆机换固态硬盘

首先看下需要准备的东西,一台华硕笔记本,螺丝刀,固态硬盘。微信图片_201910051157221.jpg1.先把背面的螺丝全部卸掉。微信图片_20191005115722.jpg2.反过来,暴力拆键盘,从边缘部分开始撬。注意键盘下面有排线&#xff…

C# 串口接收1次数据会进入2次串口接收事件serialPort1_DataReceived,第2次进入时串口缓冲区为空

在C#中使用串口接收数据时发现,在完整的接收完一次数据后,还会再次进入串口接收事件。 在网上搜索资料发现其他开发者也有遇到该问题: [1] c#串口事件接受一次数据莫名其妙会触发两次 原文链接:https://www.52pojie.cn/threa…

js里的面向对象分析-(创建实例化对象)

ECMAScript 有两种开发模式:1.函数式(过程化),2.面向对象(OOP)。面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。但是,ECMAScript 没有类的概念,因此它的对象…

swift 隐藏状态栏_如何在Swift iOS应用中隐藏状态栏?

我想删除屏幕顶部的状态栏。这不起作用:func application(application: UIApplication,didFinishLaunchingWithOptions launchOptions: NSDictionary?)-> Bool{application.statusBarHidden truereturn true}我也尝试过:func application(applicati…

C#控件跨线程内容更新

在使用C#开发winform应用程序时,经常会碰到对控件跨线程访问造成的异常。在winform中UI线程和工作线程是分开的,但在实际使用中经常会需要在工作线程更新UI线程中创建的控件。 方法1:禁用跨线程访问控件检测 .NET默认开启了禁止跨线程控件访…

document.addeventlistener方法不执行_JUnit 5 测试方法的执行优先级

前言使用单元测试有时对方法的执行顺序有要求,而默认情况下测试方法的执行并非按照编写顺序,这就导致测试用例因执行顺序而导致的不通过。这里我使用的JUnit版本是5.6.2,下面讲述如何自定义测试方法的执行优先级。TestMethodOrder这个注解标注…

2异常处理_Java处理异常2种机制关键字区别解析

在异常处理的过程中,throws和throw的区别是?throws:是在方法上对一个方法进行声明,而不进行处理,而是向上传,谁调用谁处理.throw:是在具体的抛出一个异常类型.throws的栗子:throws的话,就是这个方法有可能会产生异常,而我只是将它声明出去,我自己不处理,如果有人调用的时候,可…

Scrapy——1

python3安装scrapy:http://www.cnblogs.com/Wananbo/p/6093969.html 运行scrapy时,弹出win32错误,然后用pip install pywin32 不行,实际上是缺少了pypiwin32转载于:https://www.cnblogs.com/tangbinghaochi/p/6593543.html

TL431的用法

TL431是可控精密稳压源。它的输出电压用两个电阻就可以设置从Vref(2.5V)到36V范围内的任何值。该器件的典型动态阻抗为0.2Ω,在很多应用中用它代替稳压二极管,例如,数字电压表,运放电路,可调压电…

个人作业2——英语学习APP的案例分析

产品:必应词典Android客户端 第一部分 调研, 评测 1、第一印象 一款app给人带来的第一印象,一是图标二是界面。微软必应词典的图标好似一本书,好看简洁又与词典相呼应,好评。二来其界面打开也很清爽,每日一…

AD16原理图.schdot中批量修改标签中的文本字体、大小、颜色

1)使用鼠标左键区域选中需要修改的文本,或按住shift键使用鼠标左键选择分布在图中各处的需要修改的文本 2)按住shift键,鼠标左键双击选中的任一文本,弹出如下的SCH Inspector弹窗 3)在SCH Inspector弹窗中…

12v小型电机型号大全_鄂破碎机型号大全图,小型鄂破碎机价格

鄂破碎机,粗碎加工主力配置,因为使用频繁,很多案例都少不了,所以设备生产厂家有很多,但是随时鄂破碎机的机型更新,核心性能越来越完善,整机时产更高,而且环保性能更强悍。鄂破碎机型…