蓝牙的传输频率是2.4 GHZ ,也就是一秒钟之内蓝牙信号可以改变24亿次。
我曾经天真的以为,信号每改变一次可以传输一位的信息,这样来看一秒之内可以传输24亿位信息。
1个字节等于8个比特位,则蓝牙的传输速度最快可到300MB/S。
然而实际情况是,蓝牙的最高传输速度只有3MB/S。那实际的传输速率和我们设想的差距为什么这么大呢?还有就是蓝牙到底在传输什么?
不管是什么通讯,它传输的都是二进制的0和1,但是每一种通讯的帧格式各不相同。
比如说串口通讯,它的一帧信息只传递10位信息!
一帧标准的CAN通讯有108位信息;
蓝牙通讯有两种,分为经典蓝牙和低功耗蓝牙。
一帧经典蓝牙的数据包最多有357个字节,低功耗蓝牙最多有261个字节。
可以看一下他们的协议构成,经典蓝牙的开头是9个字节的访问地址,访问地址可以来区分
每一个蓝牙设备,然后是7个字节的标头,标头的作用是确保数据的可靠性和稳定性。
再后面是数据位,长度在0-339个字节之间,如果是简单的控制指令,它的数据位的长度很
短,可能只有一两个字节,但如果传递的是音频信号,则它的数据位可达上百个字节。
最后的两个字节是CRC校验,用于检测这一帧数据正确与否。
再来看低功耗蓝牙,在它的最开始有1个字节的预补码,用于时钟同步和信道估计。
接下来是4个字节的访问地址,用于区分不同的蓝牙设备。
然后是2-253个字节的数据位,最后是三个字节的CRC校验位。
这就是一帧完整的蓝牙信息。
经典蓝牙和低功耗蓝牙的区别如下;
如果是有线传输,我们发送什么逻辑,电线中对应的也就是什么电平。
但蓝牙是无线传输,那高低电平在空中是如何传输的呢?
是不是我们发送一个高电平,在空气中就有一个高电平;发送一个低电平,空气中就会产生
一个低电平呢?
肯定不是这样的。
真正的无线传输肯定不会这么简单。
蓝牙的传输需要专门的蓝牙模块,它的作用是把CPU发出来的低频数字信号,转化为
高频的载波信号。
很多个高频载波信号才能表示一个0或者1,所以说即使是蓝牙的频率是2.4Ghz,但蓝牙的
数据传输速率最快也才3MB/S。
如此看来,蓝牙至少得需要2种频率才能传递数据。2.4GHz只是一个大概频率。
蓝牙利用的是高斯频移键控技术,低功耗蓝牙的GFSK的偏移量一般为±185KHz,首先确定一个中心频率,比如中心频率为2.402GHZ,逻辑1是在中心频率的基础上加185KHZ,逻辑0是在这个基础上减去185KHZ。
一般同一个空间内有很多个蓝牙设备,他们采用的都是这个频率,那它们传递蓝牙数据岂不
就乱了吗?
不会的!
蓝牙技术采用了多信道通讯,比如低功耗蓝牙有40个信道。
信道范围从2.402Ghz到2.480Ghz,每个信道的间隔是2MHZ,这样就划分了40个不同的信
道。比如在2.402GHz信道内通讯,则它实际传输的就是我们刚才通过GFSK计算的频率。
如果是经典蓝牙,它的信道数量是79个,其范围也是从2.402GHZ-2.480Ghz,但是每一个
信道的带宽只有1MHZ。
当蓝牙进行通讯时,会频繁的在不同的信道之间进行通讯,一秒之内可达上百次跳频。这样
就能避免其它蓝牙设备的干扰,使蓝牙通讯更加稳定。
最后再来解释一下,蓝牙的数据传输速率最高为3MB/S,说的是数据在CPU和蓝牙模块之间的传输速率;
而蓝牙的频率位2.4GHZ,说的是蓝牙信号在空气中的载波频率为2.4GHZ。
这就是我对蓝牙技术的一些简单理解,希望对你理解有帮助!
领取专属 10元无门槛券
私享最新 技术干货