イーサネット機能をPIC32マイコンに追加する

令和 3年 3月

    イーサネットボードの製作

 実験基板での動作結果を元にイーサネット内蔵の基板を製作しました。
9月には出来上がっていたのですが他のことに気をとられてそのままになっていたのはいつもの事です。

 1.イーサネット基板の仕様
 イーサネット基板は従来のPIC32MM_CPU基板をベースに作りました。たた、実装面積の制約や機能面での役割分担を考慮してPIC32MM_CPU基板の一部の機能を削除します。
 削除した機能は、以下の二つです。
 ・ 時間を保持するRTCおよびバックアップ電池
 ・ ログを記録するフラッシュメモリおよびユーザー用のフラッシュメモリ

 逆に追加したのは、以下。
 ・ イーサネットIC W5500およびイーサネットポート
 ・ MACアドレスを記録したシリアルEEPROM

 Ethernetが有効であれば時間を取得することやデータを外部に記録させることは比較的簡単に出来ます。これらを基板内部に残しておくメリットは多くありません。

 これらの変更にあわせて入力ポートからのCPUへの入力ピンを変更したので、入力ポートに関しては両基板で互換性が無くなってしまいした。

 以下に動作検証途中の基板外観を示します。Ethernetの動作に必要な部品のみしか実装されていないので、部品数が極端に少なくなっていますが、これでもEthernet通信は正しく動作します。


 予備的な検証で従来基板にW5500用の接続ポートを追加した実験基板にW5500を接続して基本的な通信動作は確認できています。今回の基板では、これらを基板化して正しく動作することとMACアドレスを記録しているEEPROM関連のプログラム動作の確認が主たる目的になります。
 まず、通信機能の確認は前回同様にEthernet経由でPCに接続し、データを送受信できることを確認します。これは前回の実験と同じなのでプログラムも同じものを使用します。結果は期待通りに動作しました。
 次にMACアドレスを記録しているEEPROM関連のプログラムです。こちらは今まで無かった部分なので、新規にプログラムから作っていきます。
 まず、MACアドレスの入手が必要になります。MACアドレスは海外の団体が各メーカーに割り当てた数値を入手することになります。国内でも秋月電子(株)などから入手できます。今回はMACアドレスを書き込み済みのEEPROMを購入することにしました。Microchip社の25AA02E48という型式です。ICチップ自体は25AA020Aという型式のEEPROMで2kBitsとごく小容量です。
このEEPROM内にはMACアドレス以外にもEthernet通信に必要となるIPアドレス・サブネットマスク・デフォルトゲートウェイ・DNSアドレスを記録します。

これらの操作は端末モードで行います。コマンドの形式は以下の通り。
 ip_config [[IP],[SMask],[Gate],[DNS],[MAC]]

[]内はオプションでオプション無しの場合は現在の設定値を表示します(先頭の'>'は端末モードのプロンプト)。
>ip_config
IP: 192.168.0.9
SMask:255.255.255.0
GW: 192.168.0.1
DNS: 192.168.0.1
MAC: 1-2-A-B-C-F

オプションが不適当な場合はヘルプを表示します。
>ip_config /?
ip_config [[ip],[mask],[gate],[dns],[mac]]
  ip_config 192.168.0.99 change IP Addr
  ip_config 192.168.0.99,255.255.255.0 change IP Addr & SMask
  ip_config 192.168.0.99,,,,aa-50-56-C0-00-08 change IP Addr & MAC Addr

IPアドレスのみを変更する場合は以下のようにします。
>ip_config 192.168.0.55

サブネットマスクのみ変更する場合はIPアドレスを省略していることを示す ',' が先頭に必要です。
>ip_config ,255.255.255.80

このように引数の中で先頭側の引数を省略する(変更しない)場合には省略数分の ',' が必要です。後ろ側の引数全てを省略する場合は ',' 自体も省略できます。

 DHCPを実装すればIPアドレス等の設定はDHCPサーバーに任せられますが、組み込み環境でDHCP機能が使えるかどうかとは別の話なので、このような機能は必須になります。

 前へ  次へ