BLE ATT(Attribute Protocol)

BLE属性协议,它是处于L2CAP协议层与GATT之间的一层属性操作协议。

ATT协议在BLE协议框架

在了解ATT前有必要先了解GATT,GATT(Generic Attribute Profile),通用属性协议,在GATT之上即是我们的应用程序,通过GATT统一属性格式和属性访问接口,对于APP开发来讲操作对象就变成了对一个个定义的属性进行读写。

BLE协议数据交换框架

对于GATT本身,可以简单的理解为一种根据一定格式规范组织的数据表,例如:

我们可以看到他主要由3部分组成:Handle、Attribute Type、Attribute Value其中Handle是作为索引的依据类似数组的下标,Attribute Type是根据UUID而定义的128bit标识(实际传输可以只传递16bit),Attribute Value即属性值

ATT是作为完成对上述数据表具体的操作,它的操作对象,就是每一条属性值

GATT是对上述表的整体维护,它的操作对象是整个属性表

ATT 协议

Attribute Opcode中 Bit5-0用于标识每一条ATTPDU类型,bit6用于标识该PDU是否为Command(当该标志设置为1,表示这是一个命令),bit7用于标识是否含有Authentication Signature字段(仅仅在writecommand 中包含该字段)

Attribute Opcode Summary

上述即是BLE中ATT层协议规范PDU,对于GATT所有数据交互,均通过上述ATT PDU作为载体实现

BLE(低功耗蓝牙)中ATT协议简介相关推荐

  1. Android BLE(低功耗蓝牙)技术总结

    文章目录 前言 一.蓝牙介绍 1.什么是蓝牙? 2.蓝牙版本介绍 二.低功耗蓝牙(BLE) 1.BLE介绍 2.经典蓝牙(Classic Bluetooth)与低功耗蓝牙(BLE)的区别 3.低功耗蓝 ...

  2. BT传统蓝牙和BLE低功耗蓝牙的区别

    蓝牙3.0及以下为传统蓝牙.   蓝牙4.0以上标准包含两个蓝牙标准,是一个双模的标准,它包含经典蓝牙部分(Classic Bluetooth)和低功耗蓝牙部分(Bluetooth Low Energ ...

  3. ble 低功耗蓝牙开发学习 嵌入式交流学习

    ble 低功耗蓝牙开发学习 嵌入式交流学习 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 这篇文章教你学会低功耗蓝牙开发,从0到深入,适合自学的学生.初级工程师 前言 随着疫情爆发 ...

  4. 基于BLE低功耗蓝牙实现与蓝牙设备的连接和数据通信

    Android在工业物联网或手持机终端上的应用开发中经常会遇到蓝牙相关功能需求,蓝牙4.0之后开始分为低功耗蓝牙(BLE)和经典蓝牙.这里简单介绍一下低功耗蓝牙的基本开发流程. 一.权限处理 应用中需 ...

  5. 自制智能插线板,内嵌BLE低功耗蓝牙,通过手机进行控制(一)

    一直都想做一个可以用手机控制的插线板,现在已经进入了智能家居的时代,家里没有个智能的插线板去控制一些简单的家用设备,怎么能算得上智能家居呢:有这个想法已经很久了,当时还特意买了一个插线板,拆开看看里面 ...

  6. 基于uni-app的BLE低功耗蓝牙测试工具

    基于uni-app的BLE低功耗蓝牙测试工具 前言 开发环境:HBuilder X2.8.11,运行环境:微信小程序 本项目是从网上收集他人的源代码,经过测试.修改后的版本,在微信小程序上表现比较稳定 ...

  7. Android BLE低功耗蓝牙开发

    啦啦啦在上一个项目中有用到BLE低功耗蓝牙开发,当时baidu google了很多资料,但大多数都是千篇一律,英文文档我这种渣渣又看不懂...总之刚开始查的很痛苦.所以要把自己的踩坑之路写下来记录下, ...

  8. Android 8.0 BLE 低功耗蓝牙开发记录

    Android 8.0 BLE 低功耗蓝牙开发记录(1-3)--------------(权限申请篇未完待续) 目的:开源博客,希望大家一起修改博客错误地方,共同完善并会鸣谢提供意见的朋友.为大家提供 ...

  9. c# 低功耗蓝牙_Android ble低功耗蓝牙开发-客户端

    什么是BLE(低功耗蓝牙) BLE(Bluetooth Low Energy,低功耗蓝牙)是对传统蓝牙BR/EDR技术的补充. 尽管BLE和传统蓝牙都称之为蓝牙标准,且共享射频,但是,BLE是一个完全 ...

最新文章

  1. 全志linux led驱动程序,芯灵思Sinlinx A64 linux通过设备树写LED驱动(附参考代码,未测试)...
  2. can协议解析字符串的原理
  3. 83998 连接服务器出错_服务端 TCP 连接的 TIME_WAIT 问题分析与解决
  4. 请定义一个宏,比较两个数的a、b的大小,不能使用大于、小于、if语句
  5. 仿百度手机助手标题栏透明度随ListView或ScrollView滚动改变的实现方法
  6. 360分拆计划生变,临时剥离四大业务
  7. SQL JOIN 简单介绍
  8. 安装Apache配置虚拟目录
  9. Java数组之冒泡排序
  10. PMP练习199题答案解析版
  11. 视频教程-办公自动化,不求人!-Office/WPS
  12. 2022-05 - 英语语法 - 16种时态终极详解
  13. centos 上搭建FC SAN
  14. 【DP】LeetCode91 解码方法 【java】
  15. 面试必问---TCP连接
  16. 网络安全版的“让梦想照进现实”—— CCF-绿盟科技 鲲鹏科研基金
  17. Linux多定时器实现之三——Windows和Linux通用版
  18. Android-Studio与Python环境配置
  19. RNNLSTM学习总结
  20. 关于大数据技术的演讲_百度大数据技术开放平台再度亮相

热门文章

  1. 【程序源代码】表白墙-小程序
  2. 东南亚真这么吃香?顺丰也要抢着布局?
  3. java 写一个简易闹钟
  4. 字节跳动招聘研究型实习生
  5. 数组按数字出现频次排序
  6. 微信媒体服务器推流,干货:“微信+直播”成新媒体营销新方式
  7. 不为人知的网络编程(十三):深入操作系统,彻底搞懂127.0.0.1本机网络通信
  8. Java之工厂设计模式
  9. Android知识大全
  10. LeetCode 428. 序列化和反序列化 N 叉树***