Android デバイスから USB ポート経由で一連のデータ (ファイルではない) を FPGA ボードに転送できますか? android は、いくつかの API を使用して、このような転送を順次サポートしていますか?
2 に答える
Androidハードウェアに応じて、これを行うには最大3つの異なる方法があります。最も広くサポートされているものから、最も広くサポートされているものまで、ADBプロトコル、USBアクセサリモード、およびUSBホストモードがあります。ADBプロトコルは実際にはAndroidデバイスのデバッグ用に設計されていますが、Androidはそれを介したTCP接続のトンネリングをサポートしており、microbridgeなどのさまざまなプロジェクトがこれを使用してAndroidアプリケーションと外部ハードウェア間でデータをストリーミングしています。他の誰かがすでに他の2つのドキュメントをリンクしています。
実際に使用できるものは、使用しているFPGAボードの種類と、使用しているUSBハードウェアの種類によって異なります。(今のところ、既成のボードを使用していると想定しています。)一部のボードにはUSB-JTAGインターフェイスしかなく、通常は独自仕様で文書化されていないものです。この場合、USBホストが唯一の方法です。それとインターフェースをとると、Android側でかなり醜いコードが必要になります。OsciPrimeやZtexのボードのような他のものは、サイプレスFX2マイクロコントローラーを使用します。これもUSBホストのサポートが必要ですが、2つの間に独自のUSBプロトコルを定義できます。Philips ISP1362チップを搭載し、USBホストモードをサポートしているものもあります。この場合、ADBまたはOpen Accessory Protocolを使用できます。その上でucLinuxを起動し、libusbを使用して電話に接続することもできます。
独自のハードウェアを開発している場合、それは明らかに、個人の好み、パフォーマンス要件、BOMコストと開発時間のトレードオフ、およびサポートできる必要のあるAndroidデバイスの範囲に依存します。たとえば、TUSB110xシリーズのUSBトランシーバーは非常に安価で、USBホストモードをサポートできるため、理論的には、既存のすべてのAndroidハードウェアに接続できますが、FPGA側で多くの作業が必要になります。
(この回答では、新規ユーザーのハイパーリンクが2つに制限されているため、いくつかのハイパーリンクが削除されています。お詫びします。)
お使いの Android デバイスによって異なります。API レベル 12 以降、Android 開発者はUSB ホストと USB アクセサリをサポートしています。USBアクセサリは、USB標準「Android Open Accessoriesプロトコル」に対するAndroid独自の拡張機能のみを認識するように設計されているという点で、少しファンキーです。
スイスの Nexus Computing関係者の取り組みをご覧ください
特に、あなたがやろうとしていることに少なくとも近い XiLinx CPLD とインターフェイスするハードウェアを含むosciprime オープン ソース オシロスコープに関するブログ記事を見つけることができます。