Arduinoを備えた高速コンピューターインターフェイス


10

私は、Arduinoを使用して、ホストコンピューターからの多くの要求を処理するプロジェクトを計画しています。シリアル経由の標準の最大115200ボーでは十分ではありません。できれば1Mbpsの全二重を取得できるようにしたいのですが、400Kbps以上の全二重でも問題ありません。私はArduino Dueを使用しているので、大幅に高速な通信速度を処理できるはずです。

シリアル経由でボーレートを大幅に上げる方法はありますか、それとも高速でコンピューターと接続するという点で2つ目の選択肢がありますか?


FTDI FT232デバイスは問題なく最大3 Mbpsまで到達できるため、FTDIベースのUSBシリアルコンバーターがある場合、それは簡単なオプションです。私は本当にArduinoの人々がATmega16U2ではなくそれらにこだわっていたことを望みます。
Connor Wolf

おそらくUARTは1Mbpsのビットレートをサポートしますが、マイクロコントローラーにデータを供給する必要もあります。それは可能ですが、非常に簡単に最大値に到達します。
ジッピー2013年

400 kbpsの「大量のリクエスト」でAVRを非難しているなら、何かを使用するのに十分な時間の余裕があれば私は驚かれることでしょう。
ニックT

回答:


8

Arduinoを使用すると、特にDueを使用して、Mbpsの範囲で起動することは確実に可能です。シリアルモニターは115200までのボーしかサポートしていませんが、ボーを任意の値に設定できる別のターミナルウィンドウを使用できます。

詳細については、Arduinoフォーラムのこのスレッドを参照してください。

セットアップに関しては、Arduinoではそれと同じくらい簡単Serial.begin(1000000);です。通信したいデバイスの設定と、デバイスが何を処理できるかがすべてです。


標準のシリアルオーバーUSBドライバーはそのような速度をサポートしていますか?IDEのシリアルモニタではなく、スクリプトを介して話します。
多項式

そうだと思います。スクリプトを使用している場合は、問題がありません。Arduino DueのUARTハードウェアはUNOと同じです。ATmega16Uを使用して、少なくとも1Mbpsが可能なシリアルとインターフェースします。シリアルオーバーUSBドライバーもその速度をサポートする必要があります。
Jay Greco

テストするには、いつでも簡単なテストスケッチを設定できます。ボーをデフォルトよりも高い値に設定し、同じボーに設定された端末を使用します。データが届いた場合、Arduinoはそのボーまで問題ないことがわかります。
Jay Greco

技術的には、ボーレートに関してホストPCが何を要求するかは重要ではありませんが、16UとメインのArduinoプロセッサが一致することだけが重要です。実際のUSB側は、シリアルボーレートよりもはるかに高速で動作し、すべてのPCシリアルインターフェイスを実行する速度を16Uに伝えます。また、ボー除数の不正確さを見る場合、実際に重要なのは、ボード上の2つのチップ間で一致することであり、従来の目標と一致することではないことを覚えておいてください。これを最大限に活用するには、16U用のカスタムファームウェアが必要になる場合があります。
Chris Stratton、2013年

1

USBインターフェースを行うAtmega16u2のカスタムファームウェアの作成を検討します。そのチップはフルスピードUSB(最大12 Mbitの信号速度)を話すことができ、そのチップのSPI出力ポートはICSPヘッダーで利用できるので便利です。ArduinoのSPI入力(ICSPヘッダーでも利用可能)に接続すると、4 Mbit / s(ビットあたり4 CPUクロック)でSPIを実行できます。

メガ(16u2および128)のAtmegaは、シリアルポートを最大2 Mbit / sで実行できます。16u2用のカスタムファームウェアを作成する場合は、すでに存在する非同期シリアルUSARTを使用することもできます。

これらのどちらの場合でも、シリアルポートのプログラマビリティが失われる可能性が高いため、USBベースの別個のプログラマーを使用する必要があります。

LUFAプロジェクトには、Atmegaチップで実際にUSBを話すためのサンプルプログラムと役立つライブラリがたくさんあります。「libusb」は、シリアルエミュレーションに依存する必要はなく、USBデバイスと直接通信するのに便利なライブラリです。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.