首页 > 其他分享 >BLE中PHY层的LE Coded技术

BLE中PHY层的LE Coded技术

时间:2023-08-16 13:57:46浏览次数:33  
标签:LE FEC 扩展 PHY Coded BLE 数据

BLE中PHY层的LE Coded技术

介绍

​ 在BLE的PHY中,提及到了调制技术中有一个叫LE Coded的技术,还提到了一个S参数。这里我们来介绍下这个LE Coded技术是什么东西。

基本原理

​ LE Code技术本质上是一个扩频技术,他的原理为通过一个扩展因子S,对原始数据进行扩展。什么意思呢?我们通过一个例子来说明

例如原始数据为:

  • Raw data:12345678

我们设定扩展因子S=2,则通过扩展后的数据为:

  • S=2:1122334455667788

如果设定扩频扩展因子S=8,则通过扩展后的数据为:

  • S=8:1111111122222222333333334444444455555555666666667777777788888888

可以看到,所谓的扩展就是对原始数据进行编码,将原来一个字节就能表示的数据用多个字节来表示。数据本身的信息量没有增加,但长度却大大增加了。

优缺点

LE Coded技术的优缺点如下:

  1. 由于数据冗余的提高了,对于接收机来说接收的成功率更高了,接收灵敏度也就越好,传输距离也就越远。

这里很好理解,原来的1234数据,有干扰丢了一个数据变成1x34接收机就接收失败了。现在扩展成11223344,哪怕丢了一个数据成112x3344,接收机还是可以能够接收成功。这样误码率率低了,接收灵敏度自然也就高,距离也就远了。所以这个技术也叫LongRange技术

  1. 数据多了,传输要花的时间也变多了。但信息量并没有增加,因此本质上速率是降低了。

这里速率降低不止说他调制速率降了,LE Coded还是用的1Mbps的速率发数据。这里指的是实际的信息的传播量。毕竟发1234和发11223344信息量都是一样的。对于S=2,速率降低为了512Kbps;对于S=8,则降低为了128Kbps。

  1. 速率低了,数据收发时间也变长了,收发机功耗也会增加。这里由于收发机要花更多的时间才能发送同样的数据,收发机开启时间也就变成了,耗电就会增加。

空口包

LE Coded模式的空口包和普通1M PHY模式的空口包格式是有所区别的,这里我大概介绍下:

Coded包无论S取何值,都是用同一个格式的空口包。空口包包含两部分FEC块1和FEC块2。两个FEC块的扩展因子可以不一致。这里FEC块1用于引导数据收发,不包含数据内容;而FEC块2则是实际包含数据的区域。这里和正常包最大不同的是:

  1. CI: Coding Indicator ,这里FEC1固定使用S=8进行编码,而FEC2是使用S=2还是S=8编码则取决于这一位;

  1. TERM1/TERM2

一个3bit的终止符,用于方便接收机解调使用,并不包含什么数据,具体值有固定算法生成。

这里只做介绍,详情参考SPEC,目录为:BLUETOOTH CORE SPECIFICATION Version 5.1 | Vol 6, Part B 2.2 PACKET FORMAT FOR THE LE CODED PHY

标签:LE,FEC,扩展,PHY,Coded,BLE,数据
From: https://www.cnblogs.com/simpleGao/p/17633816.html

相关文章

  • 红帽RHCE考题总结练习(8.0 ansible)
    本文是红帽RHCE考题的总结,个别题目写了多种步骤。一、安装和配置ansible题目:按照下方所述,在控制节点bastion.lab.example.com上安装和配置Ansible:安装所需的软件包创建名为/home/devops/ansible/inventory的静态清单文件,以满足以下要求:servera是dev主机组的成员s......
  • SELECT ''应收债权(违约债)'' AS C_NAME,
    SELECT''应收债权(违约债)''ASC_NAME,A.N_HLDMKV_LOCLFROMT_FINANCIAL_VALAWHEREA.D_BIZ=TO_DATE(:D_CURRENT_DATE,''YYYYMMDD'')ANDA.C_PORT_CODE......
  • CF1858C Yet Another Permutation Problem 题解
    思路这个题是一个简单的构造题。竟然比T2简单,也是少见我们可以首先从\(1\)开始不断乘以\(2\),像这样:\(1,2,4,8,16\cdots,2^x\),直到什么时候超过\(n\)就停止。这样相邻两个数字就可以凑出\(1,2,4,6,\cdots,2^{x-1}\),保证两两不同。然后我们可以从\(3\)开始不......
  • 无涯教程-Perl - sleep函数
    描述此函数将脚本暂停EXPR秒,如果未指定EXPR,则暂停脚本。返回实际睡眠的秒数。可以被信号处理程序打断,但是您应该避免使用带Alert的睡眠,因为许多系统将Alert用于睡眠实现。语法以下是此函数的简单语法-sleepEXPRsleep返回值此函数返回整数,实际睡眠的秒数例以下......
  • 知识图谱(Knowledge Graph)- Neo4j 5.10.0 Desktop & GraphXR 连接自建数据库
    #输入查看数据库连接neo4j$:serverstatus添加远程连接,输入连接地址GraphApps选择GraphXR打开显示......
  • python+selenium(windows10) 安装
    1.安装python2. 安装selenium(piplist查看是否已安装)2.1 cmd窗口输入:pip(如果有内容显示,说明正常)        2.2 cmd输入指令安装selenium:pipinstallselenium==* .**.**( 也可以不指定版本)【如果安装中途断了,重新安装即可,不影响效果】 ......
  • java中for ,while ,enhance for 有什么区别?
    这三种循环结构在Java中都有其各自的用途和特点。以下是它们的区别:for循环:这是一个经典的循环结构,适用于你事先知道循环次数的情况。它的构造由初始化语句、条件语句和迭代语句组成。for(inti=0;i<10;i++){System.out.println(i);}while循环:当你事先不知道循环次数,......
  • 知识图谱(Knowledge Graph)- Neo4j 5.10.0 Desktop & GraphXR
    下载地址:https://neo4j.com/download/安装下载时会产生激活码(保存下来)下载完成后安装运行后,输入激活码进入主页面运行自带的电影知识谱图测试是否安装成功安装GraphXRhttps://neo4j.com/blog/graphxr-graph-app-neo4j-desktop/输入:https://graphxr.kineviz.com......
  • 浏览器中输入:“www.learnjava.com”之后都发生了什么?请详细阐述
    当在浏览器中输入"www.woaijava.com"并按下回车后,会依次发生以下步骤:域名解析:浏览器首先会将输入的域名"www.woaijava.com"解析为对应的IP地址。它会查询本地DNS缓存,如果找不到,则会向域名服务器发起请求。DNS查询:如果本地DNS缓存中没有对应的IP地址,浏览器会......
  • jmeter Include Controller&Module Controller
    ***IncludeControllerinclude控制器:可理解为外部调用。用来导入外部的测试片段(非完整的测试计划),在执行时会执行导入的测试计划。被导入的测试计划有特殊要求,它不能有线程组,只能包含简单控制器及控制器件下的元件。相当于一个执行单元,一个封装了业务操作单元。调用文件测试片......