littlebot
Published on 2025-04-17 / 3 Visits
0

【源码】基于C语言的蓝牙LE GATT客户端吞吐量测试系统

项目简介

本项目展示了英飞凌PSoC™ 6 MCU搭配AIROC™ Bluetooth® LE AIROC™ CYW89829和AIROC™ CYW20829 Bluetooth® LE SoC设备,通过GATT层通知和GATT写入命令所能实现的最大吞吐量。应用程序可发送GATT写入命令并计算蓝牙LE的Tx吞吐量,同时接收GATT通知并计算蓝牙LE的Rx吞吐量。

项目的主要特性和功能

  1. 多模式数据传输:支持仅接收GATT通知、仅发送GATT写入命令、同时接收GATT通知和发送GATT写入命令三种模式,可通过按下用户按钮切换。
  2. 吞吐量计算:每秒计算并在终端显示蓝牙LE的Tx和Rx吞吐量,只考虑GATT数据字节。
  3. 自动连接:客户端自动检查名为“TPUT”的对等设备,找到后发起连接,连接成功用户LED 1亮起。
  4. 参数可配置:可设置PHY为2M、ATT MTU为247、请求连接间隔在67.5毫秒至75毫秒之间,使用数据长度扩展(DLE)实现最大吞吐量。

安装使用步骤

环境准备

  1. 安装ModusToolbox™ v3.2或更高版本。
  2. 确保开发板支持包(BSP)达到最低版本要求:
    • CYW920829M2EVK - 02: v2.0.0
    • CYW989829M2EVB - 01: v2.0.0
    • CYW989829M2EVB - 03: v2.0.0
  3. 安装支持的工具链,在make变量TOOLCHAIN中选择:
    • GNU Arm® Embedded Compiler v10.3.1 (GCC_ARM) – TOOLCHAIN默认值
    • Arm® Compiler v6.16 (ARM)
    • IAR C/C++ Compiler v9.30.1 (IAR)
  4. 准备支持的开发板,在make变量TARGET中选择:
  5. iOSAndroid应用商店下载并安装AIROC™ Bluetooth® Connect App。

创建项目

使用Project Creator GUI

  1. 打开Project Creator GUI工具,从仪表盘或Eclipse IDE中启动,详情见Project Creator用户指南
  2. 在“Choose Board Support Package (BSP)”页面,选择支持的开发板。
  3. 在“Select Application”页面:
    • 选择“Applications(s) Root Path”和“Target IDE”。
    • 勾选本代码示例。
    • (可选)更改建议的“New Application Name”和“New BSP Name”。
    • 点击“Create”完成应用程序创建。

使用Project Creator CLI

在终端使用project - creator - cli工具创建应用程序,示例命令: project - creator - cli --board - id CY8CKIT - 062 - BLE --app - id mtb - example - btstack - freertos - throughput - client --user - app - name LE_GATT_Client_Throughput --target - dir "C:/mtb_projects" 参数说明: - --board - id:指定开发板ID,必填。 - --app - id:指定应用程序ID,必填。 - --target - dir:指定应用程序创建的目录,可选。 - --user - app - name:指定应用程序名称,可选。

打开项目

根据开发环境打开项目: - Eclipse IDE:从Eclipse IDE打开Project Creator工具,项目自动在Eclipse中打开,详情见Eclipse IDE for ModusToolbox™用户指南。 - Visual Studio (VS) Code:手动启动VS Code,打开项目目录中的{project - name}.code - workspace文件,详情见Visual Studio Code for ModusToolbox™用户指南。 - Keil µVision:双击生成的{project - name}.cprj文件启动Keil µVision IDE,详情见Keil µVision for ModusToolbox™用户指南。 - IAR Embedded Workbench:手动打开IAR Embedded Workbench,创建新项目,选择项目目录中的{project - name}.ipcf文件,详情见IAR Embedded Workbench for ModusToolbox™用户指南。 - 命令行:打开终端,导航到项目目录。Windows用modus - shell,Linux和macOS用任意终端应用程序,可运行make命令,详情见ModusToolbox™工具包用户指南

操作步骤

  1. 用USB电缆通过KitProg3 USB连接器将开发板连到PC。
  2. 用串口终端应用程序连接到KitProg3 COM端口,配置串口设置:波特率115200 bps;数据位8位;无校验位;停止位1位;无流控制;接收数据的换行符为换行符(LF)或自动设置。
  3. 用以下方法之一对开发板编程:
    • Eclipse IDE:在Project Explorer中选应用程序项目,在“Quick Panel”中点击\<Application Name> Program (KitProg3_MiniProg4)
    • 其他IDE:按所选IDE说明操作。
    • 命令行:在终端执行make program命令,用默认工具链构建并编程应用程序到默认目标,可手动覆盖默认工具链,如: make program TOOLCHAIN = GCC_ARM
  4. 拔掉第一块开发板,用USB电缆通过USB连接器将第二块开发板连到PC,重复步骤3,用GATT_server应用程序对第二块开发板编程。
  5. 将第一块(已编程GATT_client)开发板连到PC并打开终端查看UART消息,必要时打开UART终端后重置开发板。
  6. 按下GATT客户端设备上的用户按钮启动。客户端检查名为“TPUT”的对等设备,找到后发起连接,连接成功“User LED 1”亮起。
  7. 再次按下蓝牙LE GATT客户端设备上的用户按钮,启用GATT通知,蓝牙LE GATT服务器发送244字节的GATT通知,每秒计算一次吞吐量并显示在终端上。此时,服务器计算Tx吞吐量,客户端计算Rx吞吐量。
  8. 再次按下蓝牙LE GATT客户端设备上的用户按钮,禁用GATT通知并启用GATT写入,客户端发送244字节的GATT写入命令,每秒计算一次吞吐量并显示在终端上。此时,服务器计算Rx吞吐量,客户端计算Tx吞吐量。
  9. 再次按下用户按钮,启用GATT通知并保持GATT写入启用,客户端发送244字节的GATT写入命令,服务器发送244字节的GATT通知,每秒计算一次吞吐量并显示在终端上。此时,服务器计算Rx和Tx吞吐量,客户端计算Tx和Rx吞吐量。
  10. 连续按按钮可按步骤7、8和9更改数据传输模式。
  11. 若断开连接,GATT服务器设备将再次开始广播。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】