すみません。PCショップじゃありません。<(_ _)>




  電子工作など趣味紹介サイトです。(^-^*)/

BENCH AREA NETWORK


◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

INDEX

◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

ハードウェア

ソフトウェア

タイトルにあるベンチエリアネットワークとは造語であり、私個人が勝手に呼んでいるだけです。


ハードウェア

会社内におけるテストベンチは共有財産であり、その場所に試験環境を構築するには
他の使用者に迷惑をかけることのないよう設置と撤収を迅速に行える必要があります。

また、試験内容によっては恒温槽脇など狭い場所での試験環境構築をしなければならない
場合もあるでしょう。試験内容に応じて治具の構成も変える必要があります。

テストベンチで汎用的に使える治具というものを考えたときに、単純な機能の小さな治具を
必要に応じて組み替えて使うというのは理にかなっているように思えました。

また、それらが連動して機能すればとても便利であると思います。



USB-AコネクタとUSB-Bコネクタの組み合わせはディジーチェン接続にとても都合が良く、
またUSBケーブルは非常に安価であり電源とデータを同時に送受信することができます。

ただし、データの送受信を差動信号で行うとRESET信号を通すことができません。
上記の回路はそのための工夫であり、RESET信号を連動させる必要が無い場合は
必要ありません。電源をUSB給電とする場合はUSB-AコネクタとUSB-Bコネクタの
1番ピン同士を接続して治具の回路にもそこから給電することになります。

差動信号であるデータはどちらかが常に [ H ] であり、DIODE-ORにより常にリセットは
[ H ] になります。リセットボタンを押して強制的に [ L ] とすることで治具の回路をリセットします。

またそれはディジーチェーン接続されたすべての治具をリセットすることが可能です。


ソフトウェア

以下は例文です。

                                   ' ヘッダーが'sw'であることを確認
                                   '
                                 receive_header :
                                   Wait_RX
                                   RX_Store header_H
                                   IF header_H=$73 THEN
                                      GOTO receive_header_L
                                   ELSE
                                      IF header_H=$3E THEN
                                         GOTO receive_header
                                      ELSE
                                         GOTO wait_terminator
                                      END IF
                                   END IF
                                   '
                                 receive_header_L :
                                   Wait_RX
                                   RX_Store header_L
                                   IF header=$7377 THEN
                                      GOTO main ←'sw'以降の文字列を受信して処理するメインルーチンに飛ぶ
                                   ELSE
                                      GOTO wait_terminator
                                   END IF
                                   '
                                   '
                                 main :
                '
                                   '要求された処理を判断、実行する'
                                   '
                                   TX_Load $3E ←ホストPCとのハンドシェイク用文字'>'をmainルーチン処理後に送信する
                                   wait_TX
                                   '
                                   '
                                   '終端処理 (ハンドシェイク文字が来るまで待機する)
                                   '
                                 wait_terminator :
                                   Wait_RX
                                   RX_Store delimitter
                                   IF delimitter=$0A THEN
                                      GOTO receive_header
                                   ELSE
                                      IF delimitter=$3E THEN
                                         GOTO receive_header
                                      ELSE
                                         GOTO wait_terminator
                                      END IF
                                   END IF


ホストPCから文字列データを受け取る際、最初の2文字で治具は自身に対する
 命令かどうかを判断します。そのため最初の2文字はネットワーク上のどの機器とも
 同じ文字列を使用できません。また、治具は自身に対する命令でないと判断したら
ハンドシェイク文字が送信されるまで動作を停止します。