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

BLE开发基础_02_WCH_BLE分析仪使用及解码数据分析_V1.6.0

  • WCH-BLE 分析仪(WCH-BLEAnalyzer)是一款多用途的BLE 开发和测试工具。主要用于监听BLE 广播通道数据包或连接设备之间的通信,并通过PC软件(BleAnalyzer.exe)对数据包进行分析,最终以一种简明的方式显示给用户。
    BLE分析仪的功能特点手册在下载PC软件时已附录,相应工具和使用说明见链接:https://www.wch.cn/downloads/WCH_BLEAnalyzer_zip.html 这里主要提供BLE分析仪具体使用说明。
    本文所使用PC软件版本为V1.6.0

硬件连接

  • 通过USB连接线或USB-HUB为分析仪供电,连接成功后,分析仪上的绿灯会闪烁两次。

BLE数据采集

软件主页面

BLEAnalyzer v1.6.0主页面:
image

点击开始后可通过右侧广播视图-调试此设备或工具栏-抓包设置按mac地址过滤数据:

52ac4315-0eda-4186-9d11-b417ff32694e

其他过滤条件可在工具栏选择或输入过滤表达式:

fcdf93cd-40ab-4af6-8ebe-f305bae23011
开始后可在解码视图中查看解码数据


广播包

  • SCAN_REQ:扫描请求,由主设备(MASTER DEVICE)向从设备(SLAVE DEVICE)发出,目的是为了获得从设备的响应以得到更多的从设备广播数据信息(包括设备名字,或者服务UUID,及其它如厂家特定格式的信息,如硬件版本,软件版本号,设备系列号等等)

image

image


  • PDU Type (4 bits):定义广播包的类型,直接决定了整个数据包的行为和载荷(Payload)的结构
  • RFU (2 bits):保留字段,通常设置为0。
  • TxAdd (1 bit):发送地址类型。指示紧随Header之后的 AdvA (广播设备地址) 字段是公共地址(Public,值为0)还是随机地址(Random,值为1)。
  • RxAdd (1 bit):接收地址类型。该字段的意义随PDU类型不同而变化。
  • Length (6 bits):载荷长度。指示后续Payload(即AdvA和AdvData部分)的总字节数,范围通常为6到37。这也是广播数据最大为31字节的原因(37 - 6字节设备地址 = 31)

  • ScanA:扫描者设备地址(通常为手机)
  • AdvA:广播者设备地址,此SCAN_REQ所针对的目标从机设备的蓝牙地址

  • SCAN_RSP: 扫描响应包,从设备对主设备发起的SCAN_REQ的响应,作为广播包的补充,从设备可以给主设备更多的广播数据,比如说,有些设备在广播包里面没有设备名字,这个时候就可以把设备名字放在这个包里面发给主设备
    image
    image

  • PDU Type(4 bits) :固定为 0100,表示这是SCAN_RSP包
  • RFU(2 bits) :保留,通常为0
  • TxAdd(1 bit) :发送地址类型(广播者地址类型):0公共地址(Public)1 = 随机地址(Random)
  • RxAdd(1 bit) :接收地址类型(扫描者地址类型):0 = 公共地址 1 = 随机地址
  • Length(6 bits)后续Payload的字节数(范围6~37)

  • AdvA(6字节):广播者设备地址(与Header中TxAdd指示的类型一致)
  • ScanRspData:(0~31字节)扫描响应数据,由若干个AD Structure(TLV格式)组成,当广播者在广播包(ADV_IND)中只能携带最多31字节数据时,如果还有额外信息(如完整的设备名称、更多服务UUID、制造商特定数据等)需要提供,就可以通过ScanRspData扫描响应来补充。扫描者收到SCAN_RSP后,可以获取这些额外信息,而无需建立连接。


连接包

  • 使用主机设备连接从机设备,此时若分析仪在广播通道监听到“连接请求包”后,则会开始跟踪连接通信,可抓取到连接通信的数据,如下图所示:
    image
    image

  • Payload分析

    • InitA(6字节):中心设备地址

    • AdvA(6字节):从机设备地址

    • LLData(22字节):链路层数据,包含连接参数

      • AA(4字节):数据通道的接入地址,随机生成,用于区分不同连接。该地址必须满足:不能为 0x00000000、不能为 0xFFFFFFFF、不能有超过 24 次位翻转、不能连续 6 个以上 0 或 1。
      • CRCInit(3字节):CRC 初始值,用于数据通道包的 CRC 校验计算。
      • WinSize(1字节):连接事件窗口大小(单位 1.25ms),表示连接事件开始后,从机应侦听的时间窗口。
      • WinOffset(2字节):连接事件窗口偏移(单位 1.25ms),定义从连接请求包发送到第一个连接事件开始的时间间隔。
      • Interval(2字节):连接间隔(单位 1.25ms),表示两个连接事件之间的时间。范围 6 ~ 3200(即 7.5ms ~ 4s)。
      • Latency(2字节):从设备延迟(次数),表示从机可以跳过多少个连续连接事件而不发送数据。范围 0 ~ 499。
      • Timeout(2字节):监督超时(单位 10ms),表示两次有效连接事件之间的最大允许时间,超时则连接断开。范围 10 ~ 3200(即 100ms ~ 32s)。
      • ChM(5字节):信道图(Channel Map),共 40 位,每一位对应一个 RF 信道(0~39)。位为 1 表示该信道可用,为 0 表示不可用(如受 Wi-Fi 干扰)。
      • Hop(1字节):跳频增量(Hop Increment),取值范围 5~16。用于计算下一个连接事件的信道:next_channel = (last_channel + hop) mod 37(仅使用可用信道)。
      • SCA(1字节)中心设备时钟精度(Sleep Clock Accuracy),表示主机时钟的漂移范围,用于从机计算接收窗口。值 0~7 对应不同 ppm 范围

连接后通信过程

  • LL Control Opcode是链路层控制协议 (Link Layer Control Protocol, LLCP) 的核心,决定了连接建立后,主从设备之间要执行何种控制操作,如更新连接参数、加密链路或断开连接。
    1e6156d2-e853-4fe7-9419-d0d699bee5e6
    c1bf1124-2f18-4d55-81de-c56ab274009d
    7442d2ed-f26f-424a-8890-beb46c049ec9

f860181e-ad1c-4818-8347-78658ef868f6

  • PACKET5531:主机启动加密流程,发送随机数进行加密(opcode== 0x03为启动加密请求,rand为加密使用的随机数)
  • PACKET5532:从机回应加密请求,回复会话密钥
  • PACKET5536:从机开始加密请求
  • PACKET5537/5538:主机/从机开始加密响应
  • PACKET5539:LL_LENGTH_REQ(0x14)连接中用于协商数据长度扩展的控制包,协商最大发送/接收数据长度和时间长度
    ....

数据读取/发送

3cb09e41-1978-4778-b725-4363559b90e6

  • PACKET42629:主机向从机发送读请求(AttOpCode == 0x0A),Attribute Handle为句柄,唯一标识符
  • PACKET42632:从机回复读数据(AttOpCode == 0x0B),AttValue为具体数值
http://www.jsqmd.com/news/566200/

相关文章:

  • Windows界面重塑:ExplorerPatcher解锁系统个性化新境界
  • HBuilderX 快速部署Android App到雷电模拟器的完整指南
  • VideoAgentTrek-ScreenFilter助力远程办公:自动过滤敏感信息泄露风险
  • 基于Spark+Hadoop+Hive 深度学习大数据的运河航运效率提升平台的设计与实现
  • 构建智能写作助手:nli-distilroberta-base用于文章逻辑一致性检查
  • springboot+vue基于web的宠物之家领养系系统
  • 探寻2026接地施工直销厂家,专业品质助您无忧施工,铜覆钢圆线/铜覆圆钢/铜包钢扁钢,接地施工生产厂家推荐 - 品牌推荐师
  • 2026最新山东/济宁小型搅拌车厂家推荐!工程建设/小型工程/乡村修路/隧道施工/轨道运输专用,助力采购方找到契合厂商 - 十大品牌榜
  • 暗黑破坏神3自动化工具:智能技能管理与效率提升解决方案
  • Python实战:用pymodbus读写PLC中的浮点数和字符串(字节序详解)
  • 【UE4】UE4蓝图实战:动态调整粒子颜色参数的技巧与应用
  • GetQzonehistory:解决QQ空间历史数据留存难题的完整方案
  • nli-distilroberta-base生产环境:高并发NLI服务负载均衡与弹性伸缩
  • 2026最新发布:西南地区螺杆真空泵、罗茨真空泵及真空机组企业推荐清单 - 深度智识库
  • 【山海鲸实战案例】下拉菜单如何联动单行文本组件?
  • 2026 年,大模型迈向商业化新阶段
  • 大气层系统终极指南:从零开始打造你的Switch自定义固件体验
  • springboot+vue基于web的宠物健康档案信息管理系统
  • 2026年别墅铝合金露台雨棚厂家推荐:阳台/室外铝合金露台雨棚专业定制服务商 - 品牌推荐官
  • hadoop+spark+hive基于大数据的食谱分析与个性化推荐系统 美食推荐系统 美食可视化 大数据毕业设计
  • 2026全国注册会计师培训机构甄选 聚焦一对一私教与系统教学多类模式 - 深度智识库
  • 2026最新山东济宁三轮搅拌车推荐!工程建设/小型工程/乡村修路/隧道施工/轨道运输适用,助力各类工程场景高效推进 - 十大品牌榜
  • UE4 World与Level系统:构建无缝开放世界的核心技术解析
  • SINAMICS V20变频器快速调试与参数优化指南
  • 可视化思维:Markmap的Markdown转交互式思维导图解决方案
  • 模型剪枝实战指南(一):从原理到落地
  • VASTBASE G100 Docker部署避坑指南:3个月License到期后如何无缝续期
  • 2026Q1石家庄靠谱代理记账公司推荐 口碑优选,财税服务更省心 - 品牌智鉴榜
  • Day011——Java流程控制
  • 专业级AI编程助手OpenCode实战指南:5分钟从零到精通