对低功耗蓝牙技术(4.0)的初步了解(一)


什么是BLE

  BLE即Bluetooth Low Energy,低功耗蓝牙技术,是一种短距无线通信技术,它被设计时的目标不是为了非常快速的通信,而是为了实现一种短距的,低成本的,低功耗的通信。在目前被广泛使用的版本为V4.0版本,随着SIG(蓝牙技术联盟)的技术标准更新,V4.1,V4.2,V5.0的版本也在逐步进入市场。

  BLE使用的通信频段为2.45GHz,这是一个拥挤的频段,我们日常使用的wifi,经典蓝牙,无线鼠标等一些设备共同使用着这个频段,为了使蓝牙在本频段中具有较高的鲁棒性,BLE使用了自适应跳频技术,并且使用了校验码功能来保证数据的正确性。

低功耗蓝牙通常由控制器,主机和应用程序组成。控制器就是我们通常使用的蓝牙物理设备,它可以发送或接收无线信号。主机通常是一个软件栈,保存了一些规范与协议。而应用程序通过使用软件栈,进而控制物理层来进行蓝牙通信。(图源CSDN)


 

控制器

物理层:物理层将数字信号以射频的方式发送出去,具体涉及到了高斯频移键控技术(GFSK,一种信号调制方式),这里不深入。 在物理层传输中,2.4GHz频段被划分为40个RF信道,各信道的宽度为2MHz。物理层在每微秒传输1bit的数据。
链路层:链路层是一个较为复杂的部分,它负责了广播,扫描,建立与维护连接的功能。蓝牙主机与从机需要使用链路层来实现它们的通信。链路层的信道具体分为两种:广播信道和数据信道。
说到广播信道,我们通常会想到IP地址中的255广播地址。但在蓝牙中,广播信道是一个特定的通信频段。在BLE中,广播信道有三个(三个信道实际上是为了同时保证低功耗和鲁棒性的折中产物),当两个设备通过广播相互确定了连接关系后,它们便跳入数据信道进行通信(可以推得数据信道有40-3=37个)。
蓝牙在任意信道上发送得数据均为小巧得数据包,这些数据包的长度在80bit-376bit之间。(随着版本的变化,数据包的长度可能会有变化),这些数据包具体包含了什么呢?这里我们可以放一张图:(图源CSDN)

从图中我们可以看到,数据的结构是这样的:
8位前导信号:为鲁棒性服务
32位接入地址:在广播信道中为固定值,在数据信道中为一个随机的私有值
8位报头,8位长度:描述了马上要发送的具体数据
0-296位数据:具体数据信息
24位CRC校验:校验码,确保信息无错误bit


主机/控制器接口:主机控制器接口是BLE中的标准接口,此接口为主机与控制器提供了通信桥梁。通过此接口,双方可以进行数据互通。这个接口分为逻辑接口和物理接口两个部分,如果BLE在物理层上被集成到了单芯片上,组件之前的传输就不需要真正的需要物理接口,如果系统的控制器和主机在物理层上是分开的,则需要物理接口进行承载。

 


 

主机

  主机实际上是一个协议栈,通常它包含的协议有逻辑链路控制和适配协议,安全管理协议,属性协议,并包含了通用属性规范和通用访问规范。这些协议通常概括了信道的使用标识,数据包的结构和连接请求的方式等一些通信中具体涉及的方式与信息结构。

 


 

应用层
  如果我们只是蓝牙的使用者,那我们不需要特别关注蓝牙的通信是怎样实现的,而只需要关注怎样实现蓝牙的应用即可。

  低功耗的蓝牙主要围绕着两类设备:中央设备和外围设备。中央设备的首要任务是发现其他设备,它的首要任务是发现其他设备,并和外围设备建立连接,与之绑定并建立长期通信关系。而外围设备需要做的就是可以被发现,可以被连接,并且在低功耗的情况下与中央设备建立可靠的连接。

 

  (之后将进行蓝牙具体的实物应用学习)

  (参考:《低功耗蓝牙开发权威指南》)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM