豊富なプロトコル・サービスサポート

emNet は、数多くの通信プロトコル・サービスを提供します。開発者様は、自社製品で必要なプロトコル・サービスを選択し、実装することで、最小限のフットプリントで必要な機能を実装することができます。

ベースプロトコル(基本パッケージ)

IPv4(Dual Stackパッケージの場合はIPv6も含む), UDP, TCP, DHCP client, ACD, ARP, AutoIP, DNS client, TFTPc, TFTPs, Loopback, ICMP, Multicast(IGMP), RAW sockets, VLAN, Wifi support

mDNS / LLMNR server

Windows, Mac, Linux の標準的なダイナミックDNS 関連のRFC サポート

emNet では、主な要件をカバーするシンプルなDNS サーバ、Apple マルチキャスト(mDNS)とMicrosoft LLMNR の両方をサポートすることができます。アドオンでは、サービス検出(DNS-SD)もサポートします。

mDNS request
mDNS discovery
RFC概要
Multicast DNS(mDNS)RFC6762mDNS は、Apple のデバイスで利用されるPort 5353 を利用したマルチキャストDNS システム
LLMNRRFC4795LLMNR は、Windows PC で利用されるPort 5355 を利用したマルチキャストDNS システム
DNS-SDRFC6763ドメイン名を検索するためのDNS クエリ定義
DNS SRVRFC2782インターネット標準のトラックプロトコル定義
Domain NamesRFC1035標準的なドメイン名定義

NetBIOS name service

ローカルエリアネットワーク内の個別通信で利用可能なセッションレイヤー

netbios

アプリケーションは、NetBIOS を使用して、NetBIOS 名をローカルエリアネットワークのIP アドレスに解決できます。

RFC概要
RFC1001NetBIOSのコンセプトと概要
RFC1002NetBIOS詳細機能

NTP client

NTP clientにより、NTP serverからタイムスタンプを取得

ntpc
ntpc app
RFC概要
NTPv4RFC5905NTP version4 アルゴリズム

PPP / PPPoE

モデム経由でネットワーク通信は可能。PAP認証、PPPoE(PPP Over Ethernet)をサポート

ppp blocks
RFC概要
RFC1334PPP 認証プロトコル
RFC1661PPP
RFC1994PPP CHAP
RFC2516PPPoE

PTP OC client

IEEE 1588-2008準拠、機器間の時間同期を高精度に実現

PTP OC clientを利用することにより、ターゲットベンチマークで100ns精度を実現します。

emNet PTPはソフトウェア実装で実現可能です。ハードウェア対応をご要望の場合は、別途ご相談ください。

ptp-oc
ptp-oc
IEEE概要
PTP OC Client1588-2008IEEE1588-2008 高精度時間同期コントロールシステム

SNTP client

SNTP Client により、NTP サーバから時間情報を取得、RTC を初期化

sntpc

SNTP プロトコルは、TCP/IP プロトコルの上位にあるAPI で、ネットワークを介して、ローカルまたはリモートのNTP サーバーと同期します。

2036 年問題への対応
NTP タイムスタンプは、1900 年1 月1 日を基準にしているため、2036 年のある時点で0 にオーバーラップします。この問題に対する解決策の一つとして、ファームウェアの更新された日付を記録することで、その記録された値を基準とすることで、NTP タイムスタンプは更に136 年延長できます。

RFC概要
RFC4330SNTP version4 for IPv4, IPv6
RFC1305SNTP version3

Tail tagging

Micrel/Microchip Switch PHY を利用してLAN ポートインターフェースを簡単に増やします。

  • ネットワーク上でフェイルセーフになるマルチハードウェアを構築する
  • 複数ネットワークに接続する低コストルータ、ゲートウェイ、ブリッジ
  • ネットワーク分離機能を必要とするデバイス
port multiplication

UPnP

UPnP サービスを提供する拡張機能

UPnP は、ユーザの操作を必要とすることなくネットワーク全体にサービス提供するように設計されています。

IP, TCP, UDP, Multicast, HTTP, XML など標準的なプロトコルを利用して通信し、デバイスが提供するサービス配信するように設計されています。

最新のOS では、UPnP をデフォルトでサポートし、ネットワーク全体で利用可能なUPnP デバイスを表示、選択するだけでデバイスに簡単にアクセスできます。


FTP server

組込機器にFTPサーバ機能を実装

Windows、Linux、Mac用無償FTPサーバを提供組込用FTPサーバをPC向けに作成したFTPサーバで簡単に機能確認頂く事が可能です。

FTPs

[RFC 959] に基づいた各種コマンドに対応

CDUP, CWD, DELE, LIST, MKD, NLST, NOOP, PASS, PASV, PORT, PWD, RETR, RMD, SIZE, STOR, SYST, TYPE, USER, XCUP, XMKD, XPWD, XRMD

  • アクティブモード、パッシブモードインターフェースをサポート
  • SSLを導入してImplicitモード(FTPS)およびExplicitモード(FTPES)セキュアモード通信可能
  • emNet 以外のTCP/IP スタックにも対応
  • emFile 以外のファイルシステムにも対応

FTP client

組込機器にFTPクライアント機能を実装

[RFC 959] に基づいた各種コマンドに対応

CDUP, CWD, LIST, MKD, PASS, PWD, RETR, RMD, STOR, TYPE, USER

  • ワンチップマイコンにも搭載可能なメモリフットプリント
  • emNet 以外のTCP/IP スタックにも対応
  • emFile 以外のファイルシステムにも対応
  • デモアプリケーションを同梱
  • Microsoft VisualStudio で実行可能なプロジェクトを同梱
  • アクティブモード(クライアント側からリクエストをかけデータを取得)をサポート
  • パッシブモード(クライアント側「PASV」命令を出力、データ待ち受け)をサポート
FTP mode

FTP(クライアント・サーバとも)機能実装には、ファイルシステムが必要になります。
クライアントのシングルタスク動作では、ベアメタル(non-RTOS)環境で利用可能ですが、複数同時接続環境を実現するには、RTOS 環境が必須となります。


MQTT client

MQTT3.1をフルサポート

mqtt usage
  • emNet 以外のTCP/IP スタックにも対応
  • Microsoft VisualStudio で実行可能なプロジェクトを同梱
SEGGER MQTT Client Application for Windows

テスト済みBrocker(一部)

Broker
Service
Plain MQTTMQTT over TLSMQTT over TLS(クライアント認証)
mosquitto
HiveMQPublic Broker
Public Broker
AWS

CoAP client / server

Constrained Application Protocol クライアント/サーバ

  • GET / DELETE / PUT / POST サポート
  • CON / NON リクエストサポート
  • サーバはマルチクライアントに対応
  • UDP/IP スタックに非依存
  • ブロック転送をサポート
  • CoAP Observe 機能をサポート
  • 様々なオプション、リクエストを使ったデモサンプル
RFC概要
RFC7252The Constrained Application Protocol (CoAP)
RFC6690Constrained RESTful Environments (CoRE) Link Format
RFC7641Observing Resources in CoAP
RFC7959Block-Wise Transfers in CoAP

SMTP client

組込機器にSMTPクライアント機能を実装、メール送受信機能を実現します

SMTP Relay

「emNetSMTP client」はSMTPリレークライアントと組み合わせて利用する事も可能です。例として、SMTPリレークライアントアプリケーション「Mercury Mail Transport System」との組合せ 構成の解説資料がダウンロードできます。

SMTP client with TLS

emSSLなどのSSLと組み合わせて利用する事により、TLSを利用した安全な接続を実現できます。

  • 小さなメモリフットプリント
  • emNet以外のTCP/IPスタック対応
  • サンプルプロジェクト
  • Microsoft VisualStudioで動作するプロジェクトを同梱
RFC概要
RFC821Simple Mail Transfer Protocol (Aug 1982)
RFC974Mail routing and the domain system
RFC5321Simple Mail Transfer Protocol (Oct 2008)

SNMP agent

組込機器にSNTPエージェント機能を実装します。

  • 小さなメモリフットプリント
  • MIB ツリーを簡単にセットアップ
  • SNMPv1,SNMPv2c をサポート
  • TRAP メッセージをサポート
  • SNMPv2 INFORM メッセージサポート
  • 一般的なSNMP(Unsigned32, Counter32 など)で、利用しやすいAPI
  • ソケットまたはゼロコピーAPI を含むMIB 利用デモサンプル同梱
  • Microsoft Visual Studio で動作するサンプルプロジェクトを同梱
RFC概要
RFC2578SMIv2 (Structure of Management Information
RFC3416SNMP v2
RFC4181MIB ドキュメント策定とレビュアガイドライン

IANA Private Enterprise Number (PEN)

御社製品にSNMP を実装するために、IANA からプライベートエンタープライズ番号(PEN)を取得する必要があります。 製品に同梱されているサンプルに含まれるPEN は、SEGGER 社で取得したものとなります。


WebSocket client / server

IoT 向けWebSocket プロトコル

websocket

IoT 機器通信向けにHTTP 接続を非同期双方向データ通信にアップグレードできるプロトコルです。通常のHTTP1.1標準プロトコルと互換性があり、ウェブサーバサービスは通常のWEBサーバとWebSocketプロトコルを共存しながら、機能する事が可能です。

TCP properties

  • ロストデータは再送信されます。
  • データはオーダに基づいて受信されます。
  • 接続状態は、TCP KEEPALIVES を使用して、チェックできます。

UDP properties

  • データは小さなフレームで送信できます。
  • フレームのデータ長は予め把握できます。
  • コントロールフレームはデータフレームの間で、送信できます。
RFC概要
RFC6455Web Socket Protocol

WEB server (HTTPd)

組込機器にウェブサーバ機能を実装し、組込機器の状態を表示、設定変更などを行えます。

IoT 機器通信向けにHTTP 接続を非同期双方向データ通信にアップグレードできるプロトコルです。通常のHTTP1.1標準プロトコルと互換性があり、ウェブサーバサービスは通常のWEBサーバとWebSocketプロトコルを共存しながら、機能する事が可能です。

組込機器からホストPC へウェブブラウザを利用することでホストPC のOS に依存しないグラフィカルインターフェースを提供します。AJAX, SEE など標準的なプロトコルをサポートします。

  • ワンチップマイコンにも搭載可能なメモリフットプリント
  • embOS以外のRTOSに対応可能
  • emNet 以外のTCP/IP スタックにも対応
  • Authenticationサポート:Basic、Digest
CGIsCGI は、テンプレートページと組み合わせて利用する技術です。静的コンテンツと動的コンテンツの組み合わせで表示します。
Virtual Files「Virtual FIles」を利用する事で、要求時にページを作成し配信します。利用例としては、アプリケーションの現在の状態を表示するためのXML など
AJAXJavaScript とXML、ブラウザのDOM サポートの組み合わせで、ページをリロードすることなく動的に表示を変更できます。
SSEAJAX と異なり、ブラウザがデータポーリングを継続することなく、データ送信を可能にしたHTML5 準拠の技術でデータ量を大きく減らすことができます。
webs app

アプリケーション例

  • ルータ
  • アクセスポイント
  • スイッチ
  • IoT デバイス
  • プリンタ
  • ウェアラブルデバイス など

IoT ToolKit

組込用HTTP クライアント・JSON パーサー

HTTP クライアントと JSON パーサーでクラウドシステムとの連携を実現

IoT ToolKit」は JSON パーサーとともに HTTP クライアントを提供し、Web ページを取得するような簡単なタスクから、REST ベース API と通信するなど、より複雑なタスク実装を実現できます。トランスポート層の依存性はない設計のため、既に TCP/IP スタックを導入済のアプリケーションであれば、「IoT Toolkit」はTCP/IP スタックを変更することなく、そのまま実装可能です。(HTTP クライアントは、お使いの TCP/IP スタックが BSD ソケットインターフェースに対応していない場合は移植が必要です)

JSON Parser + HTTP

プロトコルモジュール - HTTP クライアント

使いやすいライブラリで、通常の WEB ページのリクエストやREST API などのクラウドサービスへのリクエストを実行し、データを処理します。HTTP クライアントは Dropbox、Xively などの一般的な IoT REST API で利用されるインターネット標準仕様[RFC 2616] を実装しています。Windows 標準の Winsock APIを使用したサンプルのソースコードと Win32 バイナリが含まれています。(ダイジェスト認証モジュールは別途オプション)

データ処理モジュール - JSON パーサー

REST API のような最新の IoT リソース用の JSON(JavaScript Object Notation)データ処理を簡単かつメモリ効率の良いParser ライブラリ。フォーマットの詳細を知らなくても受け取った JSON データを解析できるようにするシンプルな API を提供します。

ダイジェスト認証(オプション)

RFC 7616 準拠ダイジェスト認証アルゴリズム(MD5、SHA-256、SHA-512 / 256)を提供

  • クラウドサービスと接続するIoT機器の開発を容易にします。
  • JSONパーサ仕様にエンコードしたデータのハンドリング
  • プレーンなテキストデータ(HTTPやCGIなど)のハンドリング
  • 組込マイコンに最適化されたフットプリント、高速な実行性能

Dropbox Client

組込用Dropbox クライアント

Dropbox を活用したファームダウンロード・データアップロードなどを実現

組込機器でDropbox サービス連携

Dropbox Client を組込機器に実装することにより、Dropbox API を利用して、組込機器とデータ共有が可能になります。Dropbox でファイルをクラウドホスティングすることにより、複数のデバイスに対して、ファイルを同期・アクセスすることができます。こういった機能を利用して、ホスト側からファームウェアや制御命令ファイルの更新を行うことが可能です。また組込機器(クライアント)からログ情報の出力を定期的にクラウドへ保存することにより、機器の状態を監視することが可能です。

DropboxClient