このドキュメンテーションは、MicroPython の最新開発ブランチのためのものです。 リリースバージョンでは利用できない機能に言及することがあります。

特定のリリースのドキュメントをお探しの場合は、左側のドロップダウンメニューを使って、 望みのバージョンを選択します。

クラス USBD_NCM -- USB NCM ネットワークインターフェース

このクラスは、NCM (Network Control Model) プロトコルを使って USB 経由のネットワークインターフェースを提供します。ホストのコンピュータはこのデバイスを USB イーサネットアダプタとして認識し、(MicroPython のデバイスが提供する) DHCP で IP アドレスを割り当てます。

注釈

network.USBD_NCM を使うには、TinyUSB と NCM をサポートするポートが必要です。これはビルド時に MICROPY_PY_NETWORK_USBD_NCM を定義して有効にします(デフォルトは無効)。

使用例:

import network

nic = network.USBD_NCM()
nic.active(True)
# USB ホストが NCM インターフェースを設定するのを待ちます
while not nic.isconnected():
    pass

print(nic.ipconfig("addr4"))

コンストラクタ

class network.USBD_NCM

USBD_NCM オブジェクトを作成して返します。NCM のネットワークインターフェースがまだ初期化されていなければ初期化します。インスタンスは1つしか存在しません(シングルトン)。

メソッド

USBD_NCM.active([is_active])

ネットワークインターフェースを有効または無効にします。引数なしの場合は現在の状態を bool で返します。

このインターフェースは USB の列挙の前に自動的に立ち上がるので、起動時から True を返します。

USBD_NCM.isconnected()

USB のホストが NCM インターフェースを設定していれば True を、そうでなければ False を返します。

USB が切断されると、これは False を返し、ネットワークのトラフィックは止まります。インターフェースは lwIP に登録されたままで、ホストが再接続してデバイスを再列挙すれば再開できます。

USBD_NCM.status()

リンクの状態を整数で返します。インターフェースが立ち上がっていれば 1 、そうでなければ 0 です。

USBD_NCM.ipconfig('param')
USBD_NCM.ipconfig(param=value, ...)

AbstractNIC.ipconfig を参照。

USBD_NCM.ifconfig([(ip, subnet, gateway, dns)])

AbstractNIC.ifconfig を参照。

注記

リンクローカル IP アドレス: デバイスの IP (169.254.x.1) は、デバイスの MAC アドレスから決定的に導出されます。RFC 3927 の ARP プローブ/アナウンス(衝突検出)は実装していないので、同じネットワークセグメント上の2つのデバイスがたまたま同じアドレスを導出した場合、その衝突は検出されません。

MAC アドレスの一意性: デバイス側とホスト側の MAC アドレスは、 mp_hal_get_mac() が返す値から導出されます。2枚のボードが同じハードウェア MAC を持つ場合(たとえばポートがハードウェアの UID を使っていない場合)、同じネットワークアドレスを提示することになり、ARP の衝突を引き起こします。