« フリーザーなう 製作日記 VOL.2 | トップページ | フリーザーなう 製作日記 VOL.4 »

2010年2月16日 (火)

フリーザーなう 製作日記 VOL.3

この日記では冷蔵庫の中身をTwitterでつぶやく「フリーザーなう」の製作過程を
紹介していきます。

~製作日記 VOL.3~

今回はEther通信です。

EtherのコントローラとしてMicroChip社のENC28J60を使用しました。
このデバイスを使用し、LANのコネクタと周辺回路がセットになったモジュールを使いました。

Avrlan2

ENC28J60の特徴は・・。

 ・IEEE802.3に準拠したイーサネットコントローラ
 ・MAC部と10BASE-T対応のPHY部を内蔵
 ・半二重と全二重対応
 ・自動再送と衝突検出
 ・CRCチェックを自動生成、チェック
 ・SPIインターフェース最高20Mbps
 ・8kバイトのRAMバッファ内蔵、バッファサイズ任意設定可能

こんな感じです。

回路的には・・。

 ・電源:3.14V~3.45V(3.3V±5%)
 ・外部インターフェース:TTL互換 入力5V可能

とういう感じで電源は3.3Vですが、5V入力可能なので5Vで動作しているマイコンでも簡単に接続できます。

ENC28J60にはプロトコルスタック等は内蔵していないのでTCP/IP通信などを行う場合はマイコン側のソフトウェアで実装する必要があります。

今回はtwitterでつぶやくのが目的なのでArduinoのマイコン(ATmega328)のROMやRAMの関係上、必要最低限を実装します。

まずtwitterのサーバへアクセスするために相手のアドレスを知らなければならないのでARP処理は必要になります。
次にtwitterでつぶやくためにはHTTPでサーバにアクセスするのでTCP/IPとHTTPの処理が必要になります。
なのでIPアドレスを自動的に取得するDHCP及びそれに使うUDPなどは実装しません。

これらのEther処理は手順がちょっと面倒で自作するのは手間がかかります。
オープンソースでマイコン向けプロトコルスタックのuIPやハードウェアで処理してくれるデバイスなどがあります。(Arduinoならイーサネットシールドがあります。)簡単に作りたい人はこれらを使用したほうが良いでしょう。

またこれらの処理を自作した場合やそうでない場合もいきなりにインターネットに繋いで試すのはちょっと怖い気がします。
まずはローカル(パソコンと1対1で繋ぐなど)で確認しましょう。

私の場合はパソコンのLANとクロスケーブルで繋いで確認をしています。
パケットの内容の確認にはWireSharkというフリーの便利なプロトコルアラナイザを使用しています。

シーケンシャルのパケットのやり取りとパケットの中身のダンプができます。

使い方は簡単で、ロギングしたいLANのハードウェアを選んでスタートを押すだけです。
あとはストップを押すまでロギングを続けます。
他にもTCPやUDP、IPアドレスで絞って表示したりも可能です。

次回はケース加工です。

|

« フリーザーなう 製作日記 VOL.2 | トップページ | フリーザーなう 製作日記 VOL.4 »

Arduino」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/189587/47825686

この記事へのトラックバック一覧です: フリーザーなう 製作日記 VOL.3:

« フリーザーなう 製作日記 VOL.2 | トップページ | フリーザーなう 製作日記 VOL.4 »