跳至主要内容

Nordic开发生态全景解析:从nRF5 SDK到nRF Connect SDK

· 閱讀時間約 11 分鐘
w0x7ce
MySelf

发布于 2025-02-28 23:30:34(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 5112 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

在物联网和低功耗无线通信领域,NordicSemiconductor作为行业领导者,提供了 两套主要的软件开发工具:传统的nRF5SDK和现代化的nRF Connect SDK。这两套 开发环境有着不同的架构理念、功能特点和运适用场景。本文将系统地梳理Nordic的开 发生态,帮助开发者选择最适合自己项目的开发路径。

一、nRF5 SDK17.0.2详解

nRF5 SDK是Nordic较早推出的开发套件。采用传统的单体死构设计。主要针对nRF5系列芯片。为提 机开发或搭配FreeRTOS使用而设计。

1.目录结构与功能组织

nRF5SDK的目录结构按照功能和协议类型进行分类。清晰直观:

1.1无线协收相关目录

ble_peripheral:外图设备角色的示例应用

  • bleapptenpLate:基酯项目模板

  • bleappblinky:简单LED控制示例

bLeappuart: BLE-UART

  • bleapphrs:心率服务

  • bleapphics_keyboard/mouse: HID设鲁实现

  • 其他标准服务实现(血魅、血压、温度计等)

ble_central:中央设备角色的示例应用

  • blcapphrs_c:心率服务客户端

bLeappuart_c: UART客户端

  • blcapmultilink_central:多连接中央设备

blecentraland_peripheral:混合角色设备

  • ant:ANT议相关示例

ant broadcast: 广播功能 ant_plus: ANT+标准实现 ant_fs:文件系统功能

  • antsearchsharing等盛级功能

  • nfc:近场通信实现

recordtext、recordurl等基强功能

  • adafruittagrender:标签说取

802154:IEEE 802.15.4议支持 proprietary_rf: Nordic专有无线协议 esb: Enhanced ShockBurst

  • gzl1: Gazell协议

1.2功能组件与外设目录

peripheral:丰富的外设驱动示例

  • uart、sp1、12c、tvi等通信接口

pm、tiner、rtc等计时控制功能 flash、qsp1等存储接口

  • blinky等基础示例

crypto:加密与安全功能

  • dfu:设备国件升级

secure_bcotloader:安全启动

  • open_bootloadcr:开敏式启动

  • dtn:直接测试模式

multiprotocol:多诗议并存示例

1.3硬件支持

每个示例通常包含针对不同开发板的子目录: pca16640: nRF52832开发板

  • pca10656:nRF52840开发板

pca16640e: nRF52818开发板

  • pca10056e:nRF52811开发板

pca16859: nRF52840 US8 Dongle

  • pca10180:nRF52833升发板

2.SoftDevice详解

SoftDevice是Nordic的专有协议栈,以预编译二进制形式提供,运行在应用程序之下,提供无线通 信功能。

2.1 5oftDevice 5112 (版本7.2.8)

■定位:内存优化的外图设备专用BLE协议栈

  • 适用芯片: nRF52805、 nRF52818、nRF52811、nRF52820, nRF52832

■特点:资源占用少,仅支持外围角色

  • 适用场景:葡单客器,遥控器等资源受限设备

2.2 5oftDevice S113 (版本7.2.0)

  • 定位:内存优化的外图设备专用BLE协议税

  • 适用片:nRF52805至nRF52848全系列

  • 特点:支持更多芯片,功能仍聚焦于外围角色

  • 适用场景:与S112英似,但硬件选择更灵活

2.3 5oftDevice 5122 (版本s.0.8)

  • 定位:内存优化的中央设备专用BLE协议核

  • 适用芯片:nRF52811、nRF52828、nRF52833

■特点:针对中央角色优化

  • 适用场景:网关、控制器等需连接多个外围设备的应用

2.4 5oftDevice 5132 (版本7.2.0)

定位:高性能的中央和外图双角色BLE协议栈

  • 适用芯片:nRF52816、nRF52832

特点:支持同时作为中央和外图设备

  • 适用场景:需要角色切换的设备,如智能手表

2.5 5oftDevice S14θ (版本7.2.0)

  • 定位:功能丰富的中央和外围双角色BLE协议栈

  • 适用著片: nRF52811、 nRF52828、 nRF52833. nRF52840

  • 特点:5132的增强版,支持更多喜芯片

适用场景:复杂设备,如医疗设备、高端穿敷设备

2.6 5oftDevice 5212 (版本6.1.1)

  • 定位:ANT协议核实现

  • 适用片:nRF52816、nRF52832

■特点:支持所有ANT助能和网络拓扑

  • 适用场景:运动健身设备、心率监测器等

二、nRF Connect SDK详解

nRF Connect SDK是Nordic较新的开发套件,基于Zephyr RTOS构建。采用模块化设计。支持更 广泛的芯片系列和更多的无线协议。

1.核心特点

从官方文档中可以看出,nRF Connect SDK具有以下核心特点:

  • 基于Zephyr RTOS:集成了开源实时操作系统,提供任务调疫、电源管理等功能

  • 开源基础:与Zephyr一样,基于开源项目构證

  • 中间件与安全性:包含QTT、CoAP、LaM2M等中间件,以及Trusted Firmare-M等安全组件

  • 预认证库:提供预认证的优化库,包延SoftDevice、Matter,Thread等

  • 事富的连接性支持:支持盐牙、Mesh、ANT、LTE-M/NB-IoT、DECT NR+、Matter、Thread、Wi-

F1等

  • 远程可观测性:支持远程调试、监控和FOTA(空中固件升级)

  • 可扩展:支持out-of-tree开发,适用于各种规模的项目

  • 第三方集成:与An5、nRF Cloud、Mcnfault等集成

  • 多样化参考设计:从HID设备到音预设备的高级硬件参考设计

2.目录结构

从G1tHub仓库可以看出,nRF Connect SDK的月录结构如下:

  • applications: 成熟的应用示例,如nrf_desktop

samples:按功能和协议分类的示例代码 subsys:子系统,是供各和功能模块

  • Lib:可重用的库函数

  • include:头文件

  • drivers:设备驱动

modules:外部模块。如TF-H

  • boards:开发板支持文件

dts:说备树堤范

  • cmake:构注系统配置

sysbuild:系统构题工具

  • config:配置文件

scripts:构胞和工具即本

  • doc:文档

tests:测试用例 ext:外部依观项

  • zephyr:Zephyr RTOS聚成

3.支持的硬件平台

nRF Connect SDK支持亚广泛的Nordic芯片系列: nRF52系列: nRF52818/820/832/833/848等

  • nRF53系列: nRF5346 (应用核和网络核)

  • nRF54系列: nRF54L15、nRF54H2e等新—代芯片

nRF70系9: nRF7802 (IW1-F1)

  • nRF91系列: nRF916B, nRF9161 (蜂案IoT )

三、两套SDK的深度对比与选择指南

1.架构理念对比

nRF5 SDK:

  • 传统的单体架构

南向视机或轻量缓RTOS(如FreeRTOS)开发

  • 示例代码直接、易于理解

使用留编译的SoftDevice提供无线物议栈

  • 技示例和协议组织代码

nRF Connect SDK:

  • 现代化的模块化架构

基于Zephyr RTOS构腿

  • 使用设备树指述硬件

■采用Kconfig系统配置软件组件

  • 使用vest工具管睡项目

2.功能能力对比

nRF5 SDK:

  • 专注于nRF5系列芯片

  • 提供基础的BLE、ANT、NFC等无线协议支持

依额SoftDevice提供协议核功能

  • 示例丰富但集成度较任

nRF Connect SDK:

  • 支持nRF5/nRF53/nRF54/nRF78/nRF91全系列

提供更广泛的协议支持。包括Thread,Zigbee、Matter等

  • 集成了Zephyr生态系接的所有功

■支持蜂寓IaT和Wi-Fi等高级连接方式

  • 提供亚完善的安全特性和认证支持

3.开发流程对比

nRF5SDK开发流程:

1.复制量接近需求的示例项目

2.配置SoftDevice和应用程序

3.修改代码实现自定义功能

4. 使用IDE (如SES、Kei1、IAR) 编译和调试

nRF Connect SDK开发流程:

1.使用uest工具初始化工作区

2.选择合适的示例作为起点

3.通过Kcanfig和设备树配置硬件和软件

4.使用CMake构建系统编译

5.可快用vS Cade+nRF Cannect插件或命令行开发

4,适用场景与选择指南 选择nRF5SDK的场景: 简单的独立应用。不需要RTOS

  • 资应极其有限的设备

■学习藏入式开发的初学者

  • 维护已有的基于nRF5 SDK的项目

■仅需基础LE功能的应用 选择nRF Connect SDK的场景:

  • 需要RTOS功能的复杂应用

  • 需要支持量斯芯片系列(nRF53/54/76/91)

  • 需要高级连接胁议(Thread/Natter/Wi-Fi)

  • 希望利用开源生态系统的优募

  • 关注安全性和可认证性的产品

■长期维护的商业产品

四、开发最佳实践

1.nRF5 SDK开发建议

  • 从简单示例入手:先从blinky等基础示例开始,了解5DK结构

理解SoftDevice:熟悉SoftDevice的配置和事件处理机制

  • 选择合适的SoftDevice:

■仅需外图设备功能:S112/S113

  • 需要中央设备功能:S122

  • 需要双角色:5132/S148

  • 需要ANT物议:S212

  • 示例驱动开发:基于与需求最接近的示例账改,登免从零开始

  • 关注事件处理:BLE应用的核心是事件驱动模型,重点注解事件处理流程

2.nRFConnectSDK开发建议

■掌握Zephyr基础:学习Zephyr的线程、信号量等RToS概念

  • 理解设备树:掌握设备树描述硬件的方法

  • 熟悉Kconfig系统:了解如何通过Kconfig配置软件组件

  • 使用West工具:学习West命令管理项目

■从样例学习:nRFConnectSDK有丰富的样例,从中学习各功能模块的使用 ■关注测试用例:测试用例通常包含模块使用的最简实现

  • 善用命令行工具:熟悉构建和烧录的命令行工具,提高效率

3.迁移策略

如果需要从nRF5SDK迁移到nRFConnectSDK:

1.先理解应用的核心功能和工作流程

2.寻找nRFConnectSDK中的对应功能模块

3.从简单功能开始重构,逐步替换复杂功能

4.利用nRFConnectSDK的示例作为参考

5.适应基于Zephyr的事件处理和线程模型

6.重新设计硬件抽象层,利用设备树

五、未来发展趋势

从Nordic的产品路线来看,未来的发展趋势非常明确:

1.nRFConnectSDK是未来主力:

■所有新芯片系列(nRF53/54/70/91)只支持nRFConnectSDK ■新的协议和功能优先添加到nRFConnectSDK

1.nRF5SDK进入维护阶段:

■仍会维护以支持已有产品

  • 不会添加重大新功能

■长期来看将逐渐被淘汰

1.Zephyr生态系统的重要性增加:

■越来越多的功能将基于Zephyr实现 ■与Zephyr社区的协作将加强

1.更强调安全性和认证:

  • 安全启动、加密、安全存储等功能成为标准

■预认证组件将继续扩展

1.多协议融合:

■不同无线技术的协同工作将成为主流 ■统一的软件架构支持多种协议 结语 Nordic的开发生态从传统的nRF5SDK向现代化的nRFConnectSDK演进,反映了嵌入式系统开发 的整体趋势:从简单的裸机编程向基于RTOS的模块化开发转变。 对于开发者而言,选择合适的开发平台应基于项目需求、团队经验和长期规划。如果是短期项目或学习 目的,nRF5SDK凭借其简单直观的特点仍是不错的选择;而对于商业产品或需要长期支持的项目, nRFConnectSDK无疑是更具前瞻性的选择。 无论选择哪种开发路径,Nordic都提供了丰富的文档、示例和工具,帮助开发者高效地实现低功耗无 线应用。了解两套SDK的优缺点和适用场景,就可以在Nordic生态系统中找到最适合自己的开发之 路。 最重要的是,持续学习和适应新工具将是在快速发展的嵌入式和IoT领域保持竞争力的关键。Nordic 的开发生态正在不断演进,紧跟其步伐将为待开发的项目带来更多可能性。

收录于低功耗

原始排版图

Nordic开发生态全景解析:从nRF5 SDK到nRF Connect SDK:微信公众号导出原始排版图