物联网解决方案
返回列表 发新帖

[开源教程] 一分钟读懂低功耗蓝牙(BLE)MTU交换数据包

[复制链接]
  • TA的每日心情
    开心
    2018-10-8 14:31
  • 签到天数: 1 天

    [LV.1]初来乍到

    6

    主题

    7

    帖子

    78

    积分

    冉冉新星

    Rank: 2

    积分
    78
    发表在  2018-10-8 14:37:26  | 显示全部楼层 | 阅读模式

    公开设备实时看 这是什么->

    18:54
    匿名用户
    通过微信查询温湿度
    18:54
    匿名用户
    通过微信查询温湿度
    18:53
    匿名用户
    通过微信查询温湿度
    18:53
    匿名用户
    通过微信控制多彩灯光
    18:53
    匿名用户
    通过微信控制多彩灯光
    18:53
    匿名用户
    通过微信控制多彩灯光
    18:53
    匿名用户
    通过微信控制多彩灯光
    18:53
    匿名用户
    通过微信控制多彩灯光
    18:53
    匿名用户
    通过微信控制多彩灯光
    18:53
    匿名用户
    通过微信控制多彩灯光
    18:53
    匿名用户
    通过微信控制多彩灯光
    18:53
    匿名用户
    通过微信控制多彩灯光
    18:53
    匿名用户
    通过微信控制多彩灯光
    18:53
    匿名用户
    通过微信控制多彩灯光
    18:53
    匿名用户
    通过微信控制多彩灯光
    18:53
    匿名用户
    通过微信控制多彩灯光
    18:53
    匿名用户
    通过微信控制多彩灯光
    18:53
    匿名用户
    通过微信控制多彩灯光
    18:53
    匿名用户
    通过微信控制多彩灯光
    18:53
    匿名用户
    通过微信控制多彩灯光
    18:52
    匿名用户
    通过微信控制多彩灯光
    18:52
    匿名用户
    通过微信控制多彩灯光
    18:52
    匿名用户
    通过微信控制多彩灯光
    18:52
    匿名用户
    通过微信控制多彩灯光
    18:52
    匿名用户
    通过微信控制多彩灯光
    18:52
    匿名用户
    通过微信控制多彩灯光
    18:52
    匿名用户
    通过微信控制多彩灯光
    18:52
    匿名用户
    通过微信控制多彩灯光
    18:52
    匿名用户
    通过微信控制多彩灯光
    18:51
    匿名用户
    通过微信控制多彩灯光
    11:53
    匿名用户
    通过微信控制多彩灯光
    11:53
    匿名用户
    通过微信控制多彩灯光
    11:53
    匿名用户
    通过微信控制多彩灯光
    11:53
    匿名用户
    通过微信控制多彩灯光
    11:53
    匿名用户
    通过微信控制多彩灯光
    11:53
    匿名用户
    通过微信控制多彩灯光
    11:53
    匿名用户
    通过微信控制多彩灯光
    11:53
    匿名用户
    通过微信控制多彩灯光
    11:53
    匿名用户
    通过微信控制多彩灯光
    11:53
    匿名用户
    通过微信控制多彩灯光
    11:53
    匿名用户
    通过微信控制多彩灯光
    11:53
    匿名用户
    通过微信控制多彩灯光
     

    马上注册,免费领取开发板,一周变智能硬件开发达人!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    1.概述
      * MTU: 最大传输单元(MAXIMUM TRANSMISSION UNIT) , 指在一个PDU (Protocol Data Unit: 协议数据单元,在一个传输单元中的有效传输数

    据)能够传输的最大数据量(多少字节可以一次性传输到对方)。
      * MTU 交换是为了在主从双方设置一个PDU中最大能够交换的数据量,通过MTU的交换和双方确认(注意这个MTU是不可以协商的,只是通知对方,双方在知道对方的极限后会选择一个较小的值作为以后的MTU,比如说,主设备发出一个150个字节的MTU请求,但是从设备回应MTU是23字节,那么今后双方要以较小的值23字节作为以后的MTU),主从双方约定每次在做数据传输时不超过这个最大数据单元
        MTU交换通常发生在主从双方建立连接关系后(参见一分钟读懂低功耗蓝牙连接数据包”
        做个对比就可以知道BLE MTU 比较小(不过新的BLE 标准MTU 已经大幅提升,详见即将发表在VIEWTOOL BBS上的后续文章)。
      ****************************************************************“*************************      
       以太网:1500
      IEEE 802.3/802.2: 1492
      X.25: 576
      BLE: 23   => 这就是为什么WIFI 可以用于传输视频,传统蓝牙(BT)可以传输音频,而低功耗蓝牙(BTLE 或者BLE)只能够传输控制数据的原因了。
      ******************************************************************************************
      * MTU 交换命令:属于ATT 命令
      * MTU 交换过程:如下图
       

                                   
    登录/注册后可看大图

      * MTU 两个命令(“MTU 请求”及“MTU 响应”)详解如下(见“4”)

    2.关键字:Hollong BLE 侦听仪,低功耗蓝牙嗅探器, BLE 分析仪,BLE 数据抓取
      Keyword: Hollong BLE Sniffer, BLE Data Analyzer,BLE Capture

    3.抓取数据包的准备工作
      * 硬件:一个BLE设备(从设备)及对应的主设备(如智能手机里面的相关应用程序,或者通用BLE 工具软件);
               一台HOLLONG BLE SNIFFER (Hollong BLE 侦听仪)
      * 软件:Hollong 蓝牙4.0/4.1 BLE协议监控分析仪 软件, 使用本软件可以打开本文中的数据包附件,进而可以更加方便及更加全面地了解更多细节(包括最全面的数据及数据解析)
            下载链接:
             http://www.viewtool.com/index.php/22-2016-07-29-02-11-32/205-hollong-4-0-4-1-ble

    4. MTU 请求(REQEUST)
       完整数据(以下关注蓝色标注部分)
       

                                   
    登录/注册后可看大图

        1)  存取地址
        Access Address: 0xaf9a8c69
        固定为4个字节,其值由连接请求数据包指定(详见“一分钟读懂低功耗蓝牙连接数据包”)

       

                                   
    登录/注册后可看大图


       2) 头信息
     Data Header: 0x0706    000. .... = RFU: 0
        ...0 .... = More Data: False
        .... 0... = Sequence Number: 0
        .... .1.. = Next Expected Sequence Number: 1
        .... ..10 = LLID: Start of an L2CAP message or a complete L2CAP message with no fragmentation (0x2)
        000. .... = RFU: 0
        ...0 0111 = Length: 7
       

                                   
    登录/注册后可看大图


     3) L2CAP 长度
        在BLE中,GAP,GATT,SMP 都使用L2CAP 通道将命令及数据打包送到链路层(LINK LAYER),L2CAP 打包过程中需要指定L2CAP的长度及通道号。
        Length: 3
       

                                   
    登录/注册后可看大图


       4) L2CAP 通道号(CID):channel ID
       CID: Attribute Protocol (0x0004)
       

                                   
    登录/注册后可看大图
       

        5) ATT 命令
         标准发下:
          

                                   
    登录/注册后可看大图
         
         实际数据包:
        Opcode: Exchange MTU Request (0x02)
        0... .... = Authentication Signature: False
        .0.. .... = Command: False
        ..00 0010 = Method: Exchange MTU Request (0x02)
          

                                   
    登录/注册后可看大图
       


       6) MTU 值 (请求的值)
        Client Rx MTU: 185
       

                                   
    登录/注册后可看大图

       
       7) CRC
       

                                   
    登录/注册后可看大图


    4. MTU 响应(RESPONSE)
        完整数据包:
       

                                   
    登录/注册后可看大图

        1) 存取地址
        Access Address: 0xaf9a8c69
        固定为4个字节,其值由连接请求数据包指定(详见“一分钟读懂低功耗蓝牙连接数据包”)
       

                                   
    登录/注册后可看大图


        2. 头信息
        Data Header: 0x0712    000. .... = RFU: 0
        ...1 .... = More Data: True
        .... 0... = Sequence Number: 0
        .... .0.. = Next Expected Sequence Number: 0
        .... ..10 = LLID: Start of an L2CAP message or a complete L2CAP message with no fragmentation (0x2)
        000. .... = RFU: 0
        ...0 0111 = Length: 7
       

                                   
    登录/注册后可看大图


        3. L2CAP 长度
            解释同(请求包)。
            Length: 3
          

                                   
    登录/注册后可看大图


        4. L2CAP 通道号
            解释同(请求包)。
           CID: Attribute Protocol (0x0004)
          

                                   
    登录/注册后可看大图


        5. ATT 命令
           标准:
          

                                   
    登录/注册后可看大图


           实例:
           Opcode: Exchange MTU Response (0x03)    0... .... = Authentication Signature: False
        .0.. .... = Command: False
        ..00 0011 = Method: Exchange MTU Response (0x03)
          

                                   
    登录/注册后可看大图


         6) MTU 值
          Server Rx MTU: 23
          

                                   
    登录/注册后可看大图


          7)CRC
           CRC: 0xf4767e
        [Expert Info (Note/Checksum): CRC unchecked, not all data available]
          

                                   
    登录/注册后可看大图
       
         


           下载完整抓取到的数据包:

                                   
    登录/注册后可看大图
    em9304 fineme 071117.zip (19.05 KB)
    回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关于我们
    开发快官网
    关于我们
    联系我们
    帮助中心
    开发者中心
    快速入门
    视频教程
    社区活动
    免费开发板
    开发者大赛
    关注我们
    官方微博
    官方空间
    快速回复 返回顶部 返回列表

    湘公网安备 43019002000310号