第12节-BLE协议HCI层的数据格式】的更多相关文章

学习资料: 1. 蓝牙协议core_v5.0.pdf <Vol 2: Core System Package [BR/EDR Controller volume]>的“Part E: Host Controller Interface Functional Specification” 2. BTStack源码 对于被动扫描,周边的外设会给controller发送各种广播包,解析广播包,从而得到设备的信息. 对于主动扫描,除了被动的获得广播包外,controller还可以给某个设备发出扫描请求…
本篇博客由韦东山视频整理所得 如何控制链路层让其发出广播包.数据包?通过HCI层向它发出命令,也可以通过ATT层.L2CAP层向LL层发出数据. 学习资料: 蓝牙协议core_v5.0.pdf <Vol 4: Host Controller Interface [Transport Layer]> BTStack源码 回顾一下<开源蓝牙协议栈BTStack框架代码阅读>. BLE协议在硬件上分为上下两部件:主机(Host,PC.单片机.Linux板).控制器(蓝牙模块),如下图所示…
学习资料:官方手册 Vol 3: Core System Package [Host volume] Part A: Logical Link Control and Adaptation Protocol Specification 建议先复习<BLE协议各层的形象化理解>,下面是我们之前用来类比的医院结构图: 下面这个图是BLE协议各层跟医院的各个科室的类比图: Controller就是快递公司,它知道把数据发给对方哪一个设备,但是它不能进入对方内部. L2CAP是“收发室”,它熟知Hos…
本篇博客的学些要结合书籍<低功耗蓝牙开发权威指南,Robin Heydon著>第7章,实际上这书只是对蓝牙原版协议的简化.摘要. 回顾以前学过的<BLE协议各层的形象化理解>和<BLE协议各层数据格式概述> 一  链路层的5种状态: 就绪态(Stanby).扫描态(Scanning).广播态(Advertsing).发起态(Initiating).连接态(Connection). 扫描态有2种子状态:被动扫描(Passive Scanning).主动扫描(Active…
本篇博客根据韦大仙视频,整理所得. 先上框图: ATT层 从ATT开始看,在上篇博客讲的医院结构里面有个检验室,检验室可以得到各项结果,但是它并不知道这些结果代表什么含义.类比的在BLE协议栈里面,ATT定义了各种属性.属性的操作方法,但是这些属性有什么作用,能给用户提供什么服务,它并不知道.举例如下:假设有两个蓝牙设备,一个是手机,一个是手环,此手环戴在手上可以监测心跳.在ATT这一层,手环提供数据,它是一个服务器.另一边的手机从手环获取数据,它是一个client. 在手环服务器这边,它定义了…
本篇博客根据韦大仙的视频,整理所得. 对于BLE系统,它分为上下两块.上面那一块,我们称为host主机.下面这一块是controller,你可以简单的认为它就是一个蓝牙芯片. 对于host这一块,它运行于linux android 单片机 ,它是纯软件的概念.它和蓝牙芯片之间通过usb口或串口来传输数据.那么对于host和controller中的各个层,它们是如何表示数据的呢?本篇博客就来讨论这个问题. 例子1: 打包: 甲公司A1想给乙公司A2'发送一封信,于是甲公司A1就构造了一个数据包:f…
学习资料:官方手册 Vol 3: Core System Package [Host volume] Part G: Generic Attribute Profile (GATT) 这篇文章格式比较好,基本上就是对GATT官方文档的翻译: Bluetooth GATT介绍 https://www.cnblogs.com/hzl6255/p/4158363.html 下面这个图是BLE协议各层跟医院的各个科室的类比图: 跟医院类比,GATT层就是医务室,通过它可以得到各种服务──这些服务由属性组…
学习资料:官方手册 Vol 3: Core System Package [Host volume] Part C: Generic Access Profile 下面这个图是BLE协议各层跟医院的各个科室的类比图: 每个医院的大堂都有些约定: ① 大堂里有医院的介绍,你可以根据它确定这个医院是否适合你: ② 有急救通道 ③ 要挂号,挂号后你跟医院才建立了联系,才能去找医生看病. 重点在于:怎么确定医院(是否适合你).怎么建立联系. 在BLE里,也有一些约定用来发现设备.连接设备,在GAP里定义…
下面这个图是BLE协议各层跟医院的各个科室的类比图: 跟医院类比,ATT层就是化验室,通过它可以得到各种检查结果──属性.这些检查结果之间有什么联系,它们组合起来体现了什么,化验室是不知道的,这些得由上层来负责. 通过ATT层可以读写对端设备的属性,但是属性之间有什么联系.各个属性怎么组合起来提供服务,由上层GATT负责. 读写对端设备的属性,就是ATT的关键词. 一.属性(Attribute) 属性结构如下: 属性就是一个值, 有那么多属性,这是哪一个属性?用Handle来表示: 这个属性是什…
在上几篇博客中,形象的讲解了BLE各个层的作用,各个层的数据结构.本篇博客将研究BLE协议抓包.在实际开发中,有一个中央设备(central)和一个外设(Peripheral).所谓中央设备就是指它可以识别出周边的蓝牙设备,可以发起连接.所谓外设就是手环等.中央设备和外设之间传递数据,我们使用一个抓包工具sniffer,来抓取空中传递的数据,进而分析和调试.在实际开发中,抓包涉及的硬件框图如下: 但是在学习的过程中,使用下面的结构. 使用手机来模拟外设,在安卓手机上可以运行一个软件:com-bl…