卫报模块
保护者模块是附加硬件,它包含一个 Azure Sphere 芯片,并在物理上连接到“棕地”设备上的端口,即可能已在使用的现有设备。
通过使用保护者模块,可以将安全 IoT 功能添加到不支持 Internet 连接或不支持 Internet 连接的设备。 简而言之,保护者模块提供了一种在不向 Internet 公开这些设备的情况下在现有设备中实现安全连接的方法。 因为它是 Azure Sphere 设备,因此所有 Azure Sphere 安全和连接功能都可用:所有数据都经过加密,OS 和应用程序更新安全传递,身份验证可确保模块仅与受信任的主机通信。
下面是保护者模块的工作原理:
保护者模块连接到棕地设备,如 本主题的连接部分 所述。 棕地设备本身未连接到网络。
Azure Sphere OS 与自定义高级应用程序和方案所需的任何其他 Azure Sphere 应用程序 一起在保护者模块上运行。
守护者模块使用 Azure Sphere 安全服务进行基于证书的身份验证、故障报告和无线软件更新。
棕地设备与守护者模块通信,该模块可以通过执行本地操作或通过向 Azure IoT Central 等云状态报告做出响应。
可以从供应商处购买保护者模块,并根据使用方案进一步自定义它们,也可以设计自己的保护者模块,可能与硬件合作伙伴合作。 有关硬件供应商的信息,请参阅 Azure Sphere 网站 。
用于保护者模块
保护者模块可以执行任何其他 Azure Sphere 设备可以执行的任何操作,同时充当现有设备和外部网络之间的安全接口。 守护者模块的可能用途包括:
- 从棕地设备收集数据、处理数据以及将数据安全地传输到云终结点
- 将数据发送到多个终结点,前提是它可以对每个终结点进行身份验证
- 收集无法从棕地设备获取的其他数据;例如,保护器模块上的传感器可以提供环境数据,用于来自棕地设备的操作数据
- 在连接丢失时从棕地设备保存数据
Azure Sphere 示例存储库包含两个示例,演示如何将 Azure Sphere 设备用作保护者模块:
- 设备到云 演示了如何将 Azure Sphere 设备用于数据收集,同时为通过串行接口连接到它的棕地设备提供安全的 Internet 访问。
- 专用网络服务 展示了 Azure Sphere 设备如何为通过 TCP/IP 接口连接到它的棕地设备提供安全的 Internet 访问。
连接
在保护器模块与网络之间以及保护器模块与棕地设备之间,有几种受支持的连接机制。 有关 Azure Sphere 连接解决方案的一般信息,请参阅 连接概述 和 网络要求。
守护者模块的高级应用程序与网络(包括 Azure Sphere 安全服务和其他云服务)和下游设备通信上游:
对于保护器模块与棕地设备之间的下游连接,可以使用以下内容:
- 棕地设备公开的任何串行接口,例如 UART、RS-485 或 SPI
- 专用以太网,不向公用网络公开棕地设备
- 无线,例如蓝牙或 ZigBee
应用程序开发和部署
为守护者模块开发和部署应用程序与为任何其他 Azure Sphere 设备开发和部署应用程序没有什么不同。 有关详细信息,请参阅 Azure Sphere 应用程序和部署基础知识概述。 与任何 Azure Sphere 设备一样,保护者模块必须至少具有一个高级 Azure Sphere 应用程序,并且可能还具有支持实时的应用程序。
你需要访问服务 UART,这是 MT3620 与主计算机上运行的开发环境之间的main编程和调试接口。 如果你设计自己的保护者模块,则需要确保服务 UART 信号公开,并且你支持在保护者模块本身或单独的硬件上与服务 UART 进行交互的方法。 如果从供应商处购买模块,供应商应提供启用此连接的解决方案。
如果供应商或其他第三方将创建应用程序,则可能需要提供对 Azure Sphere 目录的访问权限,以便应用程序开发人员可以加载和测试应用程序并创建部署。
高级应用程序
必须为每个组织的棕地设备自定义编写保护者模块 高级应用程序 。 如果守护者模块供应商提供了应用程序,请确保你收到高级应用程序源代码和库,以便你可以根据需要修改或更新应用程序。
与任何 Azure Sphere 设备应用程序一样,应用程序清单中必须列出特定于设备的详细信息和 特定于应用程序的详细信息。 例如, 保护者模块的连接 是特定于设备的详细信息,必须包含在清单中。
在保护者模块上运行的高级应用程序负责以下事项:
- 建立和维护与棕地设备的连接
- 建立和维护与 Internet 的连接,包括 Azure Sphere 安全服务和其他云服务
- 处理从棕地设备接收的数据 - 必要时解压缩和存储数据,并根据需要与 Internet 主机通信
- 处理从 Internet 主机接收的数据 - 必要时解压缩和存储数据,并根据需要与棕地设备通信
上游发送的数据可能包括错误报告、操作参数或整体遥测。 Azure Sphere 确保所有此类数据都已加密。 应用程序可以 连接到 Web 服务 ,并使用相互身份验证进行此类连接。
下游发送的数据可能包括更新的软件或对棕地设备的设置或参数的更改。 为避免潜在的安全漏洞,应用程序应在将传入数据传递到下游设备之前对其进行验证。
应用程序注意事项
创建应用程序时,应考虑外围设备的可用情况、存储要求和功耗。
外围设备
与其他 Azure Sphere 设备一样,保护者模块在公开的外围设备方面有所不同。 选择提供方案所需的连接和感知功能的保护者模块。
根据守护程序模块的硬件体系结构(即它如何公开 Azure Sphere 芯片的功能),可以确定访问单个功能的软件是必须作为高级应用程序还是支持实时的应用程序来实现。
存储要求
Azure Sphere 的存储有限,因此请仔细考虑应用程序和数据所需的内存量。 有关详细信息 ,请参阅可用内存 。
将数据从云下游发送到棕地设备时,请确保保护者模块有足够的空间来保存数据。 可能需要按区块发送数据,如 Azure Sphere GitHub 示例存储库中的 HTTPS_Curl_Multi 示例 所示。
将数据上游从棕地设备发送到保护器模块时,请确保应用程序能够处理上游连接故障。 如果棕地设备提供持续的遥测数据,则必须考虑哪些数据以及要保留的数据量,并在恢复连接后发送到云。 请参阅 存储和转发库示例,该示例演示如何在上传数据之前使用本地存储来临时缓存数据。
功耗
在很多应用程序中,保护者模块大部分时间处于非活动状态。 例如,假设 Azure Sphere 设备每小时从传感器网络收集数据,并将该数据上传到云,此操作可能需要一两分钟。 在这种情况下,设备消耗的大部分电量都会浪费。
可以通过在设备处于非活动状态或设置电源配置文件来显著降低功耗,从而延长电池使用时间。 有关详细信息 ,请参阅管理关机状态 和 设置电源配置文件 。