上一篇简单的介绍了低功耗蓝牙的基本概念和体系结构,这一篇将详细的介绍控制器部分的相关内容。首先可以再来看看低功耗蓝牙的体系结构图如下所示:
今天要介绍的三层体系结构中的控制器部分,控制器这一层又包括可物理层和直接测试模式和链路层,和主机控制接口的下半部。 1、物理层 (1)、物理层中的模拟调制: (2)、物理层中的数字调制: (3)、物理层中的频段: (4)、物理层中的调制: (5)、物理层中的射频信道: 2、直接测试模式 待测设备指那些需要测试的控制器、模块或最终的产品,待测设备需要一个天线,以及一个通用异步串行通信接口(UART)或者是链接到上位机测试设备的主机/控制器接口(HCI)。 上位测试设备通常由测试设备制造商生产。它的软件能通过串口或者主机/控制器接口驱动待测设备,也能驱动下位测试设备并与之通信。 下位测试设备能过收发报文,通过天线与待测设备进行有效的通信。 待测设备由上位测试设备告诉做什么,并执行报文发、收。同时,上位测试设备通知下位测试设备做相反的工作,测试结束之后,上位测试设备可以通过待测设备和下位测试设备的有效信息,来判断待测设备是否通过测试。 上位测试设备还可以通过要求设备发送已知频率的报文并测量实际的发射频率,来校准生产线上的控制器。 (1)、直接测试模式中的收发机测试: (2)、直接测试模式中的硬件接口: 命令与事件: 待测设备可向上位测试设备上报两种事件 (3)、直接测试模式中的使用HCI的直接测试模式: 3、链路层 (1)、链路层中的链路层状态机: 链路层状态机不但解释了设备间如何发现和连接,也解释了低功耗蓝牙的另一个基本的设计策略:将广播、发现和连接过程与连接中的数据传输分离开来。该设计的一部分是为了实现广播设备的超低功耗。将广播信道减少到3条,在保证鲁棒性的同时降低了功耗。但这一设计也需要区分广播态和广播报文。链路层状态机的3个状态使用广播报文,而只有1个状态使用数据报文。 5种状态图的关系如下所示: (*)就绪态:上电后,链路层进入并保持就绪态,直到接到主机的命令。从就绪态可以进入广播态、扫描态或者发起态,从其他任意状态也可以进入就绪态。就绪态是链路层状态机的中心状态,尽管是非话动状态,但最为重要。 (*)广播态: 处于广播态的链路层可以发送广播报文。也可以发送扫描响应,用以回应主动扫描的设备。可被发现或者可被连接的设备需要处于广播态。想向一定区域内其他设备广播数据的设备也需要处于广播态。 (*)扫描态:处于扫描态的设备能够接收广播信道的报文。扫描态可用于简单地侦听哪些设备正在广播。扫描态有两个子状态:被动扫描和主动扫描。被动扫描仅接收广播报文。主动扫描则发送扫描请求给广播态设备,并获取附加的扫描响应数据。扫描态的设备只能进人就绪态,转换的条件是停止扫描。被动扫描态中,被动扫描可以在只有接收机的设备中实现。如果只为了支持被动扫描,则无需发射机,进而可以减少控制器的体积和成本。主动扫描态中,链路层一旦发现了新的广播态设备,都会发送扫描请求,并等待该请求的响应。扫描请求和响应报文都在广播信道中传输。为了使主动扫描更为有效地工作,扫描响应应尽量为静态数据,因为就能耗而言,扫描请求、响应这两个额外的报文使得数据更加昂贵。 (*)发起态:为了发起连接,链路层需要处于发起态。处于发起态的发起者,其接收机用于侦听自己试图连接的设备。如果收到了来自该设备的广播报文,链路层会向其发送连接请求并进入连接态,并假设广播者也进入连接态。如果发起者不再试图发起连接,也可以进入就绪态。 (*)连接态:最后一个提及的链路层状态是连接态。从广播态或发起态均可进入连接态。两种情况均源于发起者向广播者发送连接请求报文。主连接态:主连接态只能从发起态进入。为了成为主设备,它必须向对端设备发起连接。主设备必须定期向从设备发送报文。从设备只有通过回复这些报文才能发送自己的数据。 从连接态:从连接态只能从广播态进入。为了成为从设备,它必须向对端设备进行广播。对于从设备,只有在正确接收主设备的报文之后才能发送。收到主设备的一个报文后,从设备可以发送一个自己的报文。如果从设备想发送更多的数据,则必须等待主设备发送另外的报文再回复。从设备也可以随时忽略主设备以达到节能的目的。这样一来,从设备可以通过“休眠”来节省大量的能量。 多状态机: 一个链路层的具体实现可以拥有多个独立的状态机。 (2)、链路层中的报文: 报文的开始是一小段训练序列,称为前导。之后是接人地址,接收机用它将报文和背景噪声区分开来。接收地址之后是报头和长度字节。再之后是报文的净荷,以及用于确保净荷正确性的循环冗余校验码(CRC)。 下面详细介绍报文结构,正如上图所示 前导: 报文最开始的8比特是010101 01或者10101010序列。这是很简单的交替序列。接收机可以用它来配置自动增益控制,以及确定“。”、“1”比特所使用的频率。这段序列之所以非常重要,是因为芯片必须能够应对输入信号强度的可能范围。 接入地址: 接入地址的第一个比特决定了前导是01010101还是10101010。如果接入地址的第一个比特为“0”,则使用01010101序列;如果是“1”,则使用10101010序列。这保证了任一报文的前9个比特都是交替的,即要么为101010101.要么为010101010。 报头:报文的下一个部分是报头。报头的内容取决于该报文是广播报文还是数据报文。对于广播报文,报头包含了广播报文的类型以及一些标记位,这些标记位指出了报文使用的是公共地址还是随机地址。广播报文类型共有7种,每种类型都具有不同的净荷格式及行为: 长度:对于广播报文,长度域包含6个比特,有效值的范围是6 ~37。对于数据报文,长度域包含5个比特,有效值的范围是。0~ 31。长度域之后是净荷,其长度是长度域指出的字节数。 净荷:净荷是所传输的“真实”数据,可以是关于设备的广播数据,或者发给一定区域内所有设备的服务数据;可以是主动扫描响应的附加数据,如设备名称,实现的服务;可以是建立或保持连接所需要的信息;可以是从一个设备到另一个设备的应用层数据。 循环冗余校验:报文的最后是3个字节的CRC(循环冗余校验)。CRC对报头、长度域以及净荷域进行计算。24位的CRC强大到足以检测所有奇数位错误,以及所有2位或4位错误。 (3)、链路层中的信道: 广播信道频点的选择原则上是为了远离诸如Wi-Fi接入点的严重干扰。这些接人点通常选择802.11信道中的3个:信道l、6和11。这几个信道的中心频率分别为2412MHz、2437MHz和2462MHz,宽度大概为20MHz。这意味着信道1占据2402MHz - 2422MHz,信道6占据2427MHz - 2447MHz,信道11占据2452MHz - 2472MHz。 广播信道位于2402MHz、2426MHz和2480MHz。也就是说,第1个广播信道低于Wi-Fi的信道1,第2个广播信道位于Wi-Fi的信道1和信道6之间,第3个信道高于Wi-Fi的信道11。如下图所示,这3个Wi-Fi信遭覆盖了数据信遵的0-8、11 - 20以及32 - 34。不过,3个广播信道37、38、39在这些干扰之外。 数据信道在广播信道之间分布,间隔为2MHz。表7-3给出了广播信道和数据信道的完接列表,包括链路层信道编号以及中心频率。 广播信道的编号是37 - 39。数据信道的编号是从O- 36。用这样的编号方式区分广播信道和数据信遭使得跳频算法的实现非常简单。 (4)、链路层中的设备发现: 设备每次广播时,会在3个广播信道上发送相同的报文。这些报文被称为一个广播事件。除了定向报文以外,其他广播事件均可以选择20ms - 10.28s不等的间隔。通常,一个广播中的设备会每一秒广播一次。广播事件之间的时间称为广播间隔。主机可以控制该间隔。但是,设备周期性的发送广播会有一个问题:由于设备间的时钟会不同程度的漂移,两个设备可能在很长一段时间同时广播而造成千扰。为防止选一情况的发生,在上一次广播事件发生后加入随机延时。它们发送下一个广播事件时也很可能不再冲突。 通用广播:通用广播是用途最广的广播方式。进行通用广播的设备能够被扫描设备扫描到,或者在接收到连接请求时作为从设备进入一个连接。通用广播可以在没有连接的情况下发出,换句话说,没有主从设备之分。 定向广播:有时候,设备间需要快速建立连接。如果从设备想这么做,就需要进行广播。定向广播事件就是为了尽可能快的建立连接。这种报文包含两个地址:广播者的地址和发起者的地址。发起设备收到发绐自己的定向广播报文后,可以立即发送连接请求作为回应。 不可连接广播:不想被连接的设备使用不可连接广播事件。这种广播的典型应用包括设备只想广播数据,而不想被扫描或者连接。速也是唯一可用于只有发射机而没有接收机设备的广播类型。不可连接广播设备不会进入连接态,因此,它只能根据主机的要求在广播态和就绪态之间切换。 可发现广播:最后一种广播事件是可发现广播。这种广播不能用于发起连接,但允许其他设备扫描该广播设备。这意味着该设备可以被发现,既可以广播数据,又可以响应扫描,但不能建立连接。这是一种适用于广播数据的广播形式,动态数据可以包含于广播数据之中,而静态数据可以包含于扫描响应数据之中。可发现广播不会进入连接态,而只能在停止后回到就绪态。 (5)、链路层中的广播: |
Archiver|小黑屋|蓝牙研发网 ( 粤ICP备14052215号-1 )
GMT+8, 2024-11-23 23:50 , Processed in 0.046875 second(s), 15 queries .
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.