SII(Slave Information Interface)
スレーブ情報インターフェース
スレーブは不揮発性メモリを使ってEtherCAT Slave Information(ESI)を保存する.
不揮発性メモリにはI2C接続のEEPROMが一般的
EEPROMの中身はWordアドレスで表現されている図が多い.
1Word=2byte.ここの理解が甘くてこんがらがってしまった.
EtherCAT Slave Controller Configuration Area
電源ON時,Reset時に読み込まれる.範囲は0x00~0x07
この中身の値は各メーカごとに異なる.
言い方を変えるとここの値が正しく設定されていないとアプリケーションとの通信ができない.
0x00 PDI Control(0x0140) / ESC Configuration(0x0141)
ESCとアプリケーションのスレーブとの接続方法を設定する.
デジタルIO, SPI, HBI等
どんな接続方法が使えるかはそのESCに依存する.
LAN9252の場合,GPIO(0x04),SPI(0x80)と設定して使うことがほどんどと思われる.
0x01 PDI Configuration(0x0150) / SYNC/LATCH PDI Configuration(0x0151)
PDIコンフィグレーションレジスタ.
PDIをGPIOもしくはHBIどちらかにすることで設定する.
SYNC/LATCH PDIコンフィグレーションレジスタではSYNC0/SYNC1の入出力の設定を行う.
0x02 Pulse Length of SYNC Signals(0x0982-0x0983)
SYNC SIGNAL パルス長レジスタ.
LAN9252では単位:10nsと書いてあるがこれは1LSBで10nsということか?
ACKモートでは0を入れる.
0x03 Extended PDI Configuration(0x0152-0x0153)
拡張PDIコンフィグレーションレジスタ
LAN9252では,GPIOピンの入出力方向やバッファタイプを指定
0x04 Configured Station Alias(0x0012-0x0013)
構成済みステーションエイリアスアドレス.
ノードのアドレス指定に使うエイリアスアドレスを指定.
0x05, 0x06 Reserved
予約済み,0で埋める.
LAN9252は0x05がASICコンフィグレーションレジスタとなっている.
ここをいじることはないと思うけど
0x07 Checksum
ESC Configuration Areaのチェックサム.0x00~0x06までの値を元に計算する.
下位バイトに符号なしの数値が入る.
多項式は$x^8+x^2+1$(初期値0xFF)
デバッグ目的で,0x88A4を入力すると,チェックサム機能が無効になる(製品には使ってはいけない)
VenderID
0x08~0x09
ProductCode
0x0A~0x0B
RivisionNo
0x0C~0x0D
SerialNo
0x0E~0x0F
Hardware Delays
0x10~0x13
以下の部分はPanasonicのサーボアンプの資料から引っ張ってきた.この部分はEtherCATで共通のはず.
Bootstrap Mailbox Config
0x14~0x17
0x14 Bootstrap Receive MailBox Offset
0x15 Bootstrap Receive MailBox Size
0x16 Bootstrap Send MailBox Offset
0x17 Bootstrap Send MailBox Size
Mailbox SM Config
0x18~0x1B
0x18 Standard Receive MailBox Offset
0x19 Standard Receive MailBox Size
0x1A Standard Send MailBox Offset
0x1B Standard Send MailBox Size
0x1C Mailbox Protocol
Reserved
0x28~0x3F