2 物理通道
蓝牙系统的最底层结构是物理通道。所有蓝牙物理通道的特征是一个伪随机频率跳变序列的联合体,传输时间缝隙的特性,access code和packet header的编码。basic 和 adapted piconet 物理通道频率跳变是周期性改变频率以减小干扰,且满足局部的可调需求。
两个想要互相连接的设备需要分享同一个物理通道。他们的收发器必须同时转到同样的RF频率,且必须相互处在一个标称范围内。
两个收发器有可能转到同一个RF搬运器,会导致物理通道的冲突。为了弱化冲突,每个通道内的传送以access code开头。这个access code是物理通道的特性,且总是出现在一个transmitted packet的起始。
定义了5个物理通道,每个都为不同目的优化过。basic 和 adapted piconet通道用在已连接的设备之间,inquiry通道用来搜索,paging通道用来连接,synchronization scan通道用来使设备获取有关connectionless slave broadcast 物理连接的计时和频率信息,或是恢复当前时钟。
任意时间只可以使用上述5个通道中的一个。为了支持同时复用操作,设备在通道之间使用时分复用技术。这样一来,蓝牙设备可以在多个piconet中同时操作,也是可连接和可发现的。
每当一个蓝牙设备与物理通道保持timing,频率和access code的同步时,可以称作与此通道连接(无论这个设备是否在通道上有活跃的通信)。一个设备只需要有能力连接一个通道,然而,增强的设备可以同时连接多个通道,但spec不担保此行为。
2.1 物理通道定义
物理通道,除了synchronization scan物理通道(使用固定RF通道),被定义为一个伪随机RF通道跳变序列,packet(slot) timing和access code。跳变序列由蓝牙设备地址的UAP和LAP决定,也由被选择的跳变序列决定。蓝牙时钟决定跳变序列的相位。所有物理通道被划分为time slot,它的长度依不同通道而有所不同。在物理通道内,每个接受和发送的事件与time slot或time slots相关联。对发送和接收事件而言,RF通道由跳变选择内核选定。connection state,synchronization train和synchronization scan substate的最大跳变率是1600hops/s,inquiry和page是3200。
2.2 BASIC PICONET PHYSICAL CHANNEL
在CONNECTION状态中basic piconet 物理通道是默认的。adapted piconet通道也可用。
2.2.1 主从定义
basic piconet物理通道由master定义。master以轮询机制控制piconet物理通道的通信。
定义中,master在paging时发起连接。一旦piconet建立,主从规则可以交换。
2.2.2 跳变特征
basic piconet物理通道的特征是伪随机跳变经由79个RF通道。piconet物理通道内的频率跳变由蓝牙时钟和主设备的BD_ADDR决定。当piconet建立后,主设备时钟传送给从设备。每个从设备要添加一个offset到自身的时钟以与主设备时钟同步。由于时钟是独立的,所以offset必须定期更新。所有加入piconet的设备对通道是时间同步和跳变同步的。
2.2.3 时隙
basic piconet物理通道分成时隙,每个长625us。时隙的的数量根据主设备蓝牙时钟CLK的高27位编号,周期是2的27次方。时隙标记为k。
TDD计划用在主从轮流传输。packet开始与slot开始处对齐。一个packet最多占5个slot。
名词slots pair指的是两个以主从传输开始的相邻的time slot。
2.2.4 piconet时钟
CLK是piconet的主设备时钟。它必须用在整个piconet中的所有timing和时序安排。所有设备应使用CLK以调度发送和接收。CLK应当采自参考时钟CLKR+time_base_offset和slave_offset。time_base_offset是一个值给设备用来存放本地生成的由对齐外部时钟基准导致的对CLKN的补偿。slave_offset对主设备是0因为CLK指的是它自身的时钟CLKN。每个从设备应加上合适的slave_offset给它的CLKN以相当于主设备的CLKN。虽然所有CLKN在设备上运行着同样的标称速率,彼此的漂移导致CLK的非精确。因此,offset在从设备端必须周期性更新,这样CLK可近似于主设备的CLKN。
piconet主设备才能产生time_base_offset的改变;普通模式下,一个设备在作为从状态时不需要区分CLKR和CLKN。在scatternet条件下,一个控制器可以改变time_base_offset以使它的CLKN对齐外部时钟,可以是并列或者从设备的请求,slave_offset与一个不同的piconet时钟保持同步。某些例子里,很可能没办法决定一个可观察的补偿是由外部帧对齐(time_base_offset)和导致了多少主设备与从设备(slave_offset)之间的offset。
2.2.5 发送接收timing
主设备的传输应总是起始于偶数编号的时隙(CLK1=0),从设备应总是起始于奇数编号的时隙(CLK1=1)。由于packet的类型会超过一个时隙,主设备传输时可能在奇数编号的时隙中继续,从设备传输也可能在偶数编号的时隙中继续。
这个章节中展示的所有timing都基于天线的当前状况。用来描述timing的术语exact是参考理想的传输和接收,且忽略了timing抖动和时钟频率瑕疵。
理想的slot timing是625us,packet传输的平均timing的漂移不应快过此slot timing的20ppm。即刻timing不应脱离平均timing多于1us。
2.2.5.1 piconet 物理通道timing
在传输后,一个期望为N*625us的返回packet起始于TX packet的后面,N大于0且是奇数。N取决于传输packet的类型。
考虑到时间的滑动,一个非确定的window被定义在准确的接收timing周围。在普通的操作时,window长度应该是20us,允许RX packet到达时有超前10us或滞后10us。建议从设备使用可变尺寸的window或时间跟踪以适应一个主设备会缺席超过250ms。
在RX周期开始期间,access correlator可用非确定的window搜寻正确的access code。如果事件触发没有发生,receiver会进入睡眠直到下一个RX事件。在搜索过程中,如果相关输出从未明显超过最终门限,receiver会提早进入睡眠。如果触发事件发生,receiver可保持开放以接收packet的余下部分,除非packet是给另外的设备,一个non-recoverable header error被监测到,或是non-recoverable payload error被检测到。
每个主设备的传输可采用主设备自身蓝牙时钟的bit2,因此当前传输将在前一个主设备TX brust的开始后被调度为M*1250us,M取决于传输和接收packet的类型且为偶数大于0。主设备TX timing可采用主设备自身蓝牙时钟,因此它不会被从设备的时钟漂移而影响。
从设备会把自身时钟加上一个timing offset以保持对主设备自身时钟的预测。此补偿在每次接收到主设备的一个packet后被更新。在比较接收packet的理想RX timimg与预测RX timing时,从设备可为任何时候的timing失准修正补偿。这样一来只有通道access code需要同步从设备,从设备RX timing可被任何主-从传输时隙中的发送的packet修正。
从设备传输可在从设备RX packet的开始处之后被调度为N*625us,N是奇数且正整数大于0。如果从设备RX timing漂移了,TX timing也一样。从设备在活动模式的整个周期中阻止接收有效的主设备access code的原因是由于本地的RF干扰,从设备活跃在不同的piconet或任何其他原因,此时从设备可增加它的接收非确定window和或使用预定义的timing漂移以在接收再开始时增强收到主设备brust的可能性。
2.2.5.2 piconet 物理通道重新同步
在piconet物理通道中,一个从设备会在每次没有收到主设备的packet的200ms之后失去同步(在低功率时钟时时间更短)。主设备会由于很多原因不能发送给从设备,可能是由于主设备忙于其他譬如在sniff,hold,park模式下与其他设备保持连接,或是由于SCO,eSCO或非连接从设备广播活跃,或由于主设备参与了scatternet,或由于干扰。在重新同步到piconet物理通道时,一个从设备可在其发送信息前开始侦听主设备(除了connectionless slave broadcast 从设备,它会侦听主设备,但无需发送信息)。既然这样,从设备的同步搜索window可被从20us增加到一个巨大的值Xus。注意只有RX跳变频率是可用的。在主-从(RX)时隙中使用的跳变频率也可用在非确定window,甚至当它扩展到通常用在从-主(TX)时隙之前的时间间隔。
如果搜索window长度X超过1250us,连续的window可能与搜索window重叠。
建议在从设备重新同步时期内由主设备传输的单个slot packet。
2.3 ADAPTED PICONET PHYSICAL CHANNEL
设备进入非连接从广播模式后,发送非连接从广播packet的是piconet主设备,接收非连接从广播packet的是piconet从设备。
2.3.1 跳变特性
adapted piconet物理通道可使用至少20个RF通道。
adapted piconet物理通道可连接已使能自适应频率跳变(AFH)的设备。在basic和adapted piconet物理通道之间有两个特质。第一个特质是同样的通信机制,使得从设备的频率与先前主设备传输的一致。第二个特质是adapted piconet物理通道少于basic piconet的全部79个频率。
2.4 PAGE SCAN PHYSICAL CHANNEL
虽然主设备和从设备没有在连接前被定义,术语主设备用在呼叫设备(成为一个主设备在CONNECTION状态),术语从设备用在呼叫搜索设备(在CONNECTION状态成为从设备)。
2.4.1 呼叫时钟预测
呼叫设备使用一个呼叫搜索设备本身的预测时钟,CLKE;例如,一个补偿应加上呼叫器的CLKN以适应接收器的CLKN。CLKE应当采自本身的CLKN加上补偿。使用接收器的CLKN时呼叫器可加速连接建立。注意:CLKR从未用来导出CLKE或任何其他跳变核心的控制。
2.4.2 跳变特性
呼叫搜索物理通道采用较慢的跳变模式相较于basic piconet物理通道,且是一个经由RF通道的短为随机跳变序列。呼叫搜索通道的timing应由蓝牙搜索设备自身的时钟决定。频率跳变序列由蓝牙搜索设备的地址决定。
呼叫搜索物理通道使用呼叫,主设备呼叫应答,从设备呼叫应答,呼叫搜索跳变序列。
2.4.3 呼叫进程timing
在呼叫进程期间,主设备应传输相应的呼叫信息给从设备以连接。由于呼叫消息是非常短的packet,跳变率是3200 hops/s。在一个简单的TX slot间隔里,呼叫设备应在两个不同的跳变频率上传输。在图2.7到2.11中,f(k)用来标识呼叫跳变序列额频率,f’(k)用来标示对应的呼叫响应序列的频率。第一个传输开始于CLK0=0且第二个传输开始于CLK0=1。
在一个单RX slot间隔中,呼叫设备应在两个不同的跳变频率上监听从设备的呼叫响应消息。近似于传输,标称接收开始于CLK0=0且第二个接收开始于CLK=01;在TX slot期间,呼叫设备应在TX跳变频率f(k)和f(k+1)发送呼叫消息。在RX slot,它应到监听一个在对应的RX跳变频率f’(k)和f’(k)上的应当。监听周期应包括一个10us的不确定window。
2.4.4 呼叫应答timing
在连接建立时一个主设备呼叫应答packet被从主设备传输给从设备。这个packet建立了timing和频率的同步。在从设备已经收到呼叫消息后,它应返回一个包括从设备呼叫应答packet的应答消息且应在收到的呼叫消息后保持625us。当主设备收到从设备应答后,根据主设备的RX/TX timing,主设备应跟在RX slot后在TX slot发送主设备应答packet。在从设备呼叫应答和主设备呼叫应当消息之间的时间差将随从设备收到的呼叫消息的timing而定。从设备收到在主从slot内发送的第一个呼叫消息。它将在第一个从-主slot的一半以第一个从设备呼叫应答packet作为应答。主设备呼叫应答packet的timing基于前一个主-从slot中发送的第一个呼叫消息:有一个理想的1250us延时在第一个呼叫消息和主设备呼叫应答packet之间。packet在跳变频率f(k+1)发送,这个频率跟随收到的呼叫消息的跳变频率f(k)。
图2.9中,从设备收到在主-从slot中发送的第二个呼叫消息。它将在收到呼叫消息后在从-主slot的后半个精确的625us内以从设备呼叫应答packet作为应答。主设备呼叫应答packet的timg始终基于前一个在主-从slot内发送的第一个呼叫消息的timing:有一个精确的1250us延时在第一个呼叫消息和主设备呼叫应答packet之间。packet在跳变频率f(k+2)发送,这是一个跟随着收到的呼叫消息的跳变频率f(k+1)的跳变频率。
从设备应调节它的RX/TX timing根据收到的主设备应当packet(且不能根据收到的呼叫消息)。更确切地说,用来应答收到的主设备呼叫应答packet的第二个从设备呼叫应答消息应在主设备呼叫应答packet开始后的625us传输。
2.5 INQUIRY SCAN PHYSICAL CHANNEL
虽然主设备和从设备没有在连接前被定义,术语主设备用在呼叫设备(成为一个主设备在CONNECTION状态),术语从设备用在呼叫搜索设备(在CONNECTION状态成为从设备)。
2.5.1 询问时钟
用来询问和询问搜索的时钟应是设备的自身时钟。
2.5.2 跳变特性
询问搜索通道采用比piconet物理通道较短的跳变模式,且是一个经由RF通道的短伪随机跳变序列。询问搜索通道的timing由搜索设备的自身的蓝牙时钟决定,此时频率跳变序列由通用询问access code决定。
询问搜索物理通道使用询问,询问应答,和询问搜索跳变序列。
2.5.3 询问过程timing
在询问过程期间,主设备应以通用的或专门的询问access code传输询问消息。询问的timing与呼叫相同。
2.5.4 询问应答timing
在从设备收到一个询问消息后,一个询问应答packet通过从设备传输给主设备。这个packet包含了对正在询问的主设备来说用以呼叫从设备的重要信息,且在询问消息收到后的625us。如果从设备传输一个扩展的询问应答packet,它应在询问应答packet开始后的1250us被传输。
在图2.10和图2.11,f(k)用在询问跳变序列的频率,f’(k)用在对应的询问应答跳变序列。当从设备在主-从slot内接收到的是第一个询问消息时,询问应答packet和扩展的询问应答packet被主设备在跳变频率f’(k)接收。
当从设备收到的询问消息是主-从slot中的第二个时,询问应答消息和扩展询问应答消息在主设备的跳变频率f’(k+1)被接收。
2.6 跳变选择
蓝牙设备应使用由如下部分定义的跳变核心。
总体来说,定义了六种跳变序列类型-5种给basic跳变系统,1种给一个用在自适应频率跳变(AFH)上的跳变位置自适应设置。
- 一个呼叫跳变序列:以32个唤醒频率等分在79MHz,周期长度是32;
- 一个呼叫响应跳变序列:包含32个应答频率以一对一对应当前的呼叫跳变频率。主设备和从设备使用不同的跳变规则以获取同样的序列;
- 一个询问跳变序列:以32个唤醒频率等分在79MHz,周期长度是32;
- 一个询问响应跳变序列:包含32个应答频率以一对一对应当前的询问跳变频率。
- 一个basic通道跳变序列:有一个非常长的周期,不能在短时间间隔内使用重复的模式,在短时间间隔内将跳变频率等分在79MHz。
- 一个adapted通道跳变序列:采自basic通道跳变序列,使用相同的通道机制且可以使用更少的79个频率。
- adapted通道跳变序列智能用来代替basic通道跳变序列。所有其他跳变序列不会受跳变序列自适应的影响。
另外,3个固定频率的同步训练RF通道是定义好的。
2.6.1 通用选择设计
选择设计包括两部分:
. 选择一个序列;
. 映射这个序列到跳变频率上
图2.12是跳变选择设计的通用块。从输入到特别的RF通道索引的映射演绎为selection box。
selection box的输入是选择时钟,冻结时钟,N,koffset,interlace_offset,地址,序列选择和AFH_channel_map。时钟输入源取决于跳变序列的选择。
此外,每个跳变序列使用时钟的不同bits。
序列选择输入可设为如下值:
. 呼叫搜索
. 询问搜索
. 呼叫
. 询问
. 主设备呼叫应答
. 从设备呼叫应答
. 询问应答
. basic通道
. adapted通道
地址输入包含28bits,包括整个LAP和UAP的低4bits。这由UAP/LAP指定。当basic或adapted通道跳变序列被选定后,主设备的蓝牙设备地址(BR_ADDR)可被使用。在呼叫,主设备呼叫应答,从设备呼叫应答,或呼叫搜索跳变序列被选择时,BR_ADDR由被呼叫设备的主机给出且应可用。当询问,询问应答或询问搜素跳变序列被选择时,UAP/LAP对应的GIAC应被使用,即使这关系到一个DIAC。无论何时一个被保留的BD_ADDR用来生成一个频率跳变序列,UAP应该被默认检查初始化(DCI)替代。跳变序列由selection box的序列选择输入选定。
当adpated跳变序列被选择,AFH_channel_map是selection box的一个额外的输入。AFH_channel_map指示了哪个通道可用且不可用。
输出是RF通道索引,构成一个伪随机序列。RF通道索引使用公式映射到RF通道频率。
选择设计在32个跳变频率中选择一个跨越64MHz的段落,且以伪随机序列的规则访问这些跳变。下一次,一个不同的32跳变段落被选中。在呼叫,主设备呼叫应答,从设备呼叫应答,呼叫搜索,询问,询问应答,询问搜索应答序列中,同样的32跳变段落总是在使用(段落由地址选定;不同的设备有不同的呼叫段落)。当basic通道跳变序列被选中,输出构成一个伪随机序列滑过79个跳变。
RF频率应在packet持续器件维持固定。RF频率的packet应采用在第一个packet的slot中的蓝牙时钟的值。在一个多slot packet之后的第一个slot中的RF频率应由那个slot的蓝牙时钟值决定。
当adapted通道跳变序列在使用时,伪随机序列仅包含那些在AFH_channel_map输入端定义的RF通道的频率。adapted序列与非adapted跳变序列有着近似的统计特性。此外,从设备应答时的packet在与主设备访问那个从设备时使用的是同一个RF通道(或将已经至于一个同步的被保留的slot而不是一个正当地被接收的主-从传输)。这被称为AFH的同通道机制。因此,主设备给从设备的packet使用的RF通道也用来立即将packet从从设备给主设备。一旦adapted通道跳变序列被选中,同通道机制即可使用。
2.6.2 选择核心
basic跳变选择核心可如图2.16,且用在呼叫,呼叫应答,询问,询问应答和basic通道跳变选择核心。这些子状态中AFH_channel_map输入是不可用的。X输入决定了32-跳变段的phase,Y1和Y2选择主-从和从-主。输入A和D决定段落的规则,输入E和F决定跳变频率上的映射。核心寻址一个寄存器包括RF通道索引。这个列表是规则的,所以所有偶数RF通道索引被列出,然后是所有奇数跳变频率。用这个方法,一个32-跳变段跨过64MHz。
选择过程包括一个加法,一个异或,一个排列操作,一个加法,和一个寄存器选择。在本章的余下部分,标记Ai用来表示BD_ADDR的bit。
2.6.2.1 第一个加法运算
第一个加法运算只是把一个常数加上phase且与32取模。对呼叫跳变序列来说,第一个加法是多余的因为他只能在段内改变phase。然而,当不同的段是联系在一起的(在basic通道跳变序列),第一个加法运算将对最终产生的序列有影响。
2.6.2.2 异或运算
在异或运算中,加法运算器的输出的低4位与A22-19异或。
2.6.2.3 排序运算
排序运算包含了跳变系统从5个输入到5个输出的切换,由控制字控制。它包括蝴蝶运算的7个阶段。
2.6.2.4 第二个加法运算
加法运算选择了跳变频率以用在当前段落,又在主-从和从-主之间切换。它将当前蝴蝶运算的输出相加(当选择了段中的一个通道),一个常量,主设备或从设备slot选择的时钟bit,和一个用来将每个段在连接状态下切换到一个新的通道设置的值。结果再与79取模。
2.6.2.5 寄存器堆
加法器的输出访问一个有79个寄存器的堆。寄存器用合成代码字加载对应到跳变频率0-78。注意堆的上半部分包含了偶数跳变频率,下半部分包含奇数跳变频率。
2.6.3 adapted 跳变选择核心
adapted跳变选择核心是基于前文定义的basic跳变选择核心。
除了输入AFH_channel_map(在链接管理协议中定义),adapted跳变选择核心与basic跳变选择核心的输入相同。AFH_channel_map指出哪些RF通道可用和哪些不可用。当跳变序列适应使能,可用的RF通道数量可能从79个减少到更小的值N。所有设备应有能力运行在一个adapted跳变序列是Nmin<=N<=79,同任何在AFH_channel_map中符合这个限制的已用的RF通道联合。Nmin=20。
跳变序列适应通过附加在basic通道跳变序列上的两点来获取。
. 不用的RF通道一致地重新映射到已用的RF通道。如此一来,如果basic系统的跳变选择核心产生一个不用的RF通道,一个在已用的RF通道设置以外的不寻常的通道被伪随机选中。
. 产生给主-从packet的已用的RF通道,也用来立即跟随从-主packet。
2.6.3.1 通道重新映射功能
当adapted跳变选择核心被选中后,basic跳变选择核心开始被用来决定一个RF通道。如果这个RF通道根据AFH_channel_map是未用的,未用的RF通道被重新映射功能映射到一个已用的RF通道上。如果由basic跳变选择核心决定的RF通道已经在已用RF通道的设定中,无需再调整。在所有由basic跳变生成的已用RF通道上的adapted选择核心序列与basic序列的跳变序列相等。
图2.20是重新映射的模块图。重新映射功能是在选择核心的后处理步骤。basic跳变选择核心的输出fk是一个范围在0-78的RF通道数。RF通道数是已用的RF通道或未用的RF通道。
当一个未用的RF通道被basic跳变选择机制生成后,他被映射到如下未使用RF通道的设定。(具体算法见原文档)
2.6.4 控制字
核心的控制字是被所有控制信号X,Y1,Y2,A,F和F’控制。在呼叫和询问期间,输入A和E使用在表2.2对应列上给定的地址值。另外,输入X,Y1和Y2被用到,F和F’没有用到。时钟bit CLK6-2指定了长度为32的序列的phase。CLK1用来在TX和RX之间选择。地址输入决定了段内序列顺序。在跳变频率上的最终映射决定于寄存器的内容。
在CONNECTION状态期间,输入A,C和D应来自地址bit异或时钟bits,如表2.2中所示。
五个X输入bit的变化取决于当前设备的状态。在呼叫搜索和询问搜索子状态中,自然时钟CLKN被用到。在CONNECTION状态中主设备时钟CLK被作为输入。其他状态的情况则有些复杂。
2.6.4.1 呼叫搜索和询问搜索跳变序列
当序列选择输入设为呼叫搜索时,正在搜索的蓝牙设备地址应被用作地址输入。当序列选择输入设为询问搜索时,GIAC LAP和DCI的低4位应用作跳变序列的地址输入。对传输access code和在接收相关器中,合适的GIAC或DIAC应被使用。应用依靠询问的目的来决定使用哪个询问access code。
2.6.4.2 呼叫跳变序列
当序列选择输入设定为呼叫时,正在呼叫的设备应使用A-train {f(k – 8), …, f(k), …, f(k + 7)},f(k)是呼叫设备当前接收频率的源预测。索引k是所有输入的功能如图2.16。在每个1.28秒的间隔中可能有32个呼叫频率。这些频率中的一般属于A-train。余下的 {f(k + 8),…, f(k + 15), f(k – 16),…, f(k – 9)} 属于B-train。为了获取A-train的-8补偿,一个常数24应加到时钟bits上。B-train由补偿到8得来。假如为了接收第一个从设备应答的slots周期性地不可用,一个额外的补偿knudge加到时钟bits上,使train以1.25ms的整数倍产生位移。trains的周期性顺序位移是很重要的以避免在呼叫和搜索设备时可能发生的重复失配。
另外,每个在A-train和B-train的切换可以通过在当前koffset(起始值为24)上加上16来完成。
2.6.4.3 从设备呼叫应答跳变序列
当跳变序列的输入被设定为从设备呼叫应答,为了排除由于本地时钟CLKN和主设备时钟预测CLKE的矛盾而可能产生的链接丢失,CLKN16-14的4bit应在当前值被冻结。这个值应被冻结在接收access code检测到的slot。自身时钟不应被停止;bits值仅用来创造暂时被固定的X-输入。一个冻结的值在下文被标志为*。
对每个应答slot而言,呼叫设备应使用大于(与32取模)先前应答slot的一个X-输入值。然而第一个应答需要用到的X输入与在识别到access code后所保留的值一样。让N从0开始计数。然后,X输入在第(N+1)个从设备应答状子状态的应答slot(第一个应答slot立即跟在当前呼叫slot)是:
Xprs = [CLKN∗16 – 12 + N] mod 32,
在从设备获取呼叫的那个slot里N应被记为0。然后,N的值应在每次CLKN1的值清零后增加,对应的是主设备TX slot的开始。X输入应当以此方式构建直到第一个FHS packet被收到且紧接着跟随的应答packet已经被传输。在此之后从设备应使用收到的FHS packet内的参数进入CONNECTION状态。
2.6.4.4 主设备呼叫应答跳变序列
当序列选择输入设为主设备呼叫应答,主设备应把它的预测从设备时钟的值冻结在从呼叫设备触发一个应答的时刻。这等效于使用在收到应答响应时的时钟预测值(因而只有CLKE1将与相关的呼叫传输不同)。因此,当收到从设备ID packet后值被冻结。除了用到的时钟bits,当前的koffset和knudge也要被冻结。主设备应用与被呼叫设备同样的方式调节它的X输入,例如在每次CLKE1设为0时增加这个值。第一次增加应在发送给被呼叫设备FHS packet之前完成。让N从0开始增加。
Xprm = [CLKE∗16 – 12 + k*offset + k*nudge +
(CLKE∗4 – 2, 0 – CLKE∗16 – 12) mod 16 + N] mod 32,
N的值应在每次CLKE1设为0时增加,这对应着主设备TX slot的起始。
2.6.4.5 询问跳变序列
当序列选择输入设为询问,X输入与呼叫跳变序列中用到的近似。由于无需寻址特定的设备,询问设备的自身时钟CLKN被用到。此外,两个train补偿的起始在此状态无需关心。结论是,
Xi = [CLKN16 – 12 + koffset + knudge +
(CLKN4 – 2, 0 – CLKN16 – 12) mod 16 ] mod 32,
koffset和kundge与呼叫跳变序列对应规则一致,初始koffset的选取是随意的。
GIAC LAP和DCI的低四位应被用于跳变序列生成器的地址输入。
2.6.4.6 询问应答跳变序列
询问应答跳变序列与从设备呼叫应答跳变序列在X输入上近似。输入时钟无需冻结,因此
Xir = [CLKN16 – 12 + N] mod 32
此外,计数器N的增加不基于CLKN1,相反地在每个FHS packet 被发送以响应询问之后。此时对N的初始值没有限制,因为它不依赖于询问单元中对应的值。
用在扩展询问应答packet的Xir值应与紧接着的前一个FHS packet计算出的Xir的值相等。
GIAC LAP和DCI的低四位应用作跳变序列生成器的地址输入,其他给生成器的输入位应与呼叫应答一致。
2.6.4.7 basic和adapted通道跳变序列
在basic和adapted通道跳变序列中,时钟bit用在basic或adpated跳变序列生成器中应总是采自主时钟CLK。地址为应当采自主设备的蓝牙设备地址。
2.6.4.8 同步顺序RF通道
同步顺序和同步搜索使用三个固定的RF通道,索引是0,24,78。
2.7 SYNCHRONIZATION SCAN PHYSICAL CHANNEL
同步搜索物理通道允许设备接收同步顺序packet。
2.7.1 跳变特性
当一个设备进入同步搜哦所子状态,它应使用2.7.3中定义的timing搜索同步顺序RF通道。每个单独的搜索window应使用与前两次搜索窗口不同的RF通道。
同步搜索物理通道应使用在2.6.4.8中定义的所有RF通道。
2.7.2 同步顺序过程timing
主设备应仅在connectionless slave broadcaset模式被打开或在粗糙时钟调节恢复模式时使用同步顺序过程;两者可同时发生。同步顺序进程期间,组设备应尝试在所有2.6.4.8定义的RF通道上传输同步顺序packet。每个RF通道上的同步顺序packet传输不依赖于其他RF通道的传输。对每个RF通道而言,主设备应当:
1. 以Tsync_Train_Interval为间隔建立同步顺序事件。在粗糙时钟调节恢复模式期间,Tsync_Train_Interval的值应为32。在任何其他时间,它的值应选自主机提供给控制器的范围内。
2. 在每对同步顺序事件之间尝试发送一个同步顺序packet。
3. 在调度冲突缺乏时,从同步顺序事件起将同步顺序packet传输从开始处延迟TSync_Train_Delay,TSync_Train_Delay是一个包括在0-TSync_Train_Delay_Max的伪随机数。每个TSync_Train_Delay的值应是整数偶数。TSync_Train_Delay_Max应等于在粗糙时钟调教恢复模式期间的4个slots和在其他时间的16个slot。每个同步packet传输应开始于CLK[1:0]=00b处的slot的开始。
4. 如果同步顺序packet的传输与更高优先级的pakcet发生冲突,实际的延时会用来调节以避免冲突。实际的延迟应当在0-TSync_Train_Delay_Max范围内且不能大于或等于TSync_Train_Interval。如果在下一个同步顺序事件之前不可能传输一个完整的packet,它就不能传输。注意,如果将延迟时间增加到超过推荐的范围,会增加正在搜索的设备丢失packet的机会。
5. 不应有多疑一个的同步顺序packet在两个连续的同步顺序事件之间传输。
6. 实际使用的延时应不与任何其他与其连续的同步顺序packet一致(然而两个之间可以)。
注意:受制于上述需求,同步顺序事件在不同RF通道上可以分别管理或可以用相同的TSync_Train_Delay值联合起来。
图2.21给出了连续同步顺序packet在一个单一RF通道上的timing关系。
2.7.3 同步搜索进程timing
在同步搜索进程期间,一个设备在同步进程RF通道上完成同步搜索。在每个搜索window期间,设备监听持续TSync_Scan_Window。每个搜索window应当持续且不能被其他活动中断。在两个连续搜索窗口的起始位置之间的间隔应<=TSync_Scan_Interval。timing关系在图2.22。
文章来源:wzz4420381的博客