BLE物理层解决了最基础的通信问题,比如调制解调、信号放大与滤波等。在实际使用中,几乎不会关注物理层的情况,但是在BLE产品测试阶段,要测试频偏,信号强度等项目,只有对物理机制有所了解,才能理解测试项目的目的。
调制
通信领域,有模拟调制和数字调制,BLE使用数字调制。数字调制也分为幅值调制和频率调制,BLE使用频率调制,该技术名称叫:频移键控(Frequency Shift Keying, FSK),通过改变载波的频率,来表征比特信息。如果调制波的频率高于载波频率,则表示比特1,如果低于,则表示比特0。调制前先将信号通过高斯滤波器做滤波,可以减少带外辐射,收窄信号带宽,从而增加信道容量。对滤波后的信号做FSK调制,这种方式叫高斯频移键控(Guassian Frequency Shift Keying, GFSK),也就是BLE所采用的调制方式。调制波与载波频率之差称为频偏。显然正频偏表示比特1,负频偏表示比特0。BLE技术中,频偏大约为180KHz,才能被准确检测出来。比如,对于中心频率为2402MHz信号,比特1的信号频率约为(2402 + 0.18)MHz,比特0约为(2402 – 0.18)MHz。在BLE中,中心频率为2402MHz的通信频段称为一个信道。
信道
BLE有40个物理信道,均匀分布在2402MHz, 2404MHz, … 2480MHz。
这40个信道中,37、38、39三个信道用于发送广播信息,如上图中橘色信道,其他37个信道发送数据信息。BLE在连接时,会在这些数据信道中循环跳动,叫”跳频“。比如每次连接事件使用某个数据信道,下一次连接事件则会跳到另一个信道中去。
跳频有一定的算法,比如f(n+1) = (f(n) + hop) % 37。hop是一个跳频参数,假如hop = 10,本次使用信道0,那么下一次就使用(0 + 10) % 37 = 10,即信道10。为什么要这么复杂,在不同频率间跳来跳去呢?因为BLE使用的是免费的2.4G ISM(Industrial Scientific Medical)频段。wifi也使用这个频段,可想这个频段非常拥挤,假如wifi信号浓密,BLE信号就会受到干扰。BLE跳频技术,会记录每个信道是否拥挤,假如拥挤则标记为坏道,跳频时候避开该信道,等空闲下来,再移除坏道标记。这样BLE通信就总是能够在相对良好的频段内进行。
其中绿色的脉冲为BLE信号,红色信号分别是WIFI、微波炉和无线设备,它们形成了干扰噪声。
精度
BLE芯片外置的24MHz的晶振,是射频信号的时钟源。为了保证信号频率的精度,要求晶振的精度一定要高。
晶振的精度到底要多高才能满足使用?
对于BLE的信道,中心频率的容限是±150kHz,举个例子,使用16MHz的外部石英晶振为射频提供时钟,16MHz扩频到2.4GHz需要放大150倍,其误差也将一同放大150倍。假如它的误差为±50ppm,即16MHz × ±50ppm = ±800Hz,放大150倍后变成±120kHz,这几乎达到±150kHz的频偏限制,因此许多芯片都限制射频晶振的误差要小于50ppm。
假如使用24MHz的晶振,扩频倍数降低,那么相同的误差等级的晶振,将获得更优良的射频频偏参数。(不过16MHz的晶体更便宜和常用)可以推测,使用不同晶振频率,其精度要求也会发生变化。
当获得足够精准的信号频率,还需要足够灵敏的接收机,才能将比特0与比特1区分开来。接收机灵敏度使用dBm来表示,目前市面上各家的BLE芯片,接收灵敏度大约在-90dBm ~ -95dBm之间。由于距离越远,信号越弱,即接收机的灵敏度越强,则能达到的通信距离越远。
信号的强度取决于发射机的输出功率。输出功率越大越好,但是考虑无线电产品要通过FCC等认证,无线信号输出功率不能太大。通常BLE芯片的默认输出功率为0dBm,即1mW。不同厂家的芯片可以支持更高的发射功率,比如3dBm、8dBm等。射频信号一旦脱离发射机,就要面临穿越空气而造成的损耗。接收机可以获得信号的能量损耗值(RSSI)
路径损耗与通信距离有如下相关性:
path loss = 40 + 25 × log(distance)
于是,可以利用RSSI来反向获得距离信息,这个是BLE做室内定位的理论基础。
但是RSSI极易受到干扰,因此需要获取多个RSSI数据,并利用分析算法,甄别出实际的路径损耗。
原作者:CY大象,原链接已失效