04272024

Last update2016/05/28 14:38

Back 現在地: Home パートナー segger-tools embOS / IP

embOS / IP

embOS / IP

CPUに依存しないTCP / IPスタック

embOS / IPは、速度、汎用性とメモリのフットプリント用に最適化された高性能なライブラリです。これはANSI Cで書かれており、実質的に任意のCPUで使用することができます。

機能

  • ユーザアプリケーション用のANSI C socket.hに類似したAPI。標準Cのソケットライブラリを使用してアプリケーションを簡単にembOS / IPを使用するように移植することができます。
  • 非常にシンプルなデバイスドライバの構造。
  • 高いパフォーマンス
  • 小さなフットプリント
  • "アウトオブボックス"を実行します。
  • したがって設定作業は必要ありません
  • マルチタスク環境でembOSとシームレスに連動
  • 超高速パフォーマンスのためのゼロデータのコピー
  • 標準的なソケットインタフェース
  • ソケットのサポート
  • すべての関数の非ブロッキングバージョン
  • だけメモリの可用性によって制限接続
  • Nagleアルゴリズム(スロースタート)
  • 遅延ACK
  • BSDスタイルの"キープアライブ"オプション
  • 断片化されたパケットの再組み立て
  • 最も一般的なデバイス用のオプションのドライバが用意されています。

    基本的な概念

    embOS / IPの構造

    embOS / IPがfollwoing図に示すように異なる層で構成されています。各レイヤーの機能の簡単な説明を以下に示す。

    アプリケーション層

    APIレイヤーは、embOS / IPおよびユーザアプリケーション間のインタフェースです。それは、TCP / IPネットワーク上でデータを送信するembOS / IP APIを使用しています。embOS / IP APIなどの接続など、バークレーソケットのスタイル、(内の関数を提供する)、バインド()、listen()を、等

    トランスポート層

    トランスポート層は、アプリケーションのエンドツーエンドの通信サービスを提供する。トランスポート層のプロトコルの2つの関連するプロトコルは、伝送制御プロトコル(TCP)およびユーザーデータグラムプロトコル(UDP)です。TCPは信頼性の高い接続指向のトランスポートサービスです。それは、エンドツーエンドの信頼性、順序付け、およびフロー制御を提供します。UDPはコネクションレス型トランスポートサービスです。

    インターネット層

    トランスポート層のすべてのプロトコルは、送信元ホストから宛先ホストにデータを運ぶためにインターネットプロトコル(IP)を使用してください。IPは、エンドツーエンドの配信の保証は提供しない、コネクションレス型サービスです。IPデータグラムは、アウトオブオーダーの、またはすべてで、重複して、破損した宛先ホストに到着する場合があります。トランスポート層は、それが必要とされるデータグラムの信頼できる配信を担当しています。IPプロトコルは、アドレッシング、タイプオブサービスの仕様、分割と再構成、およびセキュリティ情報の提供が含まれています。

    リンク層

    リンク層は、直接接続されたネットワークにインタフェースするために使用される通信プロトコルの実装を提供します。さまざまな通信プロトコルを開発し、standadizedされている。最も一般的に使用されるプロトコルは、イーサネット(IEEE 802.3)です。embOS / IPのこのバージョンでのみサポートされているイーサネットです。

    カプセル

    四層構造は、RFC 1122で定義されています。データフローは、アプリケーション層から始まり、トランスポート層、ネットワーク層、リンク層の上になります。すべてのプロトコルは、プロトコル固有のヘッダーを追加し、データとして上の層からのデータとヘッダをカプセル化します。受信側でデータを補完する方向で展開される。反対のプロトコルは使用されているプロトコルが上下の層で認識していません。次の図は、IPパケット内のUDPデータグラム内のデータのカプセル化を示しています。


    タスクと割り込みの使用状況

    embOS / IPは、3つの異なる方法でアプリケーションで使用することができます。

    • スタック専用の一つのタスク
    • 二つのタスクがスタックに専用の
    • スタック専用のゼロタスク(スーパーループ)

      デフォルトのタスク構造は、スタックに専用つのタスクです。

      スタック専用の一つのタスク

      これは、TCP / IPスタックを使用する最も簡単な方法です。一つのタスクがスタックに捧げられています。それはIP_Taskと呼ばれ、ハウスキーピング操作、再送信し、着信パケットの処理を処理します。"読み取りパケット"操作は、ISR内から実行されます。"読み取りパケット"操作はISRから直接呼び出されるため、追加のタスクは必要ありません。割り込みレイテンシの長さは、"読み取りパケット"操作を処理するのに必要な期間だけ延長されます。

      二つのタスクがスタックに専用

      2つのタスクがスタックに専念しています。最初はIP_Taskと呼ばれ、ハウスキーピング操作、再送信し、着信パケットの処理を処理します。2つ目はIP_RxTaskと呼ばれ、"読み取りパケット"操作を処理します。新しいパケットが使用可能な場合IP_RxTaskは、割り込みサービスルーチンから起こされる。"読み取りパケット"操作はIP_RxTaskに割り込みサービスルーチンから移動されているので、割り込みレイテンシは、拡張されません。

      スタック専用のゼロタスク(スーパーループ)

      アプリケーションのタスクが定期的に呼び出す場合embOS / IPはまた、スタックの任意の付加的な作業なしで使用することができます)(IP_Exec。"読み取りパケット"操作は、ISR内から実行されます。"読み取りパケット"操作はISRから直接呼び出されるため、追加のタスクは必要ありません。割り込みレイテンシの長さは、"読み取りパケット"操作を処理するのに必要な期間だけ延長されます。


      embOS / IPアドオンが含まれています

      embOS / IPは、HTTPやFTPなどのアプリケーション層プロトコルを補完することができる完全な機能をTCP / IPです。アプリケーション層のプロトコルは、embOS / IPにオプションの拡張機能です。彼らはembOS / IPでまたは他のTCP / IPスタックで使用することができます。

      利用可能なembOS / IPアドオンが含まれています

       

      FTP Server
      SMTP Client
      Web server