SiTCP 内部レジスタ解説書

第 1.0.2 版

2021 年 10 月 14 日

㈱Bee Beans Technologies

改版履歴版数

日付

内容

1.0.2

2021/10/14

初版

【目次】
1.

概要 .................................................................................................................................. 1

2.

レジスタマップ概要 ............................................................................................................ 1

3.

2.1.

EEPROM 空間（0xFFFF_FC00～0xFFFF_FCFF） ............................................... 1

2.2.

Ethernet PHY MIF インタフェース空間（0xFFFF_FE00～0xFFFF_FEFF）.......... 1

2.3.

SiTCP レジスタ空間（0xFFFF_FF00～0xFFFF_FFFF）......................................... 1

SiTCP レジスタ空間 詳細 ................................................................................................ 2
3.1.

SiTCP Library Synthesis Date Register ............................................................... 3

3.2.

SiTCP Library FPGA ID Register ......................................................................... 3

3.3.

SiTCP ID/Version Register .................................................................................... 3

3.4.

SiTCP and TCP Control Register .......................................................................... 3

3.4.1.

SiTCP reset （bit7） .......................................................................................... 3

3.4.2.

Client ARP （bit6） ........................................................................................... 3

3.4.3.

Dup Ack （bit5）................................................................................................ 43.4.4.

MIF Initializer （bit4） ..................................................................................... 4

3.4.5.

MAC flow control （bit3）................................................................................. 6

3.4.6.

Keep alive packet （bit2） ................................................................................ 6

3.4.7.

Fast retrains. （bit1） ....................................................................................... 7

3.4.8.

Nagle buffering （bit0）.................................................................................... 7

3.5.

MAC Address Register ........................................................................................... 73.6.

IP Address Register ................................................................................................ 7

3.7.

TCP Port Number Register(main port) ................................................................ 7

3.8.

TCP Port Number Register(sub port) ................................................................... 7

3.9.

TCP Maximum Segment Size Register................................................................. 8

3.10. RBCP Port Number Register................................................................................. 8
3.11. TCP Keepalive Time(buffer not empty)Register .................................................. 8

3.12. TCP Keepalive Time(buffer empty)Register ........................................................ 83.13. TCP Timeout (Connecting) Register ..................................................................... 83.14. TCP Timeout (Disconnect) Register ...................................................................... 83.15. TCP Re-connect Interval Register......................................................................... 8
3.16. TCP Retransmission time Register....................................................................... 93.17. TCP Server MAC Address Register ...................................................................... 93.18. TCP Server IP Address Register ........................................................................... 93.19. TCP Server Port Number Register ....................................................................... 93.20. User Area ................................................................................................................ 93.21. Access prohibited area ........................................................................................... 94.

参考文献 ........................................................................................................................ 10

1. 概要本文書は、内田智久博士が作成した文書「SiTCP 説明書」「SiTCP ライブラリ」の補足資料であり、SiTCP の内部レジスタを解説するものです。SiTCP は内田智久博士が開発し、(株)BeeBeans Technologies（以下 BBT）が管理・配布を行っているネットワーク・プロセッサです。

2. レジスタマップ概要
RBCP のメモリ空間のうち、0xFFFF_0000～0xFFFF_FFFF までが SiTCP 内部用にリザーブされています。現在は EEPROM 空間、Ethernet PHY MIF インタフェース空間、SiTCP レジス
タ空間が定義されています。このエリアは SiTCP の基本動作を制御するため、本文書の内容を理解してから変更してください。説明のない領域は書き込みだけでなく、読み込みも推奨しません。
レジスタの未定義 bit についても将来拡張される可能性があるため、変更しないでください。

2.1. EEPROM 空間（0xFFFF_FC00～0xFFFF_FCFF）
EEPROM 空間の読み出しは常時可能ですが、書き込みをするためには EEPROM のライトプロテクトを解除する必要があります。0xFFFFFCFF への 0x00 書き込みでライトプロテクトを解除できます。なお、現在ライトプロテクトの解除時に書き込む値は任意ですが、将来拡張時の互換性確保のため 0x00 としてください。一度の読み書きは 16Byte 以下を推奨します。
表 2-1

EEPROM のメモリマップ

アドレス

説明

0xFFFFFC10～0xFFFFFC4F

0xFFFFFF10～0xFFFFFF4F の初期値

0xFFFFFCFF

0x00 の書き込みでライトプロテクトの解除

2.2. Ethernet PHY MIF インタフェース空間（0xFFFF_FE00～0xFFFF_FEFF）
この空間から PHY レジスタへの書き込み・読み出しアクセスが可能です。アクセスするためには SiTCP に対して MDIO および MDC を接続するとともに、PHY アドレスの設定を行う必要があります（SiTCP 入出力ポート解説書を参照）。PHY のレジスタを R とすると、RBCP アドレスの 0xFFFF_FE00+2*R と 0xFFFF_FE00+2*R+1 に対応します。読み出し、書き込みのいずれの場合も 0xFFFF_FE00+2*R から順に連続してアクセスしてください。PHY レジスタの内容は使用する PHY のデータシートを参照してください。

2.3. SiTCP レジスタ空間（0xFFFF_FF00～0xFFFF_FFFF）「SiTCP 説明書」で内部レジスタ・SiTCP 制御レジスタとしている領域です。以降の「3.SiTCPレジスタ空間 詳細」で解説します。

13. SiTCP レジスタ空間 詳細
表 3-1 に SiTCP のレジスタマップを示します。通常これらのレジスタはデフォルト値またはEEPROM に保存されている値によって、標準的な値に設定されています。変更に際しては十分理解した上で行ってください。
表 3-1

SiTCP レジスタマップアドレス(0xFFFF_FF00からの差分)

Byte

説明開始

終了

+0x00+0x03

4

SiTCP Library Synthesis Date Register+0x04+0x07

4

SiTCP Library FPGA ID Register+0x08+0x0F

4

SiTCP ID/Version Register+0x10+0x10

1

SiTCP and TCP Control Register+0x11+0x11

1

予約領域

+0x12+0x17

6

MAC Address Register+0x18+0x1B

4

IP Address Register

+0x1C

+0x1D

2

TCP Port Number Register(main port)

+0x1E

+0x1F

2

TCP Port Number Register(sub port)+0x20+0x21

2

TCP Maximum Segment Size Register+0x22+0x23

2

RBCP Port Number Register+0x24+0x25

2

TCP Keepalive Time (buffer not empty) Register+0x26+0x27

2

TCP Keepalive Time (buffer empty) Register+0x28+0x29

2

TCP Timeout (Connecting) Register

+0x2A

+0x2B

2

TCP Timeout (Disconnect) Register

+0x2C

+0x2D

2

TCP Maximum Segment Lifetime(MSL) Register

+0x2E

+0x2F

2

TCP Retransmission time Register+0x30+0x35

6

TCP Server MAC Address Register+0x36+0x39

4

TCP Server IP Address Register

+0x3A

+0x3B

2

TCP Server Port Number Register+0x3C+0x3F

4

User Area+0x40+0xFF

192

Access prohibited area23.1. SiTCP Library Synthesis Date Register
読み出しのみ可能な、SiTCP ライブラリの合成日時を示す値（BCD 表記）です。

3.2. SiTCP Library FPGA ID Register
読み出しのみ可能な、SiTCP ライブラリの FPGA 管理用 ID を示す値（BCD 表記）です。

3.3. SiTCP ID/Version Register
読み出しのみ可能な、SiTCP の識別子とメジャーバージョン・マイナーバージョンを示す値（BCD 表記）です。

3.4. SiTCP and TCP Control Register
SiTCP の動作モードの設定やリセットを行います（表 3-2）。このレジスタの初期値は 0x01 です。詳細は 3.4.1～0 で解説します。
表 3-2
bit 位置3.4.1.

Control register のビットマップ

シンボル

説明

bit7

SiTCP reset

1 の書き込みで SiTCP のリセット

bit6

Client ARPClient ARP 機能

1：有効 0：無効

bit5

Dup AckDup Ack 送信

1：有効 0：無効

bit4

MIF Initializer

MIF 初期化機能

1：有効 0：無効

bit3

MAC flow control

PAUSE フレーム対応

1：有効 0：無効

bit2

Keep alive packet

Keep alive パケット送信機能

1：有効 0：無効

bit1

Fast retrains.

Fast retransmission

1：有効 0：無効

bit0

Nagle buffering

Nagle's algorithm

1：有効 0：無効

SiTCP reset （bit7）
この bit を 1 に設定すると、SiTCP の RST ポートに 1 を入力した時の動作と同様にSiTCP およびレジスタをリセット・初期化します。また、初期化後 SiTCP_RST が一定時間1 に保持されます（入出力ポート解説書を参照）。

3.4.2.

Client ARP （bit6）
この bit はクライアントモードで使用します。1 に設定することで接続先サーバーに対してARP リクエストを行い、返送された ARP リプライから MAC アドレスを取得します。この場合、接続先サーバーの MAC アドレスを「3.17.TCP Server MAC Address Register」に設定する必要はありません。

33.4.3.

Dup Ack （bit5）
この bit を 1 に設定すると、SiTCP は接続先からのデータ受信後、次に何らかのパケットを受け取るまで ACK パケットを約 2ms 周期で送信します。0 に設定すると接続先の 1 回のデータ送信に対して 1 個のみ ACK を送信します。

3.4.4.

MIF Initializer （bit4）
この bit を 1 に設定することで、SiTCP を使用した PHY の（ベンダ依存部分を除く）MIF初期化が実行可能になります。オートネゴシエーション時、PAUSE 機能（後述 bit3）の有効および半二重通信の無効についてリンクパートナーの PHY に広告できます。この bit が0 の場合、これらの設定は PHY 側のデフォルトとなります。
な お 、 使 用 に 際 し て は 、 こ の SiTCP レ ジ ス タ 領 域 に 対 応 す る EEPROM 領 域（0xFFFF_FC10 の bit4）を予め 1 に設定しておく必要があります。
この bit が 1 の場合、SiTCP が接続先の PHY レジスタに行う設定は表 3-3～表 3-5 の通 り で す 。 SiTCP は Auto-Negotiation advertisement register （ Register 4 ） 、MASTER-SLAVE control register（Register 9）、Control register（Register 0）の順に設定を行います。
表 3-3 Auto-Negotiation advertisement register (Register 4) への設定内容

bit 位置SiTCP 設定値

内容

bit15

Next Page

0

bit14

Reserved0bit13

Remote Fault0

bit12

Extended Next Page

0

bit11

Asymmetric PAUSE operation for full duplex Links

bit3 の設定値

bit10

PAUSE operation for full duplex links

bit3 の設定値

bit9100BASE-T40bit8100BASE-TX full duplex

1bit7100BASE-TX

0bit610BASE-T full duplex

1bit510BASE-T

0bit4-0

Selector Field00001

4表 3-4MASTER-SLAVE control register (Register 9) への設定内容

bit 位置bit15-13

SiTCP 設定値

内容
Test mode bits000

bit12MASTER-SLAVE Manual Config Enable

0bit11MASTER-SLAVE Config Value

0bit10Port type0

bit91000BASE-T Full Duplex

MODE_GMII の値(※)

bit81000BASE-T Half Duplex

0bit7-0

Reserved00000000※ SiTCP の入力ポート MODE_GMII の値です（入出力ポート解説書を参照）。
表 3-5 Control register (Register 0) への設定内容
bit 位置SiTCP 設定値

内容

bit15Reset0bit14

Loopback

0bit13

Speed Selection (LSB)

1

bit12

Auto-Negotiation Enable

1bit11

Power Down

0bit10Isolate

0bit9

Restart Auto-Negotiation

1bit8Duplex Mode

1bit7Collision Test

0bit6

Speed Selection (MSB)0

bit5-0Reserved000000

53.4.5.

MAC flow control （bit3）
Ethernet フロー制御方式である IEEE802.3X の PAUSE フレーム対応機能を有効にする bit です。SiTCP はデータ送信中にスイッチングハブ等から送出される PAUSE フレームを受信すると、そのフレームに設定されている中断時間に従ってデータ送信を停止します。
また、中断時間 0 のフレームを受信するとデータ送信を再開します。なお、PAUSE フレームを送出する機能はありません。
ネゴシエーションの結果に関わらず、このレジスタへの設定で SiTCP の PAUSE 機能が有効になりますが、リンクパートナーに PAUSE 機能が有効であることをオートネゴシエーションで広告する必要があります。SiTCP を使用して広告を行う場合は、予め MIF 初期化機能と PAUSE 機能を有効（SiTCP レジスタ領域に対応する EEPROM 領域である
0xFFFF_FC10 の bit4 および bit3 を 1）にしてください。
この bit を 1 にすることで、SiTCP は MIF 初期化の際に PHY の Auto-Negotiation
Advertisement Register の bit11（ASY_PAUSE）および bit10（PAUSE）を 1 に設定します。よって、SiTCP がこれら 2 つの bit に設定するのは 11 または 00 のどちらかとなります。参考に、PAUSE の設定に対するローカルデバイス（SiTCP）とリンクパートナー（接続先）での PAUSE フレーム送受信の可否を表 3-6 に示します。
表 3-6
ローカルデバイス設定

PAUSE 設定および PAUSE フレーム送受信の可否
リンクパートナー設定

PAUSE フレーム送受信の可否

ASY_PAUSE

PAUSE

ASY_PAUSE

PAUSE

ローカルデバイス

リンクパートナー

0

0

Don’t Care

Don’t Care

送受信不可

送受信不可

Don’t Care

1

Don’t Care

1

送受信可

送受信可

1

100

送受信不可

送受信不可

1

1

10

送信不可

送信可

受信可

受信不可

3.4.6.

Keep alive packet （bit2）
TCP の Keep alive パケット送信機能を有効にする bit です。1 に設定すると、送信バッフ
ァにデータがある場合は「3.11.TCP Keepalive Time(buffer not empty)Register」に設定 さ れ た タ イ マ 周 期 で 、 デ ー タ が な い 場 合 は 「 3.12.TCP Keepalive Time(bufferempty)Register」に設定されたタイマ周期で Keep alive パケットを送信します。

6

3.4.7.

Fast retrains. （bit1）
1 に設定すると Fast retrains.モードを ON にします。Fast retrains.モード有効時は、TCP の再送タイマ（「3.16.TCP Retransmission time Register」で設定される時間）が満了しなくとも、接続先から同一 ACK 番号のパケットを計 4 回受信すると SiTCP はデータ再送を行います。

3.4.8.

Nagle buffering （bit0）
この bit を 1 に設定することで TCP の Nagle アルゴリズムを有効にします。1 の場合、SiTCP は送信データサイズが MSS 以上になるか、または書き込み開始から約 4ms 経過後にパケットを送出します。データサイズが小さく（～数十 Byte）、応答時間を短くしたい場合は 0 に設定すると改善されることがあります。通常は 1 に設定してください。

3.5. MAC Address Register
自局の MAC アドレスレジスタです。書き換えを行うと正常に動作しなくなりますので注意してください。

3.6. IP Address Register
IP ア ド レ ス 格 納 用 レ ジ ス タ で す 。 こ こ に 表 示 さ れ る 値 は SiTCP ラ イ ブ ラ リ の
IP_ADDR_DEFAULT ポートに出力されます。レジスタの値を自局の IP アドレスとして使用するためには、IP_ADDR_DEFAULT ポートの値を IP_ADDR_IN ポートに入力してください。

3.7. TCP Port Number Register(main port)
SiTCP が確立できるのは 1 セッションですが、2 ポートまで設定可能であり、一方をメインポート、もう一方をサブポートと称しています（入出力ポート解説書を参照）。
このレジスタは TCP メインポート番号格納用レジスタです。ここに表示される値は SiTCP ラ
イブラリの TCP_MAIN_PORT_DEFAULT ポートに出力されます。レジスタの値を自局のTCP メインポート番号として使用するためには、TCP_MAIN_PORT_DEFAULT ポートの値をTCP_MAIN_PORT_IN ポートに入力してください。

3.8. TCP Port Number Register(sub port)
このレジスタは TCP サブポート番号格納用レジスタです。ここに表示される値は SiTCP ライ
ブラリの TCP_SUB_PORT_DEFAULT ポートに出力されます。レジスタの値を自局の TCP サ
ブ ポ ー ト 番 号 と し て 使 用 す る た め に は 、 TCP_SUB_PORT_DEFAULT ポ ー ト の 値 をTCP_SUB_PORT_IN に入力してください。

73.9. TCP Maximum Segment Size Register
TCP の maximum segment size（MSS）を設定します。1～1460 の値を設定してください。
初期値は 0x05B4（1460Byte）です。

3.10. RBCP Port Number Register
RBCP の UDP ポート番号格納用レジスタです。ここに表示される値は SiTCP ライブラリのRBCP_PORT_DEFAULT ポートに出力されます。レジスタの値を RBCP の UDP ポート番号として使用する場合は、RBCP_PORT_DEFAULT ポートの値を RBCP_PORT_IN ポートに入力してください。

3.11. TCP Keepalive Time(buffer not empty)Register
送信バッファにデータが残存している時の Keepalive Timer のタイムアウト値を 1ms 単位で設定します。1～65,535 の範囲で設定してください。初期値は 0x3E8（1,000ms=1 秒）です。

3.12. TCP Keepalive Time(buffer empty)Register
送信バッファにデータが存在しない時の Keepalive Timer のタイムアウト値を 1ms 単位で設定します。1～65,535 の範囲で設定してください。初期値は 0xEA60（60,000ms=1 分）です。

3.13. TCP Timeout (Connecting) Register
セッション確立時のタイムアウト時間を 1ms 単位で設定します。1～65,535 の範囲で設定してください。初期値は 0x1388（5,000ms=5 秒）です。

3.14. TCP Timeout (Disconnect) Register
セッション確立後に有効なパケットを受信しないままこの時間を経過すると、SiTCP はセッションを切断します。タイムアウト時間は 256ms 単位で設定します。1～65,535 の範囲で設定してください。初期値は 0x2BF2（11,250*256=2,880,000ms＝48 分）です。
なお、長時間データのやり取りが行われない可能性があり、かつセッションを維持したい場合
は、「3.4.6.Keep alive packet （bit2）」を 1（有効）に設定してください。

3.15. TCP Re-connect Interval Register
TCP コネクション-コネクション間の待機時間（MSL の 2 倍、TCP 状態遷移図における TimeWait 状態に留まる時間）を 1ms 単位で設定します。セッション切断後、この時間が経過するまで新たにセッション接続を行うことができません。1～65,535 の範囲で設定してください。初期値は 0x1F4（500ms=0.5 秒）です。

8

3.16. TCP Retransmission time Register
再送時間を 1ms 単位で設定します。データ送信後 ACK 番号の更新がないままこの時間が経過するとデータを再送します。1～65535 の範囲で設定してください。初期値は 0x1F4（500ms=0.5 秒）です。

3.17. TCP Server MAC Address Register
クライアントモードでのみ使用する、接続先サーバーの MAC アドレス設定用レジスタです。こ
こに表示される値は SiTCP ライブラリの TCP_SERVER_MAC_DEFAULT ポートに出力されま す 。 レ ジ ス タ の 値 を 接 続 先 サ ー バ ー の MAC ア ド レ ス と し て 使 用 す る 場 合 は
TCP_SERVER_MAC_DEFAULT ポートの値を TCP_SERVER_MAC_IN ポートに入力してください。
なお、「3.4. SiTCP and TCP Control Register」の Client ARP （bit6）が 1 に設定されている場合は、接続先サーバーへ ARP リクエストを行った結果から MAC アドレスを取得するた
め、TCP_SERVER_MAC_IN に入力した値は適用されません。

3.18. TCP Server IP Address Register
クライアントモードでのみ使用する、接続先サーバーの IP アドレス設定用レジスタです。ここに表示される値は SiTCP ライブラリの TCP_SERVER_ADDR_DEFAULT ポートに出力されま す 。 レ ジ ス タ の 値 を 接 続 先 サ ー バ ー の MAC ア ド レ ス と し て 使 用 す る 場 合 は
TCP_SERVER_ADDR_DEFAULT ポートの値を TCP_SERVER_ADDR_IN ポートに入力してください。

3.19. TCP Server Port Number Register
クライアントモードでのみ使用する、接続先サーバーの TCP ポート番号設定用レジスタです。
ここに表示される値は SiTCP ライブラリの TCP_SERVER_PORT_DEFAULT ポートに出力され ま す 。 レ ジ ス タ の 値 を 接 続 先 サ ー バ ー の MAC ア ド レ ス と し て 使 用 す る 場 合 は
TCP_SERVER_PORT_DEFAULT ポートの値を TCP_SERVER_PORT_IN ポートに入力してください。

3.20. User Area
この領域（計 4Byte）はユーザーが自由に読み書きできる汎用レジスタです。

3.21. Access prohibited area
この領域に何らかの値を書き込むと正常に動作しなくなるため、書き込みを行わないでください。

9

4. 参考文献
SiTCP 説明書 内田智久／BBT
SiTCP 入出力ポート解説書 BBT10