BLE入门12 调频

为什么需要跳频

WLAN和基于IEEE 802.11规范的无线设备与蓝牙一样,在无需许可的2.4 GHz ISM(工业,科学和医疗)无线电频段中运行。
为了改善在该环境中的相同规范设备的通讯性能,SIG引入了自适应跳频的技术AFH(advance frequence hopping),以减少这种干扰的影响。
该跳频技术可以通过各种方法实现,每种方法都有其固有的优点和缺点。

爱立信通过使用其他标准和专有技术进一步增强了AFH的实施,在多种无线技术的存在下为语音中心应用提供了出色的音频质量。

在AFH解决方案出现之前开发的蓝牙产品采用另一种形式的跳频,其跳频在设计上是随机的。
这些第一代蓝牙设备使用2.4 GHz频段中的83.5个可用频道中的79个,以随机方式跳过这些频道,速率为每秒1600次。 一旦将另一个无线设备引入环境中,这种类型的跳跃就会导致偶尔的冲突,没有AFH蓝牙避免冲突的能力。 结果如下图所示,显示了蓝牙(BT)和无线LAN(WLAN)都在运行的环境。

与上述相反,自适应跳频AFH允许蓝牙通过识别固定的干扰源并将其从可用信道列表中排除来适应环境。 这种重新映射过程还涉及减少蓝牙使用的信道数量。

蓝牙规范要求至少20个信道的最小集合。下图显示了与上图相同的环境,但现在使用了自适应跳频后的蓝牙通讯信道。

经典蓝牙跳频原理

经典蓝牙跳频框架如下所示:有一个Channel map,即为跳频表,一个跳频阶跃;根据跳频表和跳频阶跃和当前通讯频点,即可计算出主从机下一次数据通讯的频点。

蓝牙跳频表算法各家的算法略有不同,但都需要解决两个问题

1. 信道评估:

SIG规范没有规定如何识别不良信道,这一过程通常被称为“信道评估”,因此AFH算法工程师面临着为每个特定解决方案选择最合适方法的任务。目前,有两种主要的方法用于执行具有自适应跳频的信道评估:RSSI(接收信号强度指示)和PER(分组错误率)。

RSSI和PER都是众所周知的用于确定哪些信道可能已被占用的技术。然而,当涉及监听当前信道状态时,这两种方法不同:PER用于反复测试和重新评估不良信道的方法不如RSSI准确,并且可能导致临时挫折。然而,在使用RSSI时还存在许多其他问题,例如RSSI消耗的功率大于PER。当缺少可用的时隙时,RSSI还可以要求从其他功能获取带宽。

2. 同一信道数据通讯:

蓝牙AFH规定,主设备和从设备都通过同一频道进行通信。 这样做是为了避免主设备在“好”信道上发送而从设备响应“坏”信道(反之亦然)的情况,因为这将导致多次重传(其他协议AFH的数据收发是在不同信道,会产生发数据正常,接收信道干扰导致无法响应主产生的多次重传)。由于主设备和从设备在相同频率上发送接收数据,因此信道跳频率降低50%至每秒800次。 虽然这可以使蓝牙设备对来自其他蓝牙设备的干扰更敏感,但迄今为止所带来的好处超过了这个小缺点。

BLE4.x跳频算法

Bluetooth LE CSA #1

调频算法用于数据连接中,数据信道同37个,调频公式如下:

unmappedChannel = (lastUnmappedChannel + hopIncrement) mod 37

fn+1=(fn+hop) mod 37 hop是一个5~16的值,每次调频之后中心频率加后hop并模37。
因为都是正整数,这个表达式在软件中非常容易实现,软件中通过求余运算便能完成运算

协议规定第一次连接事件中fn=0,fn+1=(0+hop) mod 37,也就是hop信道编号。

假设主机ChanelMap=00011110 00000000 11100000 00000110 00000000b,最右边为第一通道,最左边为第40信道,8bit为一组,总共五组(包括了三个广播信道)。
那么使用到的信道为9,10,21,22,23,33,34,35,36。
usedChannel[]={9,10,21,22,23,33,34,35,36}
假设hopIncrement =7,那么就可以进行自适应调频计算了,第一连接时

fn+1=(0+7) mod 37=7

而7信道不是一个可用的好信道,那么就要重映射

remappingIndex = 7 mod 9=7

再通过

usedChannel[7]=35

编号35信道一定是一个可用的信道了,因为它本身就从可用的信道集合中求出来的,下图是仿真软件计算的部分跳频表,和上面分析一致.

BLE5.0跳频算法

Bluetooth LE CSA #2

信道选择算法#2(CSA#2)是更复杂和更难跟踪用于获得下一个连接事件的信道索引的算法。特别是在高通量使用情况下,避免干扰和多路径衰落效应,使得蓝牙可以在超过10dBm的发射功率情况下获取全世界不同国家的无线电认证(单点发射功率过高肯定是难过欧美无线电认证,必须通过跳频方式使得产品平均低于当地政府要求,CSA #2的算法下,蓝牙产品在整个工作频段的平均功率较CSA #1要低)。

CSA #2和CSA #1一样的地方是都有一张约定的跳频表;不一样的是跳频阶跃的值,CSA #1的跳频阶跃值是固定的,CSA #2的跳频阶跃是通过算法计算出来的。

另外一个不一样的是CSA #2可以用在广播信道和连接信道,CSA #1只适用于连接信道。

CSA #2跳频阶跃算法

Counter N:当前通信信道
ChannelIdentifier = (Access Address31-16) XOR (Access Address15-0)
通过Counter N和ChannelIdentifier 两个输入信号和一个随机序列产生器生成输出信号,输出信号即为跳频阶跃。

随机数据产生器中的MAM算法介绍

MAM(The Multiply, Add, and Modulo)算法得出输出:

output = (17 x a + b) mod 216

经过几轮亦或运算XOR,置换排序PERM,MAM之后得到prn_e16(跳频阶跃),余下步骤和CSA#1一致。

完整跳频算法如下所示:

假设主机使用到的信道为9,10,21,22,23,33,34,35,36。
usedChannel[]={9,10,21,22,23,33,34,35,36}

Access Address为上一篇文章里面用到的0x364F10C1,下图为仿真软件计算的出来的prn_e和跳频表:

跳频总结

经典蓝牙跳频AFH算法最为复杂,需要实时监听坏信道,更新跳频表,对MCU资源要求较高,BLE 4.x是AFH的简化版,跳频表随机,跳频阶跃固定,蓝牙5的BLE部分使用新的CSA #2算法,跳频阶跃通过算法计算得到,避免干扰和多路径衰落效应。

参考:

https://mp.weixin.qq.com/s/OxpOkqTCEh0inzSOXOUhGw

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,539评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,594评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,871评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,963评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,984评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,763评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,468评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,850评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,002评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,144评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,823评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,483评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,026评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,150评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,415评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,092评论 2 355

推荐阅读更多精彩内容