次の方法で共有


イーサネット用に Azure Sphere を準備する

イーサネット経由で通信するには、Azure Sphere デバイスに外部イーサネット アダプターとボード構成イメージが必要です。 イーサネット経由でネットワークを行うためにデバイスを準備するには、次の手順が必要です。

  1. アダプターをデバイスに接続します

  2. ボード構成イメージを作成してデプロイします

  3. イーサネット インターフェイスを有効にします

注意

デバイスがイーサネット経由で接続されている場合は、データの損失やパフォーマンスの低下を防ぐために、トラフィックの少ないネットワークが必要です。 ネットワーク上に大量の受信トラフィックがある場合、デバイスは受信 TCP 以外のパケットからデータを失います。 TCP はドロップされたパケットを再送信するため、トラフィック 量に関係なく、通常、受信 TCP パケットからデータは失われません。 ただし、再送信はパフォーマンスを犠牲にしています。

アダプターをデバイスに接続する

サポートされているイーサネット アダプターの一覧と、Azure Sphere 開発ボードに接続する方法については、「サポートされているイーサネット アダプターボードとモジュール」を参照してください。

ボード構成イメージを作成してデプロイする

Azure Sphere で使用されるイーサネット アダプターごとに 、ボード構成イメージ が必要です。 ボード構成イメージには、Azure Sphere Security Service が Azure Sphere OS にイーサネットのサポートを追加するために必要な情報が含まれています。 イーサネット アダプター用の ボード構成イメージ パッケージ を作成し、アプリケーション イメージ パッケージと共にデプロイする必要があります。 開発とデバッグのために ボード構成イメージ パッケージをサイドロード できます。 フィールドで使用するために、 ボード構成イメージ パッケージを Azure Sphere アプリケーションと共にクラウドからデプロイすることもできます。 ボード構成は、 高度なアプリ用に予約されたフラッシュ メモリまたは RAM に対してはカウントされません。

ボード構成イメージ パッケージを作成する

ボード構成イメージ パッケージを作成するには、 azsphere image-package pack-board-config CLI コマンドを使用します。

メモ

pack-board-config は現在、Azure CLI 拡張機能ではサポートされていません。

ボード構成イメージ パッケージをサイドロードする

開発およびデバッグ中にボード構成イメージ パッケージを使用するには:

  1. 開発とデバッグのためにデバイスを準備します。

    az sphere device enable-development --resource-group MyResourceGroup --catalog MyCatalog --device <DeviceIdValue>
    
  2. az sphere device sideload delete コマンドを使用して、既存のアプリケーションをデバイスから削除します。 ボード構成イメージ パッケージを読み込む前に既存のアプリケーションを削除して、既存のアプリケーションとボード構成間のリソースの競合を回避することが重要です。

  3. ボード構成イメージ パッケージをサイドロードします。 前のセクションでカスタム ボード構成ファイルを作成した場合は、サイドロードできます。 プリセット オプションには、次のものが含まれます。

    「マイクロチップ ENC28J60 NIC 用 MT3620 イーサネット シールド」を参照してください。

    az sphere device sideload deploy --image-package lan-enc28j60-isu0-int5.imagepackage
    

    Avnet Rev1 Devkit Click Module for Wiznet W5500 NIC:

    az sphere device sideload deploy --image-package lan-w5500-isu1-int2.imagepackage
    

    Avnet Rev2 Devkit Click Module for Wiznet W5500 NIC:

    az sphere device sideload deploy --image-package lan-w5500-isu0-int5.imagepackage
    
  4. Visual Studio を使用するか、 az sphere device sideload deploy コマンドを使用して、アプリケーションをサイドロードします。

クラウドでボード構成イメージ パッケージをデプロイする

クラウド経由でボード構成イメージ パッケージをデプロイするには、デバイスに製品があり、デバイス グループに属している必要があり、AppDevelopment 機能がインストールされていない必要があります。 これらを設定する方法については、「 デプロイの作成 」を参照してください。

デバイスの準備ができたら、ボード構成イメージとアプリケーション イメージを 1 つのデプロイにデプロイできます。

デプロイを作成するには:

  1. az sphere image add を使用して、イメージ パッケージを Azure Sphere カタログにアップロードします。
  2. az sphere deployment create を使用して、アップロードされたイメージのデバイス グループの新しい デプロイを作成します
az sphere deployment create --resource-group <resource-group-name> --catalog <catalog-name> --product <product-name> --device-group <device-group-name> --images <image-ID>

image-ID を>イメージ パッケージのイメージ ID に置き換えます<。

サイドローディングされたボード構成を削除する

開発中にボード構成をサイドロードする場合は、後でその構成を削除して、他のアプリケーションがボードが予約するリソースを使用できるようにする必要がある場合があります。 ボード構成が Azure Sphere デバイスに読み込まれているときにこれらのリソースを使用するアプリケーションを実行しようとすると、ピン競合エラーが発生します。

ボード構成を削除するには、次の手順に従います。

  1. デバイスにインストールされているイメージを一覧表示します。

    az sphere device image list-installed
    
  2. 一覧でボード構成のコンポーネント ID を見つけます。

     {
     "does_image_type_require_restart": true,
     "image_type": "Board configuration",
     "images": [
       {
         "length_in_bytes": 428,
         "replica_type": 0,
         "uid": "839e699a-1b23-44de-bc56-f2b19e472098",
         "uncompressed_length_in_bytes": 428
       }
     ],
     "is_update_staged": false,
     "name": "lan-enc28j60-isu0-int5_29f10d",
     "uid": "29f10d1e-29aa-4ae0-a48c-cc24305b288a"
     }
    

    コンポーネント ID はボード構成に関連付けられた uid であるため、上の出力では "29f10..." が開始されます。

  3. コンポーネント ID を指定して、ボード構成イメージ パッケージを削除します。

    az sphere device sideload delete --component-id 29f10d1e-29aa-4ae0-a48c-cc24305b288a
    
  4. [リセット] ボタンを押すか、 az sphere device restart コマンドを発行して、デバイスを再起動します。

イーサネット インターフェイスを有効にする

ボード構成が読み込まれ、デバイスが再起動されると、インターフェイスが自動的に有効になります。 インターフェイスを無効にする場合は、 az sphere device network disable コマンドを使用するか、ネットワーク構成 API の一部である Networking_SetInterfaceState 関数を呼び出します。

すべてのインターフェイスでは、既定で動的 IP アドレスが使用されます。 Azure Sphere アプリケーションで使用できるサービスの種類の詳細については、「 ネットワーク サービス を使用する」を参照してください。

イーサネット用に Azure Sphere を構成する

Azure Sphere デバイスをサポートされているイーサネット アダプターに接続し、ボード構成イメージをデプロイした後、コマンド ライン (CLI) または Azure Sphere SDK アプリケーション ライブラリ (Applibs) を使用してアプリケーションからネットワークに接続するように Azure Sphere デバイスを構成できます。

CLI を使用したイーサネット構成

コマンド ラインからイーサネット構成を管理するには、 az sphere device network CLI コマンドを使用します。 たとえば、 デバイス ネットワーク enable コマンドを使用すると、接続されているデバイスでイーサネット インターフェイスが有効になります。

az sphere device network enable --interface "eth0" 

構成されたイーサネット ネットワークを使用するには、ネットワーク インターフェイス (eth0) がアクティブである必要があります。 デバイス ネットワーク list-interfaces コマンドを使用して、インターフェイスがアクティブかどうかを判断します。


az sphere device network list-interfaces

デバイス ネットワーク enable コマンドを使用して、必要に応じてアクティブ化します。


az sphere device network enable --interface eth0

Applibs を使用したイーサネット構成

イーサネットを構成するには、アプリケーションで applibs ネットワーク API を使用する必要があります。

アプリケーションに次のヘッダー ファイルを含めます。

#include <applibs/networking.h>

アプリケーション マニフェストには、NetworkConfig 機能が含まれている必要があります。

 "Capabilities": {
  "NetworkConfig" : true
}

Networking_GetInterfaceConnectionStatus関数を使用して、ネットワーク インターフェイスがアクティブかどうかを判断します。

Networking_GetInterfaceConnectionStatus("eth0", &currentInterfaceStatus);

ネットワーク インターフェイスをアクティブにするには、 Networking_SetInterfaceState 関数を使用します。

Networking_SetInterfaceState("eth0", true);

メモ

ネットワーク インターフェイス (wlan0 と eth0) の両方がアクティブで接続されている場合、デバイスが通信に使用する特定のインターフェイスは決定論的ではありません。 アプリケーションで任意の時点で使用されるネットワーク インターフェイスを制御する場合は、Networking_SetInterfaceState() 関数を使用して目的のインターフェイスを明示的にオンにし、もう一方のインターフェイスをオフにする必要があります。 DHCP クライアントの概要アプリ サンプルでは、特に、2 つのインターフェイスのいずれかを表す値をグローバル変数に割り当てることでインターフェイスを切り替える方法を示します。

サンプル

Azure IoT では、Azure Sphere アプリケーションで Azure IoT SDK C API を使用して、Azure IoT Hubまたは 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 の概要アプリ では、概要レベルのアプリケーションで Ssl ハンドシェイクに WolfSSL を使用する方法を示します。

メモ

次のサンプルは、Microsoft のメンテナンスされていないソフトウェアとハードウェアのサンプルのコレクションである Azure Sphere ギャラリーからのサンプルです。 詳細については、「 Azure Sphere ギャラリー」を参照してください。

ネットワーク インターフェイスの MAC アドレスと IP アドレスを印刷 すると、指定したネットワーク インターフェイスの MAC アドレスと IP アドレスが出力されます。

OSNetworkRequirementChecker-HLApp は 、2 つのデバイス (MT3620) ネットワーク診断テストを実行します。