Tera Term で バイナリデータのやりとり をシミュレートする


目的

組み込みで汎用的な IF として、UART が採用されるケースは多いです。
これを実装するにあたり、動作を PC でさくっとシミュレーションできたら素敵ですね。

テスト環境

Windows 7 + TeraTerm v4.89 + AE-UM232R

やってみる

最初の準備

TeraTerm の 設定ファイル (teraterm.ini) を変更してデバッグモードを ON にします。
参考:http://shuzo-kino.hateblo.jp/entry/20111027/1319682490

teraterm.ini は他にもでいろいろできるので触ってみるとイイ

バイナリデータ受信のダンプ

さきほどのリンク先で説明されていたように、

画面上で「Shift+Esc」を押すごとに、通常表示 -> デバッグモード -> 16進デバッグモード -> 非表示- > 通常表示 とサイクリックに切り替わります。
16進デバッグモード を使いましょう。

通常表示

16進

バイナリデータ送信

上記とは反対に、 TeraTerm 側から、ターゲットにデータを送信するには TeraTerm マクロを使用します。
下記のようなマクロを用意します。

send.ttl
send $54$45$53%54

send $XX で hex 形式でデータを送信できます。複数送る場合はつなげます。

バイナリデータ受信まち

UART でデータのやり取りは双方向の場合が多いです。なので、当然、データ受信待ちも欲しいですね。これもTeraTerm マクロでできます。すごい。
参考:http://ttssh2.osdn.jp/manual/ja/macro/command/wait.html

wait.ttl
; 制御コードを待つ
setdebug 2
wait '11 0D 11 0D'
setdebug 0

ポイントは setdebug 2 です。これでバイナリデータを解釈できるようになります。

たとえば

組み合わせるとこんな感じ

  • 永遠にデータ送受信を繰り返すマクロ
sample.ttl
while 1
    ; 制御コードを待つ
  setdebug 2
  wait '11 0D 11 0D'
  setdebug 0
   ; 1ms delay
  mpause 1
   : データ送信
  send $54$45$53%54
endwhile

参考になりましたでしょうか。 TeraTermマクロはいろいろできるのでシミュレーションにはとても良いです。テストも捗りますね。