蓝牙4.0BLE开发——物联网开发技术实战(1)

时间:2024-05-18 22:38:12

说明:接触蓝牙已经一年了!如今蓝牙5.0都出来了,而我现在才跑来学4.0!为自己的懒惰付出惨重的代价!!!现在立个flag,春节前把《蓝牙4.0BLE开发完全手册》学习完,并定时更新博客。。。


一、蓝牙4.0BLE简介


1、无线网络数据传输标准分类:


        WIFI:主要用于大量数据传输

        Wireless USB:主要用于视频数据的传输

        ZigBee:主要用于短距离无线网络控制系统,传输少量控制信息等

        Bluetooth:可实现固定设备、移动设备和数字个人域网之间的短距离数据交换


2、无线网络数据传输协议对比:


       蓝牙4.0BLE开发——物联网开发技术实战(1)蓝牙4.0BLE开发——物联网开发技术实战(1)蓝牙4.0BLE开发——物联网开发技术实战(1)蓝牙4.0BLE开发——物联网开发技术实战(1)

         由上图可以看到不同的无线数据传输协议在数据传输速率和传输距离有各自的使用范围!

  • 传统蓝牙:        2.4GHz频段的无线通信标准,数据传输速率小于3Mbps,数据传输距离为2-10m,典型的应用就是在两台蓝牙设备之间在进行小量数据的传输。
  • IEEE 802. 11b:  2.4GHz频段的无线通信标准, 数据传输速率最高达11Mbps,数据传输距离为30-100m,IEEE 802.11b技术提供了一种Internet的无线接入技术,比如笔记本电脑的WIFI功能实现上网。
  • ZigBee:         2.4GHz频段的无线通信标准,数据传输速率约为20-250kpbs,数据传输距离为10-100m,主要用于传输控制信息,数据量相对来说比较小,适用于电池供电的系统,成本较低。
  • 蓝牙4.0BLE开发——物联网开发技术实战(1)


  3、短距离无线网络的分类


       短距离无线网络主要分为两类:无线局域网(WLANs)和无线个域网。

     无线局域网,是有线局域网(LANs)的扩展,一个无线局域网设备很容易介入有线局域网。而无线局域网是为了在POS(peosonal operation space)范围内提供一种高效、节能的无线通信方法,其中POS是指以无线设备为中心半径10m内的球形区域。按照数据传输速率的不同,无线个域网又分为三种:

  • HR-WPLANS——High-Rate WPLANS;   通讯协议为:802.15.3
  • MR-WPLANS——Medium-Rate WPLANS; 通讯协议为:BlueTooth
  • LR-WPLANS——Low-Rate WPLANS 通讯协议为:802.15.4


4、蓝牙4.0简介:


      蓝牙4.0涵盖了三种蓝牙技术,即传统蓝牙、高速蓝牙和低功耗蓝牙技术。即继承了蓝牙技术在无线上的固有优势,同时增加了高速蓝牙和低功耗蓝牙的特点,这三种规格既可以组合或者单独使用。而蓝牙4.0的核心技术就是低功耗技术(low power),也就是蓝牙4.0 BLE。BLE的最大特点是拥有超低的运行功耗和待机功耗。

  • 蓝牙4.0BLE的特点

             高可靠性: 
       为了应对数据在传输的过程中内在的不确定性,在射频、基带协议、链路管理协议中采用了可靠性措施,包括:差错检测和验证、数据编解码、差错控制、数据加噪等。此外,还使用了自适应跳频技术,最大程度地减少和其他2.4GHz ISM频段无线电波的串扰。
             低成本、低功耗:
       低功耗蓝牙支持两种部署方式:双模式和单模式。在双模式中。低功耗蓝牙功能是集中在现有的经典蓝牙控制器中,或在现有的经典蓝牙技术芯片上增加低功耗堆栈,但整体的构架基本不变,因此成本增加有限。而单模式,则是面向高度集成、紧凑的设备,使用一个轻量级的链路层(Link Layer)提供超低功耗的待机模式操作。其中TI公司推出的CC2540就集成了蓝牙4.0的协议栈,只需外接PCB天线和几个阻容器件构成滤波电路即可实现蓝牙网络节点的构建。
       传统蓝牙设备待机耗电量大是一个只要的缺陷,这与传统蓝牙技术采用16~32个频道进行广播有关,而低功耗蓝牙仅使用3个广播通道,且每次广播时,射频的开启时间由传统的22.5ms减少到0.6~1.2ms。这两个协议规范的改变,大幅降低了广播数据而导致的待机功耗。
       此外,低功耗蓝牙设计了一个深度随眠的状态来代替传统蓝牙的空闲状态。在深度睡眠的状态下,主机(Host)处于超低的负载循环(Duty Cycle)状态。主机运作时就有控制器启动即可,因为控制器的功耗要比主机少的多!
               启动速度快,瞬间连接:
       蓝牙2.1版本的启动连接需要6s的时间,而4.0只需3ms即可,几乎瞬间链接!
               传输距离极大提高:
       传统的蓝牙传输距离为2-10m,而蓝牙4.0的有效传输距离可达60-100m。
               安全性高:
       蓝牙4.0使用了AES-128 CCM加密算法(也不是到是啥,到后面好好学习学习)进行数据包的加密和认证!


5、蓝牙4.0BLE协议简介

      在蓝牙4.0规范中,定义了GAP(Generic Access Profile)和GATT(Generic Attribute)两个基本配置文件。
      GAP:负责设备访问模式和进程,包括发现设备,建立连接,终止连接,初始化安全特性和设备配置。
      GATT:负责用于已连接的蓝牙设备之间的数据通信。
     (暂时先介绍这两个比较重要的层,在后面会具体得学习!)


6、蓝牙4.0BLE无线网络通信信道分析

      天线:天线用于无线电波的发射和接收,发射时,把高频电流转化为电磁波发射出去;接收时,将电磁波转换为高平电流。
      信道:无线通信中,信道表示把信息加载到一定范围频率的电磁波中,进行传输,那么则一定的范围的频率就可以看成是信道。信道的划分有严格的限制,大多要得到当地的无线电管理局的认可才能使用相关的频段。但是也有一部分的频段是开放的,包括ISM(Industrial,Scientific,Medical )频带,但是对设备的发射功率是有限制的,要注意!!!!
                 在IEEE 802.15.4中总共规定了27个信道:
                  【全球通用】:2.4GHz频段,共有16个信道,信道通信速率为250kbps
                  【北美通用】:915MHz频段,共有10个信道,信道通信速率为40kbps
                  【欧洲通用】:896MHz频段,共有1个信道,信道通信速率为20kbps

                           蓝牙4.0BLE开发——物联网开发技术实战(1)
       自适应跳频技术:蓝牙4.0中使用了2.4GHz的ISM频段,并只使用了3个广播通道。自适应跳频技术是建立在自动信道质量分析基础上的一种频率自适应和功率自适应控制相结合的技术,使在跳频通信过程自动避开被干扰的调频频点,并以最小的发射功率、最低的截获概率,达到在无干扰的跳频信道上长时间保持优质通信的目的!
        所谓为的频率自适应控制是在跳频通信过程中,拒绝使用那些曾经使用过,但是传输不成功的跳频频率集中的频点,即实时去除跳频频率集中被干扰的频点,使跳频通信在无干扰的可使用的频点上进行,从而大大提到跳频通信中接受信号的质量!

7、蓝牙4.0BLE无线网络拓扑结构

     蓝牙4.0BLE网络拓扑结构分为星型拓扑和广播拓扑。不同的拓扑结构对网络节点的配置有不同的要求(蓝牙网络节点的类型分为 主机、从机、也可以分为服务器、客户端)。

                               蓝牙4.0BLE开发——物联网开发技术实战(1)


第一部分的总结:

这一篇内容不多,主要的蓝牙4.0的一些技术背景,以及简单的应用,主要的知识点再总结回顾一下:

1、对无线网络数据传输的格式协议分类,有四种为:WIFI、Wireless USB、 ZigBee、Bluetooth等,主要的分类标准有传输的数据量,传输距离,功耗等。
2、介绍了短距离的无线传输协议对比:分为无线局域网和无线个域网,无线个人域网又根据传输的速率分为三种,并对应三种通信协议,而蓝牙应用于第二种mediu-rate WPLANs.
3、介绍了蓝牙4.0的一些技术特点:
      蓝牙4.0由传统的蓝牙技术, 高速蓝牙和低功耗蓝牙做组成,三者*组合!
      蓝牙4.0具有高的可靠性,低成本低功耗,快速启动、传输距离大、按全性高的特点!
      其中可靠性通过 在射频、基带协议、链路管理协议(LMP)采取差错检测和矫正,数据编解码,差错控制,数据加噪等技术
             低功耗通过加入轻量级的链接层对低功耗的模式操作,并通过减少广播通道(3个),减少广播射频开启的时间(0.6~1.2ms),用主机深度睡眠代替空闲状态等。
4、蓝牙4.0的协议栈中有两个重要的层,GAP和GATT,其中GAP是负责设备连接访问的模式和进程;GATT负责已连接蓝牙间的数据通信。
5、了解无线通信的信道和ISM频段的划分和限制,以及自适应跳频技术。
6、蓝牙无线网络的拓扑结构分为星型拓扑和广播拓扑!不同的拓扑结构对应不同的网络节点,所以要配置协议栈的相关“角色”!