工厂车间任务
重要
这是 Azure Sphere(旧版)文档。 Azure Sphere(旧版)将于 2027 年 9 月 27 日停用,用户此时必须迁移到 Azure Sphere(集成)。 使用位于 TOC 上方的版本选择器查看 Azure Sphere(集成)文档。
包含 Azure Sphere 硬件的制造连接设备涉及以下工厂车间任务,用于准备设备交付:
- 将每个 Azure Sphere 芯片连接到工厂车间电脑
- 获取设备详细信息并录制它们以供以后使用
- 如有必要,更新 Azure Sphere OS
- 如有必要,请更新受信任的密钥存储
- 将软件加载到设备上
- 运行功能测试以验证产品的正确操作
- 执行无线电频率(RF)测试和校准
- 验证 Wi-Fi 通信
- 为以太网配置设备
- 完成用于寄送的 Azure Sphere 设备
必须先将芯片连接到电脑,先获取设备详细信息,最后完成设备,但可以按适合制造环境的任何顺序执行其他任务。
重要
你应该做一些准备,以帮助确保工厂车间任务可以完成,而不会延迟。 准备工作包括设置工厂车间电脑和任何其他必要的设备,以及安装必要的电脑软件工具。 为顺利的制造过程做好准备,应执行的所有任务都在制造过程准备中介绍。
将每个 Azure Sphere 芯片连接到工厂车间电脑
在制造过程中,必须将每个 Azure Sphere 芯片连接到工厂车间电脑。 如果要同时将多个 Azure Sphere 设备连接到单个电脑,请参阅 制造准备任务中的工厂车间任务 的设备。
大多数工厂车间任务都涉及 azsphere device 命令。 将多个设备附加到电脑时,必须指定应用 azsphere device 命令的设备,方法是将--device
参数设置为设备的 IP 地址或设备的连接路径。 如果 --device
省略参数并附加了多个设备,该命令将失败。 若要获取 IP 地址或连接路径,请参阅 “获取设备详细信息”。
重要
Azure Sphere 23.05 SDK 版本和更高版本支持与 Windows 和 Linux 上多个附加设备的通信。
获取设备详细信息
必须记录公司纳入制造产品的每个 Azure Sphere 芯片的设备 ID。 需要云配置任务的设备 ID。
如果有多个设备连接到工厂车间电脑,则还必须记录附加设备的 IP 地址或连接路径,以便稍后在工厂车间任务中使用。 如连接每个 Azure Sphere 芯片中所述,当有多个附加设备时,需要 IP 地址或连接路径来指定目标设备。
若要获取附加设备的设备 ID、IP 地址和连接路径,请使用 azsphere device list-attached 命令。 以下说明提供有关设备 ID、IP 地址和连接路径的基本详细信息。
设备 ID — 硅制造商创建设备 ID,将其存储在芯片上,并将其注册到Microsoft。 该设备注册可确保 Microsoft 了解所有 Azure Sphere 芯片,只有合法的芯片才能用于连接设备。
IP 地址 — 当基于 FTDI 的设备接口附加到电脑时分配 IP 地址;它不指示存在响应式设备。 当基于 FTDI 的设备接口连接到电脑时,IP 地址保持不变,即使接口中插入了不同的 Azure Sphere 设备也是如此。 但是,在电脑重新启动后,IP 地址可能会更改。 为要附加的第一个基于 FTDI 的设备接口分配地址 192.168.35.2。 每个设备都分配了一个 IP 地址,即使它没有响应,也可以使用此 IP 地址来标识需要恢复的设备。
连接路径 - 连接路径是标识 USB 连接的 FTDI 位置 ID 。 当基于 FTDI 的设备接口连接到同一 USB 中心上的同一 USB 端口时,位置 ID 将保持不变,并反过来连接到电脑上的同一端口。 因此,它在重新启动后仍然存在。 但是,电脑和设备之间的任何接线更改都可能导致连接路径更改。 与 IP 地址一样,即使将不同的 Azure Sphere 设备插入 FTDI 接口,它也不会改变。
更新 Azure Sphere OS
每个 Azure Sphere 芯片在从硅厂出厂时都加载了 Azure Sphere OS。 可能需要在制造连接设备的过程中更新 Azure Sphere OS,具体取决于供应商提供的芯片上的 Azure Sphere OS 的版本以及应用程序的 OS 版本要求。 可以通过安装电脑上已存在的特定恢复映像来更新 OS。 请参阅 准备在制造准备任务中更新 OS 。 制造示例包括执行并行多设备恢复的示例脚本。
可以通过发出 azsphere device recover 命令来更新 Azure Sphere 设备上的 OS。 使用 --images
参数安装特定的恢复映像:
azsphere device recover --images <path-to-images> [--device <IP-address or connection-path>]
注意
如果多个设备连接到电脑,请包含参数 --device
,以便通过 IP 地址或连接路径标识目标设备。 有关详细信息,请参阅 将每个 Azure Sphere 芯片连接到工厂车间电脑 。
更新受信任的密钥存储
作为将软件加载到设备上的先决条件,可能需要更新设备上的受信任密钥存储。 仅当设备上的 OS 早于软件,并且仅当 AS3 使用的 Azure Sphere 映像签名密钥在发布的 OS 与正在生产签名的软件之间更新时,才需要这样做。 若要避免此步骤并减少制造时间,请考虑更新在制造期间使用的 OS 版本。
通过尝试根据下一部分中的说明加载软件,可以轻松确定是否需要更新受信任的密钥存储。 如果加载成功,则无需更新受信任的密钥存储。 如果加载失败,消息从头 Internal device error: Image not trusted by device
开始,则过期的受信任密钥存储是原因。
若要更新受信任的密钥存储,需要 获取最新的受信任密钥存储文件。 然后,作为制造脚本的一部分,使用 azsphere device sideload deploy 命令在加载应用程序软件之前加载更新的受信任密钥存储,替换为 <path-to-trusted-keystore.bin>
受信任的密钥存储文件的路径:
azsphere device sideload deploy --image-package <path-to-trusted-keystore.bin> [--device <IP-address or connection-path>]
加载设备软件
加载的所有软件(无论它是板配置映像、测试应用程序还是生产应用程序)都必须进行生产签名。 如果加载临时应用程序进行测试,则必须在测试完成后将其删除。
在开始该过程之前,在工厂车间过程中所需的所有生产签名映像都应保存在工厂车间电脑上,如在制造准备任务中获取生产签名的映像中所述。
在制造期间,Azure Sphere 设备不得要求任何特殊设备功能,例如启用调试所需的 appdevelopment 功能。 获取适用于单个设备的功能会降低设备安全性,并且需要 Internet 连接,这在工厂车间中通常是不可取的。
若要将软件加载到工厂中的设备上或在测试完成后从设备中删除临时软件,请使用 azsphere device sideload 命令,如下所示:
使用 azsphere device sideload deploy 加载映像,替换为
<file-path>
生产签名映像文件的名称和路径:azsphere device sideload deploy --image-package <file-path> [--device <IP-address or connection-path>]
使用 azsphere device sideload delete 删除临时映像,将其
<component-id>
替换为要删除的映像的组件 ID:azsphere device sideload delete --component-id <component-id> [--device <IP-address or connection-path>]
注意
如果多个设备连接到电脑,请包含参数 --device
,以便通过 IP 地址或连接路径标识目标设备。 有关详细信息,请参阅 将每个 Azure Sphere 芯片连接到工厂车间电脑 。
运行功能测试
需要进行功能测试才能验证产品是否正常运行。 在制造准备任务中运行为功能测试开发的应用程序。 请参阅 开发应用程序进行功能测试。
如果功能测试需要与正在测试的芯片通信,请通过自己的设计的适当电路将 MT3620 外围 UART(ISU0、ISU1、ISU2 或 ISU3)连接到工厂车间电脑或外部测试设备。
执行无线电频率(RF)测试和校准
Azure Sphere 芯片可以使用 Wi-Fi 接收软件更新并与 Internet 通信。 如果你的产品使用 Wi-Fi,并且它包含芯片设计或未经过 RF 认证的模块,则必须为每个设备执行 RF 测试和校准。 此任务所需的设备和工具在制造准备任务中的设备和软件中 介绍用于 RF 测试和校准 。
RF 工具包包括用于测试期间的实用工具和 C API 库。 可以使用 C API 库在电子熔丝中对产品特定的 RF 设置进行编程。 例如,电子熔丝编程为配置天线和频率、优化设备以实现最佳性能,以及启用 Wi-Fi 通道。 RF 测试工具主题介绍如何使用 RF 工具。
编程电子保险丝以启用 Wi-Fi 通道
Azure Sphere OS 根据在偏移地址0x36和0x37中编程到 MT3620 e-fuses 的区域代码选择 Wi-Fi 通道。 有关 MT3620 上的电子保险丝的详细信息,请参阅 MT3620 E-fuse 内容指南 Mediatek 文档。
区域代码是双字母 ASCII 代码。 Azure Sphere OS 使用 e-fuses 中的区域代码设置来查找 Linux 无线法规数据库中的区域,然后选择该区域允许的通道。 如果未将区域代码编程到电子熔丝中,在这种情况下,电子熔丝仍设置为0x00 0x00,或者如果对字符“00”进行编程,则 OS 默认为在所有区域通常允许的保守通道集。 允许用于区域“00”的通道在 Linux 无线监管数据库中指定。
电子保险丝中的区域代码设置不需要与将使用设备的国家/地区匹配。 制造商可以选择映射到允许的通道集的任何区域代码,以用于操作区域。 不同的区域和国家/地区通常采用类似或相同的法规,从而允许区域代码互换使用。
示例: 若要指示 Azure Sphere OS 选择区域“DE”(德国)的 Wi-Fi 通道,程序0x44=D 和 0x45=E 进入地址0x36和0x37的 e-fuses。 下面显示了德国允许的通道(从 Linux 无线监管数据库摘录)。 欧盟(欧盟)中的大多数国家都允许相同的渠道集。
country DE: DFS-ETSI
(2400 - 2483.5 @ 40), (100 mW)
(5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI
(5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI
(5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI
# short range devices (ETSI EN 300 440-1)
(5725 - 5875 @ 80), (25 mW)
# 60 GHz band channels 1-4 (ETSI EN 302 567)
(57000 - 66000 @ 2160), (40)
验证 RF 配置
使用 RfSettingsTool 验证是否已正确设置无线电配置选项,例如目标传输电源、区域代码和 Wi-Fi 媒体访问控制(MAC)地址。 RF 设置工具文档详细介绍了如何使用此工具。
验证 Wi-Fi 通信
请考虑连接到 Wi-Fi 接入点,以验证产品应用程序是否能够通过 Wi-Fi 进行通信。 确保 Wi-Fi 连接无法访问 Internet,因为如果芯片连接到启用了 Internet 的接入点,可能会出现无线更新。
若要将设备连接到 Wi-Fi 接入点,请按照快速入门(CLI 选项卡)中的说明操作。 如果多个设备连接到电脑,则必须在 azsphere device wifi show-status 命令和 azsphere device wifi add 命令中包含参数。--device
有关将 azsphere device 命令用于多个附加设备的详细信息,请参阅 将每个 Azure Sphere 芯片连接到工厂车间电脑。
在 Wi-Fi 测试后,应从芯片中删除用于测试的任何 Wi-Fi 接入点,以便客户看不到这些访问点。 设备恢复会从芯片中删除所有 Wi-Fi 配置数据。
为以太网配置设备
Azure Sphere 设备可以通过以太网进行通信。 设备需要外部以太网适配器和板配置映像,以便通过以太网进行通信。
若要为以太网配置 Azure Sphere 设备,请将以太网适配器连接到 Azure Sphere 设备,如连接以太网适配器中所述。
Azure Sphere 操作系统支持两个以太网设备。
- 微芯片ENC28J60。 这是一个 10Base-T (10mbps) 适配器。 它可以以半双工速度与 LED 指示器连接,也可以不以全双工速度使用 LED 指示器。 看到的开发工具包是用于半双工操作的有线。
- Wiznet W5500。 这是一个 100Base-TX (100mpbs) 适配器。 它支持集成的 TCP/IP 堆栈和 NIC 直通模式,但在使用 W5500 进行 Internet 连接时,Azure Sphere 仅支持 NIC 直通。 由于总线带宽限制,MT3620 设备可能无法实现完全 100mbps 的速度。
加载板配置后,以太网接口将自动启用,如加载设备软件中所述,并重新启动设备。 默认情况下,所有接口都使用动态 IP 地址。
将 Azure Sphere 设备定型
定型可确保 Azure Sphere 设备处于安全状态,可以寄送给客户。 在寄送设备之前必须将其定型。 定型涉及:
运行发货前检查,确保已安装正确的系统软件和生产应用程序,并已禁用 RF 工具。
设置设备制造状态,以便锁定 RF 配置和校准工具并防止安全违规。
运行随时可用的检查
在交付包含 Azure Sphere 设备的产品之前,必须运行随时可用的检查。 必须为不同的制造状态执行不同的检查。 准备交付检查确保满足以下条件:
- 为制造阶段正确设置设备制造状态。
- 设备上的 Azure Sphere OS 有效且预期版本。 只能检查尚未处于 DeviceComplete 状态的设备。
- 设备上的用户提供的映像与预期的映像列表匹配。 只能检查尚未处于 DeviceComplete 状态的设备。
- 设备上未配置意外的 Wi-Fi 网络。 只能检查尚未处于 DeviceComplete 状态的设备。
- 设备不包含任何特殊功能证书。 对于基于 MT3620 的设备,只能在不处于“空白”状态的设备上进行检查。
不同的制造阶段需要不同的检查,因为设备的制造状态决定了 设备的功能 。
运行哪些检查还取决于是要设计模块还是连接的设备。 例如,作为模块制造商,可以选择将芯片保留为空白制造状态,以便模块的客户可以执行额外的无线电测试和配置。
使用device_ready.py执行检查
制造示例包包括一个名为 device_ready.py 的工具,该工具根据每个制造状态执行上述检查。 它应针对与设备相关的每个制造状态运行。
下表列出了device_ready.py脚本采用的参数:
参数 | 说明 |
---|---|
--expected_mfg_state |
确定要检查的制造状态并控制运行哪些测试。 如果未指定此参数,则默认为“DeviceComplete”。 如果设备的制造状态与此值不同,则检查将失败。 |
--images |
指定设备上必须存在的映像 ID(GUID)列表,以便检查成功。 该列表由用空格分隔的图像 GUID 组成。 如果未指定此参数,则默认为空列表。 如果设备上已安装的映像 ID 列表与此列表不同,则检查将失败。 通过检查映像 ID(而不是组件 ID),此检查可确保组件的特定版本存在。 |
--os |
指定 Azure Sphere OS 的版本列表。 如果未提供此参数,则默认为空列表。 如果设备上存在的 OS 版本未在此列表中,则此检查将失败。 |
--os_components_json_file |
指定列出定义每个操作系统版本的 OS 组件的 JSON 文件的路径。 对于基于 MT3620 的设备,此文件命名为mt3620an.json。 使用该工具 download_os_list.py 下载最新版本。 |
--azsphere_path |
指定azsphere.exe实用工具的路径。 如果未指定,此参数默认为 Windows 上的 Azure Sphere SDK 的默认安装位置。 使用此参数的前提是 Azure Sphere SDK 未安装在默认位置。 |
--help |
显示命令行帮助。 |
--verbose |
提供其他输出详细信息。 |
以下示例是包含下列参数的工具的示例运行 device_ready.py
:
--os 22.07
--os_components_json_file mt3620an.json
--expected_mfg_state Module1Complete
device_ready.py --os 22.07 --os_components_json_file mt3620an.json --expected_mfg_state Module1Complete
Checking device is in manufacturing state Module1Complete...
PASS: Device manufacturing state is Module1Complete
Checking capabilities...
PASS: No capabilities on device
Checking OS version...
PASS: OS '22.07' is an expected version
Checking installed images...
PASS: Installed images matches expected images
Checking wifi networks...
PASS: Device has no wifi networks configured
------------------
PASS
设置设备制造状态
确保包含 Azure Sphere 芯片的设备的最终用户不能够访问敏感的制造操作(例如将无线电置于测试模式,以及设置 Wi-Fi 配置电熔丝)。 Azure Sphere 设备的制造状态限制对这些敏感操作的访问。
这三种制造状态如下所示:
空白。 空白状态不会限制芯片上的制造操作。 处于空白状态的芯片可以进入 RF 测试模式,其电子熔丝可以编程。 当芯片从硅工厂运出时,它们处于 空白 制造状态。
Module1Complete。 Module1Complete 制造状态旨在限制用户可以对无线电配置设置所做的调整,例如最大传输功率级别和允许的频率。 可以在设置 Module1Complete 之前使用 RF 命令。 根据无线电硬件的法规政策,可能需要限制最终用户对这些设置的访问。 此设置主要影响需要测试和校准无线电操作参数的制造商。
Microsoft 建议你在完成无线电测试和校准后设置此制造状态。设置它以后,RF 命令就不能使用。 Module1Complete 状态可保护设备免受可能会中断附近无线电和其他无线设备的正常操作的更改。
DeviceComplete。 DeviceComplete 制造状态允许成品制造商保护在现场部署的设备免受更改。 将设备置于 DeviceComplete 状态后,每当执行任何软件加载和配置任务时,都必须使用特定于设备的功能文件。 字段 保护 功能允许旁加载生产签名的映像,但不能删除它们。 appdevelopment 功能允许旁加载和删除图像。
请勿为未完成的设备或模块(Wi-Fi 模块、开发板等)设置 DeviceComplete ,这些模块可以用作较大系统的一部分;此状态会限制生产活动,例如生产线测试、软件安装和配置。 设置 DeviceComplete 后,许多 CLI 命令不可用,因此,在设置此状态之前,必须运行某些现成检查。 可以使用设备功能(例如字段保护功能)重新启用受限命令,但仅适用于已声明的设备,因此这不适合在工厂车间环境中使用,因为它需要云连接。
下表汇总了每个制造状态存在的设备功能。
制造状态 | 设备功能 |
---|---|
空白 | enableRfTestMode、fieldServicing 以及使用操作旁加载或传递的操作,如设备功能中所述。 |
Module1Complete | fieldServicing 和那些通过操作旁加载或传递的字段,如设备功能中所述。 |
DeviceComplete | 只有使用操作旁加载或传递的那些操作,如设备功能中所述。 |
制造完成后,使用 azsphere device manufacturing-state update 命令设置 DeviceComplete 状态:
azsphere device manufacturing-state update --state <desired-state> [--device <IP-address or connection-path>]
注意
如果多个设备连接到电脑,请包含参数 --device
,以便通过 IP 地址或连接路径标识目标设备。 有关详细信息,请参阅 将每个 Azure Sphere 芯片连接到工厂车间电脑 。
重要
将芯片移动到 DeviceComplete 状态是永久性操作,无法撤消。 芯片处于 DeviceComplete 状态后,无法进入 RF 测试模式;无法调整其电子熔丝设置;并且 Wi-Fi 设置、操作系统更新和已安装的应用程序无法更改,而无需声明设备并使用设备功能。 如果需要在设备功能不重新启用的单个芯片上重新启用功能,例如在故障分析方案中,请联系Microsoft。