仕 様
〈代表的なアプリケーション〉
・ ルータ/ゲートウェイ
・ USB2Ethernetアダプタ
・ Webブラウザ経由でのUSBデバイスの設定
〈アプリケーションサンプルemUSB-Device RNDIS〉
・ USB to Ethernetアダプタ
・ ルータ/ゲートウェイ
・ USBベースのWebサーバー
最も注目すべきアプリケーションは、USBベースのWebサーバーです。USBウェブサーバは、ユーザがデバイスを構成し、ウェブブラウザを使用してデータを見ることを可能にする。これにより、ユーザーがUSBデバイスと対話できるようにする主要なオペレーティングシステムごとにアプリケーションを開発する必要がないため、開発コストを節約できます。イーサネットインタフェースが不要なため、ハードウェアコストも削減できます。
IPアドレス
RNDISデバイスには2つのIPアドレスが必要です。RNDIS仮想ネットワークインターフェイスには1つのIPアドレスが使用され、実際のデバイスには2つ目のIPアドレスが使用されます。IPアドレスは設定によって定義されます。デフォルト構成では、サーバーを実行する仮想ホストには10.0.0.10、RNDIS仮想ネットワークインターフェイスには10.0.0.11が使用されます。
・ Windowsオペレーティングシステムを実行しているPCに接続されたemUSB-RNDISデバイスは、このスクリーンショットに示すように、[ネットワーク接続]ウィンドウに別のネットワークインターフェイスとして表示されます。
・ pingコマンドラインユーティリティを使用して、以下に示すようにターゲットへの接続をテストできます。接続が正しく確立されている場合、失われたパケット数は0になります。
・ 人気のあるLinuxディストリビューションUbuntuのスクリーンショット
・ emUSB-RNDISはmacOS上で使用
・ emUSB-RNDIS経由でブラウザページが開くことが可能
コンポーネント
emUSB-Device RNDISはパッケージ全体として提供され、次のコンポーネントを含んでいます。
〈RNDISデバイスクラスの実装〉
・ embOS / IPをTCP / IPスタックとして使用するネットワークインタフェースドライバ
・ RNDISを使用する方法を示すサンプルアプリケーション
・ リモートネットワークドライバインターフェイス仕様(RNDIS)は、Microsoftによって作成されたUSBクラスプロトコルです。実際のIP通信を処理するには、USBデバイス側にembOS / IPのようなTCP / IPスタックが必要です。任意の利用可能なIPプロトコル(UDP、TPC、FTP、HTTPなど)を使用してデータを交換できます。
USB RNDISは、Windows XP以降のすべてのWindowsオペレーティングシステム、および2.6.34より新しいカーネルバージョンのLinuxでサポートされています。Windows 7より古いMicrosoft Windowsシステムにインストールするには、.infファイルが必要です。emUSB-Device RNDISパッケージには、Windows 7より古いバージョンのWindows用の.infファイルが含まれており、新しいバージョンがすぐに使用できます。macOSを使用すると、サードパーティのドライバを使用してRNDISを動作させることができます。ドライバはからダウンロードできますここに。これはサードパーティのドライバであるため、HoRNDISドライバの正しい機能を保証することはできません。
emUSB-Device RNDISには、1つのバルクIN、1つのバルクOUTおよび1つの割り込みINエンドポイントが必要です。
EmUSB-Device RNDISは、他のインタフェース(バルク、CDC、MSD、MTP、HID)と組み合わせて、問題なく使用できます。
120MHzで動作する一般的なCortex-M CPUでは、高速USB接続を使用すると約5MByte /秒の転送速度が達成できます。
<RNDISクラスを使用するために必要なコンポーネント〉
・ emUSB RNDIS
・ emUSB-デバイスコア
・ emUSBターゲットドライバ
・ embOS / IP(IPスタック)