空を見上げて
トップページ » 電子工作 » BenchScope(その3)

BenchScope(その3)

BenchScopeの波形キャプチャーの続き。
これができれば結構便利。
目標としては汎用のUSB-Serialケーブルで取り込む。
片方はRS232Cのレベルコンバータが入ったものになり例えば
USB・シリアル変換ケーブル[グレー色]
http://akizukidenshi.com/catalog/g/gM-02746/
¥900
勿論純正の
BenchScope用 USBインターフェース
http://akizukidenshi.com/catalog/g/gM-00557/
でもいいが、¥15,700は本体価格に近いので...。
純正だと多分PCでリアル風に動くが、本体もあるしその方が便利なのであっても使わないと思う。欲しいのはキャプチャーのみ。

方法を調べるとやはりプリンタを利用するのが良さそうだ。
http://www.majority.nl/projects_benchscope.htm
のBENCHPRINTでいいように思う。
ただCom1-Com4というのは少ないし、記憶しないのも悲しい。そもそもまともに動かないのでそこらを作成してみる。
方式としては上と同じく
・シリアルデータをファイルに落とす(prnファイル)
・それを変換しbmpにする
とすることにする。

1.シリアルデータの取得
 便宜的にはTeraTermのLogでバイナリ保存するととれる。高解像度(Hi)と低解像度(Lo)がある。

2.シリアルデータの分析
 これが一番困った。どうもSeiko DPU-414 printerが前提らしい。そのマニュアルを探したが、和文だと登録が必要なようで英文なら見つかった。どうもEscapeでグラフィックを送信しているようだ。
 そこでまずは使用されているEscapeをDumpするものを作成した。
<解析結果>
高解像度(Hi):ESC+^,ESC+K,ESC+J
低解像度(Lo):ESC+K,ESC+J
のようだ。なのでESC+^,ESC+K,ESC+Jを作成すれば良い。(HPにも記載あり)
これをマニュアルで見ると
ESC+ ”K” +n1+n2
Set single-density bit -image graphics mode
ESC + ”^” +m+n1+n2
Set vertical double-, or quadruple-density bit-image graphics mode
ESC+ ”J” +n
Line feed in half dots
となっている。
・ESC+ ”K” +n1+n2
はESC+ ”K”の後の2Byteを読み取りn2*256+n1Byteのイメージデータがあることを示している。
・ESC + ”^” +m+n1+n2
はESC + ”^”の後の1Byteがmで、これは0x01が来るようだ。ここではまったが、その前提でn2*256+n1はByteではなくWordになっている。
・ESC+ ”J” +n
はESC+ ”J” +nの後の1ByteがLFのdot数でこれは0x10が来る。
イメージのフォーマットであるがSeiko DPU-414 printerはサーマルプリンタであり、縦列が16dotではないかと思われる。また用紙サイズのせいか270度回転されて送られてくる。つまり「縦16dot,横Byte数またはWord数」というデータ列になる。また上位bitが上に来るようだ。
ESC+ ”K”の場合、縦は1Byte=8dotしかなく、これを88,77,66...bitのように2度づつ配置する。横も半分しかないので11,22,33byte...のように2度づつ配置する。
ESC+ ”^”の場合、縦は1Worde=16dotなので、これを16,15,14...bitのように配置する。横は1,2,3byte...のように配置する。送信されてくる長さはByteではなくWordになる。
ESC+ ”J”は改行なので来る都度16dot垂直描画位置を変える。
なので横のdot数というのはESC+ ”J”が来るまでのbyte数*2かword数になる。
Byte数は512で高さは282*2=564になる。

3.以上を踏まえて作ってみる。
・RS232Cのデータをprnに保存する。これは終了がわからないので5秒ほどデータが届かなければ終了とした。なので高解像度か低解像度かはprnのデータで区別できるのでアプリで設定しなくて良い。
 後Comを羅列するのではなく使っているもののみ表示したいが、以下のコンポーネントでできた。
ComPort Library Ver 4.10 - Unicode (XE) based Ver 3.1]
http://sourceforge.net/projects/comport/
 通信は19200 baud, 8 databits, no parityでこれはプリンタの仕様のmaxらしいがさすがに遅い。でもできないよりはいい。
・そのデータを上の解析に基づいて描画し、それを270度回転してbmpに保存。

アプリ。
Startを押すとデータ待ちになるのでPrintLoやPrintHiを押すと転送がはじまる。
転送がやむと(5秒間何も来ない)描画する。

以下のようなbmpができる。(ファイル名は自動連番)

高解像度ではタイトルが来ないようだ。(多分BitDataが低解像度用のものしか用意されていない?)波形はちゃんとくる。
転送は遅い。高解像度で32k低解像度で9kある。0.2KByte/S程度の転送なので高解像度で160秒低解像度で45秒かかる。でも¥900(コンバータ価格)でUSBでキャプチャーできるのは有難い。

ちゃんとUSB-SerialのCom34とかでも動いた。(^^v
これで機能としてはかなり使えるようになったと思う。

by   at 09:00
コメント

コメントはありません

コメントを書く




保存しますか?


(書式を変更するような一部のHTMLタグを使うことができます)


Please enter the security code you see here