1.浅谈蓝牙BLE的总体框架

这里只展开BLE这一部分,

框图如下所示
蓝牙也是使用分层的结构组织代码。
在这里插入图片描述
Application:是自己的业务逻辑实现的地方。当然应用程序需要根据BLE的规定,实现配置文件(profile)、服务(service)和特征(character)。
Host::这一部分实现蓝牙如何存储和交互数据,也涉及到数据加密的部分
Controller:控制层将蓝牙数据通过无线电发送出去,这一部分是硬件强相关的,且往往是闭源的。nordic的这部分也是闭源。

Controller可以先不研究,一般都挺稳定的,毕竟nordic需要自己负责这部分的稳定性。

Host主机层

  1. 逻辑链路控制和适配协议(L2CAP):向上层提供数据封装服务。
  2. 安全管理器协议 (SMP):定义并提供安全通信的方法。
  3. 属性协议 (ATT):允许一个设备向另一个设备公开某些数据。
  4. 通用属性配置文件(GATT):定义使用ATT层所需的子程序。
  5. 通用访问配置文件 (GAP):直接与应用程序交互以处理设备发现和连接相关的服务。

GATT实现了怎么展示应用层定义的服务。这些交互过程都在这里实现
GAP:主要是设备信息的展示,比如设备名这些。

zephyr的host层实现了上面列出的所有功能。
https://docs.nordicsemi.com/bundle/ncs-latest/page/zephyr/connectivity/bluetooth/bluetooth-arch.html#host

后续开章节详解这部分的API。

控制器层

物理层 (PHY):确定实际数据如何调制到无线电波上,以及如何传输和接收。
链路层 (LL):管理无线电的状态,定义为以下之一 - 待机、广告、扫描、启动、连接。

在NCS里可以使用zephyr自带的控制器。也可以用nordic专门设计的softDevice。

  • 官方是强烈推荐softDevice。因为这能充分发挥nordic芯片的性能。
  • 在蓝牙标准里面也有对控制器统一、标准化、详细的定义,因此zephyr自带的控制器也能控制nordic的BLE部分,不过有些特别的设计就无法实现。这里我还没有详细深入控制器这一块,只知道是这个原理。
  • softDevice的API文档地址

相关推荐

  1. 低功耗(BLE)服务组成

    2024-07-11 14:16:04       56 阅读
  2. Spring框架

    2024-07-11 14:16:04       41 阅读
  3. 各个微前端框架优劣

    2024-07-11 14:16:04       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 14:16:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 14:16:04       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 14:16:04       58 阅读
  4. Python语言-面向对象

    2024-07-11 14:16:04       69 阅读

热门阅读

  1. 菜鸟的Leetcode(02)

    2024-07-11 14:16:04       24 阅读
  2. uniapp图片压缩之后在上传

    2024-07-11 14:16:04       22 阅读
  3. composables 目录下的文件(web前端)

    2024-07-11 14:16:04       23 阅读
  4. 刷题——利用两个栈实现队列

    2024-07-11 14:16:04       24 阅读
  5. AWS需要实名吗?

    2024-07-11 14:16:04       22 阅读
  6. Redis新手教程

    2024-07-11 14:16:04       21 阅读
  7. 薄冰英语语法学习--代词1

    2024-07-11 14:16:04       19 阅读
  8. 03-图像基础-视音频参数

    2024-07-11 14:16:04       27 阅读
  9. mysql中count的区别

    2024-07-11 14:16:04       21 阅读
  10. springboot对象参数赋值变化

    2024-07-11 14:16:04       18 阅读
  11. 什么是数据挖掘(python)

    2024-07-11 14:16:04       25 阅读
  12. python的类变量和实例变量

    2024-07-11 14:16:04       24 阅读