Core_V5.2 - (4 COMMUNICATION TOPOLOGY AND OPERATION)

4 COMMUNICATION TOPOLOGY AND OPERATION

4.1 PICONET TOPOLOGY-微微网拓扑
4.1.1 BR/EDR topology
  任何时候当一个连接被使用BR/EDR控制器创建时,它就在微微网的上下文中。每一个链路连接两个设备,称为“master”和“slave”。一个微微网由一个单一的主设备(称为微微网的主设备)和所有连接到它的从设备(称为微微网的从设备)组成。连接的BR/EDR设备通过一个共同的时钟和跳频序列同步在同一个物理通道上通信。共同的(微微网)时钟与微微网的主蓝牙时钟相同,跳频序列由主时钟和主蓝牙设备地址派生(不同的从机可以使用不同的跳频序列)。

  术语“主从”仅用于描述微微网中的这些角色。许多独立的微微网可以紧密地存在。每个微微网有一个不同的物理通道(即不同的主设备和独立的时序和跳频序列)。蓝牙设备可以同时参与两个或多个微微网。它是在时分多路复用的基础上实现的。一个蓝牙设备永远不可能是一个以上微微网的主设备。(因为在BR/EDR中,微微网是通过与主设备蓝牙时钟同步来定义的,所以一个设备不可能是两个或多个微微网的主设备。)一个蓝牙设备在许多独立的微微网中可能是从属设备。

  作为两个或多个微微网的成员的蓝牙设备被称为scatternet-分散网。参与到一个分散网并不一定意味着蓝牙设备具有任何网络路由能力或功能。蓝牙核心协议没有,也不打算提供这种功能,这是更高级别协议的责任,超出了规范的范围。

  在图4.1中显示了一个示例拓扑,它演示了下面描述的许多架构特性。设备A是微微网的主机(用阴影区域表示,称为微微网A),而其他的设备B,C,D,E是这个微微网中的从设备。除了微微网A还是有其他三个微微网,微微网F: F为主设备,E,G,H做为从设备;微微网D: D为主设备,J为从设备;微微网M: M为主设备,E和多个N作为从设备。

  在微微网A中有两个物理通道。设备B和C使用基本的微微网物理通道(由蓝色线表示),它们不支持自适应跳频。设备D和E能够支持自适应跳频,并使用自适应的微微网物理通道(用红色线表示)。设备A能够自适应跳频,并在两个物理信道上以时分多工(TDM)方式操作,根据哪个从设备进行寻址。微微网D和微微网F都只使用基本的微微网物理信道(分别用青色和品红线表示)。在微微网D的情况下,这是因为设备J不支持自适应跳跃模式。虽然设备D支持自适应跳变,但它不能在这个微微网中使用。在微微网F中,设备F不支持自适应跳变,因此不能在该微微网中使用。

  微微网 M(用橙色线表示)使用无连接从机通过自适应微微网物理通道广播物理链路以发送配置文件向多个从设备(包括E、N)广播数据。

  设备K目前还不是任何微微网中的设备,但是它向其他的蓝牙设备提供服务。它目前正在侦听它的(inquiry scan)查询扫描物理通道(由绿色线表示),等待来自另一个设备的查询请求(inquiry request )。

  设备L也不属于任何微微网,但是它正在synchronization scan physical channel(用棕色线表示)等待一个来自其他设备的synchronization train。

4.1.2 LE topology

 

  在图4.2中显示了一个示例拓扑,该拓扑演示了下面描述的许多LE架构特性。设备A是微微网的主机(用阴影区域表示,称为微微网A),设备B和C是从机。与BR/EDR从机不同,LE从机不与主机共享一个公共物理通道。每个从设备通过一个单独的物理通道与主服务器通信。另一种微微网以设备F为主设备(称为微微网F),设备G为从设备。设备K处于分散网(称为散网K)中,设备K是设备L的主设备和设备M的从设备。设备O也在散网中(称为散网O)。设备O是设备P和设备Q的从设备。在图中,实箭头指向从主节点到从节点;虚线箭头,虚线箭头表示发起一个连接,指向是从发起者到使用可连接的广播事件广播的广播者。正在广播的设备使用幸好表示,如图中的K,R。

  还有其他五组设备显示:

  1. 设备D是广播者,设备A是发起者(称为组D)。

  2. 设备E是扫描者,设备C是广播者(称为组C)。

  3. 设备H是广播者,设备I和J是扫描者(称为组H)。

  4. 设备K也是一个广播者,N是一个发起者(称为组K)。

  5. 设备R是一个广播者,O是一个发起者(称为组R)。

  设备A和B使用一个LE微微网物理通道(由蓝色线和深灰色背景表示)。设备A和C使用另一个LE微微网物理通道(由蓝色线和浅灰色背景表示)。在组D中,D正在使用可连接的广播事件在广播物理通道(用绿色线表示)上广播,而A是一个发起者。设备A可以与设备D形成连接,并将该设备加入微微网A。

  在组C中,设备C同样也在广播物理通道(由橙色框表示)上使用任意类型的广播事件进行广播,并且它的广播正在被作为扫描者的E所捕获。为了减小干扰和数据包的碰撞,组D和组C上的广播事件可能发生在不同的物理广播通道上,并且他们的广播事件不是同时发生的。在微微网F中,有一个物理信道。设备F和G使用同一个LE微微网物理通道,设备F是主设备而G是从设备。在组H中,有一个物理通道。设备H、I和J使用LE广播物理通道(由紫色线表示)。设备H是广播者,设备I和J是扫描者。

  在散网K中,设备K和L使用一个LE微微网物理信道。设备K和M使用另一个LE微微网物理通道。在组K中,设备K也在广播物理通道上使用可连接的广播事件广播,而N是发起者。设备N可以与设备K形成连接,导致设备K同时是两个设备的从设备和一个设备的主设备。

   在散网O中,器件O和P使用一个LE微微网物理信道。而设备O和Q使用另一个LE微微网物理通道。在组R中,设备R也在广播物理通道上使用可连接的广播事件广播,而O是发起者。设备O可以与设备R形成连接,导致设备O同时是两个设备的从设备和一个设备的主设备。

4.2 OPERATIONAL PROCEDURES AND MODES(page-259)

  蓝牙设备的典型操作模式是连接到在同一个微微网中的其他蓝牙设备并且和它进行数据的交换。由于蓝牙是一种特别的无线通信技术,因此有许多操作步骤可以形成微微网,以便进行后续通信。过程和模式应用于体系结构的不同层,因此一个设备可以同时使用许多这些过程和模式。这里描述了一些在BR/EDR中一些常用的操作过程和模式,这些模式和过程在蓝牙的发现连接过程中会用到。

4.2.1 BR/EDR procedures

4.2.1.1 Inquiry (discovering) procedure
  
蓝牙设备通过Inquiry-询问程序来发现附近的设备,或者是被它附件的设备所发现。

  Inquiry程序是非对称的。试图找到附近其他设备的蓝牙设备被称为查询设备,并主动发送查询请求。可用的蓝牙设备称为可发现设备,用于侦听这些查询请求并发送响应。查询过程为查询请求和响应使用一个特殊的物理通道。需要注意的是正在进行查询程序的设备和可发现的设备有可能已经连接到了同一个微微网中的其他设备,这个是可能的,因为一个设备常常具有可在已经和其他设备建立连接的情况下再去发现和连接到其他设备,比如手机。在核心规范中有这样一句话:Any time spent inquiring or occupying theinquiry scan physical channel needs to be balanced with the demands of the QoS commitments on existing logical transports. 任何花费在查询或占用查询扫描物理通道的时间都需要与现有逻辑传输上的QoS承诺的需求进行平衡。这句话其实我没有理解,希望有理解的同学帮忙解答一下。查询过程不使用物理通道之上的任何体系结构层,尽管可以认为在交换查询和查询响应信息期间存在一个瞬态物理链路。

4.2.1.1.1 Extended Inquiry response
  一个扩展的查询响应可以在查询过程中提供额外的信息,数据类型定义为本地名称和受支持的服务等信息,通常如果需要获取这些信息需要建立连接后进行交换,但是通过这种方式就可以不需要额外的连接。在扩展查询响应中接收本地名称和支持服务列表的设备不需要连接来执行远程名称请求和SDP服务搜索,从而缩短获取有用信息的时间。建议在扩展的查询响应中,设备包含所有支持的服务和它的本地名称的很大一部分(如果该名称太长而不能全部发送)。扩展的询问回复程序与标准的询问回复程序向后兼容。那扩展查询响应包是怎样的呢?如果你对BLE的广播包结构很熟悉那你也一定很容易理解扩展查询响应包的结构:

数据的总长度是240个字节,有有效部分和无效部分组成。可以看到有效部分是由一系列的数据机构所组成。每一个数据结构包含两部分:长度域和数据域,长度域是一个字节的长度,它指明了数据域的长度;而数据域又包含两部分:EIR Data Type和EIR Data,EIR Data Type的长度是不固定的,而EIR Data的长度等于Length-EIR Data Type的长度。无效部分数据的长度将EIR数据包的总长度扩展到240Byte,并且无效部分的值应全为0。 

 在Core Specification Supplement, Part A, Section 1中定义了EIR数据格式和一些具体的列子,详细请参考那里。如果长度为0,那么数据域没有数据,这种情况只会发生在允许提前终止标记数据的情况下。为了减少干扰,主机应该尽量减少EIR数据量,使基带可以使用1槽或3槽EIR包。这是有利的,因为它减少了干扰,最大限度地提高了接收EIR数据包的概率。如果主机上的应用程序提供超过240字节的扩展查询响应数据,则由主机将其限制为240字节,多余的字节应当会被丢弃。EIR数据包应该在查询响应状态下发送。在选择要使用的包类型时,应考虑FEC (DM1或DM3)以使范围最大化。

  主机应按照以下规则在EIR数据中包含设备名称:

  1、如果设备没有设备名称(即0字节)并且

    a)如果在EIR包中没有其他数据要发送,主机应该发送一个长度为零的name标签,并设置type字段来表示这是完整的名称(也就是说有效数据结构1的总长度为2,Length =1, EIR Data Type一个字节,EIR Data       0Byte)。

    b)如果在EIR包中有其他重要数据要发送,而0字节的名称标签不合适,主机可能会避免发送名称标签。

  2、如果设备有设备名称(大于0字节)并且

    a)如果它太长被包含在EIR数据包中(给定数据包类型和任何正在发送的其他数据的选择),主机可以发送一个缩短版本的名称(甚至0字节),并且应该将名称标记为“缩短的”,以告知接收者需要一个远程名称请求,如果需要该名称,则获取全名。

    b)如果没有其他数据发送EIR包(给定的选择包类型选择),主机应最大化要发送的设备名称的长度,这个名称可以是完整的或者一个缩短版本的名称(例如,如果选择了DM1包,并且设备名称字符等于大于15个字节,那么主机就用缩短标志发送前面几个字符,有可能等于或小于15个字节)。

  注意:没有必要理解每一个EIR数据类型。如果主机不理解给定的EIR数据类型值,它应该跳过Length字节并寻找下一个EIR数据结构。

4.2.1.2 Paging (connecting) procedure
  形成连接的过程是不对称的,需要一个蓝牙设备执行页面(连接)过程,而另一个蓝牙设备是可连接的(页面扫描)。Paging这个过程是有针对性的,因此页面过程只由一个指定的蓝牙设备响应。可连接的设备在一个特定的通道上监听paging 设备发出的连接请求包。这个物理通道具有特定于可连接设备的属性,因此只有了解可连接设备的分页设备才能在这个通道上通信。同样的,在进行Paging和当前是可连接的设备都有可能已经和同一个微微网中的其他设备建立了连接。任何分页或占用页面扫描物理通道的时间都需要与现有逻辑传输上的QoS承诺的需求进行平衡。Inquiry和Page其他还细分了一些子过程,后续会做补充。

4.2.1.3 Connected mode
  在BR/EDR Controller上成功连接后,两个设备都连接到一个微微网物理通道,设备之间有一个物理链路,并且有缺省的ACL-C、ACL-U、ASBC和ASB-U逻辑链路。其中两条链路(ACL-C和ASB-C)传输LMP控制协议,并且对于链路管理器上面的层来说这是不可见的。ACL-U链路传输L2CAP信令协议和任意多路L2CAP最佳通道。ASB-U链路传输L2CAP通道,这些通道被广播到微微网上的所有从机。通常引用默认ACL逻辑传输(可以通过上下文解析),但通常引用默认ACL- u逻辑链路。当处于连接模式时,可以创建和释放附加的逻辑链路,并在保持与微微网物理通道连接的同时更改物理链路和逻辑链路的模式。该设备也可以执行查询、分页或扫描程序,或在不需要从原始微微网物理通道断开的情况下连接到其他微微网。这些操作使用Link Manager完成,它与远程蓝牙设备交换Link Manager协议消息。AMP物理链路可以以连接模式建立。一旦创建了一个AMP物理链路,就可以建立一个或多个AMP-u逻辑链路来传输L2CAP用户数据。在从设备主动连接到微微网期间,从设备和主设备之间总是有一个默认的ACL逻辑传输。删除缺省ACL逻辑传输的唯一方法是将设备与piconet物理通道分离,此时将删除设备之间的整个L2CAP通道层次结构、逻辑链路和逻辑传输。

4.2.1.7 Role switch procedure
  角色切换过程是一种交换连接在微微网中的两个设备角色的方法。这个过程涉及从原始主设备定义的物理通道移动到新主设备定义的物理通道。在从一个物理通道交换到下一个物理通道的过程中,物理链路的层次结构和BR/EDR控制器上的逻辑传输被删除和重建,除了拓扑中隐含的ASB逻辑传输之外。角色转换过程不会影响AMP的物理通道。角色转换后,原来的微微网物理通道可能会消失,或者如果原来的主机有其他仍然连接到该通道的从机,则可能会继续存在。

  该过程只将缺省的ACL逻辑链路和支持层复制到新的物理通道。此过程不会复制任何附加的逻辑传输,如果需要,则必须由较高层执行。任何受影响的传输的LT_ADDR都将在新的物理通道上重新分配,因此可能会发生变化。如果在原始的逻辑传输上有任何QoS承诺,那么在角色切换之后将不会保留这些承诺。

4.2.1.9 Connectionless Slave Broadcast mode

  无连接的从广播模式允许微微网主设备使用BR/EDR自适应的微微网物理通道将概要广播数据传输到任意数量的连接的从设备。要进入这种模式,主设备保留一个特定的逻辑传输作为专用的CSB逻辑传输,并使用无连接的从广播物理链路和synchronization train过程开始广播数据。定义了一个配置文件广播数据逻辑链路,它使用无连接从广播逻辑传输来携带配置文件广播数据。这个profile广播数据是无帧的,并且绕过L2CAP。要接收无连接从广播包,设备必须与已经建立了CSB逻辑传输的无连接从广播发射机连接。连接时,设备通过Synchronization Scan程序获取物理链路的时间计划,然后开始接收无连接从机广播报文。一旦连接,无连接从广播接收器可以在专用的CSB逻辑传输和PBD逻辑链路上接收配置文件广播数据。

 

4.2.2 LE procedures
4.2.2.1 Device filtering procedure-设备过滤过程
  设备过滤程序是控制器减少需要通信响应的设备数量的一种方法。因为它不需要响应来自每个设备的请求,它减少了LE控制器需要进行的传输数量,从而降低了功耗。同样的它也减少了控制器和主机间的通信。这可以节省额外的电力,因为主机不需要参与。

  广播或扫描设备可以使用设备过滤来限制设备接收广播数据包、扫描请求或连接请求。在LE中,扫描设备收到的一些广播报文要求扫描设备向广播设备发送请求。如果使用设备过滤并且正在过滤广播设备,则广播是可以被忽略掉的。对于连接请求也是类似的。连接请求必须由广播设备响应(正常来说设备发起连接请求,广播设备会进行响应),除非使用设备过滤器来限制广播者需要响应的设备。广播设备还可以使用设备过滤器来限制接受扫描请求或连接请求的设备。

  这种设备过滤机制通常是通过使用位于控制器 LL 块中的“白名单”来完成的。白名单列表中列出了允许与本设备通信的远端设备。当白名单生效后,不在白名单中的设备传输的消息将会被LL忽略。由于设备过滤发生在 LL 中,它可以通过过滤(或忽略)将被发送到更高层处理的广播数据包、扫描请求或连接请求包,从而对功耗产生重大影响。在某些过程中使用设备过滤需要仔细评估,以确保不会无意中忽略掉本不想被忽略的设备,这可能会在尝试建立连接或接收广播时导致互操作性问题。
4.2.2.2 Advertising procedure
  一个广告者使用广播过程对该区域内的设备进行单向广播。单向广播在广告设备和收听设备之间没有连接的情况下发生。广播过程可用于与附近的发起设备建立连接,或用于向在广播物理信道上侦听的扫描设备提供用户数据的定期广播。广播程序将主要广播物理信道用于所有广播。然而,数据可以在一个或多个辅助数据包中重载到次要广播物理信道,以减少主要广播物理信道的占用率和总播出时间,并允许数据长于最大值 这将适合单个数据包。连接在LE微微网中的LE设备可以使用任何类型的广播事件进行广播。连接时花费的广告时间需要与维持已经建立的连接所需的连接要求相平衡(如果设备是微微网中的从设备,那么它需要保持与主设备的连接,如果设备是主设备) 它需要与微微网中的一个或多个从站保持连接)。

  广播设备可能会接收来自侦听设备的扫描请求,以便从广播设备获得额外的用户数据。扫描响应由广播设备发送给发出扫描请求的设备。

  广播设备可以接受来自发起设备的连接请求。如果广播设备使用可连接的广播事件进行广播,并且发起设备没有被广播使用过滤机制进行过滤,那么当发起设备发起连接请求的时候,广播设备就会停止广播进入连接模式。设备进入可连接模式后依然可以重新进行广播。

  在 LE 未编码 PHY 上进行广播时,扫描请求和扫描响应可以在与原始广播相同的 PHY 通道上进行,也可以重载到辅助广播物理通道。同样的,在 LE 未编码 PHY 上进行广播时,连接请求和连接响应可以在与原始广播相同的 PHY 通道上进行,也可以重载到辅助广播物理通道。

posted @ 2021-10-16 21:11  巴黎铁塔下的仰望  阅读(188)  评论(0)    收藏  举报