Jay 发布的文章

BLE一次能传多少数据(ATT_MTU设置/LE Data扩展)


目录 [隐藏]I. 术语II. 分析III. 更改 simpler_peripheral 配置更大 MTU更改工程现象总结TroubleshootingIV. LE Data Extension抓包分析V. 加入我们 BLE 一次能传多少数据BLE 到底一包能够收发多少数据是很多开发者都会关心的。我们知道 BLE 5.0 物理层设计 2Mpbs 的码元率,实际数据传输速率远远到不了这个级别。主要原因是无法直接单次发送 1M 或者 1K 数据,必须按照我们知道的 ATT_MTU 作为最大值进行拆包发送,不断拆包的过程中导致整体蓝牙有效数据吞吐量下降。本章节,我们实用性出...

LE Data Length Extension


目录 [隐藏]I. 数据长度更新过程II. 初始值III. 数据长度扩展 HCI 命令和事件在连接后设置包长度IV. 在连接中设置包长度V. 加入我们 概要数据长度扩展( LE Data Length Extension )功能允许 LE 控制器在连接状态下发送高达 251 字节的 PDU,在连接期间的任何时刻,主从设备可以协商该 PDU 大小。对比 BLE4.0/4.1 的控制器数据通道最大有效载荷为 27 字节,使能数据扩展功能后的 BLE4.2/BLE5.0 能够达到 251 ,数据速率提高了大约 2.5 倍。I. 数据长度更新过程一旦建立连接,控制器将以两种...

Logical Link Control and Adaptation Layer Protocol (L2CAP)


目录 [隐藏]I. L2CAP 术语II. 最大传输单位(MTU)III. 配置更大的 MTUIV. L2CAP 通道L2CAP 面向连接的通道( CoC )示例V. 加入我们 逻辑链路控制和适配层协议(L2CAP)L2CAP 运行在 HCI 之上的 Host ,实现 Host 更高层(GAP、GATT、APP)和低层协议栈之间传输数据。该层负责在 Host 和协议栈之间把交换的数据进行分割( segmentation )和重组( reassembly )以提供协议的多路处理能力。L2CAP 允许更高级别的协议和应用程序发送和接收高达 64KB(实际受限于蓝牙设备实际...

Generic Attribute Profile (GATT)


目录 [隐藏]I. GATT 的 Profile 、Service 、Characteristics 、AttributesII. GATT 客户端抽象层III. GATT服务端抽象层IV. GATT Services 和 ProfileV. GATT 安全认证( Authentication )授权( Authorization )VI. 直接使用 GATT 层VII. GAP GATT 服务(GGS)VIII. 加入我们 通用属性配置文件(GATT)GAP 层负责连接相关的功能,GATT 主要是负责在两个已经连接的设备之间进行交互数据。GAP 层把 BLE ...

Generic Access Profile (GAP)


目录 [隐藏]I. 抓包理解以上连接过程II. 连接参数III. 连接参数设置策略连接参数更新连接参数优化IV. 连接终止V. GAP 抽象层VI. 配置广播参数VII. 加入我们 概述GAP 分层负责设备建立连接的相关功能,包括设备发现、数据链路建立、终止、初始化安全管理和设备配置,参见下图 1 。图1. GAP 分层的建立连接的示意图在 Standby 状态,双方设备都处于未连接状态。Advertiser 尝试广播数据,Scanner 接收到广播数据后尝试进行扫描请求,并且得到扫描回复。此时 Scanner 产生连接意图,转变成 Initiator 发送连接请...

simple_peripheral 应用框架


目录 [隐藏]I. Pre-main initializationII. ICALL介绍ICall BLE5 协议栈服务端ICALL 原语服务ICALL 初始化和注册ICall 线程同步示例 ICall 用法BLE-Stack 工程是如何作为 App 中 TI-RTOS 的一个任务运行的尝试走读一个 ICALL 的消息流程如何调试协议栈任务III. Simple Peripheral Task应用程序初始化功能任务功能中的事件处理任务事件IV. Intertask 消息使用 TI-RTOS 事件模块处理队列的应用程序消息请求和处理协议栈事件回调V. 加入我们 应用程序...

ble5.0 蓝牙协议概述


目录 [隐藏]I. 介绍II. BLE 协议栈基础GAPHCIL2CAPSMGATT/ATTIII. 加入我们 Overview从这部分开始详细介绍蓝牙协议栈功能、接口、协议栈工程关联、实现协议栈的文件和任务,该任务也作为协议栈应用的最高优先级任务。TI 采用库文件的方式作为协议栈的一个主策略,尽管如此,还是需要开发者了解协议栈各个抽象的功能和相互作用。I. 介绍蓝牙 5.0 核心规范包含 LE 和 BR/EDR 两种设备类型,其中 LE 主要是设计为低功耗、小数据终端产品。BLE5.0 核心主要包含以下功能:2M Sym/s PLY 层设计(2M Symbol Rat...

stm32cube programmer


目录 [隐藏]I. 工具软件ST-Link USB烧写工具驱动安装硬件连接II. Flash 烧写工具 STM32CubeProgrammerOLD ST-LINK firewareNo ST-Link device detectedST-LINK error (DEV_NO_DEVICE) stm32cube programmer 固件烧写I. 工具软件ST-Link USB烧写工具官方产品介绍页面提示:所有固件工具都提供官方在线连接,实在找不到就找我(李洁)要。驱动安装初次使用ST-Link需要安装驱动, 如果已经安装过Keil或者STM32CubeProgramme...

STM32CubeMx


STM32CubeMxC:Program FilesSTMicroelectronicsSTM32CubeSTM32CubeMXhelpUM1718.pdfSTM32CubeMx 是一个STM32的图形化配置工具,可以作为STMCube 工具独立使用,也可以作为Eclipse的插件。主要包含以下主要工功能:覆盖所有STM32的选型;所有ST官方开发板选择;快速配置(引脚、时钟、外设、和中间件软件)以及产生相应的C代码;通过先前的配置快速切换选型;轻松导出到兼容的配置到兼容MCU;产生配置报告;通过选择IDE生产对应工程代码;功耗计算;如何产生配置代码File->New Projec...

关于ble 5.0的几个常见问答


关于蓝牙5.0的几个常见问答本文汇集了关于蓝牙 5.0 几个常见问题的答案,以帮助开发人员更好地了解蓝牙 5.0 的一些新特性。蓝牙 5.0 向后兼容现有的蓝牙 4.x 设备吗?对于蓝牙 4.1 、4.2 和 5.0 中添加的所有功能,它们在 BLE 连接期间都是可以协商选择的。这一点确保了蓝牙 5.0 设备能够可靠地连接到旧版蓝牙 4.x 设备,并与其进行交互。除了向后兼容性之外,蓝牙 4.1 和 4.2 中的可选功能适用于蓝牙 5.0 .因此,除了 2 Mbps 功能之外,蓝牙 5.0 设备还可支持蓝牙 4.2 的数据长度扩展功能。TI BLE5-Stack 结合了蓝牙 4.1 和...