BLE4.0低功耗蓝牙学习1. 蓝牙4.0ble协议栈的构成
前言:大创项目结题在即却没怎么动手,现在才开始学习,大家不要学我这样拖沓
学习方式是看书加看视频加后期的开发板实验,本博客内容基本照搬书本和视频内容
BLE4.0
特点:低功耗,低延迟(latency),低吞吐量。听说一颗纽扣电池能用一年
1.什么是蓝牙4.0ble协议栈
协议定义的是一些列的通信标准,通信双方需要共同按照这一标准进行正常的数据收发:协议栈是协议的具体实现形式,通俗的理解为代码实现的函数库,以便于开发人员调用。
既然蓝牙4.0ble协议栈已经实现了蓝牙4.0ble协议,那么用户就可以使用协议栈提供的api进行应用程序的开发,在开发过程中不必过的关注蓝牙协议的具体实现细节,只需要关注一个核心的问题:应用程序的数据从哪里来到哪里去
协议栈采用分层思想
app
||
|| 通用访问配置文件(GAP)
主机 通用属性配置文件(GATT)
物理层:1mbps自适应跳频的gfsk射频
链路层:用于控制设备的射频状态,设备将会处于一下五种状态之一:等待、广告、扫描、初始化、连接。广播设备不需要建立连接就可以发送数据;而扫描设备收听广播设备发出的数据;发起连接的设备通过发送连接请求来回应广播设备,如果广播设备接受连接请求,那么广播设备与发起连接的设备将会进入连接状态。发起连接设备成为主机,接受连接设备称为从机
比如:
peripheral(外围设备) =========连接======== central(主控)
可连接设备,扮演从机角色,如心率计 扫描广播(advertisement)并启动 连接,扮演主机角色,比如智能手机
另一种情况:
broadcaster(广播者) ==============不建立连接======== observer(观察者)
在不建立连接情况下广播 搜寻广播但不建立连接
如只发数据的温度计 只收数据的显示器
主机控制接口层(Host Controller Interface)
为主机和控制器之间提供标准的通信接口。这一层可以使软件api、或者硬件接口如(UART、SPI、USB)
逻辑链路控制以及自适应协议层(Logical Link Control and Adaptation Protocol)
为上层提供数据封装服务,允许逻辑上的点对点数据通信。
安全管理层(Security Manager)
定义了配对和密钥的分配方式,并且为协议栈其他层与另一个设备之间的安全连接和数据交换提供服务。
属性协议层(Attibute protocol)
允许设备向另一个设备展示一块特定的数据,称之为属性。在ATT环境中,展示属性的设备称之为服务器,与之配对的设备称之为客户端。链路层状态(主机和从机)与设备的ATT角色是相互独立的。设备既可以是服务器也可以是客户端。
通用属性配置文件层(Generic Attribute profile)
定义了使用ATT的服务框架。GATT规定了配置文件(profile)的结构。在BLE中,所有被profile或者服务用到的数据块都称为特性,-两个建立连接的设备之间所有数据通信都是通过gatt子程序处理,应用程序和profiles直接使用GATT层
BLE4.0低功耗蓝牙学习1. 蓝牙4.0ble协议栈的构成相关推荐
- android蓝牙 uuld,BLE4.0低功耗蓝牙协议总结
一位大牛在蓝牙BLE领域干了十来年的总结,总结得很到位.都准备出书了.非常好.在这里共享给大家! 版权所有 273.扫描态. 46 274.发起态 275.软件设计广播状态流程图.-.-. ::::: ...
- Arduino蓝牙学习之一 蓝牙模块连接
准备学习蓝牙了,先列个题目,分类bluetooth,来先开始!网上找段程序测试下: 1,硬件:Arduino 2560Mage+HC05 2,接线:Arduino 的vcc/gnd与HC05vcc/g ...
- 低功耗蓝牙学习笔记-属性协议
什么是属性协议? 属性协议(Attribute Protocol)简称ATT: 属性协议既包含了关于属性的定义,也包含了属性的操作方法,既属性协议包含了通信协议的内容,属性协议通讯操作的对象是属性实例 ...
- E104-BT01超低功耗蓝牙模块BLE4.0协议的片载系统解决方案
1.E104-BT01简介 E104-BT01 是亿佰特设计生产的一款小体积的蓝牙模块,贴片型(引脚间距 1.27mm),自带高性能 PCB 板载天线.支持 BluetoothV4.0 标准,简单配置 ...
- IoT:BLE4.0教程一 蓝牙协议连接过程与广播分析
IoT:BLE4.0教程一 蓝牙协议连接过程与广播分析 1.蓝牙简介 什么是蓝牙4.0 蓝牙无线技术是使用范围最广泛的全球短距离无线标准之一,蓝牙4.0版本涵盖了三种蓝牙技术,即传统蓝牙.高速蓝牙和低 ...
- CC2541蓝牙BLE4.0主从透传工程
.前言 小弟初来乍到,这是小弟的第一篇博客,暂时还在上学,没有什么工作经验,本篇博客主要记录我在这几天学习BLE协议协议栈的一点心得体会,并用一个主从透传的实验来记录过程,如有错误之处,还望各位大佬多 ...
- iOS蓝牙BLE4.0通信功能
概述 iOS蓝牙BLE4.0通信功能,最近刚学的苹果,为了实现蓝牙门锁的项目,找了一天学习了下蓝牙的原理,亲手测试了一次蓝牙的通信功能,结果成功了,那么就把我学习的东西分享一下. 详细 代码下载:ht ...
- 4.0低功耗蓝牙解决方案
4.0低功耗蓝牙解决方案 1.物品防丢 2.健康监测 3.家居测控 4.人机交互 5.工业数据交换 6.家电遥控 7.玩具遥控 蓝牙模块应用: 4.0低功耗蓝牙解决方案 蓝牙汽车DVD模块 ...
- android Ble4.0蓝牙开发之搜索慢、startLeScan()过时,6.0以上不需要定位权限也能快速搜索到蓝牙设备
项目中需要用到android Ble蓝牙4.0开发技术,于是开启了蓝牙填坑之旅,说实话,蓝牙开发坑真多,跳出一个又进入下一个,每次遇到 问题,就觉得不可能解决了,还好在自己的摸索中,都一一的化解了,以 ...
最新文章
- Theano 中文文档 0.9 - 7.2.5 循环
- 构筑你的本地资料库——ScrapBook
- golang rune类型简介
- mysql 结构对比工具_Mysql 数据库结构 对比工具
- Memcache缓存系统原理
- 为什么vs2005内置Web application server中调用COM组件时正常,在IIS中运行时组件创建失败?...
- Android 第二十一课 RecyclerView简单的应用之编写“精美”的聊天页面
- 2019蓝桥杯省赛---java---A---8(修改数组)
- Python实例讲解 -- 定时播放 (闹钟+音乐)
- 无法安装 计算机缺失,还原安装程序Windows缺失的文件 - Windows Client | Microsoft Docs...
- 离职通知邮件主题写什么好_(原创)拿到了企业的offer后要注意什么?
- 北京四中院在线裁定一起跨国离婚案
- Android实现通话呼叫转移与监听通话录音功能
- 数据库优化(超级详细),转文,值得一读
- go语言实现2048小游戏(完整代码)
- 【习题5】用Python完成新建文档写古诗+复制
- 清理 Snapd以释放磁盘空间
- 【C语言经典100题】求a+aa+aaa+....的值
- HTG评论RAVPower Bolt:您渴望的多合一充电器
- IT培训机构的那些坑