/

バイナリデータの伝送

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
子機側から送信

子機側から送信