次の方法で共有


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

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

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

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

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

注意事項

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

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

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

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

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

ボード構成イメージ パッケージを見つける

Azure Sphere には事前に生成されたボード構成イメージ パッケージが付属しているため、Azure CLI 拡張機能ではボード構成イメージ パッケージの作成はサポートされていません。

現在サポートされているボード構成イメージ パッケージは、Azure Sphere SDK インストール フォルダーの BoardConfigPresets フォルダーにあります。 たとえば、フォルダーは既定で Linux の場合は "/opt/azurespheresdk/BoardConfigPresets" に、Windows では "C:\Program Files (x86)\Microsoft Azure Sphere SDK\BoardConfigPresets" にインストールされます。

次のボード構成がサポートされています。

  • Microchip ENC28J60 NIC 用の Seeed MT3620 イーサネット シールド: lan-enc28j60-isu0-int5.imagepackage
  • Wiznet W5500 NIC 用の Avnet Rev1 開発キット クリック モジュール: lan-w5500-isu1-int2.imagepackage
  • Wiznet W5500 NIC 用の Avnet Rev2 開発キット クリック モジュール: lan-w5500-isu0-int5.imagepackage

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

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

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

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

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

    Microchip ENC28J60 NIC 用 MT3620 イーサネット シールドを参照してください。

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

    Wiznet W5500 NIC 用の Avnet Rev1 開発キット クリック モジュール:

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

    アヴネット Rev2 開発キット Click モジュール(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. 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 コマンドを使用します。 たとえば、 device network enable コマンドを使用すると、接続されているデバイスのイーサネット インターフェイスが有効になります。

az sphere device network enable --interface "eth0" 

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


az sphere device network list-interfaces

device network 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 の 'multi' 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) ネットワーク診断テストを実行します。