裝置功能和通訊
重要
這是 Azure Sphere (舊版) 檔。 Azure Sphere(舊版)將於 2027 年 9 月 27 日淘汰,且使用者此時必須移轉至 Azure Sphere(整合式)。 使用位於 TOC 上方的版本選取器來檢視 Azure Sphere (整合式) 檔。
裝置功能會決定服務 UART 通訊的裝置特定 OS 原則。 主電腦與連結裝置之間的所有通訊都是透過服務 UART。 主計算機會與連結的裝置通訊,以在裝置上執行作業。 製造商、軟體開發人員和 現場服務 技術人員會使用功能來解除鎖定服務-UART 通訊所需的作業,同時確保裝置受到惡意用戶的保護。
裝置製造商和 OEM 可以鎖定服務 UART 通訊,以防止具有裝置實體存取權的人員未經授權使用。 鎖定這類通訊是裝置最終完成的一部分。 完成之後,使用者可以取得裝置的標識碼,但無其他專案;所有其他作業都需要裝置功能。 最終處理通常會在工廠執行,然後製造商才會將裝置運送到客戶網站。
裝置功能檔案僅包含單一裝置的零或更多功能。 如果套用至不是其預定裝置的裝置,功能檔案將無法運作。 裝置可以具有下列功能,本主題稍後會說明每個功能:
注意
裝置功能與應用程式功能無關。 應用程式功能會指定應用程式在運行時間所需的資源。 如需應用程式功能的詳細資訊,請參閱 應用程式指令清單 。
如何判斷裝置功能或製造狀態
若要判斷儲存在連結裝置上的功能組態,請使用 azsphere device capability show-attached 命令。 命令會顯示使用功能檔設定的功能,以及面板上預設存在的部分功能,但並非全部的功能。 如需需要裝置功能之 azsphere 命令的完整清單,請參閱 CLI 概觀中的數據表。
裝置功能可能會受到裝置的製造狀態影響。 若要判斷裝置的製造狀態,請使用 azsphere device manufacturing-state show 命令。 如果命令顯示裝置處於 DeviceComplete 製造狀態或傳回 Device access is forbidden
,則 service-UART 通訊已鎖定,而且您需要裝置功能,才能從電腦與裝置通訊。 當裝置處於 DeviceComplete 製造狀態時,只有在裝置透過功能檔案解除鎖定時,才允許製造作業。
注意
如果您在客戶月臺安裝裝置,您應該先確定裝置在安裝之前完成 到 DeviceComplete 製造狀態。 請參閱 完成 Azure Sphere 裝置。
DeviceComplete manufacuring 狀態通常不適合開發工具包。 若要啟用製造工程師所開發的製造作業測試,開發工具包應處於 空白 製造狀態或 Module1Complete 製造狀態。
裝置如何取得功能
裝置可以使用下列三種方式之一取得功能:
默認為開啟。 處於 空白 製造狀態或 Module1Complete 製造狀態的裝置預設會開啟某些功能。 如此一來,仍然處於製造階段的裝置就不需要連線到雲端或宣告到租使用者,就像使用裝置功能檔案解除鎖定功能的程式所需一樣。 隨著製造進度,製造商可以變更裝置的製造狀態,以鎖定不再適當的功能,如工廠樓層工作中所述。
側載到裝置上。 裝置可能有從主電腦側載到裝置的功能檔案。 使用 azsphere device capability download 命令來擷取功能檔案。 這個側載的功能集會持續存在,直到新的功能檔(可能是沒有功能的空白檔案)側載為止。 這是應用程式開發期間的一般情況,例如,執行 azsphere device enable-development 命令時。 應用程式開發可藉由讓裝置處於解除鎖定狀態,讓開發人員能夠執行作業,例如偵錯,並輕鬆地刪除和部署側載版本的應用程式。
傳遞至具有每個作業的裝置。 裝置可以針對每個作業套用本機選取的功能。 azsphere device capability select 命令會選取儲存在主計算機上的功能檔案。 執行此命令之後,會使用每個後續命令,將選取的功能從計算機傳遞至裝置。 這是針對欄位中裝置使用功能的建議方式,因為功能會儲存在電腦而非裝置上。 避免現場工程師忘記移除功能而意外讓裝置處於不安全狀態的風險。
必須先從 Azure Sphere 安全性服務 (AS3) 下載功能檔案,才能側載到裝置或傳遞至具有作業的裝置,如製造後對裝置進行變更中所述。 下載的功能檔案是裝置特定的;下載之後,就可以在相關聯的裝置上重複使用功能檔案。
enableRfTestMode 功能
當裝置的製造狀態為空白時,預設會在裝置上顯示 enableRfTestMode 功能。 這項功能可啟用 e-fuse 的程序設計,以及 RF 作業的組態和測試。 租用戶擁有者無法將這項功能下載到主計算機。 如果您需要這項功能,請連絡您的Microsoft代表。
當裝置的製造狀態為 空白時 ,azsphere device capability show-attached 命令會顯示 enableRfTestMode 功能。
appDevelopment 功能
appDevelopment 裝置功能會解除鎖定 service-UART 通訊,並變更裝置信任的簽署類型。 它適用於在應用程式開發期間使用。
根據預設,Azure Sphere 裝置會信任 Azure Sphere 安全性服務所下載的生產簽署映射套件,但不信任 SDK 簽署的映像套件。 因此,您無法使用 SDK 建立映像套件,並將它側載至您的 Azure Sphere 裝置以進行偵錯,除非裝置具有 appDevelopment 功能。 appDevelopment 功能會讓裝置信任映像套件,並可讓您啟動、停止、偵錯或從裝置移除應用程式。
總而言之,appDevelopment 功能會解除鎖定 service-UART 通訊,以允許下列作業:
側載使用 Visual Studio、Visual Studio Code、CLI 或 azsphere image-package 命令所建置的映射套件 。
無論映像套件的簽署方式為何,啟動、停止、偵錯或從 Azure Sphere 裝置移除映像套件。
若要新增 appDevelopment 功能,請使用 azsphere device enable-development 命令。 此命令會 下載所連結裝置的 appDevelopment 功能、側載功能到裝置上,並將裝置移至預設 的開發裝置群組。 若要指定不同的裝置群組,請包含 --device-group
參數。
當您使用 azsphere device enable-development 時,裝置會保持解除鎖定,直到您明確鎖定它為止。 若要重新鎖定裝置,請使用 azsphere device enable-cloud-test 命令。 此命令會根據提供的命令行參數,移除功能並變更裝置群組。
azsphere device enable-development 和 azsphere device enable-cloud-test 命令會執行一連串的動作,以準備裝置以進行開發和偵錯,或分別用於雲端部署。 您可以使用 azsphere device capability 命令來下載或更新裝置功能,或找出裝置目前擁有的功能,而不是使用這些命令。
fieldServicing 功能
當裝置的製造狀態為 Blank 或 Module1Complete 時,fieldServicing 功能預設會出現在裝置上。 當裝置處於 DeviceComplete 製造狀態時, fieldServicing 功能可以側載,但通常會在維護會話期間透過每個作業傳遞至裝置。 如需如何啟動維護會話的詳細資訊,請參閱 在製造后對裝置進行變更。
不論裝置的製造狀態為何, fieldServicing 功能都會解除鎖定 service-UART 通訊,以允許下列作業:
- 側載生產簽署的映像套件。
- 啟動、停止和刪除標示為暫時的生產簽署映像套件。
- 執行例行維護工作,例如設定Wi-Fi。
雖然當裝置的製造狀態為空白或 Module1Complete 時,裝置預設會顯示 fieldServicing 功能,但 azsphere device capability show-attached 命令不會顯示 fieldServicing 功能。
對最新受信任金鑰存放區的相依性
當 AS3 建立功能檔案時,會使用目前的映像簽署金鑰進行簽署。 每個裝置都有受信任的密鑰存放區,作為保留這些金鑰的 OS 的一部分。 不過,如果裝置未連線到因特網,則如果裝置的受信任密鑰存放區已過期,就有可能讓裝置無法信任該裝置的目標。
若要解決此問題,其中一種方法是允許裝置連線到因特網,以便更新受信任的密鑰存放區。 將裝置連線到因特網 ,然後按 [重設 ] 以觸發OS更新。
如果無法這樣做,您可以側載更新的受信任金鑰存放區。 若要這樣做,請接受授權條款,然後下載最新的OS復原映像,然後從這個 zip 檔案中擷取 “trusted-keystore.bin” 檔案。 然後,您可以使用 azsphere device sideload deploy --image-package <path-to-trustedkeystore.bin-file> 命令來側載受信任的密鑰存放區,而且裝置現在應該信任此功能。
第三種方法是 復原系統軟體 ,將 Azure Sphere OS 更新為最新版本,包括最新的受信任密鑰存放區。