蓝牙
文章平均质量分 64
luck_horse
这个作者很懒,什么都没留下…
展开
-
低功耗蓝牙系统结构流程图
转载 2019-03-12 17:14:35 · 1661 阅读 · 0 评论 -
BLE-NRF51822教程10—动态密码(配对码)
本讲教程也是在 sdk中的的uart例子 的基础上修改实现动态密码(其实是配对码)的功能。Uart例子在以下目录中XXX\Keil_v5\ARM\Pack\NordicSemiconductor\nRF_Examples\9.0.0\ble_peripheral\ble_app_uart 关于配对的一些理论知识在静态密码教程中有介绍。这里就不再赘述。 因为是动态密码,板子上没有...转载 2018-08-31 11:45:23 · 851 阅读 · 0 评论 -
nrf51822笔记之密码配对过程梳理
配对的触发有以下几种情况:1:主机直接发起。2:从机发起安全请求,如果之前绑定过,那么主机会直接用用保存的LTK加密链路,如果没有那么主机会发起配对请求。3:BLE中的有一个安全模式的概念。当某个属性被设置为需要认证的加密链路访问时,那么当在主机访问从机的属性服务器时,如果链路是不安全的就会返回错误,然后主机会发起配对请求从而实现安全要求。 第三种方式:被动等待主机触发的方...转载 2018-08-31 11:42:54 · 760 阅读 · 0 评论 -
BLE-NRF51822教程13-连接时触发配对
最近答疑碰到几次都提到 需要实现手机每次连接上设备后,立刻出发配对并要求输入密钥的功能。 这里就单独写一个教程供大家参考下。 配对的目的是为了对链路进行加密。以提高蓝牙的传输安全。关于配对的一些相关知识在 静态密码/动态随机密码教程中有一些介绍。对于使用来说,理解一下配对相关流程就行了。 这里额外说个问道比较多的配对和绑定区别的问题:关于配对和绑定,一些人可能一直分不清楚他...转载 2018-08-31 11:41:48 · 496 阅读 · 0 评论 -
nRF52832 — 连接指定name、UUID、addr的蓝牙设备
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX 作 者:ZHS(文化人) XX 联系方式:文章末尾Chat快问 XX 版权声明:原创文章,欢迎评论和转载~转载时能告诉我一声就最好了 XX 要说的话:作者水平有限,难免有不足之处,恳请指正! XXX...转载 2018-08-31 11:39:18 · 3707 阅读 · 0 评论 -
DA14580做主机
一、主机通讯过程包括:扫描、发出连接请求、建立连接、发现服务、交换数据。1、扫描过程: 应用层将GAPM_START_SCAN_CMD消息发送到堆栈,设备将开始扫描过程,并报告当前正在进行广播的所有可用设备。广播事件将被报告给.app_on_adv_report_ind指针指向的函数,即user_on_adv_report_ind( )函数。 在user_on_adv_report_i...转载 2018-08-31 10:05:40 · 964 阅读 · 1 评论 -
DA14580开发血迹12--完整Profile解析(以心率服务为例)
一:文件定义 在官方的SDK中,一个Profile中有四个文件,分别为hrps.c、hrps.h、hrps_task.c、hrps_task.h。hrps.h: hrps.c: hrps_task.h: hrps_task.c: 二:应用层配置app_hrps.h:定义应用相关的变量以及声明a...转载 2018-08-31 09:54:54 · 525 阅读 · 0 评论 -
蓝牙mesh — 解密蓝牙mesh系列文章汇总
写在前面:转自“蓝牙技术联盟”微信公众号,只为方便学习~相信小码哥和凯哥会理解的~(转载文章,如有不妥,通知后我会立即删除) 解密蓝牙mesh系列往期回顾: 1、解密蓝牙mesh系列 | 第一篇 2、解密蓝牙mesh系列 | 第二篇 3、解密蓝牙mesh系列 | 第三篇 4、解密蓝牙mesh系列 | 第四篇 5、解密蓝牙mesh系列 | 第五篇 ...转载 2018-08-30 21:29:11 · 1175 阅读 · 0 评论 -
蓝牙HCI剖析(三)
HCI源码:bt_hci.h[cpp] view plain copy/* * This file is part of the HCI protocal. * Data :20160506 * Author: zhongjun * */ #ifndef BT_HCI_H_H #define转载 2017-10-11 16:12:19 · 1877 阅读 · 0 评论 -
蓝牙HCI剖析(二)
一.概述:此篇文章主要是总结下HCI command 和 event二.command三.event:四.此command和event是参照之前的一本书截图的,对于最新的core 4.2有很多补充,如用到自行查阅转载 2017-10-11 16:10:15 · 400 阅读 · 1 评论 -
蓝牙HCI剖析(一)
一.HCI介绍HCI提供了访问bluetooth control的统一接口,通俗来讲,就是定义了特定的格式来控制蓝牙芯片来做相应的动作(比如inquiry,connect,disconnect)还有一个问题,为什么我们发送的HCI data 芯片能识别并且执行相应的动作呢?-》很简单,蓝牙芯片中也有HCI协议代码,烧到Bluetooth chip中,所以我们发送的data可转载 2017-10-11 16:07:12 · 4115 阅读 · 0 评论 -
[BLE--Link Layer]物理信道
简述有线通信,是用电缆直接连接,然后分距离的长短,有些会需要加载波,信号也可能会经过不同的调制方式调制。无线通信也是一样,只是信号的传输是通过射频了,通过在某一频段,对无线信道进行调制,将数据发送出去。BLE物理信道在Physical Layer部分提到过BLE的物理信道,一共40个,在2.4GHz的ISM频段。其实BLE的这40个物理信道是分成了两组的,一组是Advert转载 2017-10-11 15:54:54 · 425 阅读 · 0 评论 -
蓝牙核心-L2CAP
概要:逻辑链路控制和适配协议(L2CAP),支持高层协议多路复用、数据分段和重组,并且支持传送服务质量信息。本文件主要针对协议状态自动机、分组格式及构成相关内容进行描述。L2CAP层次结构(L2CAP architectural blocks):基带规范定义了两种链路类型:同步面向连接链路(SCO)和异步无连接链路(ACL)。SCO 链路采用保留转载 2017-10-11 15:50:04 · 820 阅读 · 0 评论 -
蓝牙L2CAP剖析(二)
一,部分代码没有完成,只是模拟一个面向连接的从建立到断开的过程,另外,L2CAP的重点状态机和拆包重组没有模拟bt_l2cap.h[cpp] view plain copy/* * This file is part of the L2CAP protocal. * Data :20160510 * Author: zh转载 2017-10-11 15:42:23 · 850 阅读 · 0 评论 -
蓝牙L2CAP剖析(一)
一.概述逻辑连接控制和适配协议( the Logical Link Control and Adaptation Layer Protoco),缩写为 L2CAPL2CAP通过协议多路复用、分段重组操作和组概念,向高层提供面向连接的和无连接的数据服务,L2CAP还屏蔽了低层传输协议中的很多特性,使得高层协议应用开发人员可以不必了解基层协议而进行开发二.框架图转载 2017-10-11 15:38:09 · 832 阅读 · 0 评论 -
nrf51822-配对绑定实现过程
关于配对绑定的一些原理内容这里不再重复介绍,看之前的几篇文档,静态密码,动态密码,连接时触发配对就可以了。配对绑定的内容可能比较难懂,升入的学习需要去看规范,将前面的几篇相关文档看一遍实验一边再去看规范能更好理解相关理论。 配对绑定是一个完整的过程,只是绑定是可选的,绑定简单来说就是存储一个长期秘钥LTK,以方便以后加密。当然还分配了其他秘钥,这里不涉及。 绑定是在配对之后,要...转载 2018-08-31 11:46:11 · 832 阅读 · 0 评论 -
BLE 包结构及传输速率
根据Bluetooth 4.0 BLE部分协议:BLE中物理层physical layer的传输速率是1Mbps,除了这个外,数据传输速率与包大小、CPU处理时间相关。包结构:1.总体结构: preamble(1 Byte)+ Access Address(4 Bytes)+ PDU + CRC(3 Bytes)preamble = 10101010 or 01010101...转载 2018-08-31 11:46:44 · 1114 阅读 · 0 评论 -
nrf51822-提高nordic ble数据发送速率
讲解2点: 为什么 nordic的4.0协议栈中ble只能发送20字节的应用负载数据。 大量数据发送时如何提高发送速率 1:为何上层应用负载每次最多20字节 首先了解 4.0中链路层的包格式如下: PDU即协议数据单元,即链路层的负载数据。应用层用户发送的数据就是在这里面,但是并不全是用户数据。Ble有分广播态和连接态。 所以上面...转载 2018-08-31 11:51:54 · 794 阅读 · 0 评论 -
iBeacon的数据包格式
Ibeacon 是apple开发的基于BLE(Bluetooth low energy)的精确定位技术。常常用来做室内定位。这里简单讲解下ibeacon的数据包格式这里以UUID为B9407F30-F5F8-466E-AFF9-25556B57FE6D,Major为01,minor为01(此uuid为Estimote B9407F30)为例:[plain]view plain...转载 2019-03-12 15:40:12 · 1769 阅读 · 0 评论 -
低功耗蓝牙BLE对应Gatt的UUID
参考http://blog.csdn.net/zhangjs0322/article/details/39048939参考http://code.taobao.org/p/watch_demo/diff/2/trunk/yqc_watch/Components/ble/include/gatt.h1、在BLE中UUID由32个Hex字符组成(共16字节)。格式为88888888-444...转载 2019-03-15 19:58:28 · 3021 阅读 · 0 评论 -
Bluetooth GATT介绍
Version:1.0 StartHTML:000000209 EndHTML:000091570 StartFragment:000002620 EndFragment:000091490 StartSelection:000002620 EndSelection:000091478 SourceURL:https://www.cnblogs.com/hzl6255/p/4158363.html...转载 2019-03-14 19:10:42 · 1858 阅读 · 0 评论 -
Bluetooth GAP介绍
阅读目录1. 介绍 2. 角色 3. 配置 4. 模式 5. 安全 6. 空闲模式 7. 建立连接 8. 操作模式和过程回到顶部1. 介绍GAP,Generic Access Profile,该Profile保证不同的Bluetooth产品可以互相发现对方并建立连接GAP定义了蓝牙设备如何发现和建立与其他设备的安全/不安全连接它处理一些一般模式的业务(如询问、命名...转载 2019-03-14 19:09:34 · 3227 阅读 · 0 评论 -
Bluetooth ATT介绍
阅读目录1 介绍 2 详细内容 3 Attribute PDU 4 Attribute Protocol PDU回到顶部1 介绍ATT,Attribute Protocol,用于发现、读、写对端设备的协议(针对BLE设备)ATT允许设备作为服务端提供拥有关联值的属性集让作为客户端的设备来发现、读、写这些属性;同时服务端能主动通知客户端ATT定义了两种角色: 服务端(S...转载 2019-03-14 19:08:22 · 417 阅读 · 0 评论 -
ATT Protocol 属性协议
1、背景接触了,就必须留下点痕迹。1.1 参考资料Bluetooth ATT介绍 https://www.cnblogs.com/hzl6255/p/4141505.htmlble v4.22、啥是ATTATT Protocol,是用于发现、读、写peer对端设备的协议(针对BLE设备)。ATT允许设备作为服务端提供拥有关联值的属性集,让作为客户端的设备来发现、读、写...转载 2019-03-14 18:18:43 · 293 阅读 · 0 评论 -
BLE 数据包格式解析
转载 2019-03-14 18:07:07 · 1495 阅读 · 0 评论 -
BLE 有限可发现模式&普通可发现模式
-------------------------------------------------------simple_peripheral.c// General discoverable mode: advertise indefinitely#define DEFAULT_DISCOVERABLE_MODE GAP_ADTYPE_FLAGS_GENERAL--...转载 2018-11-22 17:05:57 · 1807 阅读 · 0 评论 -
无线接收信号强度(RSSI)那些事儿
本文所述的原理适用于所有无线传输技术,只是用蓝牙来举例。应该说,嵌入式企鹅圈更加偏重于嵌入式和物联网、安卓技术原理方面的知识分享和传播,其次才是实践,尽管很多开发者都很浮躁地希望能够立刻获得例程源码。本人一直都认为,只有通晓理论,才能把实践做得更好,才能成为真正的专家级工程师,否则就永远都是码农一枚。一、应用无线接收信号强度(RSSI)在距离测算方面的应用中需要用到。咱们不说室内定位了,换...转载 2018-09-10 19:30:41 · 30955 阅读 · 0 评论 -
蓝牙解析(part10):BLE ATT/GATT
本部分是从各位前辈的学习经验中,总结过来的,希望对初学者有益。从蓝牙Spec 4.0开始,推出了低功耗(BLE)规范,BLE的协议可分为Bluetooth Application和Bluetooth Core两大部分,而Bluetooth Core又包含BLE Controller和BLE Host两部分,整体架构如下图所示。本章节,先来看一下Host部分中的两个核心协议:ATT(Attrib...转载 2018-09-07 10:59:09 · 1796 阅读 · 0 评论 -
蓝牙BLE ATT剖析(二)-- PDU
一.Error HandlingError ResponseThe Error Responseis used to state that a given request cannot be performed, and to provide the reason.Note: The Write Command does notgenerate an Error Response...转载 2018-09-07 10:56:48 · 711 阅读 · 0 评论 -
ble gatt核心结构
转载 2018-09-06 18:36:57 · 673 阅读 · 0 评论 -
蓝牙4.0BLE抓包(二) – 广播包解析
转自: http://www.cnblogs.com/aikm/p/5022502.html版权声明:本文为博主原创文章,转载请注明作者和出处。 作者:强光手电[艾克姆科技-无线事业部] 在使用EN-Dongle捕获和解析广播包之前,我们先了解一下BLE报文的结构,之后,再对捕获的广播包进行分析。在学习BLE的时候,下面两个文档是极其重要的,这是SIG发布的蓝牙的核心协议和核心协议...转载 2018-09-08 22:34:01 · 470 阅读 · 0 评论 -
BLE】CC2541之通过RSSI测距
本篇博文最后修改时间:2017年01月06日,11:06。 一、简介本文介绍如何在SimpleBLEPeripheral工程中,通过RSSI粗略测距。 二、实验平台协议栈版本:BLE-CC254x-1.4.0编译软件:IAR 8.20.2硬件平台:Smart RF(主芯片CC2541) 三、版权声明 博主:甜甜的大香瓜声明:喝水不忘挖井人,...转载 2018-09-01 23:15:40 · 1905 阅读 · 0 评论 -
蓝牙协议分析_BLE地址类型
SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机、32位ARM Cortex-M0处理器、128kB Flash存储器、以及丰富的数字接口。SYD8801片上集成了Balun无需阻抗匹配网络、高效率DCDC降压转换器,适合用于可穿戴、物联网设备等。具体可咨询:http://www.syd-tek.com/1. 前言也许关注BLE的同学都注意到了,转载 2017-09-01 09:45:29 · 1051 阅读 · 0 评论 -
ble之Transmit window offset and Transmit window size
转载 2017-09-23 15:21:18 · 1491 阅读 · 1 评论 -
TI-BLE协议栈的GATT
由于还没有看具体的代码,难免会有理解错误的地方,本着共同学习的态度和大家交流探讨;在BLE中;GATT是焦点;在链路层(LL),可以把设备分为主机和从机,从机广播,主机发起连接;在GAP层, 可以把设备分为中心设备和外围设备; 在GATT层, 可以把设备分为服务端和客户端;我们需要记住一点就是,这些划分相互是不受影响的;转载 2017-07-16 12:54:21 · 494 阅读 · 0 评论 -
nrf51822蓝牙芯片ble_app_proximity程序总结
最近因为钥匙的事情,研究了下官方自带的ble_app_proximity程序,其实就是跟防丢有关系的程序。同时也发现了看nordic程序的一些门道,主要还是看协议栈里面的一些service,首先从宏观上了解了,然后再细看,比如今天我们想做一个跟防丢有关的项目,那完全可以参考proximity这个程序,为什么参考它,那首先看看他们的服务。上位机软件 Nordic Toolbox转载 2017-07-20 11:25:01 · 1389 阅读 · 0 评论 -
nrf51822-使用16位自定义UUID
http://blog.chinaunix.NET/uid-28852942-id-5752502.html以 ble_app_uart为例工程中创建的nus服务以及其中的两个特性值都是128位的UUID。nordic sdk中使用128位UUID的方式和标准128UUID类似,它是提供一个基准UUID,然后再修改其中的12 13字节如下图所示,向系统注册 自定义的基准UU转载 2017-07-20 11:14:04 · 1040 阅读 · 0 评论 -
nrf51822-配对绑定实现过程
http://blog.chinaunix.NET/uid-28852942-id-5753120.html关于配对绑定的一些原理内容这里不再重复介绍,看之前的几篇文档,静态密码,动态密码,连接时触发配对就可以了。配对绑定的内容可能比较难懂,升入的学习需要去看规范,将前面的几篇相关文档看一遍实验一边再去看规范能更好理解相关理论。 配对绑定是一个完转载 2017-07-20 11:10:00 · 2140 阅读 · 0 评论 -
nrf51822-提高nordic ble数据发送速率
http://blog.chinaunix.NET/uid-28852942-id-5753308.html讲解2点: 为什么 nordic的4.0协议栈中ble只能发送20字节的应用负载数据。 大量数据发送时如何提高发送速率1:为何上层应用负载每次最多20字节首先了解 4.0中链路层的包格式如下: PDU即协转载 2017-07-20 10:29:25 · 1068 阅读 · 0 评论 -
nrf51822-添加DFU服务
以 ble_app_uart例子为基础,在其上添加dfu服务。Sdk中的bootloader提供了两个方式来进入升级模式,一种是按键,另一种是手机点击升级。 在bootloader代码相关代码如下如果是手机app通过点击图标直接升级,那么在app跳转到bootloader进行升级前就会设置 NRF_POWER->GPREGRET 这个寄存器的值。所以bootloader代码中转载 2017-07-20 10:27:55 · 659 阅读 · 0 评论