单片机学习小组
直播中

陈超

7年用户 919经验值
私信 关注

什么是BLE协议栈?

什么是BLE协议栈?

回帖(1)

赵天湖

2022-1-25 14:35:00
本节呢,我想跟大家介绍一下BLE协议栈,这一节也就是入门级的知识点吧,适合小白们看一下呦。
首先呢,我先介绍一下什么事BLE协议栈,协议定义的是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据收发;协议栈是协议的具体实现形式,通俗的理解就是代码实现的函数库,以便开发人员调用。
BLE协议栈是将各层定义的协议都集合在一起,以函数库的形式实现,同时提供给用户一些应用层API,供用户调用。
关于BLE协议栈的开发思路我们可以概括为如下三点:


  • 对BLE无线网络的开发简化为应用层的C语言程序开发,用户不需要深入研究复杂的BLE协议栈。
  • Bluetooth-LE低功耗蓝牙中的数据采集,只需要我们在应用层中加入传感器的读取函数即可。
  • 如果考虑节能,我们只需要根据数据采集周期进行定时,定时时间到就唤醒BLE。

安装完BLE协议栈(详情请看上节)后,我们在着重看一下BLE协议栈的结构。

在这个目录(components)下,存放的是TI蓝牙4.0的协议栈组件,包括底层的BLE,还有开发板硬件层hal,还有类似操作系统的osal。我们重点关注的是hal和osal,其中,hal是硬件抽象层的意思,osal可以理解成操作系统。
在目录documents下,存放的是TI提供的关于协议栈和协议栈demo的相关介绍和开发文档,该目录下的文件非常重要请仔细阅读。
目录projectsBLE也是重要的目录,协议栈的每个例程都
不是单独存在的,蓝牙是为了能够通信,想要通信就必须遵守一定的规则, Profile 就可以理解为相互约定的规则,因为每个协议栈demo 都会有一个Profile 与之对应,我们这里的SimpleBLExxx 对应的就是simpleGATTprofile,大多数profile 都是蓝牙组织SIG 规定好的,但是,如果我们的项目不涉及到跟第三方的设备进行互联, 那么我们完全可以自定义profile , 例如, TI 的SimpleBLEPeripheral 从机和SimpleBLECentral主机工程, 就是自定义的profile ,0xfff1~0xfff5。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分