13 BLE协议ATT层

23 篇文章 28 订阅
16 篇文章 4 订阅

下面这个图是BLE协议各层跟医院的各个科室的类比图:

 

跟医院类比,ATT层就是化验室,通过它可以得到各种检查结果──属性。这些检查结果之间有什么联系,它们组合起来体现了什么,化验室是不知道的,这些得由上层来负责。

通过ATT层可以读写对端设备的属性,但是属性之间有什么联系、各个属性怎么组合起来提供服务,由上层GATT负责。

读写对端设备的属性,就是ATT的关键词。

一、属性(Attribute)

属性结构如下:

属性就是一个值,

有那么多属性,这是哪一个属性?用Handle来表示;

这个属性是什么类型?是心跳、还是电量?用UUID来表示。

 UUID可以用16位、32位、128位来表示(在BLE中只使用16位或128位),有一个转换公式:

即把32位UUID的低96位去掉,就得到32位的UUID;如果32位UUID的高16位全是0,那么它的低16位就是“16位的UUID”:

UUID可以取蓝牙组织规定的值,也可以自己定义。这些规定的值可参考以下链接:

https://www.jianshu.com/p/08f76e4fd811  // 整理了所有的UUID,存为GATT_UUID.pdf

https://www.bluetooth.com/specifications/assigned-numbers/

https://www.bluetooth.com/specifications/assigned-numbers/service-discovery/

https://www.bluetooth.com/specifications/gatt/declarations/

 

二、属性的读写

ATT层负责去获得对端设备的属性,去读写对端设备的属性,如何读取对端设备的属性呢?有下面6中操作

 

 ATT层涉及两个角色:client、server。server这边提供属性,client可以从server这边读写属性

三、ATT层的数据格式

ATT层构造好数据后,由下层的L2CAP发给对端设备。L2CAP层是收发室,它怎么知道这些数据是发给对端设备的ATT层?

对于ATT层的数据,L2CAP层会设置chinnel ID为4:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值