Zphyr_Bluetooth

1. 概述

zephyr 主要支持低功耗蓝牙(BLE). 也支持传统蓝牙(BR/EDR)主机的部分协议. 

2. BLE 分层

完整的 BLE 协议栈主要分为如下 3 层:
  • Host 层
    该层位于应用下方, 由多个(非实时)网络和传输协议组成, 使应用能够以标准的, 可互操作的方式与对等设备通信.
  • Controller 层
    控制器实现链路层(LE LL), 这是一种低层次的实时协议, 与无线电硬件一起提供空口通信中可互操作的标准协议. LL 调度数据包的接收和发送, 保证数据的传输, 并处理所有 LL 控制流程.
  • Radio Hardware 层
    硬件实现所需的模拟和数字基带功能块, 允许链路层固件在 2.4GHz 频段发送和接收.

3. 主机控制器接口(HCI)

蓝牙规范描述了一个主机和一个控制器通信的格式. 被称为主机控制器接口协议(HCI). HCI 可以在不同的物理传输上实现, 例如 UART, SPI, USB. 该协议规定了主机发送给控制器的命令和从控制器返回的事件, 以及需要在空口传输的用户数据和协议数据的格式. HCI 确保不同的主机和控制器能以标准的方式进行通信, 从而能够组合来自不同供应商的主机和控制器.

4. 配置

协议的 3 个独立层和白哦准话的接口, 使得主机和控制器可以在不同的平台上实现. 通常使用以下两种配置:
  • 单芯片配置
    在该配置下, 单个微控制器实现所有 3 层和应用本身. 这也被称为片上系统(SoC). 这种场景下, BLE 主机和 BLE 控制器可以通过 RAM 中的队列和函数调用直接通信. 规范没有指定 HCI 是如何在这种单片机中配置实现, 因此 HCI 命令, 事件和两者间的数据流是特定实现的. 这种配置非常适用于那些要求小内存占用和尽可能低的功耗的应用程序和设计, 因为协议栈和应用都运行在单个 IC 上.
  • 双芯片配置
    这种配置使用两个独立的芯片, 一个运行应用程序和主机, 另一个搭载控制器和射频硬件. 有时也称为连接芯片配置. 当使用 Zephyr OS 作为控制器时, 该配置允许广泛的主机组合. 由于HCI确保主机 和控制器实现之间的互操作性, 当然也包括 Zephyr 自己的 主机和控制器, Zephyr 控制器的用户可以选择使用他们喜欢的任何平台上运行的任何主机. 例如, 主机可以是运行在支持 Linux 的任何处理器上的 Linux BLE 主机协议栈(BlueZ). 主机处理器也可以运行 Zephyr 和 Zephyr OS BLE 主机协议栈. 相反, 也支持运行 Zephyr 主机协议栈的芯片与不运行 Zephyr 控制器的外部控制器组合.

5. 构建类型

Zephyr 的软件协议栈是个高度可配置的 RTOS. 特别是 BLE 子系统在构建过程中可以多种方式配置, 仅包含特色和层以适用要求少量的 RAM 和 ROM 占用以及低功耗的场景. 下面是从 Zephyr 代码库生成构建不同的 BLE 的简短列表.
  • 仅构建控制器
    当只作为 BLE 控制器, Zephyr 包括链路层和一个特殊应用. 这个应随 HCI 选择的物理传输不同而不同. 为其中之一 (hci_uart / hci_usb / hci_spi).
    这个应用作为 UART, SPI 或 USB外设 与 控制器子系统之间的桥梁, 监听 HCI 命令, 发送应用数据并响应事件和接收数据. 这种类型的构建设置 Kconfig 的以下选项值:
CONFIG_BT =y
CONFIG_BT_HCI =y
CONFIG_BT_HCI_RAW =y
CONFIG_BT_CTLR =y
CONFIG_BT_LL_SW =y (如果使用开源的链路层)
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值