emNet高速・高性能TCP/IPプロトコルスタック
2019/9/10 Copyright © 2019 EmbITeK Co., Ltd. All Rights Reserved.
emNet
emNetは、SEGGER J-Link Pro, Flasher ARM/PROなどLANインターフェースを持つSEGGER製品で実装されているTCP/IPプロトコルスタック
2019/9/10 Copyright © 2019 EmbITeK Co., Ltd. All Rights Reserved. 2
emUSBDevice
RTOSembOS
不正改造・量産防止
emSecure
TCP/IPemNet
emNet サマリー
2019/9/10 3
OSレスでも実装可能な組込用TCP/IPソリューション小さなメモリフットプリントで高速・高性能スタック
汎用性ANSI Cコードでマイコン・
コンパイラを選べる
数百種のデバイスドライバ
ソースコード提供
RTOS依存性なし
高性能・省リソース
必要ROM: 19Kbyte必要RAM: 1.5Kbyte
(バッファサイズ含まず)
送信:75.2Mbps受信:94.4Mbps
(TCPゼロコピーインターフェース)
多機能IPv4/v6対応
各種プロトコル対応TCP / UDP / DHCPs / DHCPc / FTPsFTPc / ACD / ARP / CoAPc / CoAPs
mDNS / LLMNR / DNS-SDsICMP / Loopback device / Multicast
MQTT client / NetBIOS Name ServiceWiFi / PPP / PPPoE / RAW Sockets
SMTPc / SNTPc / SNMP / UPnPVLAN / Webcast / Web server
WebSocket / NTP Client / PTP OC
開発プロジェクト無制限のユーザライセンス・量産ロイヤリティフリーでご提供
emNet 製品機能概要
2019/9/10 4
ANSI CコードでCPU依存性のないTCP/IPプロトコルスタック■標準ソケットインターフェース■高速通信を実現■小さなメモリフットプリント■設定不要で動作可能「そのままで」実行可能です。■シンプルなネットワークインターフェイスドライバ構造■ embOSとシームレスに連携します。■高速パフォーマンス「ゼロデータコピー」■すべての機能で「非ブロッキング」対応■ VLANのサポート■ BSD形式の「キープアライブ」オプション■ハードウェアドライバ側でのチェックサムに対応■数百種のデバイスドライバサポート
製品パッケージ各プロトコルソフトウェアモジュール
2019/9/10 5
プロトコル BASE PROACD ✔ ✔
ARP ✔ ✔
AutoIP ✔ ✔
DHCP Client ✔ ✔
DNS Client ✔ ✔
ICMP ✔ ✔
IPv4 ✔ ✔
IPv6 Option OptionLoopback device ✔ ✔
Multicast ✔ ✔
RAW Sockets ✔ ✔
TCP ✔ ✔
UDP ✔ ✔
VLAN ✔ ✔
プロトコル BASE PRODHCP Server Option ✔
mDNS Server Option ✔
LLMNR Server Option ✔
DNS-SD Server Option ✔
NetBIOS Name Service Option ✔
NTP Client Option ✔
PPP/PPPoE Option OptionPTP OC Client Option OptionSNTP Client Option ✔
Tail Tagging Option OptionUPnP Option OptionWifi support ✔ ✔
Device Driver Option 1 device
BASE = emNet BASE PRO = emNet PRO
製品パッケージemNet以外のTCP/IPにも実装可能なパッケージ化プロトコル
2019/9/10 6
製品パッケージ プロトコル BASE PRO
emFTP Client FTP client Option OptionemFTP Server FTP server Option ✔
emMQTT MQTT client Option ✔
emNet CoAPCoAP client Option ✔
CoAP server Option ✔
emNet SMTP client SMTP client Option ✔
emNet SNMP Agent SNMP agent Option Option
emNet WebSocketWebSocket client Option ✔
WebSocket server Option ✔
emWeb HTTP Server Option ✔
IoT ToolkitHTTP Client Option OptionJSON Parser Option Option
emSSLSSL server Option OptionSSL client Option Option
emSSH SSH server Option Option
他社製TCP/IPへBSDソケットインターフェースまたはTCP/IP独自インターフェースのポーティング実装可能
ポーティング実装対応はエンビテックでも対応可能です。
Non-RTOSで動作可能なプロトコルRTOS必須の有無(マルチタスクが必要なアプリケーションは、RTOSを導入ください。)
2019/9/10 7
プロトコル RTOSACD 不要ARP 不要AutoIP 不要DHCP Client 不要DNS Client 不要ICMP 不要IPv4 不要IPv6 不要Loopback device 不要Multicast 不要RAW Sockets 不要TCP 不要UDP 不要VLAN 不要
プロトコル RTOSDHCP Server 不要mDNS Server 不要LLMNR Server 不要DNS-SD Server 不要NetBIOS Name Service 不要NTP Client 不要PPP/PPPoE 不要PTP OC Client 不要SNTP Client 不要Tail Tagging 不要UPnP 不要Wifi support 不要Device Driver 不要
プロトコル RTOSFTP client 不要FTP server 必須MQTT client 不要CoAP client 不要CoAP server 不要SMTP client 不要SNMP agent 必須WebSocket client 不要WebSocket server 不要HTTP Server 必須HTTP Client 不要JSON Parser 不要SSL server 必須SSL client 不要SSH server 必須
emNet基本モジュール
emNetは、小さなメモリフットプリントながら、RFC標準のソフトウェア構造BSDソケットインターフェース形式のAPIを提供します。
2019/9/10 Copyright © 2019 EmbITeK Co., Ltd. All Rights Reserved. 8
emNet 基本構造
2019/9/10 9
シンプルで分かりやすく、標準的なインターフェースを提供Application LayerBSDソケットインターフェース形式のemNet APIを活用して、各種プロトコル、ユーザアプリケーションで利用します。
Transport Layer信頼性の高いTCP通信プロトコルとコネクションレスのUDP通信プロトコルにより構成されています。
Network Layerトランスポートレイヤーのプロトコルは、IPによって通信されます。IPプロトコルにより、アドレス付与、サービスタイプの指定、フラグメントの解消セキュリティ情報のプロビジョニングなどが行われます。
Link Layerネットワークへ接続するためのインターフェースを提供します。通常は、イーサネット(IEEE802.3)への接続プロトコル
「RFC 1122」規格に則った4つのレイヤー構成を持ちます。
emNet でのカプセル化手順
2019/9/10 10
各レイヤーでIP通信の標準的なデータカプセル化を行います。
enNetでは「RFC 1122」規格に則った4つのレイヤーにより、それぞれのレイヤーでヘッダー情報を付与しデータをカプセル化します。受信時では逆の方向でデータ抽出を行います。
UDPデータを通信カプセル化する場合、左図の様な手順をたどります。
タスクと割込:3つのシステム概要
2019/9/10 11
1.スタック専用のシングルタスク
TCP / IPスタックを使用する最も簡単な方法です。スタック専用のシングルタスクで「IP_TASK」ハウスキーピング操作、再送、着信のパケット処理を行います。パケットの読取りは、ISRから直接呼び出されるので追加のタスクは必要ありません。「パケットの読取り」処理に必要な時間だけ延長されます。
RTOSなしでのシステム概要イメージ例
タスクと割込:3つのシステム概要
2019/9/10 12
2.スタック専用の2つのタスクで構成(RTOS搭載前提)
2つのTCP / IPスタック専用タスクを使用します。一つは「IP_TASK」でハウスキーピング操作、再送、着信のパケット処理を行います。二つ目のタスク「IP_RxTask」でパケットの読取り処理を行います。
「IP_RxTask」は新しいパケットが利用可能になった場合、ISRから起動されます。パケット読取り処理をISRから「IP_RxTask」に移動されるので、割込レイテンシは延長されません。
RTOSを使ってタスク管理システム概要イメージ例
タスクと割込:3つのシステム概要
2019/9/10 13
3.ユーザアプリケーションからポーリング(SuperLoop)
アプリケーションタスクが「IP_Exec()」を定期的に呼び出し、スタック専用のタスクなしで利用する事も出来ます。
パケットの読取り処理は、ISRから直接呼び出されるため、追加のタスクは必要ありません。割込レイテンシの長さは、パケットの読取り処理に必要な時間だけ延長されます。
RTOSあり、RTOSなし、いずれでも利用可能なシステムイメージ
emNet オプション機能
TCP/IPの標準的な機能のみではなくオプションにより様々な機能を提供します。
2019/9/10 Copyright © 2019 EmbITeK Co., Ltd. All Rights Reserved. 14
emNetのみで利用可能なオプション機能
mDNS/LLMNR serverNetBIOSNTP clientSNTP ClientPTP OC client (IEEE 1588-2008)PPP/PPPoE
emNet PRO同梱
emNet PRO同梱
emNet PRO同梱
emNet PRO同梱
emNet mDNS/LLMNR server
2019/9/10 15
Windows, Mac, Linuxの標準的なダイナミックDNS関連のRFCサポートRFC 概要
Multicast DNS(mDNS)
RFC 6762 mDNSは、Appleのデバイスで利用されるPort 5353を利用したマルチキャストDNSシステムRFCドキュメント:ftp://ftp.rfc-editor.org/in-notes/rfc6762.txt
LLMNR RFC 4795 LLMNRは、Windows PCで利用されるPort 5355を利用したマルチキャストDNSシステムRFCドキュメント:ftp://ftp.rfc-editor.org/in-notes/rfc4795.txt
DNS-SD RFC 6763 ドメイン名を検索するためのDNSクエリ定義ftp://ftp.rfc-editor.org/in-notes/rfc6763.txt
DNS SRV RFC 2782 インターネット標準のトラックプロトコル定義ftp://ftp.rfc-editor.org/in-notes/rfc2782.txt
DOMAIN NAMES
RFC 1035 標準的なドメイン名定義ftp://ftp.rfc-editor.org/in-notes/rfc1035.txt
ROM使用量:約3.1KB RAM使用量:約0.2KB
emNet PRO同梱
emNet NetBIOS
2019/9/10 16
emNetにNetBIOS機能を実装できます。
RFC 概要NetBIOS RFC 1001 NetBIOSのコンセプトと概要
RFCドキュメント:ftp://ftp.rfc-editor.org/in-notes/rfc1001.txt
RFC 1002 NetBIOS詳細機能RFCドキュメント:ftp://ftp.rfc-editor.org/in-notes/rfc1002.txt
ROM使用量:約0.7KB RAM使用量:約26B
NetBIOS機能により、ローカルエリアネットワーク内の個別通信で利用可能なセッションレイヤーが提供されます。
emNet PRO同梱
emNet NTP client
2019/9/10 17
NTP clientにより、NTP serverからタイムスタンプを取得
RFC 概要NTPv4 RFC 5905 NTP version4 アルゴリズム
ftp://ftp.rfc-editor.org/in-notes/rfc5905.txt
ROM使用量:3.1 – 4.5KB RAM使用量:0.6 – 3.2KB
検索対象IP情報
同期情報
emNet PRO同梱
emNet SNTP Client
2019/9/10 18
SNTP Clientにより、NTPサーバから時間情報を取得、RTCを初期化
RFC 概要SNTP RFC 4330 SNTP version 4 for IPv4/IPv6
RFCドキュメント:ftp://ftp.rfc-editor.org/in-notes/rfc4330.txt
RFC 1305 SNTP version 3RFCドキュメント:ftp://ftp.rfc-editor.org/in-notes/rfc1305.txt
ROM使用量:約0.7KB RAM使用量:約26B
NTPタイムスタンプ(2つの32bitフィールドで構成される64bitデータ)を取得し、情報を使用します。
emNet PRO同梱
emNet PTP OC client (IEEE 1588-2008)
2019/9/10 19
機器間の時間同期を高精度に実現
ROM使用量:約7KB RAM使用量:約300Byte
IEEE 概要1588-2008 IEEE1588-2008 高精度時間同期コントロールシステム
http://www.nist.gov/el/isd/ieee/ieee1588.cfm
PTP OC clientを利用することにより、ターゲットベンチマークで100ns精度を実現します。
emNet PTPはソフトウェア実装で実現可能です。ハードウェア対応をご要望の場合は、別途ご相談ください。
emNet PPP/PPPoE
2019/9/10 20
emNet TCP/IPアプリケーションでPPP / PPPoEを利用します。
ROM使用量:約7.0KB RAM使用量:約0.5KB
RFC 概要PPPPPPoE
RFC 1334 PPP認証プロトコルftp://ftp.rfc-editor.org/in-notes/rfc1334.txt
RFC 1661 PPPftp://ftp.rfc-editor.org/in-notes/rfc1661.txt
RFC 1994 PPP CHAPftp://ftp.rfc-editor.org/in-notes/rfc1994.txt
RFC 2516 PPPoEftp://ftp.rfc-editor.org/in-notes/rfc2516.txt
emNet UPnP
2019/9/10 21
ROM使用量: 約2KBRAM使用量:約170Byte
UPnPサービスを提供する拡張機能UPnPは、ユーザの操作を必要とすることなくネットワーク全体にサービス提供するように設計されています。
IP, TCP, UDP, Multicast, HTTP, XMLなど標準的なプロトコルを利用して通信し、デバイスが提供するサービス配信するように設計されています。
最新のOSでは、UPnPをデフォルトでサポートし、ネットワーク全体で利用可能なUPnPデバイスを表示、選択するだけでデバイスに簡単にアクセスできます。
Windows PCでは、UPnPを搭載した機器は以下の様に表示されます。
UPnP Device Architecture 1.0http://upnp.org/specs/arch/UPnP- arch-DeviceArchitecture-v1.0.pdf
emNet 関連製品
emNetに搭載可能な各種プロトコルスタックemNet以外のTCP/IPにも搭載可能な製品群
2019/9/10 Copyright © 2019 EmbITeK Co., Ltd. All Rights Reserved. 22
emFTP clientemFTP ServeremMQTTemNet CoAPemNet SMTP clientemNet SNMP AgentemNet WebSocketemWeb ServerIoT Toolkit
emNet PRO同梱
emNet PRO同梱
emNet PRO同梱
emNet PRO同梱
emNet PRO同梱
emNet PRO同梱
emFTP Client組込機器にFTPクライアント機能を実装します。
2019/9/10 23
アクティブモードクライアント側からリクエストをかけデータを取得
パッシブモードクライアント側「PASV」命令を出力、データ待ち受けします。
FTP command Description
CDUP Change to parent directory
CWD Change working directory
LIST List directory
MKD Make directory
PASS Password
PWD Print the current working directory
RETR Retrieve
RMD Remove directory
STOR Store
TYPE Transfer type
USER User name
[RFC 959] に基づいた各種コマンドに対応
emFTP Server組込機器にFTPサーバ機能を実装します。
2019/9/10 24
emNet PRO同梱
Windows、Linux、Mac用無償FTPサーバを提供組込用FTPサーバをPC向けに作成したFTPサーバで簡単に機能確認頂く事が可能です。
FTP command Description
CDUP Change to parent directory
CWD Change working directory
DELE Delete
LIST List
MKD Make directory
NLST Name list
NOOP No operation
PASS Password
PASV Passive
PORT Data port
PWD Print the current working directory
RETR Retrieve
RMD Remove directory
SIZE Size of file
STOR Store
SYST System
TYPE Representation type
USER User name
XCUP Change to parent directory
XMKD Make directory
XPWD Print the current working directory
XRMD Remove directory
[RFC 959] に基づいた各種コマンドに対応
emMQTT clientMQTT3.1をフルサポート
2019/9/10 25
emNet PRO同梱
Broker Plain MQTT MQTT over TLS MQTT over TLS(クライアント認証)
Notes
mosquitto ✔ ✔ ✔ Open-source MQTT broker for Linux, Windows, macOS. Tested with public broker at iot.eclipse.org
HiveMQ ✔ Public Broker × Public Broker × Enterprise MQTT broker for Linux servers. Tested with public broker at hivemq.com
AWS ✔ AWS supports MQTT to connect to the AWS IoT Message Broker.
テスト済みBrocker(一部)利用希望のBrockerがあれば、お問い合わせください。
Resource Usage Value
emMQTT Client Size (ROM) 約2.4 KB
emMQTT Client Size (RAM) 約8 Byte
emMQTT Client Context (RAM) 約76 Byte
CoAP Client / ServerConstrained Application Protocolクライアント/サーバ
2019/9/10 26
emNet PRO同梱
RFC 概要CoAP RFC 7252 CoAP
ftp://ftp.rfc-editor.org/in-notes/rfc7252.txtRFC 6690 CoRE Link format
ftp://ftp.rfc-editor.org/in-notes/rfc6690.txtRFC 7641 CoAP Observe
ftp://ftp.rfc-editor.org/in-notes/rfc7641.txtRFC 7959 CoAP ブロック転送
ftp://ftp.rfc-editor.org/in-notes/rfc7959.txt
■ GET / DELETE / PUT / POSTサポート■ CON / NONリクエストサポート■サーバはマルチクライアントに対応■ UDP/IPスタックに非依存■ブロック転送をサポート■ CoAP Observe機能をサポート■様々なオプション、リクエストを使ったデモサンプル
Add-on ROM
CoAP client 約 6.5 KByte
CoAP server 約 9.2 KByte
Add-on RAM
CoAP client 最小構成456 Bytes. アプリケーションにより「observer領域」と「メッセージバッファ」でより大きなリソースが必要になる場合もあります。
CoAP server 最小構成548 Bytes + 48 bytes(リソース毎)アプリケーションにより「observer領域」と「メッセージバッファ」でより大きなリソースが必要になる場合もあります。
SMTP client組込機器にSMTPクライアント機能を実装、メール送受信機能を実現します。
2019/9/10 27
emNet PRO同梱
RFC 概要SMTPclient
RFC 821 SMTPftp://ftp.rfc-editor.org/in-notes/rfc821.txt
RFC 974 メールルーティングとドメインシステムftp://ftp.rfc-editor.org/in-notes/rfc821.txt
RFC 5321 SMTPftp://ftp.rfc-editor.org/in-notes/rfc5321.txt
■小さなメモリフットプリント■ emNet以外のTCP/IPスタック対応■サンプルプロジェクト■ Microsoft VisualStudioで動作するプロジェクトを同梱
ROM使用量:約6.5KB RAM使用量:約4.7KB
SMTP Relay「emNet SMTP client」はSMTPリレークライアントと組み合わせて利用する事も可能です。例として、SMTPリレークライアントアプリケーション「Mercury Mail Transport System」との組合せ構成の解説資料がダウンロード出来ます。
SMTP client with TLSemSSLなどのSSLと組み合わせて利用する事により、TLSを利用した安全な接続を実現できます。
SNMP agent組込機器にSNMPエージェント機能を実装します。
2019/9/10 28
RFC 概要SNMP agent
RFC 2578 SMIv2(Structure of Management Information)ftp://ftp.rfc-editor.org/in-notes/rfc2578.txt
RFC 3416 SNMP v2ftp://ftp.rfc-editor.org/in-notes/rfc3416.txt
RFC 4181 MIBドキュメント策定とレビュアガイドラインftp://ftp.rfc-editor.org/in-notes/rfc4181.txt
■小さなメモリフットプリント■ MIBツリーを簡単にセットアップ■ SNMPv1,SNMPv2cをサポート■ TRAPメッセージをサポート■ SNMPv2 INFORMメッセージサポート
■一般的なSNMP(Unsidned32, Counter32など)で、利用しやすいAPI■ソケットまたはゼロコピーAPIを含むMIB利用デモサンプル同梱■ Microsoft Visual Studio で動作するサンプルプロジェクトを同梱
IANA Private Enterprise Number (PEN)御社製品にSNMPを実装するために、IANAからプライベートエンタープライズ番号(PEN)を取得する必要があります。 PENは、以下URLで無償リクエストできます。https://pen.iana.org/pen/app
製品に同梱されているサンプルに含まれるPENは、SEGGER社で取得したものとなります。
ROM使用量:約6.0KB RAM使用量:約300Byte
WebSocket client / serverIoT向けWebSocketプロトコルを実装します。
2019/9/10 29
emNet PRO同梱
RFC 概要Web Socket
RFC 6455 WebSocket protocolftp://ftp.rfc-editor.org/in-notes/rfc6455.txt
ROM使用量:約1.7KBRAM使用量:約30Byte
IoT機器通信向けにHTTP接続を非同期双方向データ通信にアップグレードできるプロトコルです。通常のHTTP1.1標準プロトコルと互換性があり、ウェブサーバサービスは通常のWEBサーバとWebSocketプロトコルを共存しながら、機能する事が可能です。
TCP ・ロストデータは再送信されます。・データはオーダに基づいて受信されます。・接続状態は、TCP KEEPALIVESを使用して、チェックできます。
UDP ・データは小さなフレームで送信できます。・フレームのデータ長は予め把握できます。・コントロールフレームはデータフレームの間で、送信できます。
emWeb – Web server組込機器にウェブサーバ機能を実装し、組込機器の状態を表示、設定変更などを行えます。
2019/9/10 30
emNet PRO同梱
ホストPCのウェブブラウザを使って、組込機器のデータ表示・操作。ホストPCのOSに依存しないグラフィカルインターフェースを提供します。
WebSocket、JavaScript、AJAX、REST、SEEなど標準的なプロトコルをサポートします。
アプリケーション例・ルータ/アクセスポイント/スイッチ・IoTデバイス・プリンタ・ウェアラブルデバイス など
ROM使用量: 約8KB RAM使用量:約2.5KB
HTTPベーシック認証、ダイジェスト認証に対応
ダイナミックコンテンツのサポート:CGI、Virtual Files、AJAX、SSE
IoT Toolkit – HTTP client / JSON Parser
2019/9/10 31
TCP/IP (SEGGER emNet or 他TCP/IPスタック)
RTOS(SEGGER embOS or iTRON or OtherRTOS)
JSON Parser
HTTP client
←既存のユーザアプリケーションにREST APIインターフェースを追加
SSL
■クラウドサービスと接続するIoT機器の開発を容易にします。■ HTTPc Basic、ダイジェスト認証に対応■ JSONパーサ仕様にエンコードしたデータのハンドリング■プレーンなテキストデータ(HTTPやCGIなど)のハンドリング■組込マイコンに最適化されたフットプリント、高速な実行性能
ライセンスモデル
量産ロイヤリティフリーでニーズに合わせて選べるライセンスモデル
2019/9/10 Copyright © 2019 EmbITeK Co., Ltd. All Rights Reserved. 32
embOSライセンスシステム
2019/9/10 33
柔軟なライセンス体系をニーズに合わせて選択可能
ライセンスモデル 提供コード 対象製品 開発者人数 CPU/ コンパイラ
プロダクトライセンス ソースコードまたはオブジェクト 一つの製品 無制限 1CPU型番
1コンパイラ
プロダクトファミリーライセンス ソースコードまたはオブジェクト 製品シリーズ 無制限 1CPU型番
1コンパイラ
ユーザーライセンス ソースコードまたはオブジェクト 無制限 1名 1CPUファミリー
1コンパイラ
CPUライセンス ソースコードまたはオブジェクト 無制限 無制限 1CPUファミリー
1コンパイラ
1CPUファミリーは、以下の通りARM CPUファミリー: Cortex-Mファミリー(M0/M0+/M1/M3/M4/M7デバイス) ARM7/9, Cortex-A/Rファミリー
RXファミリー など
emNetのユーザメリット
2019/9/10 34
ロイヤリティフリー・開発製品無制限のユーザライセンスで提供可能
開発プロジェクト無制限様々な開発で利用可能マイコン変更も対応(Cortex-Mxライセンス)
※H/Wデバイスドライバ部はマイコン変更の際、変更の必要があります。 B社Cortex-M4F CPUA社Cortex-M7 CPU B社Cortex-M4F CPU
emNet
File system
GUI
RTOSなしRTOS(embOS) RTOS(FreeRTOS)
emNet Driver for A emNet Driver for B
お問合せ窓口
2019/9/10 35
製品については、お気軽に以下窓口へお問い合わせください。
株式会社エンビテックTEL: 03-6240-2655
FAX : 03-6240-2656E-mail:[email protected]://www.embitek.co.jp