セクションの複数ページをまとめています。 印刷またはPDF形式で保存...

もとのページに戻る

2024-05-14 現在

シリアル通信アプリの透過モード

純粋にUARTを無線化するモード
    透過モードは、ヘッダの付加やエコーバック、プロンプト表示を行わず、有線接続された UART と同じような振る舞いを実現します。
    外部マイコン同士を接続するイメージ

    外部マイコン同士を簡単に接続できますが、書式を用いて通信を最適化するには書式モード(アスキーバイナリ)が適しています。

    概要

    純粋にUARTを無線化します。

    送信側の入力受信側の出力
    任意のデータ任意のデータ

    書式を必要としないため、既存の UART 通信を簡単に無線化できます。

    一方で、データの区切りがあいまいになってしまうほか、受信側の出力から送信元を判別できないといった欠点があります。

    初期状態では、送信トリガ文字にCRLFを指定しています。したがって、送信側へ入力されたデータをCRLFで区切り、CRLF よりも前のデータを送信します。

    例えば、送信側の端末へ Hello<Enter> と入力すると、受信側の端末はそのまま Hello を出力します。

    【送信側】

    Hello  <- 入力

    【受信側】

    Hello  <- 出力

    連続して入力された文字列を80バイトごとに分割して送信します。トリガ文字までのデータは通常80バイト以下としてください。

    全ての端末は子機としたうえで、送信内容はブロードキャストします。すべての端末と通信できますが宛て先は指定できません。アスキー文字だけでなく、バイナリデータも送信できます。

    中継は3段(3ホップ)まで対応しています。初期設定では中継しません。

    親機と子機の区別

    透過モードは、親機と子機を区別しません。

    アプリケーションIDと周波数チャネルが同一であれば、どの端末へ入力したデータもほかの端末へと送信されます。

    ネットワークの構成イメージ

    ネットワークの構成イメージ

    送信元の判別

    透過モードでは、送信元を判別できません。

    送信元を判別するには、送信側へ入力するデータそのものに送信元の情報を含める必要があります。

    送信トリガ

    送信側の入力に書式はありませんが、データはある時点で分割されたのち、パケットごとに無線で送信されます。

    したがって、次に挙げる送信トリガを意識しなくてはなりません。

    • データ入力後のタイムアウトを迎えたとき
    • 入力データが最小データサイズを満たしたとき
    • 送信トリガ文字を受け取ったとき

    送信トリガの設定は、インタラクティブモードのk:送信トリガ項目から指定します。

    設定例

    送信トリガ文字をLF、最小データサイズを8バイト、タイムアウトを30msとする場合は次のように設定します。

     m: set UART mode (D)
     k: set Tx Trigger (sep=0x0a, min_bytes=8 dly=30[ms])
     o: set option bits (0x00000100)