概要
この記事では、WIZnetのEthernetchipであるW5500を利用したToE(TCP/IP Offload Engine)対応のW55RP20-EVB-Picoボードを使って、簡単にuPnP(Universal Plug and Play)を実装する方法を紹介します。
uPnPはホームネットワーク内でデバイス同士が自動的に認識・通信設定できるプロトコルです。IoT機器、スマート家電、ルーターなどのネットワーク機器に広く活用されています。
今回はWIZnetが推進するioNIC(Intelligent offload Network Interface Card)技術に基づき、簡単にEthernetを利用した通信設定を行う手順を説明します。
使用するハードウェア
- WIZnet W55RP20-EVB-Pico x 1
実施手順
① 開発環境設定
WIZnetの公式リポジトリをクローンします。
git clone https://github.com/WIZnet-ioNIC/WIZnet-PICO-C.git
CMakeLists.txt
ファイルで、ボードを以下のように設定します。
set(BOARD_NAME W55RP20_EVB_PICO)
② ネットワーク設定
w5x00_upnp.c
で以下のネットワーク情報を設定します。
static wiz_NetInfo g_net_info =
{
.mac = {0x00, 0x08, 0xDC, 0x12, 0x34, 0x56},
.ip = {192, 168, 11, 2},
.sn = {255, 255, 255, 0},
.gw = {192, 168, 11, 1},
.dns = {8, 8, 8, 8},
.dhcp = NETINFO_STATIC
};
③ ビルド&実行
正常に動作すると、EVB-Picoのネットワーク情報やメインメニューが表示されます。
メニュー番号 | 説明 |
---|---|
1 | LEDをON |
2 | LEDをOFF |
3 | ネットワーク設定表示 |
4 | ネットワーク情報設定 |
5 | TCPループバック動作 |
6 | UDPループバック動作 |
7 | uPnPポートフォワーディング設定 |
TCP/UDPループバック
HerculesクライアントでTCP(ポート8000)またはUDP(ポート5000)に接続し、通信テストを行います。
uPnPポートフォワーディング設定
ルーターの設定画面で自動的にポート開放(TCP/UDP)が行えます。
デモ動作例
実際に設定がうまく行われると、以下のような画面でポート設定を確認できます。
- ポート追加:TCP/UDPのポートが自動設定
- ポート削除:設定したポートが自動解除
参考リンク
キーワード
- WIZnet
- ioNIC
- ToE
- Ethernetchip
- W5500
- uPnP
- IoT
- ネットワーク開発
ぜひこの機会にWIZnetのioNIC技術とToE搭載のW5500 Ethernetchipを使って、簡単にネットワーク通信を試してみてください!