自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (4)
  • 收藏
  • 关注

原创 透彻理解蓝牙5.0 BLE ATT分析

透彻理解蓝牙5.0 BLE ATT分析BLE是传统蓝牙的简化版本,其特点就是低功耗。在BLE中使用了ATT协议。ATT运行在GATT上,在接触GATT之前,先简单了解一下ATT的相关内容ATT的主要作用是发现,并且在对端设备上读取属性, ATT主要是作为服务器去暴露一组属性和相关的数值。这些属性和数值可以被客户端发现,读取和写入ATT中有2个角色,一个是服务器,一个是客户端。...

2019-03-27 11:48:15 5589

原创 白话BLE技术 第十二篇 BLE日志分析

获取日志的方式有很多种,比如使用logalong日志文件和btsnoop文件,使用硬件可以获取air log,可以进行更加详细的分析。首先,我们先看一下用logalong获取的btsnoop文件。我们使用的是Frontline公司的Viewer工具。获取的日志文件可以从下面的连接进行下载。https://download.csdn.net/download/fanxinshr/110904...

2019-04-08 12:09:24 1194 1

原创 白话BLE技术 第十一篇

服务器发起的更新服务器发起的更新是唯一的不同步的包。这里的不同步是指不同于请求响应模型。这些更新就像警报一样,当特性的值发生改变,就会立刻发送给客户端有2种服务器发起的更新Charateristic Value Notificaiton通知是指包含了特征值的句柄和当前值的包。客户端会收到这样的包,并且可以选择执行,但是不会给服务器端发回响应来确认是否收到。Characterist...

2019-04-05 17:37:18 518

原创 白话BLE技术 第十篇

先进的属性概念在这一骗中,我们重点介绍一些不太常用但是很重要的一些属性概念。属性缓存之前我们已经讨论过属性句柄如何让一个客户端单独解析在服务器上的所有可以用的属性。发现在服务器上的所有可以使用你的属性并且获取每一个属性的内容会是一件很花时间的事情。我们想如何让一个客户端避免每次都要执行这个过程。服务器端会维护一个属性的状态集,这个属性的状态集的结构基本上是不会变化的。但是对于服务器...

2019-04-05 16:38:13 656

原创 白话BLE技术 第九篇 举个例子

前面一直都是在说理论上的内容,比较枯燥,在这一章,我们举个例子来进行具体说明在这个例子里,我们用心率服务来说明,心率服务的数据如何发送给监控设备。在这个图中,是一个设备上的心率服务,当然在这个设备上不只这一个服务,这个图可以看做是这个设备上服务的一小部分。客户端可以访问这里的数据。可以看到属性由4个部分构成,分别是句柄,UUID,权限和数值。服务有服务属性,特性有特性属性...

2019-04-05 09:33:55 688

原创 白话BLE技术 第八篇

属性和数据层次根据之前说的这些所有的属性概念,来构建属性的数据层次。属性在服务器上被分成了组,一个就叫一个服务,每个而服务有0个或者多个特征。一个特征包含0或者多个描述符。属性会被分到不同的特种中,没有野生的属性,属性都是被管理起来的。只有这样,才能有效的在设备之间交换数据。对于大部分类型的数据来说,区别声明declaration和定义definition是很重要的。声明是一个...

2019-04-04 15:52:59 654

原创 白话BLE技术 第七篇 GATT

从这一篇开始,我们具体来说一下GATT的内容。GATT也就是Generic Attribute Profile 一般属性规格,用来规定如何交换所有其他的规格和用户数据换句话说,GATT的主要功能就是解析数据。把GAP和GATT放在一起对比的话,GAP定义了设备间的交互方式,GATT只处理数据的传输和格式。所有的BLE规格都是基于GATT,而且必须遵循GATT的操作要求。这使得GATT成为B...

2019-04-03 15:56:44 1090

原创 白话BLE技术 第六篇

安全安全是BLE无线通信的核心技术。自从蓝牙标准4.0开始引入BLE的概念,用户数据的安全传输就是一个主要目标,并且在蓝牙标准4.1中进行了加强。在BLE中,安全主要基于两个部分。一个是安全管理器,一个是GAP安全。安全管理器安全管理器实现了真实的加密算法和允许两个设备进行安全的数据交换和私有侦听的协议。主要是在协议栈和在硬件加速器上来实现。例如生成随机数,使用AES来加密数据和交...

2019-04-02 17:03:11 864

原创 白话BLE技术 第五篇

GAP中的发现有几种模式不可发现的模式,其他设备不会意识到该设备的存在 有限发现的模式,在一定的时间内允许被发现 一般发现的模式,只要有请求,就可以被发现发现过程有2种发现过程,有限发现过程和一般发现过程。有限发现过程是指查询Limited Discoverable flag的包 一般发现过程是指不预设条件,发现所有的包建立连接中心设备会初始化一个连接,与周边设备建立连接...

2019-04-02 14:03:59 708

原创 白话BLE技术 第四篇 GAP

GAP提供了一个框架,任何遵守这个框架的BLE设备都可以发现彼此,发送数据,建立安全链接,以及执行操作。因此,理解GAP是很重要的事情。在GAP中,每个设备可以执行一个或者多个角色。每个角色都有固定你的要求。并且有模式,模式是一个设备的状态,不同模式之间的转换,可以由用户来触发,也可以自动发生。这个模式的切换,对应到程序中就是状态机,详细的代码分析,会在之后的章节中说明。在GAP中还有过程的概...

2019-04-02 11:24:49 1810 1

原创 白话BLE技术 第三篇

在L2CAP层,主要有2个协议:ATT(Attribute Protocol属性协议)和SMP(Security Manager Protocol安全管理协议)。ATT主要用于数据交换,SMP通过生成和分发秘钥的方式提供一套安全架构。ATT协议主要被GATT所使用,GATT是负责规定如何交换数据,那么ATT就是规格具体的数据的格式。ATT是一个简易的无状态的CS(服务器和客户端)协议。CS...

2019-04-01 16:05:16 921

原创 白话BLE技术 第二篇

虽然我们平常能接触到的蓝牙只是应用层的蓝牙接口,如果想深入了解蓝牙的原理,就需要对蓝牙中的协议栈有一个明确的认识。在第一篇中,已经说过,在蓝牙的架构中分为3个部分,application,host和controller。首先看一下application层,这一层就是BLE的最上层,负责和终端用户交互,调用各种接口。然后向下是host层,在host中包含了各种各样的协议和规格。比如GAP...

2019-04-01 14:47:34 1174

原创 白话BLE技术 第一篇

BLE也就是低功耗蓝牙Bluetooth Low Energy,也叫Bluetooth Smart,从蓝牙4.0规格引进,在蓝牙4.1规格上进行了加强,使用在了安卓5.0上。在蓝牙5.1规格的时候,BLE的传输速度和能力都得到进一步的增强,但是原理没有变化。在无线领域中,有WiFi,GSM,Zigbee等技术,但是BLE因为有低功耗的好处,广泛使用在了IoT和可携带设备上。这里要注意的是,经典...

2019-04-01 11:06:52 1653 4

原创 蓝牙5.0核心规范及源码解析 二

在接触蓝牙之前,自己对蓝牙的认识非常浅薄,只知道蓝牙是一个通讯的工具,可以组网传递消息。在接触蓝牙之后,才发现蓝牙的内容非常丰富,而且涉及面很广。但是可以找到的中文参考资料其实很少,主流的书籍为《低功耗蓝牙开发权威指南》和最近刚刚出版的《低功耗蓝牙智能硬件开发实践》。就算是刚刚传的这本,也只是介绍蓝牙4.0的内容,和实际开发的业务内容脱节严重,并且很多内容都是一言概过,不能给人讲解透彻的感...

2019-02-26 11:14:02 2821

原创 蓝牙5.0核心规范及源码解析 一

最近开始接触蓝牙的工作,在查找资料时,发现网上的很多资料都是过时的。就算是蓝牙4.0的源码分析,放在蓝牙5.0上也总是函数不一致,导致自己花了很多时间来理解规范和源码。所以开始写这个博客来记录一下蓝牙最新版本的源码分析。使用的工具Frontline 蓝牙协议解析工具 btsnoop 蓝牙5.0的核心规范,可能会涉及到5.1,总之就是紧跟最新版本的源码希望这个博客能够让其他朋友...

2019-02-25 16:31:19 5292

低功耗蓝牙BLE的日志文件

低功耗蓝牙BLE的日志文件,可以分析BLE的内容。对BLE的规格有更好的理解。

2019-04-05

安卓程序开发 儿童识别颜色 源代码

这是一个安卓小程序,直接导入即可运行。点击屏幕,会随机显示120种颜色中的一种,并显示颜色的中英文名称,面向儿童用户,识别颜色

2018-07-30

安卓抽奖程序开发 源代码

安卓开发的抽奖程序,全部工程文件和代码都有。可以作为开发的参考。

2018-07-30

微信小程序 源码 美食小程序

小程序开发 源代码 美食小程序 可以参考开发自己的小程序

2018-07-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除