1. 概述

我们称主设备为Master(手机、PC机等),从设备为Slave(手环等)。Master向Slave发送connect request,需要与slave建立连接。在slave收到Master发出的connect request时,在开始建立连接的同时也要更新和计算的Master的channel map表,以及下一个连接使用的频点。

如下图所示,为Master发出的CONNECT_REQ的Payload,图中的ChM和hop参数,分别表示Channel map表,即建立连接后有哪些channel是可以被使用的,有哪些channel是不可用的。hop表示跳数,表示跳频每次的跳频的间隔。

具体参数介绍参考 第五章第5节

  1. 跳频原理

例如,ChM 和 Hop分别为 ChM[5] = {0x02,0x56, 0x49, 0x13, 0x11]; hop = 5;

将ChM转换为二进制数,则为00010001 00010011 01001001 01010110 00000010,频道位被置为1的表示该信道可用,信道位被置为0表示该信道不可用。那么可用的频道used = [1, 9, 10, 12, 14, 16, 19, 22, 24, 25, 28,32, 36 ];可使用的信道数numUsed = 13。

接下来需要计算下一个连接使用的频道

Mod指求余运算。

计算步骤:

第一次:

  • 默认第一次选择频道0作为fn
  • fn+1 = (fn + hop) mod 37即fn+1 = (0 + 5) % 37= 5
  • 通过查询used可知频道5不是一个好频道
  • 所以要在好的channel表里找一个channel,即used[5 % numused] = used[5 % 13] = 16
  • 所以第一次通讯选择的频道是16

第二次:

  • 选择频道16作为fn
  • fn+1 = (fn + hop) mod 37即 fn+1 = (5 + 5) % 37 = 10
  • 通过查询used可知频道10是一个好频道
  • 所以第二次通讯选择的频道是10

转载于:https://www.cnblogs.com/yuqilihualuo/p/9565359.html

7.BLE---跳频原理相关推荐

  1. 蓝牙跳频算法分析【经典蓝牙 vs BLE 4.x vs BT 5.0 BLE部分】

    ---------------------------------------------------------------------------------------------------- ...

  2. 微信小程序低功耗蓝牙BLE快速开发js

    文章目录 1.前言 2.资料 3.BLE连接流程 BLE连接原理 4.index.js页面加载流程详细说明 完整代码: 1.前言 目的: 1.为了能三分钟快速开发BLE模块,特此做一个笔记,按照笔记的 ...

  3. nrf52832升级原理

    详解蓝牙空中升级(BLE OTA)原理与步骤 - iini - 博客园 (一)nrf52832生成的OTA文件解释 1. DFU的核心就是bootloader. 2. DFU接收新固件,然后通过写fl ...

  4. 安卓蓝牙BLE设备开发

     前段时间做了一个有关于安卓蓝牙BLE设备的开发项目,主要的功能包括了搜索蓝牙ble设备和ble设备的数据读写等等,本篇博客用于记录安卓蓝牙ble设备的通信的细节.  其实关于BLE设备的通信在API ...

  5. btstack ble ota开发笔记(1)-nordic dfu移植

    一.前言 btstack的ble example中暂时没有ota的例程,恰巧之前在nrf52832上使用过nordic的dfu例程,配合手机上的nrf-connect app,体验感觉非常棒(进度条+ ...

  6. 嵌入式学习资料和项目汇总

    目录 目录 C/C++ 单片机 通讯协议 LInux 实时操作系统 数据库 QT 算法 AI 硬件 工具 网络 面试 C/C++ 搞懂这个16个C语言问题,你也能进大厂 学会这个绝招,让 C++ 崩溃 ...

  7. 西电计算机网络与通信实验,通信系统综合实验-西电课程.doc

    目 录 实验一 数字基带仿真实验1 1.1 实验目的1 1.2 实验原理1 1.2.1蓝牙基带包的差错控制技术1 1.2.2蓝牙系统的跳频原理3 1.2.3数据流的加密与解密3 1.3 实验内容及实验 ...

  8. SDK_17.1.0 nrf52832 串口透传(NUS)增加DFU功能OTA

    1.环境搭建以及需要的软件见这篇文章:Secure DFU环境搭建_Zoolybo的博客-CSDN博客 2.密钥以及加密算法的方法详见这篇文章:详解蓝牙空中升级(BLE OTA)原理与步骤_Zooly ...

  9. 低功耗蓝牙芯片为何如此省电?

    低功耗蓝牙芯片为何如此省电?它和经典蓝牙技术相比,主要的改变集中体现在待机功耗的减少.高速连接的实现和峰值功率的降低三个方面. 待机功耗的下降 传统蓝牙设备的待机耗电量大一直是为人所诟病的缺陷之一,这 ...

最新文章

  1. 给网站管理员的建议:创建可利用的、可抓取的网站
  2. 再一次输给了AI,弯道急速超车、登上 Nature 封面
  3. php 函数返回值mixed,认识函数的类型、参数与返回值
  4. C# .net中cookie值为中文时的乱码解决方法
  5. LaTeX技巧:如何高效地将LaTeX代码转为Word公式
  6. SourceTree的基本使用
  7. 学习笔记:二叉搜索树的验证
  8. javascript脚本_使用脚本src属性将JavaScript链接到HTML
  9. WCF系列_分布式事务(下)
  10. word手写字体以假乱真_轻松制作个人“电子版手写签名”
  11. 《深入解析sas:数据处理、分析优化与商业应用》一3.5 SAS常用函数
  12. aix Oracle 限制访问,改变AIX上使用oracle的一些限制
  13. Nodejs实时通讯 在线聊天室(Socket.io)_收藏
  14. unpn 远程桌面_k2p官改固件的端口转发问题(远程桌面UDP协议开启)
  15. 多点温度检测上位机显示_基于51单片机的多点温度检测系统设计
  16. 实验matlab滤波器心得,数字信号处理,实验,Matlab实验FIR滤波器实现
  17. 电脑字母下标数字怎么打java_下标小字母大全 一个字母的右下标怎么用电脑打...
  18. R语言中的缺失值处理
  19. 计算机excel按F4是那个公式,excel中键盘F4到底怎么用?_excle 中的f4
  20. 0代码实现接口自动化测试 —— RF框架实践

热门文章

  1. [Unity]ShaderGraph问题所有材质丢失Maximum number (256) of shader keywords exceeded
  2. WorkNC零部件领域应用—齿轮加工
  3. 百度站长资源平台自动批量添加站点域名工具(站长站群工具)
  4. 百度云说 | 尹世明:高举百度云“ABC+IoT”大旗,六个字母打天下
  5. 完美契合圣诞节日项目气氛的高质量素材!
  6. Excel - VBA实例: 遍历若干cell的值
  7. Unity word写入+打印
  8. vue项目编译出错eslint
  9. 基于JAVA远程教育系统计算机毕业设计源码+系统+lw文档+部署
  10. iloc, loc, at, iat的应用