UDP通信による汎用I/OユニットVer2の製作


【概要】

 PIC18F67J60を使ったLANに接続可能な汎用I/Oユニットを作ってみます。
UDP通信で直接制御可能とし、PC側はVisual Basicでアプリケーションを製作
します。下図が全体外観で、これでPCから下記の機能が実現できます。


 ・デジタルの入出力制御
   LEDの点滅制御
   スイッチの状態入力
 ・アナログ計測値のスキャン
 ・液晶表示器へのメッセージ出力


 この汎用I/Oユニット用のプログラムは、マイクロチップ社のTCP/IPスタックの
デモプログラムをベースにしてUDPアプリケーション部を追加して製作します。

【内部構成】

 汎用I/OユニットVer2の全体構成をブロック図で表すと下図のようになります。
基本的な構成は前頁の汎用I/Oユニットと同じですが、RS232Cの接続を直接
できるようにインターフェースICとDSUBコネクタを実装しました。
LAN接続部もより簡単な構成にしました。





【回路図】

この汎用I/Oユニットの回路は下図となっています。
この回路図はフリーのEDAツールである「Eagle」で作成しました。
LANコネクタ部にパルストランス、LED内蔵のものを使いましたので、
終端抵抗とコンデンサだけの実に簡単な回路構成になります。
データシートでは、このLAN用の電源供給部でフェライトビーズが指定
されていますが、入手が難しかったので通常の33uFのRFコイルで代用
しています。

電源は3.3Vですので3端子レギュレータには3.3V出力を使い、入力に
5VのACアダプタを使うことにしました。
そしてこの5V電源を直接CN2のコネクタに接続しています。
実はこのコネクタには液晶表示器を接続する予定なので、この液晶表示器
が5Vでしか動作しませんので、ここを5V駆動とします。

RS232Cのインターフェースにはレベル変換用のICとDSUBコネクタを基板
に実装しました。




《ファイル》
 下記で本I/Oユニットの回路図とパターン図のEagle用のファイルが
 ダウンロードできます。

  ★ 汎用I/OユニットVer2回路図
  ★ 汎用I/OユニットVer2パターン図

【外観】

作成した回路図からEagleを使ってパターン図を作成します。パターンは片面
基板で、サンハヤトの10k基板サイズ(75×100mm)に納まるようにしました。
完成した汎用I/Oユニットの外観は下記の写真のようになります。


汎用I/Oユニットの部品面
PICは取りはずした状態
PICのサブ基板の下にも抵抗やコンデンサ
を実装しています。

汎用I/Oユニットのはんだ面
今回の回路図作成とパターン作成には
フリーソフトのEagleを使っています。

汎用I/Oユニット基板の全体外観
中央が変換基板に実装したPIC18F67J60
変換基板へのはんだ付けはTQFPタイプ
のパッケージなので、はんだ付けには
ちょっとコツが必要ですが、それほど難しくは
ありません。(実装方法のページを参照


【PIC側プログラムの製作】

 汎用I/OユニットのプログラムはTCP/IPのデモプログラムVer3.75を元にし、
それにUDP通信のアプリケーション部を追加しています。
 本ユニットに使用したデモプログラムは、デモプログラムの構成の中で
ウェブサーバ用のデータをプログラムメモリに格納する構成のものです。
したがって、UDP通信機能とウェブサーバ機能の両方の機能を持っています。

追加したUDP通信処理部は下記ファイルのようになります。

UDP I/Oの追加ファイル

この中にある関数 UDPControlTask() をMainDemoのmain関数内で毎回
呼ぶように追加します。

★★★ UDP I/Oのプロジェクトファイル一式


【PC側プログラムの製作】

PC側のUDP通信を使ったアプリケーションを製作します。
ベースはVisual Basicですが、Visual Studio.NET 2003を使います。
Visual Basicで「Socketクラス」の中の「UDPClientクラス」を使うことで
至極簡単にUDP通信のアプリケーションを作ることができます。
基本の流れは下記のようになります。

   インスタンス生成
     ↓
   Connect    UDPで相手のポート接続を確認をする
     ↓
--→Send      データを送信する
|     ↓
|   Receive    折り返し送られて来るデータを受信する
|     ↓
|   データ処理  受信したデータ内容に基づいた処理を実行
|_____|
     ↓
   Close     通信を閉じる


今回作成したアプリケーションの基本フォームは下図のようになって
います。この各ボタン押下により対応する機能が実行されます。




「接続」
  UDPで相手のポートとの接続をします。
  IPアドレスは今回は固定となっています
「LED制御」
  2個のLEDのオンオフ制御を出力し、折り返しの状態で
  ボタンの色を赤、緑に変えます。
「SW入力」
  4個のスイッチの状態を入力し、オンオフを色で表します。
「計測」または「停止」
  2個の可変抵抗のAD変換値を10進数で表示します。
  計測を押すと0.1秒周期で計測を繰り返し、停止を押すと
  計測機能を停止させます。
「LCD」
  下の欄のメッセージを液晶表示器への表示メッセージとして
  送信します。
「消去」
  液晶表示器の全消去を指示します。

下記がプロジェクトのファイル一式です。
Visual Studio.NET2003のVisual Basic用のファイルとなっています。

★ UDP汎用I/O プロジェクトファイル




        目次に戻る