当前位置: 首页 > news >正文

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文档地址

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Mark笔记】基于Centos7.7更改SSH端口重启服务报错
  • SAP S4 销售组的定义和分配
  • WGS84坐标转换代码(JS版)
  • KVM虚拟机添加USB转串口设备
  • Github获8k Star!入选苹果CoreML模型库的Depth Anything是怎么做出来的?
  • 【D3.js in Action 3 精译】1.3 D3 视角下的数据可视化最佳实践(上)
  • 数据结构day6链式队列
  • 多位冒充者曝光!全域外卖官方到底是谁?
  • 谷粒商城实战-25-分布式组件-SpringCloud Alibaba-Nacos配置中心-加载多配置集
  • 华盈生物-PhenoCycler-超多靶标揭示组织空间位置和互作关系
  • centos磁盘空间满了-问题解决
  • 流程管理与商务智能解决方案(62页PPT)
  • 编程社团研究内容怎么写
  • 原生android的内存性能提升方面的测试和优化方案大致设计
  • main.cpp程序执行流程图
  • 2019年如何成为全栈工程师?
  • centos安装java运行环境jdk+tomcat
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • fetch 从初识到应用
  • gf框架之分页模块(五) - 自定义分页
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • java8-模拟hadoop
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • MySQL主从复制读写分离及奇怪的问题
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • 猴子数据域名防封接口降低小说被封的风险
  • 线性表及其算法(java实现)
  • 携程小程序初体验
  • 仓管云——企业云erp功能有哪些?
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • #07【面试问题整理】嵌入式软件工程师
  • #stm32驱动外设模块总结w5500模块
  • ${ }的特别功能
  • (+4)2.2UML建模图
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (微服务实战)预付卡平台支付交易系统卡充值业务流程设计
  • (一)kafka实战——kafka源码编译启动
  • (一)Thymeleaf用法——Thymeleaf简介
  • (译)计算距离、方位和更多经纬度之间的点
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转载)利用webkit抓取动态网页和链接
  • .gitignore文件---让git自动忽略指定文件
  • .NET : 在VS2008中计算代码度量值
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET MVC 验证码
  • .Net 基于.Net8开发的一个Asp.Net Core Webapi小型易用框架
  • .NET 解决重复提交问题
  • .Net 知识杂记