UDOO クワッドを使用して、シリアル ポート経由で Atmel SAM3X8E (Arduino 側) から Freescale i.MX 6 (Linux 側) にできるだけ速くデータをプッシュしようとしています。現在、シリアル ポートが 14,400 バイト (115,200 ビット) に設定されているため、1 秒あたり約 10,000 バイトに制限されています。シリアル接続の速度を上げる方法を知っている人はいますか? あるいは、シリアル以外に ARM プロセッサにデータを渡す手段が他にある場合は、それを使用できます。私のArduinoスケッチは以下です。そのまま「書き込みが遅い」が送信されます。Serial.println("012345678901") から 2 文字が削除された場合、合格です。組み込みの Arduino シリアル ポート モニターを使用しています (ツール -> シリアル モニター)。
unsigned long sample_period = 1000; //micro seconds.
unsigned long current_time = 0;
void setup() {
Serial.begin(115200); //115200 bits per sec, 14400 bytes per sec
current_time = micros();
}
void loop() {
int wait_count = 0;
while(micros() - current_time < sample_period) {
wait_count++;
}
if(wait_count == 0) {
Serial.println("Unable to write quickly enough");
}
current_time = micros();
Serial.println("012345678901");
}
編集: 以下の Sendhikumar のコメントを読んだ後、私はより体系的になり、termios.hのすべての周波数を調べました。576000 ビット/秒が有効であり、新しいデータ レートは 56,000 バイト/秒であることがわかりました。できればもっとスピードが欲しいです。組み込みの Arduino シリアル モニターはこの周波数をサポートしていないため、カスタム C++ プログラム ( www.tldp.org/HOWTO/Serial-Programming-HOWTO/x115.htmlに基づく) を使用してシリアル データを取得しています。