热搜
您的位置:首页 >> 体育

技术干货基于ZephyrOS19版本构建

2019年05月14日 栏目:体育

作者:Carles Cufi大到笔记本电脑,小到、可穿戴设备几乎都支持蓝牙通信,蓝牙俨然已经成为消费电子产品的标配。加上蓝牙5.0的推出

作者:Carles Cufi

大到笔记本电脑,小到、可穿戴设备几乎都支持蓝牙通信,蓝牙俨然已经成为消费电子产品的标配。加上蓝牙5.0的推出,意味着蓝牙传输速度更快,传输范围更广,连接稳定性更强,在物联应用中的技术优势更加明显。作为专门为物联设备推出的Zephyr操作系统,自推出以来就已包括了对蓝牙BLE的支持。的Zephyr OS 1.9版本又对蓝牙的支持做了更新,包括支持mesh,支持LwM2M协议,还包括具有资格认证的控制器子系统,允许带有BLE无线电的MCU连接到运行BLE主机堆栈的处理器上。

那么,如何基于Zephyr OS 1.9++版本构建一个合格的BLE控制器?这是使用Zephyr OS和蓝牙技术进行设计的开发者们关心的问题,本文就从技术运用的角度来详细阐述。首先,仔细观察构成完全BLE协议栈的不同层,有助于开发者们了解这一个功能。

有三个主要层共同构成了一个完全的BLE协议栈:

BLE主机:这一层位于应用程序下面,它由多个(非实时)络和传输协议构成,使应用程序和对等装备之间以标准的和可互操作的方式进行通信;

BLE控制器:BLE控制器履行链路层(LL),这是一种低级实时协议,它与BLE无线电硬件一起提供标准的互操作性无线通信。链路层调度包接收和传输,保证数据传输,并处理所有LL控制进程;

BLE无线电硬件:所需要的摹拟和数字基带功能模块允许链路层固件在2.4GHz频段发射和接收;

蓝牙规范描写了BLE主机与BLE控制器通信的格式,这被称为主机控制器接口协议(HCI)。HCI能在一系列不同的物理传输口(如:USRT、SPI或USB)上实现。这个协议定义了主机能发送给控制器的命令和(由此带来的)可以期待的事件,和需要通过无线传输的用户和协议数据格式。HCI确保不同的BLE主机和控制器能通过标准方式通讯,使来自不同的供应商的BLE主机和控制器能够组合。

协议的三个独立层和标准接口使主机和控制器可以在不同的平台上实现。以下是两种经常用到的典型配置:

单芯片配置:在这类配置中,单控制器包含所有的三层和自身应用程序。这也可以被称为片上系统(SoC)实现。在这种情况下,BLE主机和BLE控制器通过RAM中的函数调用和队列直接通信。蓝牙规范并没有规定如何在单芯片配置中执行HCI,因此两者之间的HCI命令、事件和数据流能根据具体情况来实现。Zephyr OS在Nordic公司的IC上支持这种配置,适用于体积小且尽量功耗的应用程序和设计,因为所有操作都运行在1颗单一的芯片上。

双芯片配置:采用两个单独的IC,一个运行应用程序和主机,另一个带有控制器和无线电硬件,有时候也称为连接芯片配置。当采用Zephyr OS作为控制器时,此配置允许更多种类的主机组合。因为HCI确保主机和控制器之间的互操作性,包括Zephyr自己的BLE主机和控制器,Zephyr控制器的用户可以选择使用它们喜欢的任何平台上运行的主机。例如:主机可以是运行在任何能支持Linux的处理器上的Linux BLE主机堆栈。主机控制器也能够运行Zephyr和Zephyr操作系统的 BLE主机。

Zephyr软件堆栈作为一个实时操作系统是高度可配置的,尤其是在构建程序时,BLE子系统能够通过多种方式配置,仅包括需要的特性和层,来减少RAM和ROM占用的空间及功耗。以下是能够在Zephyr项目代码库中生成的BLE启用构建的短列表:

组合构建:包括应用程序、主机和控制器,并且它专应用于单芯片配置;

主机构建:Zephyr OS主机构建将包括应用程序和BLE主机,以及与外部控制器芯片接口的HCI驱动程序(USRT或SPI);

控制器构建:当作为BLE控制器构建时,Zephyr项目包括链路层和特殊应用程序(hci_uart 或 hci_spi),它作为UART和SPI外设之间的桥接器,监听HCI命令,发送应用程序数据,以事件和接收的数据作为响应;

下图展示了,当使用Zephyr OS组合构建时的SoC或单芯片配置(构建包括在相同图片中的BLE主机和控制器)

这种配置现在只能在Nordic半导体的IC上实现,由于它们是Zephyr项目内置BLE控制器完全支持的芯片系列。然而,未来该项目旨在扩展对更多其它SoC系列进行支持,只要它们的BLE无线电硬件接口是公开文档的,因而适用于开源实现。

当使用连接或双芯片配置时,几种主机和控制器组合是可以的,其中一部分以下所示:

当使用Zephyr OS主机时(左图),Zephyr OS的两个实例必须使用两种不同的配置构建,产生两个独立的且必须分别编程到每个芯片中的映像。主机构建映像包括应用程序,BLE主机和所选的HCI驱动程序(UART或SPI),而控制器构建运行hci_uart 或 the hci_spi app,向BLE控制器提供接口。

如图片右边显示,这种配置不限于使用Zephyr OS主机。确实可以采用众多现有的GNU/Linux发行版之一,其中大部分包括Linux自己的BLE主机(BlueZ),通过USRT(BlueZ不支持SPI)将其连接到一个或多个Zephyr OS控制器构建的实例。

作为主机,BlueZ同时支持多个控制器,为那些需要同时操作多个BLE无线电却又共享相同主机堆栈的应用程序。

为了在商业产品中使用Zephyr OS控制器进行构建,需要通过蓝牙特别兴趣小组(SIG)的资格认证流程。控制器子系统必须遵照蓝牙规范,并且符合在蓝牙低功耗设备中预期的行为。资历认证流程对所有蓝牙产品是强制性的,由一系列被SIG定义的针对特殊实现的测试组成。然后将测试证据提供给蓝牙SIG,以证明该装备在被授与资格认证前确实符合要求。

Nordic半导体已经宣布,Zephyr OS 1.9通过了所有必须的HCI 和链路层一致性测试,以便于基于nRF5x系列芯片作为控制器子系统进行设计的认证。Zephyr OS控制器子系统的预确认允许终端产品制造商快速开发BLE终端用户产品,并有信心他们的解决方案能被认证。Nordic将为Zephyr 1.9 OS控制器在nRF5x系列IC上构建提供认证QDID(认证设计ID),然后可以在认证终端产品时加快产品认证,如:终端产品制造商不需要重复链路层和HCI测试。

像RTOS的其它部份一样,Zephyr OS控制器构建是可配置的。然而,资历列表包括对实现功能的引用,这些意味着符合授权的QDID需要并入控制器构建。以下功能已经被并入控制器构建且经过了认证;

在nRF52x 芯片上除了Advertising Extensions之外,所有蓝牙5.0功能;

在nRF51x芯片上除了Advertising Extensions之外所有蓝牙5.0功能, 数据长度扩展,2Mbps和编码PHY,以及基于控制器的隐私。

注意:Nordic的资格认证将只包括BLE控制器,它意味着那些被用于特殊设计的主机将必须被独立认证。

开发者们可以自己动手测试BLE控制器,并且验证它是否符合你未来产品的需求,请采用1.9版本进行测试!

关于Zephyr

Zephyr 项目是一款小型且可扩大的操作系统,特别适用于资源受限的硬件系统,可支持多种架构;该系统高度开源,对开发人员社区完全开放,开发人员可根据需要对该系统进行二次开发,以支持硬件、工具和装备驱动程序;该系统高度模块化平台,可轻松集成任何架构的第三方库和嵌入式设备。

--end--

什么情况吃益母颗粒
益母颗粒怎么吃
经期延长量多吃什么药
  • 友情链接
  • 合作媒体