正文
今天stone和大家一起来看看蓝牙相关的几个基础知识,这样大家在看具体的代码的时候能够做到“手里有枪,心中不慌”。 一、基本概念 微微网——Piconet Q1:蓝牙的网络结构是怎么样的? 蓝牙是一个点对点或者点对多点的拓扑结构,他们的交互都是基于一个物理通道(Physical Channel)上的。也就是说点对点之间有一条物理通道,点对多点共享一条物理通道。我们把这些共用一个物理通道的集合称之为微微网(piconet)。 在一个微微网中只有一个设备能称之为Master,其余的设备都是Slave。需要注意的是活跃的slave最多只能是7个,当然我们可以连接更多的slave,但是在同一时间,除了7个活跃的slave外别的slave不能处于活跃的状态。我们把他们称之为parked的slave,也就是说他们是在睡大觉。若是piconet中活跃的设备不足7个,他们就可以随时醒来,而且不需要再进行任何connection建立的过程。具体的可参见下图一,其中绿色的为Master,黑色的为Slave。
这个你不禁会要问: Q2:piconet是否有可能交叉呢?
这是一个很好的问题,是的piconet是有可能交叉的,也就是说一个piconet中的master有可能在别的piconet中它只是一个slave,反之一个piconet中的slave他有可能在另外一个piconet中扮演master的角色。当然一个piconet中的slave也是有可能在另外一个piconet中仍然是slave,但是一个piconet中的master是不可能在另外一个piconet中扮演master的,这个道理应该还是很简单吧。这里我们提出一个新的概念,就是有同样设备的piconet组成的网络我们称之为scatternet。
图二 Scatternet示意图
如图二所示,每一个piconet都是只有一个master,而一个piconet中的master在另外一个piconet中可以是一个slave,如图二中设备1,他在以2为master的piconet中就是slave。同样的设备2在以1为master的piconet中也是slave。反过来看,一个piconet中的slave在另外一个piconet中可以为master,比如设备1和2。当然也是可以在另外一个piconet中仍然作为slave,如设备4在以3为master的piconet中就是仍然是slave。需要注意的是,一个piconet中的master在另外一个piconet中是不能够作为master的。否则要么出现一个piconet中有两个master或者这就不是两个piconet的问题。 传输速率 Q3:蓝牙的传输速率怎么样? 蓝牙是在空气中进行传输的,他有两种传输模式: 1、Basic Rate:它的传输速率是1Mbps。 2、Enhanced Data Rate:a)初级调制模式:2Mbps;b)二级调制模式:3Mbps。
下面是各个版本指标的总结,特别是传输速度跟范围。
大家知道为什么2.1之后的蓝牙的速度有了很大的提升吗?给大家留一个悬念。其实之前我也有提过。
时钟相关 Q4:蓝牙有内部时钟吗? 答案是肯定的,蓝牙内部有native的clock。和外部的真实时间是没有关系的。它最低能表示的单元必须是312.5μs,就是半个slot。也就是说时钟的频率需要是3.2kHz。有四个周期在蓝牙中是很重要的,他们分别是312.5μs,625μs,1.25ms以及1.28s。他们对应的就是我们俗称的CLK0,CLK1,CLK2和CLK12。 Q5:蓝牙能容忍的时钟偏差是多少啊? 这是一个很好的问题。在spec上规定,正常情况下native的clock的偏差允许范围是+/-20ppm,当然在一些底功耗的模式下,比如park,sniff,hold等模式下,这个偏差的范围有所扩大,可以到+/-250ppm。 蓝牙地址 Q6:蓝牙地址就是我们看到的那一堆随机数吗? Spec中对蓝牙地址的格式是有很严格的规定的。他主要分为两个区域三个部分。 1、company_assigned:这个部分主要是LAP,就是Low Address Part,需要注意的是在这个部分0X9E8B00~0X9E8B3F的值是不能使用的。这部分的值是用于设备的特殊类型值的搜索的,除了这个部分,其余的值都是可以使用的。 2、company_id:包含UAP(Upper Address Part)和NAP(None significant Address Part)。他们可以使用任何的值,只不过只有UAP是有意义的,NAP是没有意义的。 这两者的组成部分见下图:
图四 工作频段 Q7:蓝牙工作的频段是在哪个区间 这是个很好的问题,通常我们都说蓝牙工作在2.4G的频段。其实它真实的工作频段范围是2400~2483.5MHz。它RF通道的设置如下表一所示。
表一蓝牙工作频段
我国的蓝牙频率在2.402GHz~2.483GHz,蓝牙每个频道的宽度为1MHz,为了减少带外辐射的干扰,保留上、下保护为3.5MHz和2MHz,79个跳频点中至少75个伪随机码跳动,30S内任何一个频点使用时长不能超过0.4S。
Q8:蓝 牙用什么技术皮面工作频段干扰? 蓝牙采用跳频扩谱技术主动的避免工作频段受干扰(微波炉的工作频率也是2.4GHz)。 那么大家知道什么是蓝牙的跳频扩谱技术吗?他们的工作原理是什么?
给大家留一个悬念,下次stone君给大家拔拔。
|