Web制御ACコンセント プロトコルスタック解説
・プロトコルスタック
この解説は、Web制御ACコンセントに搭載したプロコルスタックについての解説です。
・搭載したプロトコル
右に示した図が、搭載したプロトコルスタックです。
プログラムの容量上、TCPは簡易的な接続シーケンス、ARPキャッシュテーブルは1個に限定しています。
・初期化
電源投入後は、ポートの初期化・EEPROMからの情報読み出し、液晶表示などを行います。
回路上EEPROMとENC28J60のSPIポートが共通になっているため、SPIを有効にした状態ではEEPROMとアクセスできません。
そのため、SPIを有効にする前にEEPROMから情報をすべて読み出すようになっています。
また、暴走などの時に自動でリセットされる様、ウォッチドッグタイマを有効にしています。
電源投入後初期化処理フロー
ポート・変数初期化フロー
ENC28J60初期化フロー
・メインフロー
メインループでは、おもに下位プロトコルの処理・スイッチ入力・DHCPの周期管理をしています。
特筆する処理はありませんが、1周ごとにウォッチドッグタイマをクリアしています。
メインループ
・イーサネットコントローラの送受信処理
一番下位にあたる、イーサネットコントローラの処理です。
受信があった場合には、パケットの先頭から14バイト(イーサネットヘッダ)を読み出します。
送信は、上位プロトコルでセットされたデータを送信する作業をします。
ENC28J60送受信フロー
・イーサネット層送受信処理
この処理部分では、イーサネットヘッダ部分の判定やセットを行います。
イーサネット送受信フロー
・ARPプロトコル処理
この処理部分では、ARP要求やARP応答、キャッシュのクリアなどを行います。
ARPプロトコル受信処理フロー
ARP要求処理フロー
ARPタイマ処理フロー
・IPプロトコル処理
この処理部分では、IPヘッダの処理と送信先MACアドレスの解決を行います。
IPプロトコル受信処理フロー
IPプロトコル送信処理フロー
研究室ホーム
(c)Junnichi Tomaru