/

シリアル通信アプリの通信における注意点

安定した通信を実現するための注意点
安定した通信を実現するための注意点を記載しています。

UART のデータ入出力

UART の入力には、入力側に 4KB、出力側に 4KB のバッファを確保しています。2系統のUARTを出力する場合は、各系統の入力に 2KB、出力に 2KB を利用します。

書式モードやチャットモードでバッファのサイズを意識する場面は多くありませんが、ヘッダ付き透過モードや透過モードで連続的に系列を入力する場合や、書式モードであっても多数の系列を一度に入力する場合は、バッファサイズの上限を意識する必要があります。出力においても、遅いボーレートを設定した場合には、無線で受信したデータの出力が間に合わない可能性があります。

バッファの上限を超えた場合は、その境界でのデータは保護されません。データ抜けが発生します。特に入力側では後述のフロー制御ピンを参照することを検討してください。

UART のフロー制御

入力側のフロー制御については、 RTS ピン同様の振る舞いをするように実装しています。使用するピンは PWM1(DIO5) であり、その対象は主UARTポートです。入力を受け付けないときに High、入力を受け付けるときに Low 状態となります。なお出力側のフロー制御には対応していません。受信側のデバイスでは、十分なボーレートと処理速度を確保してください。

  • 電源投入・リセット直後は High です。UART が初期化されると Low。
  • UART の入力バッファが 7/8 を超えたときに High となります。下回ると Low。
  • 透過モードでは、パケット送信中は High となります。

無線通信エラーの対策

受信側にデータ抜けが発生する場合は、無線の再送回数を増やしてください。

追加送信するパケットの数を増やすことで、受信の成功率を向上できる場合があります。

再送回数はインタラクティブモードで設定できます(x: set RF Conf)。