蓝牙属性表理解(Bluetooth Attribute Protocol / ATT )

一、在server端编写维护属性表(Attribute Table)

    属性表一般在server端维护(设备端也称作:peripheral,server,slave。与之对应的手机端,称作:central,client,master。),一般在设备端编写MCU程序,维护属性表,蓝牙芯片MCU厂商(比如TI CC26xx)都有自己的SDK,我们的精力主要用在维护属性表,属性表编写好后,设备注册,蓝牙连接成功,就可以进行通信,收发数据了。

    属性表的内容一般就是属性的内容,对应4个部分,attribute handle,attribute type,attribute value,attribute permissions。

二、属性表举例:
1)第一行,定义了一个service,UUID = 0xFF00;
2)第二到第四行,定义了第一个特性characteristic,UUID = 0xFF01,它的property为可写,无需应答,描述内容放在char1中;
3)第五到第八行,定义了第二个特性characteristic,UUID = 0xFF02,它的property为可写,具有notify功能,描述内容放在char2中;
4)手机端和设备端是通过特性characteristic UUID来收发数据的,我们在定义具体的characteristic UUID的时候,一般都是从功能码0x2803开始,到功能码0x2901结束;

在nRF Connect蓝牙调试APP中看到的情况:

三、具体理解过程

 

Attribute Type 分类

1)关于attribute type的定义,其实就是UUID,由2个byte构成。在Bluetooth SIG中,把UUID的范围(0x0000 - 0xFFFF)划分为若干个区域,即把attribute type类型分为几种类型,详见《16-bit UUID Numbers Document》:

    1.GATT Declaration: 0x2800 - 0x2803, 声明类型;

    2.GATT Descriptor:0x2900 - 0x290F,描述类型;

    3.GATT Service: 0x1800 - 0x1852,服务类型;

    4.GATT Unit: 0x2700 - 0x27C5,单位类型;

    5.GATT Characteristic and Object Type: 0x2A00 - 0x2BD9,特性值类型;

说明:

  1)我个人理解,1,2,3,4类型attribute type为功能型UUID,通过这些UUID完成某种功能,比如要添加一个描述,可以使用0x2900开始的UUID,他对应的值就描述的内容;

  2)我个人理解,5类型attribute type为数据型UUID,通过这些UUID实现短数据通信,比如要添加物理量星期,可以使用0xFF00开始的UUID,他对应的值就是星期,手机端和设备端就是通过这个UUID实现数据通信;

 

 

 

 

 

 

 

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值