PC周辺機器の通信が正常に動作しているか確認するために、試験器が欲しくなりましたので作りました。
【目 次】
試験器製作について
電子工作ではRS-232C規格のシリアル通信が導入しやすく、仕組みも分かりやすいためよく使っています。製作した機器の機器間通信やPCとの通信で正常に通信しているか監視した時がよくありました。
PC(パソコン)側のシリアル通信試験のソフトにはTera Termやハイパーターミナルなどがありますが、相手側のハードでデータを受信したことを確認する方法がなかったため、通信データを確認できる機器を製作しました。
仕様
試験器はRS-232C規格で受信したシリアルデータをディスプレイ表示するといったシンプルな構成にしました。
単純な仕組みの方がバグが少なく、試験器製作に不要な労力を最小限とするためです。
通信規格
通信規格はRS-232Cのシリアル通信に対応します。受信できるデータ数およびボーレートは可変としました。
- 通信方式:RS-232C通信規格準拠(非同期通信)
- 通信速度[bps]:19,200 又は 38,400
- 通信データ数[byte]:1~8
- フロー制御:なし
- ストップビット[bit]:1
- データビット長[bit]:8
- パリティチェック:なし
回路構成
受信したデータはLCDキャラクターディスプレイに内容を16進数表示で表示します。
通信データに過不足が生じた場合はユーザーに対して通信エラーを表示するようにしました。
回路の構成を図に示します。
電源は外部よりDC12~15V電源で受け、マイコンとディスプレイの5V電源を作成します。
試験器の材料はなるべく、新規部品を使わずに手持ちの材料で組むことにしました。
マイコンはPICマイコン(PIC16F628A)を使用します。マイコンには受信したデータをディスプレイに表示するプログラムとディスプレイ制御を行うプログラムを書き込み、受信設定はユーザーがプッシュボタンを押下することで受信方法の設定を可変とすることにしました。
ディスプレイは16x2のキャラクタディスプレイを使用します。電子工作で頻繁に使われるディスプレイですね。
以上の回路ブロックから、回路図を起こします。
キャラクタディスプレイはコントラスト調整できるように、半固定抵抗を設けています。
この試験器は受信のみの動作想定ですが、送信線も配線しておきます。単純にバッファとして動かす際のための準備工事です。
使用例
実際に試験器を繋いでシリアル通信試験を実行してみたようすです。
通信設定中
プッシュボタン(タクトスイッチ)でユーザーは通信方法の設定ができます。
画面は4バイト受信設定にした際の画面で、1行目の末尾に"04"の数字が4バイト受信設定であることを示します。
通信速度は白いプッシュボタン「"W"hite」から設定します。写真は19200[bps]に設定した時のものです。
通信結果
試験環境
今回はパソコンからRS-232ケーブルを介して試験器に送信してみます。
ブレッドボードにD-Sub9Pコネクタを挿し、ジャンパ線で試験器に繋ぎました。
最近のパソコンはRS-232Cのシリアルコネクタ口が無いのでUSBから変換するケーブルを繋いでいます。
正常受信
試しにパソコンから「0x00,0x12,0x34,0x56」の4バイトを伝送してみます。
正常に受信すると、「00 12 34 56」と出ました。表示は16進数表示で表記されます。
問題なく受信できていますね。
通信異常
続いて4バイト受信設定のまま、先ほどのデータのうち、1バイト分を敢えて削って伝送してみます。即ち、「0x00,0x12,0x34」の3バイト送信です。
画面は「READタイムアウト」と表示されました。この表示は通信エラーを示します。
マイコンのプログラムは4バイト設定であるところを3バイト分しか受信できなかった場合、一定時分を過ぎると通信エラーと判断して上記のような表示になります。
実際の試験例
この試験器を活用すると以下のような試験できるようになります。
試験例1:機器の伝送試験
PCなどから受信したデータをさらに別装置へ伝送したりする際に、送信データが正しくデータ伝送されているか確認できます。
試験例2:機器の応答試験
PC等の上位機器から受信したデータを元に処理したデータを返答する際、このデータが求めているデータか或いは正しく送信しているかを確認するために確認することができます。
終わりに
今回は電子工作記事として試験器をご紹介しました。
この試験器を製作するまでは、シリアル通信に関する試験はPCを介して確認するのみに限られていたので、重宝しています。
良いものを作るには試験する環境も大事ですね。
それでは。