TVチャンネルを録画するためのメモリを必要とする衛星受信機などの外部デバイス用のUSBポートを介して仮想USBフラッシュメモリを作成したいプロジェクトに取り組んでいます。PCのUSBポートを衛星のUSBポートに接続し、ファイルを直接ファイルに記録したい。私はC#/。NETで作業しています。
1 に答える
USBプロトコルは通常、ホストとクライアントの2つの異なるデバイスの間にあります。ホストは、どのデータが転送され、いつクライアントがリッスンする必要があるかを示します。次に、クライアント用にさまざまなデバイスクラスがあります。USBリムーバブルメディア、プリンター、ウェブカメラ、その他があります。USB otgは、デバイスが他のデバイスに応じてクライアントまたはホストになる可能性があるため、わずかに異なります。たとえば、携帯電話はPCに接続されている場合はクライアントになり、USBスティックに接続されている場合はホストになります。
今、あなたの衛星受信機があります。ホストになりたいです。(大きなType-Aソケットを使用する場合)そして、USBスティックのようなリムーバブルメディアデバイスを期待しています。プリンタを接続すると、プリンタをどう処理するかがわかりません。ネットワークアダプタまたはシリアルポートと同じです。
注意:「シリアルポート経由のフラッシュメモリプロトコル」を実装できない可能性があります。シリアルポートはすでにクライアントデバイスクラスであるためです。また、USBとシリアルの間にワイヤーの互換性はありません。
PCは同じ役割を果たし、USB接続ではクライアントとして機能しないため、簡単な解決策はありません。(私はあなたがこれをすでに知っていたに違いないね?)
フラッシュドライブのように機能するPCIexpressカードを入手したとしても、より多くのハードルがあります。たとえば、ファイルシステムは、2台のコンピュータが同時にアクセスするようには設計されていません。
建設的な回答に戻る: このリンクから着想を得て、ハイエンドのマイクロコントローラーを入手し、(マイクロ)SDカードを取り付けることができます。次に、USBポートでフラッシュドライブとして機能させます。イーサネット接続(またはWi-Fi)を使用して、Samba経由で(マイクロ)SDカードへのアクセスを提供します。
これはマイクロプロセッサにとって非常にハイエンドなものなので、非常に安価なものは使用しない方がよいでしょう。RasberryPIモデルA(USBクライアントとして機能できないBモデルではない)またはArduino / Netduino(最も強力な)が頭に浮かびました。すぐに使えるデバイスが見つかりませんでした。
重要なことは、PCへの接続はUSBではなく何らかのネットワークを使用するということです。ネットワークプロトコルは同時実行性(同じデータにアクセスする複数のPC)をカバーしているのに対し、ローカルファイルシステムはカバーしていないためです。