BLE中PHY层的LE Coded技术
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技术的优缺点如下:
- 由于数据冗余的提高了,对于接收机来说接收的成功率更高了,接收灵敏度也就越好,传输距离也就越远。
这里很好理解,原来的1234数据,有干扰丢了一个数据变成1x34接收机就接收失败了。现在扩展成11223344,哪怕丢了一个数据成112x3344,接收机还是可以能够接收成功。这样误码率率低了,接收灵敏度自然也就高,距离也就远了。所以这个技术也叫LongRange技术
- 数据多了,传输要花的时间也变多了。但信息量并没有增加,因此本质上速率是降低了。
这里速率降低不止说他调制速率降了,LE Coded还是用的1Mbps的速率发数据。这里指的是实际的信息的传播量。毕竟发1234和发11223344信息量都是一样的。对于S=2,速率降低为了512Kbps;对于S=8,则降低为了128Kbps。
- 速率低了,数据收发时间也变长了,收发机功耗也会增加。这里由于收发机要花更多的时间才能发送同样的数据,收发机开启时间也就变成了,耗电就会增加。
空口包
LE Coded模式的空口包和普通1M PHY模式的空口包格式是有所区别的,这里我大概介绍下:
Coded包无论S取何值,都是用同一个格式的空口包。空口包包含两部分FEC块1和FEC块2。两个FEC块的扩展因子可以不一致。这里FEC块1用于引导数据收发,不包含数据内容;而FEC块2则是实际包含数据的区域。这里和正常包最大不同的是:
- CI: Coding Indicator ,这里FEC1固定使用S=8进行编码,而FEC2是使用S=2还是S=8编码则取决于这一位;
- TERM1/TERM2
一个3bit的终止符,用于方便接收机解调使用,并不包含什么数据,具体值有固定算法生成。
这里只做介绍,详情参考SPEC,目录为:BLUETOOTH CORE SPECIFICATION Version 5.1 | Vol 6, Part B 2.2 PACKET FORMAT FOR THE LE CODED PHY