​​[Telink][TLSR8251] [泰凌微][SDK3.4] 上手第二步 框架介绍​​ Telink BLE SDK 给⽤⼾提供了多个 BLE demo。

⽤⼾通过软硬件 demo 的运⾏,可以观察到直观的效果。⽤⼾也可以在 demo code 上进⾏修改,完成⾃⼰的应⽤开发。

[Telink][TLSR8251] [泰凌微][SDK3.4] 上手第三步 Demo 介绍_ios

BLE Slave Demo

Demo

Stack

Application

MCU Function

B85m hci

BLE controller

No

BLE controller,only Advertising and one Slave connection

B85m module

BLE controller + host

Application 在主控 MCU 上

BLE 透传模组

B85m ble remote

BLE controller +host

遥控器应⽤

主控 MCU

B85m ble sample

BLE controller +host

最简单的 slave demo,⼴播和连接功能

主控 MCU

B85m feature

BLE controller +host

各种 feature 的集合

主控 MCU

B85m hci 是⼀个 BLE slave controller,提供了基于 USB/UART 的 HCI,和其他 MCU 的 host 通信,形成⼀个完整的 BLE slave 系统。
B85m module 只作为 BLE 透传模组,与主控 MCU 通过 UART 接⼝通信,⼀般应⽤代码写在对⽅主控 MCU。
B85m module 实现了通过透传模组控制相关状态变化的功能。

注意:

  • 由于功能实现复杂,使⽤ B85m module 时必须更换为 32k retention 相关配置并编译使⽤。

B85m remote 是⼀个基于完整 slave ⻆⾊的遥控器 demo,包含低压检测、按键扫描、NEC 格式红外发射、OTA空中升级、应⽤层电源管理、蓝⽛控制、语⾳传输、红外学习等功能。⽤⼾可以根据此⼯程了解到⼀个基本的使⽤案例是什么结构的,以及⼤部分功能在应⽤层是如何实现的。

注意:

  • 由于语⾳、红外、红外学习耗费 ram 资源较⼤,打开这些功能时,B85m remote 必须更换为 32k retention
    相关配置并编译使⽤。

B85m ble sample 是对 B85m_ble_remote 的简化,可以和标准的 IOS/android 设备配对连接。

BLE master demo

B85m master kma dongle 是 BLE master single connection 的 demo,可以和 B85m ble sample/B85m ble remote/B85m module 连接并通信。
B85m ble remote/B85m ble sample 对应的 library 提供了标准的 BLE stack(master 和 slave 共⽤⼀个 library),包含了 BLE controller + BLE host,⽤⼾只需要在 app 层添加⾃⼰的应⽤代码,不⽤再去处理 BLE host 的东西,完全依赖于 controller 和 host 的 API 即可。
新 SDK 的 library 将 slave 和 master 库合⼆为⼀了,B85m master kma dongle 编译 code 的时候只会调⽤库中标准的 BLE controller 功能部分,library 中并没有提供 master 的标准 host 功能。B85m master kma dongle demo code 在 app 层上给出了参考的 BLE Host 的实现⽅法,包括 ATT、简单的 SDP(service discoveryprotocol)和最常⽤的 SMP(security management protocol)等。

BLE master 最复杂的功能在于对 slave server 的 service discovery 和所有 service 的识别,⼀般是在 android/linux 系统中才能实现。Telink B85m IC 由于 flash size 和 Sram size 的限制,⽆法提供完整的 service discovery。
但是 SDK 中提供了所有 service discovery 需要⽤到的 ATT 接⼝,⽤⼾可以参考 B85m master kma dongle 对B85m ble remote 的 service discovery 过程,去实现⾃⼰的特定 service 的遍历。