蓝牙基础概念(一)

BLE蓝牙

1.概述

Bluetooth LE ,由经典蓝牙发展而来,借鉴了很多经典蓝牙的技术,然而由于针对的设计目标和市场领域与经典蓝牙有所不同,BLE被视为一种不同的技术。BLE选择了完全不同的方向:并非只是增加可达的数据传输速率,而是从尽可能降低功耗方面进行优化,与之对应的是无法获得较高的传输速率。对于一些应用场景,如心率计,蓝牙手环,蓝牙鼠标,键盘等,需要不断传输数据但是数据量又不是很大的应用,低功耗就显得尤为重要。
低功耗蓝牙技术可以构建两种类型的设备:双模设备和单模设备。双模设备即支持经典蓝牙又支持低功耗蓝牙;单模设备只支持低功耗蓝牙。当然还有第三种类型----仅支持经典蓝牙的设备。

2.低功耗蓝牙协议栈

低功耗蓝牙体系结构主要分为三个部分:控制器,主机和应用程序。控制器通常是一个物理设备,它能够发送和接收无线电信号,并懂得如何将这些信号翻译成携带信息的数据包。主机通常是一个软件栈,管理两台及以上的设备间如何通信以及如何利用无线电同时提供几种不同的服务。应用程序则使用软件栈,进而是控制器来实现用户实例。蓝牙基础概念(一)_第1张图片
1) 物理层PHY:任何一个通信系统,首先要确定通信介质(通信通道),PHY层用来指定BLE所用的无线频段,调制解调方式和方法。BLE通信介质是一定频率范围下频带资源,免费使用的ISM频段(频率范围是2.4----2.4835GHZ).为了使物理层能够工作,尤其是应对同一区域有大量无线电同时传输时,2.4GHz频段被划分为40个RF信道,各信道的宽度为2MHz。物理层传输速率约为1bit/us;

2) 链路层(LL):链路层是低功耗蓝牙体系里最复杂的部分。它负责广播、扫描、建立和维护连接,以及确保数据包按照正确的方式组织、正确的计算校验值以及加密序列等。
链路层分为2种通道① 广播通道(advertising channel)和 (data channel);广播通道有3个,37ch(2402MHZ),38ch(2426MHZ),39ch(2480MHZ)。设备利用该通道进行广播,通告自身为可连接或可发现的,并且执行扫描或发起连接。在连接建立后设备,设备利用数据信道来传输数据。数据信道共37个(0ch----36ch),为了增强抗干扰能力,采用跳频技术传输数据,即在0ch-----36ch通道之间随机但有规律的切换,在数据信道中,允许一端向另一端发送数据、确认,并在需要时重传,此时还能为每个数据包进行加密和认证。
在任意信道上发送的数据(包括广播信道和数据信道)均为小数据包。数据包封装了发送者给接受者的少量数据,以及用来保障数据正确性的校验和。无论在广播信道还是数据信道,基本的数据包格式均相同,每个数据包含有最少10Bytes的地址,报头和检验信息。如下图所示:

前导(Bytes) 接入地址 报头 长度 数据 循环冗余校验
1 4 1 1 0-37 3

前导数据优化数据包的鲁棒性,这一长度足够接入者同步比特计时和设置自动增益控制;4字节接入地址在广播信道数据包中是固定值,而在数据信道数据包是完全随机的私有值;报头字段描述数据包的内容;长度顾名思义,由于不允许发送有效长度超过37字节的数据包;数据位携带来自应用或主机设备的有用信息;最后是3个字节的循环冗余校验CRC的值,确保接收的报文没有错误数据
3) HCI(主机控制接口):它允许主机将命令和数据发送到控制器,并且运行控制器将事件和数据发送到主机,HCI接口实际由两个独立的部分组成:逻辑接口物理接口;
逻辑接口定义了命令和事件及其相关的行为。逻辑接口可以交付给任何物理传输,或者通过位于控制器上的本地应用程序编程接口交付给控制器,后者可以包含嵌入式主机协议栈。物理接口定义了命令、事件和数据如何通过不同的连接技术来传输。已定义的物理接口包括USB、SIDO和两个UART的变种。对大部分控制器而言,它们只支持一个或两个接口。考虑到实现一个USB接口需要大量的硬件,而且不属于低功耗的接口,所以它通常不会出现在低功耗蓝牙的单模控制器上。因为主机控制器接口存在于控制器和主机之内,位于控制器中的部分通常称为主机控制器接口的下层部分;位于主机中的部分通常称为主机控制器接口的上层部分。

4) L2CAP :逻辑链路控制和适配协议是低功耗蓝牙的复用层。该层定义了两个基本概念:L2CAP信道和L2CAP命令。L2CAP信道是一个双向数据通道,通向对端设备上的某一特定的协议和规范,低功耗蓝牙只使用了固定的信道:一个用于信令信道,一个用于安全管理器,还有一个用于属性协议;

5) SM:安全管理协议定义了一个简单的配对和秘钥分发协议。配对是一个获取对方设备信任的过程,通常采取认证的方式实现。配对之后接着是链路加密和秘钥分发过程。在秘钥分发过程中设备吧秘钥共享给主设备,当这两台设备在未来的某个时候重连时,他们可以使用先前分发的共享秘密进行加密,从而迅速认证彼此的身份。

5) GAP: 通用访问规范定义了设备如何发现、连接,以及为用户提供有用的信息。它还定义了设备之间如何建立长久的关系,称为绑定(bonding)。要启用此功能,规范定义了设备如何实现可发现、可连接和可绑定。还介绍了设备如何使用规程以发现其他设备、连接到其他设备、读取他们的设备名称并和他们进行绑定;

6) GATT:(Ceneric Attribute Profile):通用属性规范位于属性协议之上,定义了属性的类型及其使用方法。通用属性规范引入了一些概念,包括“服务”、“特征值”,属性之间的包含关系、特性“描述符”等,它还定义了一些规范,用来发现服务、特性、服务之间的关系,以及用读取和写入特征值。
服务是设备上若干原子行为的不可变封装。不可变意味着一旦服务发布就不能再改变。这一点是必要的,因为若要服务能够被反复使用,最好永远不用去动他,一旦服务的行为发生变化,版本号等许多棘手的设置过程和相应配置将耗费大量的时间。

7) ATT:属性协议定义了访问对端设备上的数据一组规则。数据存储在属性服务器的“属性”里,供属性客户端执行读写操作。客户端将请求发送至服务器,后者回复响应消息。客户端可以使用这些请求在服务器上找到所有的属性并且读写这些属性。属性协议定义了六种类型的信息:① 从客户端发送至服务器的请求;② 从服务器发送至客户端的回复请求的响应;③ 从客户端发送至服务器的无需响应的命令;④ 从服务器发送至客户端的无需确认的通知;⑤ 从服务器发送至客户端的指标; ⑥ 从客户端发送至服务器的回复指示的确认。所有,客户端和服务器二者都可以发起通信,发送需要对方回复的消息或者无需回复的消息。属性可以理解为就是需要传输的数据块,每个属性均包含一个用来标识该属性的唯一的句柄、一个用于标识存储数据的类型以及一个值。属性协议没有定义任何属性类型,但规定某些属性可以分组,并且可以通过属性协议发现分组的语义。

你可能感兴趣的:(BLE学习,蓝牙,物联网)