最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=104619
本章节介绍 ThreadX NetXDUO网络协议栈,让大家对NetXDUO有一个整体的了解。
5.1 初学者重要提示
5.2 Express Logic公司介绍
5.3 ThreadX NetXDUO简介
5.4 ThreadX NetXDUO安全认证
5.5 ThreadX NetXDUO支持的RFC
5.6 ThreadX NetXDUO的IxANVL测试
5.7 ThreadX NetXDUO的IPv6就绪微标认证
5.8 ThreadX NetXDUO各行各业应用案例
5.9 总结
ThreadX是小型RTOS的巅峰之作,通过了各行各业的安全认证,并且大部分都是最高安全标准。作为中间件的NetXDUO协议栈也通过了各种安全认证。
ThreadX的作者是William lamie(同样是Nucleus RTOS的原始作者,于1990年发布)。1996的时候成立了Express Logic,并于1997发布首版ThreadX RTOS。
ThreadX几乎是小型RTOS的巅峰之作,不管你之前用的那个OS,如果有精力建议还是学习下。62亿电子设备采用,是其它RTOS无法逾越的高山。ThreadX的产品涵盖了各种领域,包括NASA的多个太空探测项目,飞机自动驾驶仪系统,火星侦察轨道器等。
ThreadX及其所有中间件的安全认证等级,至今没有一款小型RTOS可以与其匹敌。这么多安全认证,公司要入大量财力,人力和物力才可以完成,早前Micrium的一篇文章还谈过这个问题,投入了太多资金和人力了,还与风河的VxWorks做了简单对比。
(1)医疗 - FDA510(k),IEC-62304 Class C,IEC-60601,ISO-14971
(2)工业 - UL-1998,IEC-61508 SIL 4
(3)运输/铁路 - EN50128 SIL 4,BS50128, 49CFR236,IEC-61508
(4)航空航天设备 - DO-178B,ED-12B,DO-278
(5)汽车 - IEC-61508 ASIL D
(6)核应用 - IEC-61508
(7)家电 - UL/IEC 60730/60335
规格如下:
USB协议栈也不错,日常用的功能也齐全
规格如下:
GUIX用于图形界面设计,功能强劲,特别是配套的图形界面开发软件GUIX Studio,可以添加设置各种主题,各种界面效果,各种字体展示,各种图片格式设置,真的是一条龙,非常方便。而且GUIX有各种安全认证。
GUIX通过了医疗认证IEC-62304 Class C,汽车认证IEC-61508 ASIL D,工业认证IEC-61508 SIL 4和运输/铁路认证EN50128,表明GUIX可用于安全关键型系统。
规格如下:
ThreadX的文件系统非常强劲,通过了各行各业的高等级安全认证。其它文件系统别说安全认证了,安全措施都不多,甚至没有。
规格如下:
再看API,一个文件系统竟然提供了230多个,仅异常处理的API就有20个(一个文件一个API)
LevelX为NAND和NOR型Flash提供擦写均衡支持,并且对于NAND型,还支持ECC校验和坏块管理。
由于NAND和NOR型Flash擦除次数是有限的,因此均匀分配闪存使用至关重要。这通常称为擦写均衡,LevelX为此而生。LevelX向用户提供一个逻辑扇区阵列,这些逻辑扇区映射到LevelX内部的物理闪存。应用程序可以将LevelX与FileX结合使用,也可以直接读取/写入逻辑扇区。LevelX专为容错而设计。Flash更新是分多个步骤进行的,每个步骤都可以中断。在下一次操作期间,LevelX自动恢复到最佳状态。
Azure RTOS NetX Duo是Microsoft的高级工业级IPv4/IPv6网络协议栈,专门针对深度嵌入式,实时和IoT应用程序而设计。NetX Duo为嵌入式应用程序提供了诸如IPv4,IPv6,TCP和UDP等核心网络协议,以及一整套完整的其他高级附加协议。Azure RTOS NetX Duo通过其他附加安全产品提供安全性,包括Azure RTOS NetX Secure IPsec和Azure RTOS NetX安全SSL / TLS / DTLS。所有这些,再加上,执行速度快和易于使用,使Azure RTOS NetX Duo成为要求最苛刻的嵌入式IoT应用程序的理想选择。
对于基本的IP和UDP支持,Azure RTOS NetX Duo的占用空间非常小,只有9 KB到15 KB。TCP功能需要额外的10 KB到13 KB的指令区存储器。Azure RTOS NetX Duo RAM的使用范围通常为2.6 KB至3.6 KB加上由应用程序定义的数据包池内存。与Azure RTOS ThreadX一样,Azure RTOS NetX Duo的大小会根据应用程序使用的服务自动缩放。这实际上消除了对复杂配置和构建参数的需求,使开发人员更轻松。
NetXDUO基本功能介绍如下:
MQTT
AutoIP
HTTP 1.0
HTTP / HTTPS 1.1
SMTP协议
DHCP
NAT
SNMP协议
DNS,mDNS,DNS-SD
POP3
Telnet
FTP,TFTP
PPP,PPPoE
SNTP
Azure RTOS NetX Duo API
IGMP
Azure RTOS NetX Secure DTLS
Azure RTOS NetX Secure TLS
ICMP
UDP协议
100 Mbps以太网上的RX 95 Mbps,MCU @ 100MHz,MCU利用率为14%
100 Mbps以太网上的TX 94 Mbps,MCU @ 100MHz,MCU利用率为10%
TCP协议
100 Mbps以太网上的RX 93 Mbps,MCU @ 100MHz,MCU利用率为20%。
100 Mbps以太网上的TX 94 Mbps,MCU @ 100MHz,MCU利用率为27%。
ARP / RARP
IPv4和IPv6
Azure RTOS NetX Secure IPSEC
DES,3DES
AES
HMAC-MD5
HMAC SHA1
Internet密钥交换(IKE)版本2支持
NetXDUO的函数命名规则是:Noun-verb naming convention (名词动词命名约定)。根据这个命名规格,我们实际看下个API,比如:nx_tcp_enable ,前缀nx,名词tcp_,动词enable。再看下面API截图(部分函数截图):
基本也都符合这个命名规则。
Azure RTOS NetX Duo提供了Zero-Copy数据包发送/接收实现,该实现与Azure RTOS ThreadX高度集成,以实现最快的性能。例如,Azure RTOS NetX Duo通常可以在80 MHz(或以下)处理器上实现接近线速的数据传输,而只使用一小部分处理器周期。
Azure RTOS NetX Duo是安全的。通过包括IPsec,SSL,TLS和DTLS在内的附加安全产品来提供此安全性。此外,该应用程序可以完全控制对Azure RTOS NetX Duo的所有外部访问,从而使确定安全风险变得更加容易。
Microsoft Azure RTOS为OEM提供了使用底层MCU / MPU硬件保护机制来保护通信以及创建代码和数据隔离的组件。设备制造商最终有责任确保设备完全满足与其特定用例相关的安全性要求。
Azure RTOS NetX Duo API直观,直接且功能强大。
API名称是用真实的单词构成的,而不是其他网络产品中常见的“alphabet soup”或高度缩写的名称。所有Azure RTOS NetX Duo API都有一个前导nx_并遵循名词-动词命名约定。此外,整个API都具有功能一致性。例如,所有挂起的API函数都有一个可选的超时,以相同的方式运行。
对于旧版应用程序,Azure RTOS NetX Duo提供了额外的BSD套接字兼容层。该层可帮助开发人员轻松迁移大型网络应用程序。
Azure RTOS NetX Duo易于安装,学习,使用,调试,验证,认证和维护。因此,NetX Duo是嵌入式IoT设备(包括Broadcom,Gainspan等公司的许多SoC)中最受欢迎的TCP / IP堆栈之一。我们始终如一的上市时间优势建立在:
从一开始,ThreadX就被设计为工业级RTOS,并附带完整的C源代码。ThreadX源代码在质量和易于理解方面树立了标杆。此外,一个函数一个源文件的方式,大大方便用户查阅浏览。
ThreadX遵守严格的编码规范,包括要求每行C代码都必须有有意义的注释。此外,ThreadX源码已通过最高标准的认证。
对于基本的IP和UDP支持,Azure RTOS NetX Duo的占用空间非常小,只有9 KB到15 KB。NetX Duo拥有用于深度嵌入式IoT应用程序的最全面的TCP / IP网络之一。此支持包括以下附加协议产品:
MQTT,CoAP,LWM2M,6LoWPAN,SSL / TLS / DTLS,IPsec,AutoIP,DHCP,DNS,mDNS,DNS-SD,FTP,HTTP,IPsec,NAT,POP3,PPP,PPPoE,SMTP,SNMP v1 / 2/3 ,Telnet,TFTP。
NetXDUO在开箱即用,可以在各种主流的32/64位处理器上运行。经过全面测试和完全支持的平台如下:
Azure RTOS NetX Duo已通过SGS-TUV Saar认证,可用于安全关键系统,符合IEC-61508 SIL 4,IEC-62304 SW安全等级C,ISO 26262 ASIL D和EN 50128的要求。该认证确认了Azure RTOS NetX Duo可用于安全相关软件的开发,以达到IEC-61508,IEC-62304,ISO 26262和EN 50128的最高安全等级,以用于电气,电子和可编程电子安全相关系统 。SGS-TUV萨尔公司由德国SGS-Group和TUV萨尔州的合资企业组成,现已成为领先的认证独立公司,致力于测试,审核,验证和认证全球安全相关系统的嵌入式软件。工业安全标准IEC 61508及其衍生的所有标准,包括IEC-62304:
同时,Azure RTOS NetX Duo已被UL认可,符合UL 60730-1附件H,CSA E60730-1附件H,IEC 60730-1附件H,UL 60335-1附件R,IEC 60335-1附件R和UL 1998可编程组件中的安全标准。UL是一家全球性,独立的安全科学公司,拥有超过一个世纪的专业知识来创新安全解决方案,涵盖从公共使用电力到可持续性,可再生能源和纳米技术方面的突破。
与TUV和UL认证相关的工件(证书,安全手册,测试报告等)可供出售。
Azure RTOS已获得EAL4 + Common Criteria安全认证。评估目标涵盖Azure RTOS ThreadX,Azure RTOS NetX Duo,Azure RTOS NetX Secure TLS和Azure RTOS NetX MQTT。这代表了深度嵌入式传感器,设备,边缘路由器和网关所需的最典型的物联网协议。
用于Microsoft Azure RTOS SC安全认证的IT安全评估工具是Brightsight BV,而证书颁发机构是SERTIT。
Azure RTOS NetX加密库已通过联邦信息处理标准化140-2(FIPS 140-2)软件认证,该认证规定了加密模块的要求。FIPS 140-2要求所有使用基于密码的安全性的联邦政府机构和部门满足与加密强度和功能有关的特定标准。这些基于密码的安全标准在加拿大和欧盟也得到认可。
用于Azure RTOS NetX加密库的信息安全评估实验室为atsec,证书颁发机构为美国国家标准技术研究院(NIST)。
NetX Duo对描述基本网络协议的RFC的支持包括但不限于以下网络协议。NetX Duo在具有较小内存占用和高效执行的实时操作系统的约束范围内遵循所有常规建议和基本要求。
以下是NetX Duo支持的与IPv6相关的RFC。
NetX Duo已使用IXIA的IxANVL进行了测试。IxANVL是用于自动化网络和协议验证的行业标准。有关IxANVL的更多信息,请访问:https://www.ixiacom.com/products/ixanvl
特别是,以下NetX Duo模块已通过IxANVL进行了测试:
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
Azure RTOS NetX Duo是获得严格的IPv6-Ready Logo认证的仅有的嵌入式TCP / IP堆栈之一,证明它已通过由IPv6论坛管理和验证的一致性和互操作性测试。
ThreadX官网给出了航空航天,工业,汽车,医疗,消费电子,物联网,片上系统等方向的具体案例 : https://rtos.com/x-ware-showcase/
以消费电子方向为例,三星,NEST,HTC等都是其客户,对应的产品也非常多。并且这些产品的直接使用ThreadX全套,基本ThreadX有的,就不再使用第三方组件:
针对ThreadX,专门建立了论坛版块:
http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12。
当然,大家也可以上GUIX的官方Github开源地址提交问题:
https://github.com/azure-rtos 。
关于ThreadX NetXDUO就跟大家介绍这么多,更详细的可以上我们的论坛进一步讨论。
【STM32F429】第5章 ThreadX NetXDUO网络协议栈介绍
原文:https://www.cnblogs.com/armfly/p/14667395.html