6个版本 (重大更新)
0.4.0 | 2024年1月11日 |
---|---|
0.3.0 | 2024年1月4日 |
0.2.1 | 2023年10月31日 |
0.1.0 | 2023年6月29日 |
0.0.0 | 2021年10月20日 |
#1 in #smoltcp
6,993 每月下载量
在 4 个crate中使用 3 直接使用
375KB
7.5K SLoC
embassy-net
embassy-net
是一个无标准无分配的异步网络栈,专为嵌入式系统设计。
它基于 smoltcp
构建。它提供了一级更高、更具观点的API。它将 smoltcp
提供的组件粘合在一起,使用默认值和为嵌入式系统设计的内存管理来处理低级细节,旨在提供更“简单工作”的体验。
特性
- IPv4, IPv6
- 以太网和裸IP介质。
- TCP, UDP, DNS, DHCPv4, IGMPv4
- TCP套接字实现了
embedded-io
异步特性。
有关网络协议已实现和未实现特性的详细列表,请参阅 smoltcp
的 README 文件。
硬件支持
esp-wifi
用于在裸机ESP32芯片上支持WiFi。由Espressif维护。cyw43
用于CYW43xx芯片上的WiFi,用于Raspberry Pi Pico W。embassy-usb
用于通过USB(CDC NCM)支持以太网。embassy-stm32
用于所有STM32芯片(STM32F1, STM32F2, STM32F4, STM32F7, STM32H7, STM32H5)内置的以太网MAC。embassy-net-wiznet
用于Wiznet SPI以太网MAC+PHY芯片(W5100S, W5500)。- 为了使用ESP32芯片与
esp-hosted
固件作为WiFi适配器连接到另一个非ESP32的MCU,请使用embassy-net-esp-hosted
。
示例
- 要与Embassy HALs和网络芯片驱动程序一起使用,请在此处搜索
eth
或wifi
:这里。 esp-wifi
存储库包含用于裸金属ESP32芯片的示例。- 关于在
std
平台上使用,请参阅std
示例。
添加对新硬件的支持
为了为新硬件(例如新的以太网或WiFi芯片,或以太网/WiFi MCU外设)添加对embassy-net
的支持,您必须实现embassy-net-driver
特质。
或者,embassy-net-driver-channel
提供了一个更高级的API,用于构建在自身后台任务中处理数据包并通过RX和TX数据包队列与embassy-net
任务通信的驱动程序。
驱动程序应该只依赖于embassy-net-driver
或embassy-net-driver-channel
。绝不能依赖于主embassy-net
存储库。这允许现有驱动程序在没有破坏性更改的情况下继续在新版本的embassy-net
中工作,无需更新。
互操作性
此存储库可以在任何执行器上运行。
使用此存储库进行时间管理和超时,请使用embassy-time
。您必须在项目中链接一个embassy-time
驱动程序才能使用此存储库。
依赖关系
~5MB
~103K SLoC