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