第 1 章 - Azure RTOS NetX Duo 简介

Azure RTOS NetX Duo 是 TCP/IP 标准的一种高性能实时实现,专用于基于 Azure RTOS ThreadX 的嵌入式应用程序。 本章提供了 NetX Duo 的简介,并说明了其应用和优势。

NetX Duo 的独特功能

与其他 TCP/IP 实现不同,NetX Duo 的设计用途非常广泛,可轻松地从基于小型微控制器的应用程序扩展到使用功能强大的 RISC 和 DSP 处理器的应用程序。 这与公共域或最初适用于工作站环境但随后被挤压为嵌入式设计的商业实现形成了鲜明对比。

Piconet™ 体系结构

NetX Duo 的卓越可扩展性和性能的基础是 Piconet,这是一种专为嵌入式系统设计的软件体系结构。 Piconet 体系结构通过将 NetX Duo 服务实现为 C 库来最大程度地提高可扩展性。 通过这种方式,只有应用程序使用的那些服务才会被引入最终运行时映像。 因此,NetX Duo 的实际大小由应用程序决定。 对于大多数应用程序,NetX Duo 的指令映像大小要求介于 5 KB 到 30 KB 之间。 如果为 IPv6 地址配置和邻居发现协议启用了 IPv6 和 ICMPv6,NetX Duo 的大小将介于 30 KB 到 45 KB 之间。

仅当 NetX Duo 必需时,通过对内部组件函数调用分层可实现卓越的网络性能。 此外,很多 NetX Duo 处理都是以内联方式直接进行的,因而与过去的嵌入式设计中使用的工作站网络软件相比,其性能优势更为突出。

零复制实现

NetX Duo 提供了 TCP/IP 的基于数据包的零复制实现。 零复制意味着永远不会在 NetX Duo 内复制应用程序的数据包缓冲区中的数据。 这极大地提高了性能,并为应用程序释放了宝贵的处理器周期,这在嵌入式应用程序中很重要。

UDP Fast Path™ 技术

利用 UDP Fast Path 技术,NetX Duo 可以提供尽可能快的 UDP 处理。 在发送端,UDP 处理(包括可选的 UDP 校验和)包含在 nx_udp_socket_send 服务中。 在将数据包准备就绪时可通过内部 NetX Duo IP 发送例程之前,不会进行其他函数调用。 此例程也是平面的(也就是说,其函数调用嵌套最少),所以可将数据包快速调度到应用程序的网络驱动程序中。 接收 UDP 数据包时,NetX Duo 数据包接收处理会将数据包直接置于适当的 UDP 套接字的接收队列上,或将数据包交给第一个挂起等待 UDP 套接字接收队列接收数据包的线程。 无需进行其他 ThreadX 上下文切换。

ANSI C 源代码

NetX Duo 完全以 ANSI C 写入,可立即移植到几乎任何具有 ANSI C 编译器和 ThreadX 支持的处理器体系结构。

不是黑盒

NetX Duo 的大多数分发都包含完整的 C 源代码。 这消除了许多商业网络堆栈所出现的“黑盒”问题。 通过使用 NetX Duo,应用程序开发人员可以准确地了解网络堆栈正在进行的操作,没有秘密!

如果有源代码,还允许进行特定于应用程序的修改。 尽管不建议这样做,但如果需要,具备修改网络堆栈的能力是有益的。

对于习惯使用内部或公共域网络堆栈的开发人员而言,这些功能尤为贴心。 他们期望拥有源代码和修改源代码的能力。 NetX Duo 是面向此类开发人员的终极网络软件。

与 BSD 兼容的套接字 API

对于旧版应用程序,NetX Duo 还提供了与 BSD 兼容的套接字接口,用于调用下面的高性能 NetX Duo API。 这有助于将现有的网络应用程序代码迁移到 NetX Duo。

NetX Duo 支持的 RFC

NetX Duo 对描述基本网络协议的 RFC 的支持包括但不限于以下网络协议。 NetX Duo 遵循内存占用少且执行效率高的实时操作系统的限制中的所有常规建议和基本要求。

RFC 说明
RFC 1112 IP 多播的主机扩展 (IGMPv1)
RFC 1122 Internet 主机的要求 - 通信层
RFC 2236 Internet 组管理协议,版本 2
RFC 768 用户数据报协议 (UDP)
RFC 791 Internet 协议 (IP)
RFC 792 Internet 控制消息协议 (ICMP)
RFC 793 传输控制协议 (TCP)
RFC 826 以太网地址解析协议 (ARP)
RFC 903 反向地址解析协议 (RARP)
RFC 5681 TCP 拥塞控制

下面是 NetX Duo 支持的 IPv6 相关 RFC。

RFC 说明
RFC 1981 Internet 协议 v6 (IPv6) 的路径 MTU 发现
RFC 2460 Internet 协议 v6 (IPv6) 规范
RFC 2464 通过以太网网络传输 IPv6 数据包
RFC 4291 Internet 协议 v6 (IPv6) 寻址体系结构
RFC 4443 Internet 协议 v6 (IPv6) 的 Internet 控制消息协议 (ICMPv6)规范
RFC 4861 IP v6 的邻居发现
RFC 4862 IPv6 无状态地址自动配置

嵌入式网络应用程序

嵌入式网络应用程序是需要网络访问的应用程序,并在产品内隐藏的微处理器(如移动电话、通信设备、汽车引擎、激光打印机和医疗设备等)上执行这些应用程序。 此类应用程序几乎总是具有一定的内存和性能限制。 嵌入式网络应用程序的另一个不同之处在于,其软件和硬件具有专门的用途。

必须在确切的一段时间内执行其处理的网络软件被称为实时网络软件,当对网络应用程序施加时间约束时,它们会被分类为实时应用程序。 由于嵌入式网络应用程序与外部世界的固有交互,因此嵌入式网络应用程序几乎总是实时的。

NetX Duo 的优势

将 NetX Duo 用于嵌入式应用程序的主要优势在于高速 Internet 连接和较小的内存需求。 NetX Duo 还与高性能、多任务 ThreadX 实时操作系统集成在一起。

更高的响应能力

高性能 NetX Duo 协议堆栈使嵌入式网络应用程序的响应速度比以往更快。 对于具有大量网络流量或对单个数据包的严格处理要求的嵌入式应用程序而言,这一点尤其重要。

软件维护

使用 NetX Duo,开发人员可以轻松地对其嵌入式应用程序的网络方面进行分区。 这种分区让整个开发过程变得简单,并极大地加强了未来的软件维护。

更高的吞吐量

NetX Duo 提供了最高性能的网络,这可以通过最少的数据包处理开销来实现。 这还可以增加吞吐量。

处理器隔离

NetX Duo 在应用程序、基础处理器和网络硬件之间提供可靠的独立于处理器的接口。 这使开发人员能够专注于应用程序的网络方面,而不是花费额外时间处理直接影响网络的硬件问题。

易用性

NetX Duo 在设计时考虑到了应用程序开发人员。 NetX Duo 体系结构和服务调用接口易于理解。 因此,NetX Duo 开发人员可以快速使用其高级功能。

缩短上市时间

NetX Duo 强大的功能加速了软件开发过程。 NetX Duo 提取了大多数的处理器和网络硬件问题,因而从大部分特定于应用程序网络的区域中消除了这些顾虑。 这一点再加上易用性和高级功能集,缩短了上市时间!

保护软件投资

NetX Duo 专门以 ANSI C 写入,与 ThreadX 实时操作系统完全集成。 这意味着 NetX Duo 应用程序可立即移植到所有 ThreadX 支持的处理器。 更好的是,一个新的处理器体系结构可以在几周内得到 ThreadX 的支持。 因此,使用 NetX Duo 可以确保应用程序的迁移路径并保护原始开发投资。

IPv6 就绪徽标认证

NetX Duo“IPv6 就绪”认证是通过 IPv6 就绪组织发布的“IPv6 核心协议(第 2 阶段)自测”包获得的。 有关测试平台和测试用例的更多信息,请参阅以下 IPv6-Ready 项目网站: https://www.ipv6ready.org/

第 2 阶段 IPv6 核心协议自测套件通过广泛测试,验证 IPv6 堆栈是否遵循以下 RFC 中所述的要求:
第 1 节:RFC 2460
第 2 节:RFC 4861
第 3 节:RFC 4862
第 4 节:RFC 1981
第 5 节:RFC 4443

IxANVL 测试

通过 IXIA 的 IxANVL 测试 NetX Duo。 IxANVL 是验证自动化网络和协议的行业标准。 有关 IxANVL 的更多信息,请访问 https://www.ixiacom.com/products/ixanvl

特别是,通过 IxANVL 测试了以下 NetX Duo 模块:

模块 标准
IP RFC791
RFC1122
RFC894
ICMP RFC792
RFC1122
RFC1812
UDP RFC768
RFC1122
TCP-Core RFC793
RFC1122
RFC2460
TCP-Advanced RFC1981
RFC2001
RFC2385
RFC2463
RFC813
RFC896
TCP-Performance RFC793
RFC1323
RFC2018

安全认证

TÜV 认证

NetX Duo 已被 SGS-TÜV Saar 认证可用于安全关键型系统,并且符合 IEC61508 和 IEC-62304 标准。 该认证证明:NetX Duo 可用于开发达到国际电工委员会 (IEC) 61508 和 IEC 62304 最高安全完整性等级的安全相关软件,这些安全完整性级别旨在确保“电气设备、电子设备和可编程的安全相关电子系统的功能安全”。SGS-TÜV Saar 由德国的 SGSGroup 和 TÜV Saarland 合并而成,现已成为领先的经过资格验证的独立公司,专门为全球的安全相关系统测试、审核、验证和认证嵌入式软件。 工业安全标准 IEC 61508 以及从其派生的所有标准(包括 IEC 62304)用于确保电气设备、电子设备和可编程的安全相关电子医疗设备、流程控制系统、工业机械和铁路控制系统的功能安全。

SGS-TÜV Saar 已根据 ISO 26262 标准对 NetX Duo 进行了认证,确定其可用于安全关键型汽车系统。 此外,NetX Duo 还获得了汽车安全完整性等级 (ASIL) D 的认证,该等级代表了 ISO 26262 认证的最高等级。

此外,SGS-TÜV Saar 已对 NetX Duo 进行了认证,确定其可用于安全关键型铁路系统,符合 EN 50128 标准并达到 SW-SIL 4 等级。

Diagram of SGS-TÜV Saar certification logo.

IEC 61508,达到 SIL 4 等级
IEC 62304,SW 安全类别为 C 类 ISO 26262 ASIL D EN 50128 SW-SIL 4

重要

请联系 Microsoft,了解 NetX Duo 的哪些版本已通过 TÜV 认证,或者如何获取测试报表、证书和相关文档。

UL 认证

NetX Duo 已通过 UL 的认证,符合面向可编程软件组件的 UL 60730-1 Annex H、CSA E60730-1 Annex H、IEC 60730-1 Annex H、UL 60335-1 Annex R、IEC 60335-1 Annex R 和 UL 1998 安全标准。 连同 IEC/UL 60730-1(其附件 H 中对“使用软件进行控制”的要求)一起,IEC 60335-1 标准在其附件 R 中描述了“可编程电子电路”的要求。IEC 60730 附件 H 和 IEC 60335 -1 附件 R 阐述了在洗衣机、洗碗机、烘干机、冰箱、冰柜和烤箱等电器中使用的 MCU 硬件和软件的安全性。

Diagram of UL certification logo.

UL/IEC 60730、UL/IEC 60335、UL 1998

重要

请联系 Microsoft,了解 NetX Duo 的哪些版本已通过 UL 认证,或者如何获取测试报表、证书和相关文档。