为以太网准备 Azure Sphere
重要
这是 Azure Sphere(旧版)文档。 Azure Sphere(旧版)将于 2027 年 9 月 27 日停用,用户此时必须迁移到 Azure Sphere(集成)。 使用位于 TOC 上方的版本选择器查看 Azure Sphere(集成)文档。
若要通过以太网进行通信,Azure Sphere 设备需要外部以太网适配器和板配置映像。 为通过以太网进行网络准备设备需要执行以下步骤:
注意
如果设备通过以太网连接,则需要低流量网络来防止数据丢失或性能不佳。 当网络上有大量传入流量时,设备将从传入的非 TCP 数据包丢失数据。 无论流量量如何,数据通常都不会从传入的 TCP 数据包中丢失,因为 TCP 将重新传输已删除的数据包。 但是,重新传输以性能为代价。
将适配器连接到设备
有关如何将以太网适配器连接到 Azure Sphere 开发板的说明,请参阅 支持的以太网适配器板和模块 列表。
创建和部署开发板配置映像
每个用于 Azure Sphere 的以太网适配器都需要板配置映像。 板配置映像包含的信息是 Azure Sphere 安全服务将以太网支持添加到 Azure Sphere OS 所必需的。 必须为以太网适配器创建 板配置映像包 ,并将其与应用程序映像包一起部署。 可以 旁加载开发与调试的板配置映像包 。 还可以 从云以及 Azure Sphere 应用程序部署开发板配置映像包,以供现场使用。 开发板配置不计入为高级应用保留的闪存或 RAM。
创建板配置映像包
若要创建开发板配置映像包,请使用 azsphere image-package pack-board-config CLI 命令。
旁加载板配置映像包
若要在开发和调试过程中使用板配置映像包,请执行以下操作:
准备进行开发和调试的设备:
azsphere device enable-development
使用 azsphere device sideload delete 命令从设备中删除任何现有应用程序。 必须在加载板配置映像包之前删除现有的应用程序,以免在现有应用程序和板配置之间出现资源冲突。
旁加载板配置映像包。 如果在上一部分中创建了自定义板配置文件,现在可以旁加载该文件。 预设选项包括:
请参阅适用于微芯片的 MT3620 以太网防护ENC28J60 NIC:
azsphere device sideload deploy --image-package lan-enc28j60-isu0-int5.imagepackage
Avnet Rev1 Devkit Click 模块,适用于 Wiznet W5500 NIC:
azsphere device sideload deploy --image-package lan-w5500-isu1-int2.imagepackage
Avnet Rev2 Devkit Click 模块,适用于 Wiznet W5500 NIC:
azsphere device sideload deploy --image-package lan-w5500-isu0-int5.imagepackage
使用 Visual Studio 或 azsphere device sideload deploy 命令旁加载该应用程序。
云部署开发板配置映像包
若要通过云部署板配置映像包,设备必须具有产品,属于设备组,且不得安装 AppDevelopment 功能。 请参阅创建部署以了解如何进行这些设置。
设备就绪后,可以通过单次无线部署来部署板配置映像和应用程序映像。
若要创建部署:
- 使用 azsphere image add 将映像包上传到 Azure Sphere 租户。
- 使用 azsphere device-group deployment create 为上传的图像创建设备组的新部署。
上传映像包:
azsphere image add --image <path-to-image-package>
为设备组创建新部署:
azsphere device-group deployment create --device-group <device-group-ID> or '<product-name>/<device-group-name>' --images <image-ID> <image-ID>
为输入用空格分隔的值列表提供多个值 --images
。
参数 --device-group
标识设备组。 设备组 ID 提供 GUID,用于在所有产品中唯一标识设备组。 或者,可以使用产品名称>/<device-group-name 格式的产品名称和设备组名称>对<。 这对名称唯一地标识了特定产品的设备组。 将映像 ID> 替换为<映像包的图像 ID。
删除旁加载的板配置
如果在开发过程中旁加载某个板配置,以后可能需要删除该配置,方便其他应用程序使用该板保留的资源。 将板配置加载到 Azure Sphere 设备上时,如果尝试运行某个会使用这些资源的应用程序,则会发生引脚冲突错误。
若要删除板配置,请按照以下步骤操作:
列出在设备上安装的映像:
azsphere device image list-installed
在列表中查找板配置的组件 ID:
--> lan-enc28j60-is --> Image type: Board configuration --> Component ID: 75a3dbfe-3fd2-4776-b7fe-c4c91de902c6 --> Image ID: a726b919-bdbe-4cf4-8360-2e37af9407e1
通过指定组件 ID 删除板配置映像包:
azsphere device sideload delete --component-id 75a3dbfe-3fd2-4776-b7fe-c4c91de902c6
通过按“重置”按钮或发出 azsphere device restart 命令来重启设备。
启用以太网接口
加载板配置并重新启动设备后,将自动启用接口。 若要禁用接口,请使用 azsphere device network disable 命令或调用 Networking_SetInterfaceState 函数,这是网络配置 API 的一部分。
默认情况下,所有接口都使用动态 IP 地址。 有关 Azure Sphere 应用程序可以使用的服务类型的详细信息,请参阅 “使用网络服务 ”。
为以太网配置 Azure Sphere
将 Azure Sphere 设备连接到受支持的以太网适配器并部署板配置映像后,可以将 Azure Sphere 设备配置为使用 Azure Sphere SDK 应用程序库(Applibs)从命令行(CLI)或应用程序连接到网络。
使用 CLI 的以太网配置
若要从命令行管理以太网配置,请使用 azsphere device network CLI 命令。 例如, 设备网络启用 命令可在附加设备上启用以太网接口。
azsphere device network enable --interface "eth0"
若要使用配置的以太网网络,网络接口(eth0)必须处于活动状态。 使用设备网络列表接口命令确定接口是否处于活动状态。
azsphere device network list-interfaces
如有必要, 请使用设备网络启用 命令激活它。
azsphere device network enable --interface eth0
使用 Applibs 的以太网配置
若要配置以太网,应用程序必须使用 applibs 网络 API。
在应用程序中包括此头文件:
#include <applibs/networking.h>
应用程序 清单 必须包含 NetworkConfig 功能。
"Capabilities": {
"NetworkConfig" : true
}
使用 Networking_GetInterfaceConnectionStatus 函数来确定网络接口是否处于活动状态。
Networking_GetInterfaceConnectionStatus("eth0", ¤tInterfaceStatus);
若要激活网络接口,请使用 Networking_SetInterfaceState 函数。
Networking_SetInterfaceState("eth0", true);
注意
如果两个网络接口(wlan0 和 eth0)都处于活动状态且已连接,则设备将用于通信的特定接口是不确定的。 如果要控制应用程序在任何给定时间使用哪个网络接口,则必须使用 Networking_SetInterfaceState() 函数显式打开所需接口,另一个接口处于关闭状态。 DHCP 客户端高级应用示例演示了其他方面,如何通过将表示两个接口之一的值分配给全局变量来切换接口。
示例
Azure IoT 演示如何使用 Azure Sphere 应用程序中的 Azure IoT SDK C API 与 Azure IoT 中心 或 Azure IoT Central 通信。
DHCP 客户端高级应用 演示如何续订或释放网络 DHCP 服务器分配给 MT3620 设备的当前 IP 地址。
HTTPS cURL Easy 演示如何使用 cURL 的“easy”API 通过 HTTPS 提取内容
HTTPS cURL Multi 演示如何使用 cURL 的“多”API 通过 HTTPS 提取内容。
Power Down 高级应用 演示 Azure Sphere 平台的 Power Down 功能。
专用网络服务 演示如何将 Azure Sphere 设备连接到专用网络并使用网络服务。
WolfSSL 高级应用 演示如何在高级应用程序中使用 WolfSSL 进行 SSL 握手。
注意
以下示例来自 Azure Sphere 库,它是Microsoft中未映射的软件和硬件示例的集合。 有关详细信息,请参阅 Azure Sphere 库。
打印 MAC 和网络接口 的 IP 地址会打印指定网络接口的 MAC 和 IP 地址。
OSNetworkRequirementChecker-HLApp 执行两个设备(MT3620)网络诊断测试。