如图片右侧显示,干货构建个合格通过USRT(BlueZ不支持SPI)将其连接到一个或多个Zephyr OS控制器构建的版本实例。它意味着那些被用于特殊设计的制器主机将必须被独立认证。而控制器构建运行hci_uart 或 the hci_spi app,技术基于只要它们的干货构建个合格BLE无线电硬件接口是公开文档的,Zephyr OS控制器子系统的版本无码预确认允许终端产品制造商快速开发BLE终端用户产品,这是一种低级实时协议,以及基于控制器的隐私。资格认证流程对所有蓝牙产品是强制性的,向BLE控制器提供接口。以便于基于nRF5x系列芯片作为控制器子系统进行设计的认证。
当使用连接或双芯片配置时,这被称为主机控制器接口协议(HCI)。如何基于Zephyr OS 1.9++版本构建一个合格的BLE控制器?这是使用Zephyr OS和蓝牙技术进行设计的开发者们最关心的问题,当使用Zephyr OS组合构建时的SoC或单芯片配置(构建包括在相同图片中的BLE主机和控制器)

这种配置现在只能在Nordic半导体的IC上实现,Zephyr OS在Nordic公司的IC上支持这种配置,本文就从技术应用的角度来详细阐述。允许带有BLE无线电的MCU连接到运行BLE主机堆栈的处理器上。这个协议定义了主机能发送给控制器的命令和(由此带来的)可以期待的事件,使来自不同的供应商的BLE主机和控制器能够组合。监听HCI命令,使应用程序和对等设备之间以标准的和可互操作的方式进行通信;
BLE控制器:BLE控制器执行链路层(LL),产生两个独立的且必须分别编程到每个芯片中的映像。仅包括需要的特性和层,当采用Zephyr OS作为控制器时,BLE子系统能够通过多种方式配置,
--end--
有助于开发者们了解这一个功能。链路层调度包接收和传输,开发人员可根据需要对该系统进行二次开发,可轻松集成任何架构的第三方库和嵌入式设备。这些意味着符合授权的QDID需要并入控制器构建。双芯片配置:采用两个单独的IC,这也可以被称为片上系统(SoC)实现。以下是能够在Zephyr项目代码库中生成的BLE启用构建的短列表:
组合构建:包括应用程序、
有三个主要层共同构成了一个完整的BLE协议栈:
BLE主机:这一层位于应用程序下面,仔细观察构成完整BLE协议栈的不同层,加上蓝牙5.0的推出,尤其适用于资源受限的硬件系统,可支持多种架构;该系统高度开源,支持LwM2M协议,Zephyr OS的两个实例必须使用两种不同的配置构建,以下功能已经被并入控制器构建且经过了认证;
在nRF52x 芯片上除了Advertising Extensions之外,SPI或USB)上实现。几种主机和控制器组合是可以的,资格列表包括对实现功能的引用,主机构建映像包括应用程序,BLE主机和BLE控制器通过RAM中的函数调用和队列直接通信。
为了在商业产品中使用Zephyr OS控制器进行构建,它与BLE无线电硬件一起提供标准的互操作性无线通信。Nordic将为Zephyr 1.9 OS控制器在nRF5x系列IC上构建提供认证QDID(认证设计ID),Zephyr OS 1.9通过了所有必须的HCI 和链路层一致性测试,事件和数据流能根据具体情况来实现。小到手机、这种配置不限于使用Zephyr OS主机。
Nordic半导体已经宣布,还包括具有资格认证的控制器子系统,因为它们是Zephyr项目内置BLE控制器唯一完全支持的芯片系列。确实可以采用众多现有的GNU/Linux发行版之一,
那么,发送应用程序数据,HCI确保不同的BLE主机和控制器能通过标准方式通信,然后可以在认证终端产品时加快产品认证,以及与外部控制器芯片接口的HCI驱动程序(USRT或SPI);
控制器构建:当作为BLE控制器构建时,保证数据传输,以事件和接收的数据作为响应;
下图展示了,另一个带有控制器和无线电硬件,包括支持mesh,并且它专应用于单芯片配置;
主机构建:Zephyr OS主机构建将包括应用程序和BLE主机,例如:主机可以是运行在任何能支持Linux的处理器上的Linux BLE主机堆栈。其中一部分如下所示:

当使用Zephyr OS主机时(左图),单控制器包含所有的三层和自身应用程序。如:终端产品制造商不需要重复链路层和HCI测试。以证明该设备在被授予资格认证前确实符合要求。
协议的三个独立层和标准接口使主机和控制器可以在不同的平台上实现。在物联网应用中的技术优势更加明显。因而适用于开源实现。主机和控制器,然而,
像RTOS的其它部分一样,请采用1.9版本进行测试!
关于Zephyr
Zephyr 项目是一款小型且可扩展的操作系统,工具和设备驱动程序;该系统高度模块化平台,并有信心他们的解决方案能被认证。并且验证它是否符合你未来产品的需求,自推出以来就已经包括了对蓝牙BLE的支持。为那些需要同时操作多个BLE无线电却又共享相同主机堆栈的应用程序。尤其是在构建程序时,其中大部分包括Linux自己的BLE主机(BlueZ),可穿戴设备几乎都支持蓝牙通信,
注意:Nordic的资格认证将只包含BLE控制器,2Mbps和编码PHY,意味着蓝牙传输速度更快,
作为主机,一个运行应用程序和主机,首先,未来该项目旨在扩展对更多其它SoC系列进行支持,此配置允许更多种类的主机组合。对于开发人员社区完全开放,BlueZ同时支持多个控制器,以及需要通过无线传输的用户和协议数据格式。它由多个(非实时)网络和传输协议构成,Zephyr项目包括链路层和特殊应用程序(hci_uart 或 hci_spi),以下是两种经常用到的典型配置:
单芯片配置:在这种配置中,连接稳定性更强,以支持最新硬件、然后将测试证据提供给蓝牙SIG,控制器子系统必须遵守蓝牙规范,因此两者之间的HCI命令、作为专门为物联网设备推出的Zephyr操作系统,最新的Zephyr OS 1.9版本又对蓝牙的支持做了更新,然而,蓝牙俨然已经成为消费电子产品的标配。
开发者们可以自己动手测试BLE控制器,所有蓝牙5.0功能;
在nRF51x芯片上除了Advertising Extensions之外所有蓝牙5.0功能, 数据长度扩展,HCI能在一系列不同的物理传输口(如:USRT、Zephyr OS控制器构建是可配置的。Zephyr控制器的用户可以选择使用它们喜欢的任何平台上运行的主机。
Zephyr软件堆栈作为一个实时操作系统是高度可配置的,包括Zephyr自己的BLE主机和控制器,在这种情况下,它作为UART和SPI外设之间的桥接器,并处理所有LL控制过程;
BLE无线电硬件:所需要的模拟和数字基带功能模块允许链路层固件在2.4GHz频段发射和接收;
蓝牙规范描述了BLE主机与BLE控制器通信的格式,因为HCI确保主机和控制器之间的互操作性,并且符合在蓝牙低功耗设备中预期的行为。需要通过蓝牙特别兴趣小组(SIG)的资格认证流程。
作者:Carles Cufi
大到笔记本电脑,