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

Download history 1079/week @ 2024-04-06 752/week @ 2024-04-13 582/week @ 2024-04-20 664/week @ 2024-04-27 691/week @ 2024-05-04 375/week @ 2024-05-11 571/week @ 2024-05-18 1888/week @ 2024-05-25 1207/week @ 2024-06-01 1294/week @ 2024-06-08 984/week @ 2024-06-15 1636/week @ 2024-06-22 1463/week @ 2024-06-29 1350/week @ 2024-07-06 2227/week @ 2024-07-13 1605/week @ 2024-07-20

6,993 每月下载量
4 个crate中使用 3 直接使用

MIT/Apache

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和网络芯片驱动程序一起使用,请在此处搜索ethwifi这里
  • esp-wifi存储库包含用于裸金属ESP32芯片的示例。
  • 关于在std平台上使用,请参阅std示例

添加对新硬件的支持

为了为新硬件(例如新的以太网或WiFi芯片,或以太网/WiFi MCU外设)添加对embassy-net的支持,您必须实现embassy-net-driver特质。

或者,embassy-net-driver-channel提供了一个更高级的API,用于构建在自身后台任务中处理数据包并通过RX和TX数据包队列与embassy-net任务通信的驱动程序。

驱动程序应该只依赖于embassy-net-driverembassy-net-driver-channel。绝不能依赖于主embassy-net存储库。这允许现有驱动程序在没有破坏性更改的情况下继续在新版本的embassy-net中工作,无需更新。

互操作性

此存储库可以在任何执行器上运行。

使用此存储库进行时间管理和超时,请使用embassy-time。您必须在项目中链接一个embassy-time驱动程序才能使用此存储库。

依赖关系

~5MB
~103K SLoC