首页 > 其他分享 >【低功耗蓝牙 BLE】3-OpCode PDU命令表(ATT层)

【低功耗蓝牙 BLE】3-OpCode PDU命令表(ATT层)

时间:2023-11-13 21:48:26浏览次数:31  
标签:Read 句柄 PDU 低功耗 Request Write ATT Response 属性

OpCode 总体构成

OpCode 由以下三部分组成:

  • Opcode PDU :代替某种命令,通过的PDU携带的Attribute Parameters格式不同,下面详细说明。bit 0-5位表示。
  • Command:表示PDU Type 是否是命令(Command )。bit 6表示。
  • Authentication Signature标识位:
    如果Attribute Opcode中身份验证签名标记位为0,则 Information Payload不含有Authentication Signature;
    如果Attribute Opcode中身份验证签名标记位为1,则 Information Payload含有Authentication Signature。

 

OpCode PDU命令表

OpCode PDU 总共包含了六类命令:包括读属性、写属性、查找属性、队列式写属性、错误、交换MTU。

①、错误

0x01    Error Response    

如果属性PDU的操作码无效,或属性句柄无效,将返回错误响应PDU。在PDU的Parameter字段中,包含了错误编码。

②、交换MTU

0x02    Exchange MTU Request    交换MTU
0x03    Exchange MTU Response    交换MTU

Exchange MTU Request
客户端设备向服务端设备发送交换MTU请求,提供客户端设备的MTU值。服务端设备获知客户端的MTU值,并返回自己的MTU值。两端设备都将设置较小的MTU值作为新的MTU值。
如果两端设备没有交换MTU,则使用默认的MTU值处理属性事务。

③、查找属性

0x04    Find Information Request    查找信息
0x05    Find Information Response    查找信息
0x06    Find By Type Value Request    查找信息
0x07    Find By Type Value Response    查找信息

Find Information Request
查找信息请求,包含两个参数:起始属性句柄 & 结束属性句柄,用于获取服务端设备属性句柄处于该参数区间内的属性。

Find Information Response
查找信息响应,包含指定句柄区间内的属性UUID。如果区间内有多个属性,则返回多个响应。

Find By Type Value Request 
按类型值查找请求,是在查找信息请求的基础上,加上了属性类型和属性值两个参数,这样能够更加精确的找到目标属性。

Find By Type Value Response
按类型值查找响应,包含了满足条件的属性句柄列表。

④、读属性

  • 0x08    Read By Type Request    读属性
  • 0x09    Read By Type Response    读属性
  • 0x0A    Read Request    读属性
  • 0x0B    Read Response    读属性
  • 0x0C    Read Blob Request    读属性
  • 0x0D    Read Blob Response    读属性
  • 0x0E    Read Multiple Request    读属性
  • 0x0F    Read Multiple Response    读属性
  • 0x10    Read by Group Type Request    读属性
  • 0x11    Read by Group Type Response    读属性
查看详解
Read By Type Request
按类型读请求,包含三个参数:起始属性句柄、结束属性句柄和属性类型。

Read By Type Response
按类型读响应,包含了满足条件的属性的“句柄-值”对的列表。

Read Request
读请求,包含一个参数:属性句柄。

Read Response
读响应,返回满足条件的属性值。

Read Blob Request
读片段(blob)请求,用于读取一个长包属性的值,它包含两个参数:属性句柄和偏移量。以不同的偏移量作为参数,多次执行该请求可以读取长包属性的完整值。

Read Blob Response
读片段响应,包含了长包属性值的指定偏移量片段。

Read Multiple Request
读多次请求,用于读取多个给定句柄的属性值,它包含一个参数:句柄列表。

Read Multiple Response
读多次响应,包含了多个指定句柄的属性值。

Read by Group Type Request
按组类型读请求,用于读取指定组类型的属性值,组类型是由ATT层之上的协议层设定的。它包含三个参数:起始属性句柄、结束属性句柄和属性组类型。

Read by Group Type Response
按组类型读响应,包含了满足条件的属性值列表。

⑤、写属性

  • 0x12    Write Request    写属性
  • 0x13    Write Response    写属性
  • 0x14    Write Command    写属性
  • 0x15    Signed Write Command    写属性
Write Request
写请求,将待写数值写入指定的属性值,包含两个参数:属性句柄和数值。

Write Response
写响应,表示写请求执行成功,不含任何参数。

Write Command
写命令,将待写数值写入指定的属性值,包含两个参数:属性句柄和数值。它不会触发一个写响应。

Signed Write Command
签名的写命令,与上面的写命令类似,指示包含了额外的参数:认证签名。典型应用是写控制点属性。

⑥、队列式写属性

  • 0x16    Prepare Write Request    队列写属性
  • 0x17    Prepare Write Response    队列写属性
  • 0x18    Execute Write Request    队列写属性
  • 0x19    Execute Write Response    队列写属性
  • 0x1B    Handle Value Notification    通知属性
  • 0x1D    Handle Value Indication    通知属性
  • 0x1E    Handle Value Confirmation    通知属性
队列写是指利用一个先进先出的队列,缓存多个属性值的写操作,然后在一个原子操作中完成所有的值写入操作。

队列写专门用于长包属性的写操作,现将一个长数据分成多个部分并记录偏移量,然后通过队列缓存,等数据发送完毕,再按照收到的顺序,一次性将整个长数据写入属性值。

Prepare Write Request
准备写请求,用于发送一个长数据片段,它包含三个参数:属性句柄、偏移量和待写入数据。

Prepare Write Response
准备写响应,收到准备写请求以后,缓存收到的数据。

Execute Write Request
执行写请求,对前面缓存的数据执行写操作,它包含一个参数:标志位。如果标志位为1,则执行写操作,如果为0,则取消前面的缓存数据。

Execute Write Response
执行写响应,根据执行写请求的标志位,执行或取消写操作。

 

 

扩展:ATT简介

 

标签:Read,句柄,PDU,低功耗,Request,Write,ATT,Response,属性
From: https://www.cnblogs.com/FBsharl/p/17830226.html

相关文章

  • CC1310F128RSMR Sub-1GHz超低功耗无线微控制器芯片
    CC1310F128RSMRQFN-32Sub-1GHz超低功耗无线微控制器CC1310F128RSMR是一款低成本、超低功耗、Sub-1GHz射频器件,它是Simplelink微控制器(MCU)平台的一部分。该平台由Wi-Fi组成、蓝牙低功耗,Sub-1GHz,以太网,Zigbee线程和主机mcu。这些设备都有一个共同的,易于使用的开发环境,具有......
  • 【低功耗蓝牙BLE-2】Generic Access Profile(GAP)协议
    原文链接:https://zhuanlan.zhihu.com/p/527434096?utm_id=0 GAP简介通用访问配置文件(GAP)规定了设备在较低级别如何执行控制程序,如设备发现、连接、安全建立等,以确保互操作性,并允许来自不同供应商设备之间的通信。主要的操作有:发现并与配对广播数据建立安全连接GAP以一......
  • LACP(Link Aggregation Control Protocol Data Unit,LACPDU)
    1、手工模式配置流程:1)创建ETH-trunk1interfaceEth-trunk12)将端口配置为Eth-Trunk1intg0/0/1Eth-trunk13)配置Eth-trunk类型interfaceEth-Trunk1portlink-typetrunkporttrunkallow-passvlan2to40944、主动端与被动端(越小越优先)系统视图模型下:lacppriority0-655......
  • Kattis - A Complex Problem (The 2023 ICPC Rocky Mountain Regional Contest)
    IntroThiswasoneoftheproblemsIdidn'tdoduringtheregionalcontest.Oneofmyteammatessolvedit.ObservationTherearefewthingstonote.Firsttypeofnotation:subsetmeansthatA$\subset$B,buttherecanbecasesthatsubsetforms......
  • IE中attachEvent中的this总是指向全局对象Window
    下面关注this对象的理解正确的是()A非箭头函数,在不改变this指向的前提下,this总是指向函数的直接调用者B如果有new关键字,this指向new出来的那个对象Cthis总是指向函数的非间接调用者DIE中attachEvent中的this总是指向全局对象Window正确答案:ABD1、在不改变this指向的前......
  • Self-Attention公式解释
    Transformer的注意力机制被广泛应用于自然语言处理(NLP)领域中,它主要用于解决序列到序列的模型中长距离依赖问题。长距离依赖问题举个例子,考虑这个句子:“Thecat,whichwasveryhungry,finallyfounditsfoodinthekitchenaftersearchingforhours.”这只猫非常饿,经过......
  • 解决:tcpdump -w xxxxx.cap 提示 Permission denied
    出现的如题所示问题。经过多次调试查找资料,找到了一种好用的方法。解决方案1:我们只需进入/tmp所在的目录下,然后执行tcpdump命令即可解决。例如:解决方案2:将文件写入指定目录下,正常是可以利用参数-w将采集的文件写入指定的文件目录下,但是往往会出现如上图所示的错误。这时......
  • After page postback, DropDownList item attributes "color" cleared ?
    DropDownList1.SelectedItem.Attributes.Add("style","Color:GREEN")Thisissetwhenapersonclicksabutton,"resubmitorder"...thentheselecteditemisturnedgreensotheyknowthey'vealreadyfixedthatorderitem......
  • EF报错:Unable to create an object of type 'XXXXXXX'. For the different patterns s
    这个是在EF迁移的时候报错: 解决方案:修改你的MyDbcontext:  代码如下:publicclassStoreDbContexttFactory:IDesignTimeDbContextFactory<‘你的类名’>{public‘你的类名’CreateDbContext(string[]args){varoptionsBuilder=newDbContextOptionsBuilder<‘......
  • tcpdump必知必会
    tcpdump原理&在tcp协议栈的位置tcpdump用法基于协议、主机、端口过滤使用andor逻辑运算符做复杂的过滤操作tcpdumpflags1.tcpdump原理linux中非常有用的网络工具,运行在用户态。数据包到达网卡,经过数据包过滤器bpf筛选后,拷贝至用户态的tcpdump程序。tcpdump抓包......