《低功耗蓝牙开发权威指南》——3.1节控制器

3.1 控制器
控制器被很多人视为区分蓝牙芯片或无线电的特征之一。然而,把控制器叫做无线电就有些过分简单化了。蓝牙控制器由同时包含了数字和模拟部分射频器件和负责收发数据包的硬件组成。控制器与外界通过天线相连,与主机通过主机控制接口(HCI)相连。

3.1.1 物理层
物理层是采用2.4GHz无线电、完成艰巨的传输和接收工作的部分。对很多人而言,该层仿佛笼罩着一层神秘色彩。但本质上来讲,物理层其实并没有什么魔法,只不过是简单的传输和接收电磁辐射而已。无线电波通常可以在给定的某个频段内通过改变幅度、频率或相位携带信息。在低功耗蓝牙中,采用一种称为高斯频移键控(GFSK)的调制方式改变无线电波的频率,传输0或1的信息。
频移键控部分是指把1和0通过轻微升高或者降低信号频率进行编码。如果频率在改变的一瞬间突然从一端移向另一端,将会在更宽的频段上出现一个能量脉冲。因此用一个滤波器来阻止能量扩散到更高或更低的频率处。在GFSK的情况下,采用的滤波器的波形与高斯曲线一致。用于低功耗蓝牙的滤波器不像用于经典蓝牙的滤波器那样严格,这意味着低功耗无线电信号比经典蓝牙无线电信号要稍微分散一点。
适当拓宽无线电信号的好处在于无线电将遵循扩频(spread-spectrum)的约束,而经典蓝牙无线电则受跳频的约束。传输时,扩频无线电要比跳频无线电使用的频率更少。如果没有更宽松的滤波器波形,低功耗蓝牙将不能只在三个信道上广播,而不得不使用更多的信道,从而导致系统的能耗升高(如上一章所述)。
无线电信号的适度拓宽称为调制指数。调制指数表示围绕信道的中心频率的上下频率之间的宽度。传输无线电信号时,从中心频率出发超过185kHz的正向偏移代表值为1的比特;超过185kHz的负向偏移代表值为0的比特。
为使物理层能够工作,尤其是应对同一区域有大量无线电同时传输的情形,2.4GHz频段被划分为40个RF信道,各信道的宽度为2MHz。物理层每微秒传输1比特应用数据。例如要发送80比特的以UTF-8格式编码的字符串“low energy”将花费80μs,当然这里没有考虑数据报头的开销。

3.1.2 直接测试模式
直接测试模式是一种测试物理层的新方法。绝大部分的无线标准并未提供对物理层执行标准测试的统一方法。这就导致不同的公司采用专门的办法来测试物理层。这样一来,整个产业的成本增加,对终端产品制造商来说,从一家芯片供应商快速换到另一家的门槛也很高。
直接测试模式允许测试者让控制器的物理层发送一系列测试数据包或接收一系列数据包。测试者随后可以分析收到的数据包,或根据接收的数据包数量判断物理层是否遵循RF规范。直接测试模式不仅能量化测试,还能用于执行线性测试和校准无线电。比如,通过快速命令物理层在指定的无线电频率发送信号,并测量实际收到的信号频率,可以调节无线电直至正常工作。由于这类校准通常需要为每个单元执行,因而拥有一台能够高效地完成测试的设备将为产品制造商节约大量成本。

3.1.3 链路层
链路层是低功耗蓝牙体系里最复杂的部分。它负责广播、扫描、建立和维护连接,以及确保数据包按照正确的方式组织、正确地计算校验值以及加密序列等。为了实现上述功能,定义下列三个基本概念:信道、报文和过程。
链路层信道分为两种:广播信道和数据信道。未建立连接的设备使用广播信道发送数据。广播信道共有三个—再次说明,这一数字是在低功耗和鲁棒性之间折中的产物。设备利用该信道进行广播,通告自身为可连接或可发现的,并且执行扫描或发起连接。在连接建立后,设备利用数据信道来传输数据。数据信道共有37个,由一个自适应跳频引擎控制以实现鲁棒性。在数据信道中,允许一端向另一端发送数据、确认,并在需要时重传,此外还能为每个数据包进行加密和认证。
在任意信道上发送的数据(包括广播信道和数据信道)均为小数据包。数据包封装了发送者给接收者的少量数据,以及用来保障数据正确性的校验和。无论在广播信道还是数据信道,基本的数据包格式均相同,每个数据包含有最少80比特的地址、报头和校验信息。图3-2显示了链路层数据包的大致结构。

8比特前导优化数据包的鲁棒性,这一长度足够接收者同步比特计时和设置自动增益控制;32比特接入码在广播信道数据包中是固定值,而在数据信道数据包中是完全随机的私有值;8比特报头字段描述数据包的内容;另一个8比特长度的字段描述载荷的长度,由于不允许发送有效载荷长度超过37字节的数据包,不是所有的比特都用来记录长度;紧接着是变长有效载荷字段,携带来自应用或主机设备的有用信息;最后是24比特的循环冗余校验(CRC)值,确保接收的报文没有错误比特。
可以发送的最短报文是空报文,时长为80μs;而满载时的最长报文时长为376μs。大部分广播报文只有128μs,而大部分数据报文时长为144μs。

3.1.4 主机/控制器接口
对于许多设备,主机/控制器接口(HCI)的出现为主机提供了一个与控制器通信的标准接口。这种结构上的分割在经典蓝牙里十分盛行,有60%以上的蓝牙控制器都使用HCI接口。它允许主机将命令和数据发送到控制器,并且允许控制器将事件和数据发送到主机。主机/控制器接口实际上由两个独立的部分组成:逻辑接口和物理接口。
逻辑接口定义了命令和事件及其相关的行为。逻辑接口可以交付给任何物理传输(physical transport),或者通过位于控制器上的本地应用程序编程接口(API)交付给控制器,后者可以包含嵌入式主机协议栈。
物理接口定义了命令、事件和数据如何通过不同的连接技术来传输。已定义的物理接口包括USB、SDIO和两个UART的变种。对大部分控制器而言,它们只支持一个或两个接口。考虑到实现一个USB接口需要大量的硬件,而且不属于低功耗的接口,所以它通常不会出现在低功耗蓝牙的单模控制器上。
因为主机控制器接口存在于控制器和主机之内,位于控制器中的部分通常称为主机控制器接口的下层部分;位于主机中的部分通常称为主机控制器接口的上层部分。

时间: 2024-11-06 03:39:19

《低功耗蓝牙开发权威指南》——3.1节控制器的相关文章

《低功耗蓝牙开发权威指南》——1.1节设备类型

1.1 设备类型低功耗蓝牙技术可以构建两种类型的设备:双模设备和单模设备.双模设备既支持经典蓝牙又支持低功耗蓝牙.单模设备只支持低功耗蓝牙.当然,还有第三种类型-仅支持经典蓝牙的设备.由于双模设备支持经典蓝牙,所以能与现有的数以亿计的蓝牙设备通信.双模设备是一类新的设备,要求为主机和控制器分别提供新的软件和硬件(包括固件).因此,现有的经典蓝牙控制器或主机无法通过升级实现低功耗蓝牙.不过,大部分的双模控制器只是简单地替换了经典蓝牙的控制器的某些部分,这使得手机.电脑和其他设备的设计人员能够较快地

《低功耗蓝牙开发权威指南》——3.4节协议栈划分

3.4 协议栈划分构建一个低功耗蓝牙产品可能使用多种不同的协议栈划分方案.标准规范定义了一种协议栈划分的方法,即使用主机控制器接口分隔主机和控制器这两部分.即便如此,我们也可以使用许多不同的方案. 3.4.1 单芯片解决方案单芯片解决方案可能是低功耗蓝牙里最简单的协议栈划分方案,如图3-6所示.图中其实并未划分协议栈,产品的所有部分都装在一个芯片上.该芯片包括控制器.主机软件和应用程序.这是低功耗产品的极简方案,只需要一个电源.一根天线.一些连接按钮或灯泡的硬件接口,以及一些额外的分立元件. 不

《低功耗蓝牙开发权威指南》——1.3节术语

1.3 术语和许多高技术领域一样,在低功耗蓝牙方面工作的人们用他们自己的语言来描述一些技术特征和规范.本节列举了那些具有特殊意义的术语,并给出了解释.自适应跳频(Adaptive Frequency Hopping,AFH) 一种使用某个频率子集的技术,使设备可以避免其他非自适应技术使用该频率(比如Wi-Fi接入点).体系结构(architecture) 低功耗蓝牙的设计方案.频段(band) 参看无线频段(radio band).跳频(frequency hopping) 两个设备之间使用多个

《低功耗蓝牙开发权威指南》——2.6节凡事皆有状态

2.6 凡事皆有状态低功耗蓝牙背后有个基本的概念:任何事物都有状态.状态可以是任何东西:当前的温度.设备里电池的状态.设备名称或是对测量温度的地点的描述.它通过属性服务器上的属性协议对外公开.状态并不局限于"可读"状态,还包括"可写"状态.比如有一台可以设置温度的自动调温器,另一台设备在判断房间应升温或降温之后,可对其进行设置.既然可以公开各种状态,自然也可以公开状态机的状态.通过使用显式的状态机属性值,设备可以清楚地提供其当前的状态.这为客户端随时断开连接提供了可

《低功耗蓝牙开发权威指南》——3.2节主机

3.2 主机 主机是蓝牙世界的无名英雄.主机包含复用层.协议和用来实现许多有用而且有趣的过程.主机构建于主机控制器接口的上层部分,其上为逻辑链路控制和适配协议(L2CAP),一个复用层.在它上面是系统的两个基本构建块:安全管理器(用于处理所有认证和安全连接等事务)以及属性协议(用于公开设备上的状态数据).属性协议之上为通用属性规范,定义属性协议是如何实现可重用的服务的,而这些服务公开了设备的标准特性.最后,通用访问规范定义了设备如何以一种可交互方式找到对方并与之连接. 主机并未对其上层接口做明确

《低功耗蓝牙开发权威指南》——2.11节范式

2.11 范式 最成功的技术常围绕不同的范式而设计,低功耗蓝牙也不例外.低功耗蓝牙技术使用两个主要的架构范式:客户端–服务器架构和面向服务的架构. 2.11.1 客户端–服务器架构 在客户端–服务器架构中,客户端通过网络向服务器发送请求,服务器回复响应.这是互联网背后的主要范式,无疑也是有史以来发布的最成功的网络技术. 举个例子,当你在Web浏览器中键入一个URL地址时,它首先发送地址到DNS服务器.DNS服务器将已分配给该名称的对应的IP地址返回.然后,客户端通过超文本传输协议(HTTP)向服

《低功耗蓝牙开发权威指南》——2.1节纽扣电池

2.1 纽扣电池 纽扣电池是低功耗蓝牙的主要设计目标.这类电池(见图2-1)在使用时有非常严格的限制.图中的电池型号为CR2032,标签上的"CR"表示这是一个3V锂二氧化锰电池,"20"表示该电池直径为20mm,"32"表示高为3.2mm.除图中所示的型号外,其他的一些电池尺寸也很常见. 对于这类小型电池而言,各品牌的电池所能存储的最大能量非常接近.一个典型的CR2032的额定容量在3V时为230mAh,如果换一个场景可能更好理解-这些能量仅够

《低功耗蓝牙开发权威指南》——2.3节昂贵的内存

2.3 昂贵的内存众所周知,一台电脑的内存越多,通常而言价格就越贵.然而,计算机内每一个比特内存不仅费钱,还费能量.内存通常需要动态刷新-每隔一小段时间芯片中的内容便要刷新一次.这种动态刷新需要能量,而设备装备的内存越多也就需要更多的能量来为其供电.因此,整个低功耗蓝牙设计在每一层都考虑了降低内存的数量.例如,在链路层保持较短分组有助于减少无线电发送和接收数据包时对内存的要求.例如,属性协议层不需要处理任何长度大于23字节的数据报文,在状态转换时也不要求存储任何状态信息.所有这些都降低了对内存的

《低功耗蓝牙开发权威指南》——1.2节设计目标

1.2 设计目标评论一种技术,一个首先浮现的问题是设计者是如何优化该技术的.大多数技术通常具有一定的适用性,也会有一两项显著的优势.而了解这些优势对于加深对该技术的理解将大有裨益.对于低功耗蓝牙而言,答案非常简单.它的设计目标就是实现最低的能耗.蓝牙SIG的一个独特之处在于该组织制定并控制从物理层到应用程序的所有层次.SIG在一个合作.开放.由商业驱动的标准化模式下运行,在过去的十多年间不断优化无线规范的制定流程,使得蓝牙规范在发布之后不但可以立即使用,而且具有互通性.鲁棒性以及极高的质量.在设

《低功耗蓝牙开发权威指南》——2.2节时间即能量

2.2 时间即能量时间即能量是贯穿低功耗蓝牙设计的另一个基本概念.一旦无线电开始工作它便需使用能量,哪怕只是检查是否需要发送或者接收.因此,减少必要操作的执行时间变得十分重要.许多关键而重复的操作必须通过一定的措施实现优化,包括鲁棒地发现设备.连接设备和发送数据.减少这些活动所需的时间,能耗得以减少,从而延长了电池寿命.鲁棒的设备发现要求至少有两个设备:其中之一用于寻找其他设备,其他一个或多个设备则处于可发现状态.在低功耗蓝牙中,一个设备如果想被发现就必须每隔几秒发送三次短消息:而如果它想发现打