Matter Over-The-Air(OTA)ã¯ã€Matterファブリック内ã®Matterデãƒã‚¤ã‚¹ãŒãƒ•ァームウェアを更新ã§ãるよã†ã«ã™ã‚‹ãƒ—ãƒã‚»ã‚¹ã§ã™ã€‚Matter仕様ã§ã¯ã€ã‚»ã‚ュリティ上ã®ç†ç”±ã‹ã‚‰ã€å„デãƒã‚¤ã‚¹ãŒãƒ•ã‚¡ãƒ¼ãƒ ã‚¦ã‚§ã‚¢æ›´æ–°ã®æ–¹æ³•を実装ã™ã‚‹ã“ã¨ãŒæ±‚ã‚られã¦ã„ã¾ã™ã€‚Matterã¯ç‹¬è‡ªã®ä¾¿åˆ©ãªãƒ•ァームウェア更新メカニズムをè¦å®šã—ã¦ã„ã¾ã™ãŒã€ã‚µãƒãƒ¼ãƒˆã¯ä»»æ„ã§ã‚りã€ãƒ‡ãƒã‚¤ã‚¹ã¯ã‚«ã‚¹ã‚¿ãƒ ソリューションをå«ã‚€ä»–ã®æ–¹æ³•を使用ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚カスタムソリューションã¯ã€Matter OTAã®ä»£ã‚りã«ã€ã¾ãŸã¯ãれã¨ä½µç”¨ã—ã¦ä½¿ç”¨ã§ãã¾ã™ã€‚
Matter OTAプãƒã‚»ã‚¹ã«ã¯ã€ä»¥ä¸‹ã®å½¹å‰²ãŒé–¢ä¸Žã—ã¾ã™ã€‚
ファームウェアを更新ã™ã‚‹ã™ã¹ã¦ã®Matterデãƒã‚¤ã‚¹ã€‚ã“ã®å½¹å‰²ã¯ã€OTA Software Update Providerクラスタã®ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆå½¹å‰²ã¨ã€OTA Software Update Requestorクラスタã®ã‚µãƒ¼ãƒãƒ¼å½¹å‰²ã‚’実装ã™ã‚‹OTA Requestorデãƒã‚¤ã‚¹ã‚¿ã‚¤ãƒ—ã«å¯¾å¿œã—ã¾ã™ã€‚
OTA Requestorã¯ã€ãƒªã‚½ãƒ¼ã‚¹ãŒåˆ¶ç´„ã•れãŸçµ„ã¿è¾¼ã¿ãƒ‡ãƒã‚¤ã‚¹ãªã©ã®Matterアクセサリã«å®Ÿè£…ã•れるã®ãŒä¸€èˆ¬çš„ã§ã™ã€‚
OTAアップデート用ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’æä¾›ã™ã‚‹ãƒ‡ãƒã‚¤ã‚¹ã€‚ã“ã®å½¹å‰²ã¯ã€OTA Software Update Providerクラスタã®ã‚µãƒ¼ãƒãƒ¼å½¹å‰²ã¨ã€ã‚ªãƒ—ションã§OTA Software Update Requestorクラスタã®ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆå½¹å‰²ã‚’実装ã™ã‚‹OTA Providerデãƒã‚¤ã‚¹ã‚¿ã‚¤ãƒ—ã«å¯¾å¿œã—ã¾ã™ã€‚
ファブリック上ã®ã©ã®ãƒ‡ãƒã‚¤ã‚¹ã‚‚ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆã¾ãŸã¯ã‚½ãƒ•トウェアイメージã¸ã®ãƒªãƒ³ã‚¯ã‚’å«ã‚€ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹æ¨©ãŒã‚ã‚‹é™ã‚Šã€ã“ã®å½¹å‰²ã‚’æ‹…ã†ã“ã¨ãŒã§ãã¾ã™ã€‚通常ã€ã“れらã¯ã‚¨ã‚³ã‚·ã‚¹ãƒ†ãƒ プãƒãƒã‚¤ãƒ€ãƒ¼ã®ã‚¹ãƒžãƒ¼ãƒˆãƒ›ãƒ¼ãƒ ãƒãƒ–ã®ã‚ˆã†ãªã€ã‚ˆã‚Šå¤šãã®ãƒªã‚½ãƒ¼ã‚¹ã‚’æŒã¤ãƒ‡ãƒã‚¤ã‚¹ã§ã™ã€‚
ã“れã¯é€šå¸¸ã€ã‚½ãƒ•トウェアイメージを作æˆã™ã‚‹ãƒ™ãƒ³ãƒ€ãƒ¼ã«ã‚ˆã£ã¦è¨å®šã•れãŸã‚µãƒ¼ãƒãƒ¼ã§ã™ã€‚ソフトウェアイメージã®URIã«é–¢ã™ã‚‹æƒ…å ±ã¯ã€é€šå¸¸ã€Matter Distributed Compliance Ledger(DCLï¼‰ã§æä¾›ã•れã¾ã™ã€‚DCLã¯ã€Matterプãƒã‚¸ã‚§ã‚¯ãƒˆã®ã™ã¹ã¦ã®è²¢çŒ®è€…ã«é–‹ã‹ã‚ŒãŸæš—å·çš„ã«å®‰å…¨ãªãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã§ã™ã€‚ã“れã¯ã€ãƒ™ãƒ³ãƒ€ãƒ¼ã¨ãã®ãƒ‡ãƒã‚¤ã‚¹ãƒ¢ãƒ‡ãƒ«ã®ã‚³ãƒ³ãƒ—ライアンスステータスã«é–¢ã™ã‚‹æƒ…å ±ã€ãŠã‚ˆã³æ¤œè¨¼ã•れãŸCSAメンãƒãƒ¼ã¸ã®ãƒ™ãƒ³ãƒ€ãƒ¼ãƒ‡ãƒã‚¤ã‚¹ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã®æä¾›ã®ãŸã‚ã®ä¿¡é ¼ã§ãã‚‹æƒ…å ±æºã¨ã—ã¦æ©Ÿèƒ½ã—ã¾ã™ã€‚
OTAプãƒã‚»ã‚¹ã®æ‰¿èªã‚’æä¾›ã—ã¾ã™ã€‚一部ã®OTA Requestorã¯ã€GUIã‚„ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒãƒ–を使用ã—ã¦ã€OTAアップデートã®é©ç”¨ã«ã¤ã„ã¦ç›´æŽ¥ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«æ‰¿èªã‚’求ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚直接尋ãã‚‹ã“ã¨ãŒã§ããªã„å ´åˆã€æ‰¿èªãƒªã‚¯ã‚¨ã‚¹ãƒˆã¯OTA Providerã«å§”ä»»ã§ãã¾ã™ã€‚
次ã®å›³ã¯ã€OTAプãƒã‚»ã‚¹ã«ãŠã‘る関係者間ã®é–¢ä¿‚を示ã—ã¦ã„ã¾ã™ã€‚
ソフトウェアイメージã®è»¢é€ã«ã¯ã€Matterã¯ç‹¬è‡ªã®å†…部Bulk Data Exchange(BDX)プãƒãƒˆã‚³ãƒ«ã‚’使用ã—ã¾ã™ã€‚ãã®ä¸»ãªç›®çš„ã¯ã€Matterノード間ã§ã®ãƒ‡ãƒ¼ã‚¿äº¤æ›ã‚’容易ã«ã™ã‚‹ã“ã¨ã§ã™ã€‚
ã“ã®ãƒ—ãƒãƒˆã‚³ãƒ«ã¯ã€Trivial File Transfer Protocol(TFTP)ã«åŸºã¥ã„ã¦ã„ã¾ã™ã€‚BDXã¯ã€è»¢é€ã•れるファイルãŒç‰¹å®šã®å½¢å¼ã§ã‚ã‚‹å¿…è¦ã¯ã‚りã¾ã›ã‚“ãŒã€ãƒ•ァイルã«ä»»æ„ã®ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã‚’添付ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚OTA転é€ã«ä½¿ç”¨ã•ã‚Œã‚‹å ´åˆã€OTA Providerã¯bdx://<node-id>/<file-name>å½¢å¼ã‚’使用ã—ã¦OTA Requestorã«URIã‚’é€ä¿¡ã—ã¾ã™ã€‚ã“ã“ã§ã€<node-id>ã¯ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’å—ä¿¡ã™ã‚‹OTA Requestorã®Node IDã«å¯¾å¿œã—ã€<file-name>ã¯ãƒŽãƒ¼ãƒ‰ä¸Šã®ã‚½ãƒ•トウェアイメージファイルを一æ„ã«è˜åˆ¥ã™ã‚‹ä»»æ„ã®ãƒ•ァイルパスã§ã™ã€‚
Matter OTAプãƒã‚»ã‚¹ã‚’å¯èƒ½ã«ã™ã‚‹ã«ã¯ã€OTA Requestorã¨OTA ProviderãŒåŒã˜ãƒ•ァブリックã®ãƒ¡ãƒ³ãƒãƒ¼ã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚OTA Requestorã¯ã€OTA Providerã®å˜åœ¨ã‚’èªè˜ã—ã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã€æ¤œå‡ºãƒ¡ã‚«ãƒ‹ã‚ºãƒ を使用ã—ã¦åˆ©ç”¨å¯èƒ½ãªOTA Providerã«é–¢ã™ã‚‹æƒ…å ±ã‚’å–å¾—ã—ã¾ã™ã€‚検出プãƒã‚»ã‚¹ã¯ã€OTA ProviderãŒDNSサービスを公開ã—ã¦ã„ã‚‹ãŸã‚ã€DNSを使用ã—ã¦è¡Œã‚れã¾ã™ã€‚
OTA Providerã®é¸æŠžå¾Œã€OTA Requestorã¯ã‚½ãƒ•トウェアイメージを照会ã—ã€å¯ç”¨æ€§ã«å¿œã˜ã¦ã€OTA Providerã¯ãれをå³åº§ã«é€ä¿¡ã™ã‚‹ã‹ã€ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã§ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆã‹ã‚‰ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’ダウンãƒãƒ¼ãƒ‰ã™ã‚‹ãŸã‚ã«æ“作をé…å»¶ã•ã›ã‚‹ã“ã¨ã‚’通知ã—ã¾ã™ã€‚
次ã®ãƒãƒ£ãƒ¼ãƒˆã¯ã€Matter OTAプãƒã‚»ã‚¹ã®ç°¡ç•¥åŒ–ã•ã‚ŒãŸæ¦‚è¦ã‚’示ã—ã¦ã„ã¾ã™ã€‚

nRF Connect SDKã§Matterアプリケーションをビルドã™ã‚‹å ´åˆã€Matter OTAイメージã¯ãƒ“ルド出力ファイルã®1ã¤ã§ã™ã€‚ソフトウェアイメージã®ãƒ‡ãƒ•ォルトã®å ´æ‰€ã¯ã€ãƒ“ルドディレクトリ内ã®matter.otaã§ã™ã€‚ソフトウェアイメージã®Payloadフィールドã«ã¯ã€ãƒ“ルドプãƒã‚»ã‚¹ã®åˆ¥ã®å‡ºåŠ›ãƒ•ã‚¡ã‚¤ãƒ«ã§ã‚ã‚‹dfu_multi_image.binファイルãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚
dfu_multi_image.binファイルã¯ã€CBOR(Concise Binary Object Representation)形å¼ã®ãƒžãƒ‹ãƒ•ェストã¨ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒé¸æŠžã—ãŸæ›´æ–°ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã®ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã‚’å«ã‚€ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ファイルã§ã™ã€‚CBORマニフェストã«ã¯ã€å«ã¾ã‚Œã‚‹æ›´æ–°ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã®è˜åˆ¥åã¨ã‚µã‚¤ã‚ºãŒå«ã¾ã‚Œã¦ãŠã‚Šã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã‚’æ£å¸¸ã«å±•é–‹ã§ãるよã†ã«ãªã£ã¦ã„ã¾ã™ã€‚ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®æ›´æ–°ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã¯ã€ã™ã¹ã¦ã®MCUコアã®ãƒ•ァームウェアイメージã§ã™ã€‚
Matter OTAファームウェアアップデートプãƒã‚»ã‚¹ä¸ã€ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã•れãŸMatter OTAイメージã¯ã€DFU multi-imageãŠã‚ˆã³DFU targetライブラリを使用ã—ã¦ã€å¤–部ã¾ãŸã¯å†…部ã®ä¸æ®ç™ºæ€§ãƒ¡ãƒ¢ãƒªï¼ˆNVM)ã«ä¿å˜ã•れã¾ã™ã€‚DFU multi-imageライブラリã¯ã€CBORヘッダーã®è§£æžã«zcborを使用ã—ã¾ã™ã€‚ソフトウェアイメージã®é©ç”¨ã«ã¯ã€æ–°ã—ã„ファームウェアをインストールã™ã‚‹MCUbootブートãƒãƒ¼ãƒ€ãƒ¼ã®å†èµ·å‹•ãŒå¿…è¦ã§ã™ã€‚
OTA Providerã®å½¹å‰²ã¯é€šå¸¸ã€ã‚¹ãƒžãƒ¼ãƒˆãƒãƒ–デãƒã‚¤ã‚¹ã¾ãŸã¯ãƒ¢ãƒã‚¤ãƒ«ã‚¢ãƒ—リケーションã«å®Ÿè£…ã•れã¦ãŠã‚Šã€ä¸€éƒ¨ã®å•†ç”¨ã‚¨ã‚³ã‚·ã‚¹ãƒ†ãƒ ã§ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã™ã€‚ãŸã ã—ã€é–‹ç™ºç›®çš„ã§ã¯ã€é€šå¸¸ã€é–‹ç™ºãƒ„ールを使用ã™ã‚‹æ–¹ãŒä¾¿åˆ©ã§ã™ã€‚
Matterプãƒã‚¸ã‚§ã‚¯ãƒˆã¯OTA Providerã®å½¹å‰²ã‚’実行ã™ã‚‹ãŸã‚ã®é–‹ç™ºãƒ„ールをæä¾›ã—ã¦ãŠã‚Šã€CHIP Toolã¨åŒæ§˜ã«ã€LinuxãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れãŸPC上ã§ãƒ“ルドãŠã‚ˆã³å®Ÿè¡Œã§ãã¾ã™ã€‚
ソースファイルã‹ã‚‰æ‰‹å‹•ã§OTA Providerをビルドã™ã‚‹ã‹ã€Nordicã®é–‹ç™ºè€…ãŒæº–å‚™ã—ãŸMatter nRF Connect releasesã‹ã‚‰ãƒ“ルド済ã¿ãƒ„ールパッケージをダウンãƒãƒ¼ãƒ‰ã§ãã¾ã™ã€‚時間を節約ã™ã‚‹ãŸã‚ã«ã€ãƒ“ルド済ã¿ãƒã‚¤ãƒŠãƒªãƒ•ァイルをå–å¾—ã™ã‚‹ã“ã¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚
ãŠä½¿ã„ã®nRF Connect SDKãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«å¯¾å¿œã™ã‚‹GitHubã‚¿ã‚°ã®ã‚¢ãƒ¼ãƒ†ã‚£ãƒ•ァクトを使用ã—ã¦ã€ãƒ‘ッケージãŒãŠä½¿ã„ã®nRF Connect SDKãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¨äº’æ›æ€§ãŒã‚ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。
ã“ã®ãƒ¬ãƒƒã‚¹ãƒ³ã®æ¼”習セクションã§ã€OTA Providerツールã®ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã¨ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—方法をå¦ç¿’ã—ã¾ã™ã€‚