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

もとのページに戻る

2024-11-14 現在

バイナリデータの伝送

UART通信により任意のバイト列を伝送する
    シリアル通信アプリを使うことで、任意のバイナリデータの送受信を行うことができます。

    使用する製品

    TWELITE DIPTWELITE R2
    TWELITE 親機/子機USB アダプター
    シリアル通信アプリ-
    2個2個

    なお、TWELITE DIP と TWELITE R2 のペアは MONOSTICK 単体と同等です。次の組み合わせでも構いません。

    MONOSTICK
    TWELITE 親機/子機
    シリアル通信アプリ
    2個

    シリアル通信アプリ

    TWELITE のファームウェアを、シリアル通信の無線化に特化したシリアル通信アプリ(App_Uart)へ書き換えます。超簡単!標準アプリはシリアル通信によるバイナリデータの伝送機能を備えているものの、その機能は非常に限られているからです。

    ファームウェアの書き換え

    親機と子機、すべての端末を書き換えます。

    1. TWELITE STAGE SDK を導入し、TWELITE STAGE アプリを立ち上げる
    2. シリアルポート選択から接続したデバイスを選択する
    3. メインメニュー」から「2: アプリ書換」を選択する
    4. 1: BINから選択」を選び、App_Uart... を選択する
    5. 書き込みが完了するまで、数回Enterを押す

    通信モードの一覧

    シリアル通信アプリには5つの通信モードがあり、用途に応じて使い分けることができます。

    初期状態はヘッダ付き透過モードです。

    ここでは、次の4つのモードを使った通信テストの手順を紹介します。気になるものを選んでお試しください。

    • ヘッダ付き透過モード
      • 送信側の書式はありません。
      • 受信側の書式から、送信元の論理デバイスIDや受信時の電波通信品質といった情報を得ることができます。
      • バランスのよいモードです。
    • 透過モード
      • 送受信双方に書式はありません。
      • 送信側の入力と受信側の出力は同等です。
      • 最も簡単ですが、機能は限られています。
    • 書式モード(アスキー)
      • 送受信双方へ書式を適用します。
      • 外部デバイスの対応が必要ですが、送信先の指定や送信元の識別ができます。
      • バイナリデータは16進数の文字列で表現します。
    • 書式モード(バイナリ)
      • 送受信双方へ書式を適用します。
      • 外部デバイスの対応が必要ですが、送信先の指定や送信元の識別ができます。
      • バイナリデータはそのまま表現します。

    今回は同一のPCへ2台の TWELITE を接続し、データをループバックさせてみましょう。通常は外部デバイス同士を無線経由で接続します。

    ヘッダ付き透過モード

    ヘッダ付き透過モードを使用して、ASCIIデータHelloという文字列を双方から送信してみましょう。

    設定方法

    シリアル通信アプリの既定のモードはヘッダ付き透過モードです。よって初期設定のまま使用します。

    通信テスト

    1. TWELITE STAGE アプリを2つ立ち上げる

    TWELITE STAGE アプリ(TWELITE_Stage.exe/.command/.run)を2つ立ち上げてください。

    2. ターミナルを表示する

    双方の TWELITE STAGE アプリにおいてシリアルポートを選択したのち、「1: ビューア」>「1: ターミナル」を選択します。

    3. 片側から送信

    片方の画面を選択し、Helloと入力してEnterを押します。もう片方の画面へ反映されます。

    片側から送信

    片側から送信

    4. 反対側から送信

    もう片方の画面を選択し、Helloと入力してEnterを押します。元の画面へ反映されます。

    反対側から送信

    反対側から送信

    透過モード

    透過モードを使用して、ASCIIデータHelloという文字列を双方から送信してみましょう。

    設定方法

    m:通信モードDとします。

    通信テスト

    1. TWELITE STAGE アプリを2つ立ち上げる

    TWELITE STAGE アプリ(TWELITE_Stage.exe/.command/.run)を2つ立ち上げてください。

    2. ターミナルを表示する

    双方の TWELITE STAGE アプリにおいてシリアルポートを選択したのち、「1: ビューア」>「1: ターミナル」を選択します。

    3. 片側から送信

    片方の画面を選択し、Helloと入力してEnterを押します。もう片方の画面へ反映されます。

    片側から送信

    片側から送信

    4. 反対側から送信

    もう片方の画面を選択し、Helloと入力してEnterを押します。元の画面へ反映されます。

    反対側から送信

    反対側から送信

    入出力のどちらにも書式がないため、入力したデータをそのまま出力します。

    Hello

    書式モード(アスキー)

    書式モード(アスキー)を使用して、バイナリデータ 0x5A 0xAB 0x90 0x00 を双方から送信してみましょう。

    Saab 9000 CD 2.3

    Saab 9000 CD 2.3

    設定方法

    m:通信モードAとします。

    片方の端末のi:論理デバイスID0(親機)としたうえで、もう片方の端末は1(子機、ID1)とします。

    通信テスト(簡易形式)

    まずは、簡易形式のシンプルな書式を試してみましょう。

    1. TWELITE STAGE アプリを2つ立ち上げる

    TWELITE STAGE アプリ(TWELITE_Stage.exe/.command/.run)を2つ立ち上げてください。

    2. ターミナルを表示する

    双方の TWELITE STAGE アプリにおいてシリアルポートを選択したのち、「1: ビューア」>「1: ターミナル」を選択します。

    3. 親機側から送信

    まず、以下の系列をコピーします。

    :01235AAB900047

    次に、親機側の画面を選択します。

    最後に、Alt+V/⌘+Vを押してペーストし、Enterを押します。子機側の画面へ反映されます。

    親機側から送信

    親機側から送信

    4. 子機側から送信

    まず、以下の系列をコピーします。

    :00235AAB900048

    次に、子機側の画面を選択します。

    最後に、Alt+V/⌘+Vを押してペーストし、Enterを押します。親機側の画面へ反映されます。

    子機側から送信

    子機側から送信

    通信テスト(拡張形式)

    次に、拡張形式の高度な書式を試してみましょう。

    1. TWELITE STAGE アプリを2つ立ち上げる

    TWELITE STAGE アプリ(TWELITE_Stage.exe/.command/.run)を2つ立ち上げてください。

    2. ターミナルを表示する

    双方の TWELITE STAGE アプリにおいてシリアルポートを選択したのち、「1: ビューア」>「1: ターミナル」を選択します。

    3. 親機側から送信

    まず、以下の系列をコピーします。

    :01A0CDFF5AAB9000FE

    次に、親機側の画面を選択します。

    最後に、Alt+V/⌘+Vを押してペーストし、Enterを押します。子機側の画面へ反映されます。

    親機側から送信

    親機側から送信

    4. 子機側から送信

    まず、以下の系列をコピーします。

    :00A0CDFF5AAB9000FF

    次に、子機側の画面を選択します。

    最後に、Alt+V/⌘+Vを押してペーストし、Enterを押します。親機側の画面へ反映されます。

    子機側から送信

    子機側から送信

    書式モード(バイナリ)

    書式モード(バイナリ)を使用して、バイナリデータ 0x5A 0xAB 0x90 0x00 を双方から送信してみましょう。

    Saab 9000 CD 2.3

    Saab 9000 CD 2.3

    設定方法

    m:通信モードBとします。

    片方の端末のi:論理デバイスID0(親機)としたうえで、もう片方の端末は1(子機、ID1)とします。

    バイナリへ対応した環境を用意

    TWELITE STAGE アプリのターミナル機能や TeraTerm はバイナリデータの扱いに対応していないため、バイナリ形式に対応したターミナルソフトを導入する必要があります。

    ここでは、一例としてCoolTermを使用します。

    通信テスト(簡易形式)

    まずは、簡易形式のシンプルな書式を試してみましょう。

    1. CoolTerm の画面を2つ開く

    CoolTerm の画面を2つ開き、それぞれのデバイスへ接続します。

    受信したデータを16進数で表示するために、View > View Hex を選択しておきます。Connect を押して接続します。

    2つの画面を開いた様子

    2つの画面を開いた様子

    2. 親機側から送信

    親機側の画面を選択し、Connection > Send String... を選択して送信画面を開き、ラジオボタンのHex を選んでおきます。

    送信画面を開いた様子

    送信画面を開いた様子

    次の内容を入力し、Send を押して親機へ送信します。

    A5 5A 80 06 01 23 5A AB 90 00 43 04
    親機側から送信

    親機側から送信

    3. 子機側から送信

    親機と同様に子機側の画面を選択し、Connection > Send String... を選択して送信画面を開き、ラジオボタンのHex を選んでおきます。

    次の内容を入力し、Send を押して親機へ送信します。

    A5 5A 80 06 00 23 5A AB 90 00 42 04
    子機側から送信

    子機側から送信

    通信テスト(拡張形式)

    次に、拡張形式の高度な書式を試してみましょう。

    1. CoolTerm の画面を2つ開く

    CoolTerm の画面を2つ開き、それぞれのデバイスへ接続します。

    受信したデータを16進数で表示するために、View > View Hex を選択しておきます。Connect を押して接続します。

    2つの画面を開いた様子

    2つの画面を開いた様子

    2. 親機側から送信

    親機側の画面を選択し、Connection > Send String... を選択して送信画面を開き、ラジオボタンのHex を選んでおきます。

    送信画面を開いた様子

    送信画面を開いた様子

    次の内容を入力し、Send を押して子機へ送信します。

    A5 5A 80 08 01 A0 CD FF 5A AB 90 00 F2 04
    親機側から送信

    親機側から送信

    3. 子機側から送信

    親機と同様に子機側の画面を選択し、Connection > Send String... を選択して送信画面を開き、ラジオボタンのHex を選んでおきます。

    次の内容を入力し、Send を押して親機へ送信します。

    A5 5A 80 08 00 A0 CD FF 5A AB 90 00 F3 04
    子機側から送信

    子機側から送信