摘要: nRF Sniffer 环境搭建 说明:此文档参考nordic官方文档《nRF_Sniffer_UG_v2.2.pdf》制作,针对里面描述不是特别详细的地方做了补充。Sniffer是嗅探器的意思,也就是监听的意思,可以通过sniffer来抓取我们的手机和我们开发的蓝牙从端设备的空中数据来协助分析问题 阅读全文
posted @ 2019-05-06 10:38 unrulife 阅读(12255) 评论(0) 推荐(0) 编辑
摘要: 环境: app采用nrf connect或lightblue均可; nordic从端采用nrf52840开发板pca10056; 说明与规定: (1)鉴于手机app无法主动连续快速发送多包数据,故只测试了上行数据,即nordic从端notify发送给苹果手机数据,连续发送1000包。但一般BLE上行 阅读全文
posted @ 2019-04-30 16:37 unrulife 阅读(858) 评论(2) 推荐(0) 编辑
摘要: 摘自文档 1. pairing: 苹果手机无法主动发起SMP配对流程,可通过以下两种方式发起配对流程: (1)从端主动发起配对流程; (2)从端在收到主端ATT指令后,返回SMP FAIL(错误码看SIG规范)给苹果手机,则苹果会重新发起配对流程。 2. Connection Parameters: 苹果的连接间隔默认为30ms,如果要更新,需要满足如下要求,且最小可以申请到20ms,如果... 阅读全文
posted @ 2019-04-24 19:05 unrulife 阅读(4701) 评论(0) 推荐(0) 编辑
摘要: 以蓝牙4.0为例说明: BLE包格式有:广播包、扫描包、初始化连接包、链路层控制包(LL层数据包)、逻辑链路控制和自适应协议数据包(即L2CAP数据包)等; 其中广播包又分为:定向广播包和非定向广播包; 逻辑链路控制和自适应协议数据包又分为:ATT指令包、信令指令包、SMP包; 1. 首先,所有的包都符合如下格式: 2. 广播包: 3. 非定向广播包: 4. 定向广播包: 5. 扫描包: ... 阅读全文
posted @ 2019-04-24 18:15 unrulife 阅读(11170) 评论(1) 推荐(1) 编辑
摘要: 一直搞不太清楚蓝牙BLE协议,不知道LL层和L2CAP层是如何划分的,后来博士给我讲了讲就理解了,写下来,做个记录: 1. 我们知道,除了蓝牙5.1新出的CTE,所有的BLE都是如下类型的包: 对于连接后的通讯包,PDU的最前面两个字节为header,header的最前两个bit为LLID,蓝牙BL 阅读全文
posted @ 2019-04-24 17:53 unrulife 阅读(4987) 评论(4) 推荐(0) 编辑
摘要: 一、基础知识: 我没找到蓝牙5.0的ATT数据格式图片,在蓝牙4.0的基础上做修改吧,如下图所示: 二、测试与分析: 参数设置: data length = 251字节,MTU = 247字节, GAP Event Length = 500ms, PHY = 2Mbps, connection event length extension = enable,Connection I... 阅读全文
posted @ 2019-04-24 16:57 unrulife 阅读(2203) 评论(0) 推荐(0) 编辑
摘要: 一、基础知识: 【1】Data Length:物理层发送一包数据的最大值; 【2】MTU: ATT层发送一次数据长度的最大值; 【3】GAP Event Length:一个connection event中多包持续最大时间,相应的限制了每个连接间隔中间的最大包数; 【4】PHY : 物理层发送速率, 阅读全文
posted @ 2019-04-24 15:11 unrulife 阅读(9944) 评论(7) 推荐(0) 编辑
摘要: 1. NRF52832带蓝牙协议栈的程序是如何跳转的? 答:如果NRF52832烧录了协议栈S132和用户应用程序,那么程序会先从协议栈的MBR启动,然后跳转到应用程序执行。 2. 关于中断的执行是怎样的? 答:所有应用程序或bootloader的中断都是由协议栈分发出来后执行的,所以烧录协议栈后,中断服务函数进入的时间会被加长了,具体延时的大小看如下官方数据: 对于开放性的外设,最大为3us的... 阅读全文
posted @ 2019-04-04 13:54 unrulife 阅读(3843) 评论(2) 推荐(0) 编辑