4.4.1 Slot Offset
利用LMP_slot_offset,发送关于不同微微网中的时隙边界之间的差异的信息。 可以在基带寻呼过程完成之后的任何时间发送LMP_slot_offset PDU。 该PDU携带参数时隙偏移(Slot Offset)和BD_ADDR。 时隙偏移应该是从当前微微网中的主设备传输开始到下一个微微网中主设备传输开始的微秒时间,其中BD_ADDR设备(通常是从设备)在请求由BD_ADDR设备解释时是主设备。
有关在角色切换的上下文中使用LMP_slot_offset的信息,请参见第4.4节。
在角色切换的情况下,BD_ADDR是从设备的BD_ADDR。
4.4.2 Role Switch
由于寻呼设备总是成为微微网的主设备,有时需要切换主从角色,参见[Vol 2] B部分,第8.6.5节。可以 在基带寻呼过程完成之后的任何 时间执行角色切换 。
如果支持LMP_switch_req,则必须支持LMP_slot_offset 。仅当ACL逻辑传输处于活动模式时 , 才 应发送 LMP_slot_offset 。所述 LMP_switch_req 应仅在ACL逻辑传输处于活动模式中,当加密被禁止或暂停,并且在同一物理链路上的所有同步逻辑传输被禁止时发送。此外, 在LM协商同步逻辑传输时,不应启动或接受LMP_slot_offset或LMP_switch_req。
发起LM应在ACL-U逻辑链路上暂停通信(参见[Vol 2] B部分,第5.3.1节)。如果加密模式设置期间为“加密”且两个设备都支持暂停加密,则启动设备应启动暂停加密序列(参见第4.2.5.5节)。然后, 它将立即 发送 LMP_slot_offset PDU ,然后发送 LMP_switch_req PDU。如果主设备接受角色切换并且加密尚未暂停,则它应暂停ACL-U逻辑链路上的通信(参见[Vol 2] B部分,第5.3.1节)并使用LMP_accepted PDU进行 响应 。如果在基带级别(成功与否)完成角色切换,如果加密暂停,则暂停加密的设备应启动恢复加密序列(参见第4.2.5.6节)。如果未暂停加密,则两个设备都应重新启用ACL-U逻辑链路上的传输。如果主设备拒绝角色切换,则它以 LMP_not_accepted PDU 响应, 并且从设备重新启用 ACL-U逻辑链路上的传输。序列中角色切换PDU的事务ID( LMP_slot_offset和LMP_switch_req以及关联的LMP_accepted或LMP_not_accepted)应设置期间为1。
如果主设备启动角色切换,并且加密模式设置期间为“加密”且两个设备都支持暂停加密,则主设备应启动暂停加密序列(参见第4.2.5.5节),否则它将暂停ACL上的通信-U逻辑链路(参见[Vol 2] B部分,第5.3.1节)并发送LMP_switch_req PDU。如果从设备设备接受角色切换并且加密尚未暂停,则它应暂停ACL-U逻辑链路上的通信(参见[Vol 2] B部分,第5.3.1节)并使用LMP_slot_offset PDU立即响应,然后接收LMP_accepted PDU。如果在基带完成角色切换(成功与否),如果加密暂停,则暂停加密的设备应启动恢复加密序列(参见第4.2.5.6节)。当使用AES-CCM加密时,LM应在恢复加密之前使用新的主设备和从设备的BD_ADDR使用h3算法(参见[Vol 2] H部分,第7.7.6节)计算新的加密密钥。如果未暂停加密,则两个设备都会在ACL-U逻辑链路上重新启用传输。如果从设备拒绝角色切换,则它以 LMP_not_accepted PDU 响应, 并且主设备重新启用ACL-U逻辑链路上的传输。序列中角色切换PDU的事务ID( LMP_slot_offset和LMP_switch_req以及关联的LMP_accepted或LMP_not_accepted)应设置期间为0。
LMP_switch_req PDU包含一个参数,即切换Instant,它指定执行TDD切换的时刻。这被指定为主设备的时钟的蓝牙时钟值,可供两个设备使用。此Instant由消息的发送者选择,并且至少应为将来2 * Tpoll 或32(以较大者为准)的时隙。切换Instant应在当前时钟值的12小时内,以避免时钟翻转。LMP_switch_req PDU 的发送方 选择切换Instant,并将LMP_switch_req PDU 排队 到LC进行传输,并启动在切换Instant到期的定时器。当定时器到期时,它启动模式切换。在主设备发起切换的情况下,如果 切换Instant到时还没有接收到 LMP_slot_offset PDU,则执行角色切换而不估计从机的时隙偏移。如果 在定时器到期之前接收到LMP_not_accepted PDU,则停止定时器并且不应启动角色切换。
当 接收 到LMP_switch_req时, 将切换Instant与当前主时钟值进行比较。如果它已经过去,那么该Instant已经过时,并且将 返回 具有错误代码Instant Passed(0x28) 的 LMP_not_accepted PDU。如果是将来,则 应该返回 LMP_accepted PDU,假设允许角色切换并且启动在切换Instant到期的定时器。当此定时器到期时,应启动角色切换。
成功切换角色后,监督超时和轮询间隔(Tpoll )应设置期间为其默认值。认证状态和ACO应保持不变。自适应跳频应遵循[Vol 2] B部分第8.6.5节中描述的过程。应使用max_slots 的默认值 。
4.7.1主从角色切换 - 从设备
测试组目标:
验证设备是否可以请求主从切换。IUT是从设备。
4.7.1.1 LMP/LIH/BV-01-C [启动角色切换]
验证IUT是否可以请求成为主设备并执行所有必要的消息。IUT是slave并启动服务。下测试员是主设备。
- 参考
[1] 4.4.2
- 初始条件
请参阅默认设置期间。
- 测试过程
- 测试条件
必须可以控制IUT以启动主从切换。
- 预期结果
通过判决
IUT发送PDU LMP_switch_req并接受PDU LMP_accepted的接收 。IUT必须是 微微网 的主控 。
4.7.1.2 LMP/LIH/BV-79-C [设置期间角色切换,从设备]
验证IUT是否可以在连接设置期间期间正确请求角色切换。Lower Tester启动连接建立并寻呼IUT。 IUT请求主/从切换。除非角色在连接设置期间切换,否则IUT将成为从设备。
- 参考
[1] 4.1.1
- 初始条件
请参阅默认设置期间。
- 测试过程
- 预期结果
通过判决
在接收到PDU LMP_host_connection_req时,IUT发送PDU LMP_slot_offset,然后发送LMP_switch_req 。测试仪 在接收到PDU LMP_clkoffset_req时发送PDU LMP_clkoffset_res。
4.7.2主从角色的切换 - 主设备
测试组目标:
验证设备是否可以请求主从切换。IUT是主设备。
4.7.2.1 LMP/LIH/BV-02-C [接受角色切换]
验证IUT是否接受Lower Tester请求将角色从slave切换到master和master切换到slave。IUT是主设备。Lower Tester是slave并启动服务。
- 参考
[1] 4.4.2
- 初始条件
请参阅默认设置期间。
IUT必须寻呼Lower Tester才能成为Piconet的主设备。
- 测试过程
- 预期结果
通过判决
IUT在接收到PDU LMP_switch_req时发送PDU LMP_accepted。
IUT必须成为从设备。
IUT必须在接收到时发送LMP_slot_offset和LMP_accepted
LMP_switch_req。
IUT必须成为主设备。
7.7.2.1 LMP/LIH/BV-78 -C [设置期间角色切换,主设备]
在连接设置期间期间验证IUT是否正确处理角色切换请求。IUT启动连接建立并寻呼Lower Tester。Lower Tester请求主/从切换。除非角色在连接设置期间期间切换,否则 IUT将成为 微微网 的主 设备。
- 参考
[1] 4.1.1
- 初始条件
请参阅默认设置期间。
- 测试过程
- 预期结果
通过判决
IUT在接收到PDU LMP_switch_req时发送PDU LMP_accepted,并在接收到PDU LMP_clkoffset_req时发送PDU LMP_clkoffset_res。
4.7.3主从角色的切换 - 主设备和从设备
测试组目标:
验证IUT是否以正确的方式拒绝主从切换。IUT的角色 没有重要意义。
4.7.3.1 LMP/LIH/BV-03-C [不支持的角色切换]
根据请求,验证IUT在接收到来自Lower Tester的请求时,是否响应它不支持主从切换。
- 参考
[1] 4.4.2
- 初始条件
请参阅默认设置期间。
- 测试过程
- 预期结果
通过判决
IUT在接收到PDU LMP_switch_req时发送包含“Reason = 0x1A”的PDU LMP_not_accepted。