(57)【特許請求の範囲】
【請求項１】
中央処理装置、ＲＡＭ及び不揮発性メモリを含み１個の半導体チップに形成されたマイクロコンピュータであって、
前記不揮発性メモリはオペレーティングシステムと、アプリケーションプログラムと、前記アプリケーションプログラムから呼び出されて実行されるＴＣＰ／ＩＰ用処理プログラムとが格納され、
前記ＴＣＰ／ＩＰ用処理プログラムは、接続要求、イベント待ち、データ送信、及び接続切断の処理プログラムを有し、
前記中央処理装置は、前記イベント待ちの処理プログラムの実行中にタスクスイッチ指令に応答してパケットデータの送信先ＩＰアドレスを含む一部のパケットデータを前記ＲＡＭに読み込み、当該パケットデータを必要とするときはイベント待ちの処理プログラムの実行を終了し、前記アプリケーションプログラムを実行して前記パケットデータに含まれるデータ部を前記ＲＡＭに取り込むことを特徴とするマイクロコンピュータ。
【請求項２】
前記タスクスイッチ指令は、データ受信割り込みであることを特徴とする請求項１記載のマイクロコンピュータ。
【請求項３】
中央処理装置、ＲＡＭ及び不揮発性メモリを含み１個の半導体チップに形成されたマイクロコンピュータであって、
前記不揮発性メモリはオペレーティングシステムと、アプリケーションプログラムと、前記アプリケーションプログラムから呼び出されて実行されるＴＣＰ／ＩＰ用処理プログラムとが格納され、
前記ＲＡＭはＣＰＵがプログラムを実行するときのワーク領域に用いられ、
前記ＴＣＰ／ＩＰ用処理プログラムは、サービス開始、接続要求、イベント待ち、データ送信、及び接続切断の処理プログラムを有し、
前記イベント待ちの処理プログラムは、外部に接続される通信デバイスからのパケットデータの受信割込信号に応答し、前記通信デバイスからパケットデータに含まれる送信先ＩＰアドレス情報を含む一部のデータを前記ＲＡＭに取り込み、前記取り込んだデータから、前記パケットデータが前記マイクロコンピュータが受信すべきデータであるかを判定し、
前記アプリケーションプログラムは、前記イベント待ち処理プログラムの実行によって、前記マイクロコンピュータが受信すべきデータであると判定した場合、前記パケットデータに含まれるデータ部を前記ＲＡＭに取り込み、所定のデータ処理を行うことを特徴とするマイクロコンピュータ。
【請求項４】
前記イベント待ちで待つべきイベントは、接続確立、接続切断、データ受信、イベント待ちのタイムアウトであることを特徴とする請求項３記載のマイクロコンピュータ。
【請求項５】
前記イベント待ちの処理プログラムにて待つべきイベントの種類は前記アプリケーションプログラムによって指定されることを特徴とする請求項４記載のマイクロコンピュータ。
【請求項６】
前記イベント待ちの処理プログラムは、さらに、前記受信すべきデータであるかを判定し、受信すべきと判定されたときにイベント待ちの状態を終了することを特徴とする請求項５記載のマイクロコンピュータ。
【請求項７】
前記アプリケーションプログラムは、データ受信のイベント待ちの状態が終了されるのに応答して、前記パケットデータに含まれるデータ部をＲＡＭに取り込むことを特徴とする請求項６記載のマイクロコンピュータ。
【請求項８】
前記ＲＡＭの記憶容量は２〜４キロバイトであることを特徴とする請求項７記載のマイクロコンピュータ。
【請求項９】
通信デバイスのバッファメモリに格納されたパケットデータのプロトコルの種別、送信先ＩＰアドレスまたはポート番号を含むパケットデータの所定の部分のデータを読み出してマイクロコンピュータのオンチップＲＡＭに格納する第１処理と、
前記オンチップＲＡＭに格納された前記所定の部分のデータを検査することで、対応パケットが必要か否かを判定する第２処理と、
前記第２処理で前記パケットデータが必要と判定された場合、前記バッファメモリから前記パケットデータのデータ部を前記オンチップＲＡＭに格納する第３処理と、を含むことを特徴とするデータ受信方法。
【請求項１０】
前記第１処理及び前記第２処理はプロトコルスタックで規定され、前記第３処理はアプリケーションプログラムで規定されることを特徴とする請求項９記載のデータ受信方法。
【請求項１１】
前記第２処理で前記パケットデータが不必要と判定された場合、前記パケットデータは廃棄されることを特徴とする請求項９記載のデータ受信方法。
【請求項１２】
前記プロトコルの種別、送信先ＩＰアドレスまたはポート番号を含むパケットデータの所定の部分のデータは、インターネット・プロトコル・バージョン４ におけるパケットフォーマットの先頭より１３バイト目から４２バイトのデータであることを特徴とする請求項１０又は１１記載のデータ受信方法。
【発明の詳細な説明】
【技術分野】  本発明は、プログラム容量の小さなプロトコルスタックの実現に係り、具体的には、ＴＣＰ／ＩＰのプロトコルスタックを有するマイクロコンピュータやデータ受信方法に関し、例えばＴＣＰ／ＩＰによるネットワーク接続可能な家電製品等に適用して有効な技術に関する。
【背景技術】  ＴＣＰ／ＩＰ（トランスミッション・コントロール・プロトコル／インターネット・プロトコル）はネットワークのコア技術として発展し、現在通信のデファクトスタンダードとされる。そのプロトコルの詳細はインターネットの問題点を解決するための組織であるＩＥＴＦ（インターネット・エンジニアリング・タスク・フォース）が取りまとめている膨大な数のＲＦＣ（リクエスト・オブ・コメンツ）で各種定義されている。従来ＴＣＰ／ＩＰプロトコルによるデータ通信はＣＰＵ（セントラル・プロセッシング・ユニット）が処理するソフトウェアのプロトコルスタックとＭＡＣ（メディア・アクセス・コントロール）層のパケット通信処理を行なうハードウェアのネットワークインタフェースにより実現されている。
前記プロトコルスタックの実現に関し、特許文献１（特開２００３−１４３２２１号公報）では、ＯＳの制御とは独立した状態で実行できるハードウェアによるプロトコルスタックを提供する。ＯＳ制御下のソフトウェアで実行されるプロトコル処理が他の優先処理に阻まれないようにして、通信処理のリアルタイム性を保証しようとする。
特許文献２（特開２００３−２６３３２３号公報）では、ＯＳと共にプロトコルスタックを実装するとプログラム容量が増大するので、これを減少させるのに、簡易な通信プログラムと共に自己書き換えプログラムを含め、自己書き換えプログラムによってダウンロード機能のアップグレードや高機能への対処を可能にする。
【発明の開示】
本発明者は、ネットワーク家電等でＴＣＰ／ＩＰのプロトコルをサポートすることについて検討した。特に組込み制御用途の１６ビットマイクロコンピュータ等の内蔵ＲＯＭ／ＲＡＭ上で動作可能なＴＣＰ／ＩＰのプロトコルスタックについて検討した。これによれば、既に各種定義されているプロトコルではリソースを極端に節約すると言う思想はない。そのようなプロトコルの詳細にしたがってＴＣＰ／ＩＰプロトコルを実装するにはプロトコルスタックを格納する大きな記憶容量のＲＯＭ、そしてプロトコルスタックの実行に大きな記憶容量のワークＲＡＭが必要になる。上記特許文献に記載の技術は本発明者による検討技術とは着眼点が異なる。
本発明の目的は、ネットワーク家電のような小規模システムに対してＴＣＰ／ＩＰプロトコルによるネットワーク接続を実現可能にすることにある。
本発明の別の目的は、ＴＣＰ／ＩＰのプロトコルスタックのコンパクト化の実現に資することができるデータ処理方法を提供することにある。
本発明の上記並びにその他の目的と新規な特徴は本明細書の以下の記述と添付図面から明らかにされるであろう。
〔１〕本発明に係るマイクロコンピュータは、中央処理装置、ＲＡＭ及びＲＯＭを含み１個の半導体チップに形成され、前記ＲＯＭはオペレーティングシステムと、アプリケーションプログラムと、前記アプリケーションプログラムから呼び出されて実行されるＴＣＰ／ＩＰ用処理プログラムとが格納され、前記ＴＣＰ／ＩＰ用処理プログラムは、接続要求、イベント待ち、データ送信、及び接続切断の処理プログラムを有する。前記中央処理装置は、イベント待ちの処理プログラムの実行中にタスクスイッチ指令例えばデータ受信割込みに応答してパケットデータの一部をＲＡＭに読み込み当該パケットデータを必要とするときはイベント待ち状態から起床し、アプリケーションプログラムを実行して対応するパケットデータをＲＡＭに取り込む。
ＭＡＣ層における受信パケットデータの一部をマイクロコンピュータのオンチップＲＡＭに取り込んで解析すればよいからワークＲＡＭにそのパケットデータの全てを取り込んで展開するような処理を要せず、必要とするワークＲＡＭのサイズが小さくて済む。また、前記解析の結果に従ってパケットデータをオンチップＲＡＭに取り込む処理はアプリケーションプログラムで直接行い、プロトコルスタックを用いない。よって、プロトコルスタックのコンパクト化に資することができる。
〔２〕本発明の別の観点によるマイクロコンピュータは、中央処理装置、ＲＡＭ及びＲＯＭを含み１個の半導体チップに形成され、前記ＲＯＭはオペレーティングシステムと、アプリケーションプログラムと、前記アプリケーションプログラムから呼び出されて実行されるＴＣＰ／ＩＰ用処理プログラムとが格納され、前記ＲＡＭはＣＰＵがプログラムを実行するときのワーク領域に用いられ、前記ＴＣＰ／ＩＰ用処理プログラムは、サービス開始、接続要求、イベント待ち、データ送信、及び接続切断の処理プログラムを有する。
前記イベント待ちの処理プログラムにイベント待ち状態からの起床要因が与えられることによってアプリケーションプログラムに戻って必要なパケットデータの取り込み等を直接行うことが可能になる。
本発明の具体的な一形態として、前記イベント待ちで待つべきイベントは、接続確立、接続切断、データ受信、イベント待ちのタイムアウトとしてよい。前記イベント待ちの処理プログラムにて待つべきイベントの種類は前記アプリケーションプログラムによって指定するのがよい。このとき、前記イベント待ちの処理プログラムは、所定の割込みに応答して外部よりパケットデータの所定の一部データをＲＡＭに取り込み、取り込んだデータを検査することで対応パケットが必要なパケットか否かを判定し、必要と判定されたときにイベント待ちの状態を終了する。そして、前記アプリケーションプログラムは、データ受信のイベント待ちの状態が終了されるのに応答して、対応受信パケットのデータをＲＡＭに取り込めばよい。
上記構成のマイクロコンピュータにおいて前記オンチップＲＡＭの記憶容量は２〜４キロバイト程度で済ませることが可能である。
〔３〕本発明に係るデータ受信方法は、ＴＣＰ／ＩＰのＭＡＣ層を構成する通信デバイスのバッファメモリに格納されたパケットデータの所定部分のデータを読み出してマイクロコンピュータのオンチップＲＡＭに格納する第１処理と、前記オンチップＲＡＭに格納された前記データを検査することで、対応パケットが必要か否かを判定する第２処理と、前記判定する処理で前記パケットデータが必要と判定された場合、前記バッファメモリから対応パケットデータの必要な部分を前記オンチップＲＡＭに格納する第３処理と、を含む。前記判定する処理で前記パケットデータが不必要と判定された場合、対応パケットデータは廃棄される。廃棄とはオンチップＲＡＭに格納しないということである。
第１処理にて受信パケットデータの一部をマイクロコンピュータのオンチップＲＡＭに取り込んで第２処理にて解析すればよいからワークＲＡＭにそのパケットデータの全てを取り込んで展開するような処理を要せず、必要とするワークＲＡＭのサイズが小さくて済む。
第１処理及び第２処理をプロトコルスタックで規定し、第３処理をアプリケーションプログラムで規定することにより、前記第３処理による解析の結果に従ってパケットデータをオンチップＲＡＭに取り込む処理はアプリケーションプログラムで直接行い、プロトコルスタックを用いないから、プロトコルスタックのコンパクト化に資することができる。
本発明の具体的な一形態では、前記所定部分のデータは、インターネット・プロトコル・バージョン４におけるパケットフォーマットの先頭より１３バイト目から４２バイトのデータである。最大ここまでの範囲で解析すれば、広義のＴＣＰ／ＩＰプロトコルに含まれるＡＲＰ（アドレス・リゾリューション・プロトコル）、ＩＣＭＰ（インターネット・コントロール・メッセージ・プロトコル）、ＴＣＰ、ＵＤＰ（ユーザ・データグラム・プロトコル）の全てに対処することが可能になる。
【図面の簡単な説明】  第１図は本発明に係るマイクロコンピュータのブロック図である。
第２図はＣＰＵのアドレスマップである。
第３図はＴＣＰ／ＩＰプロトコルスタックが保有する７種類のＡＰＩプログラムの種類を示す説明図である。
第４図はイベント待ちＡＰＩプログラムで認識するイベントの一覧を示す説明図である。
第５図はＴＣＰ／ＩＰによるパケットデータ受信処理のフローチャートである。
第６図は広義のＴＣＰ／ＩＰプロトコルのパケットフォーマットを示す説明である。
第７図はバッファメモリからパケットデータの４２バイトを取り出す様子を模式的に示す説明図である。
第８図は第５図のプロトコル解析処理（Ｓ４）の詳細を示すフローチャートである。
第９図はＴＣＰ／ＩＰによる受動接続処理のフローチャートである。
第１０図はＴＣＰ／ＩＰによる能動接続処理のフローチャートである。
第１１図はＴＣＰ／ＩＰによるデータ送信処理のフローチャートである。
第１２図はＴＣＰ／ＩＰ接続に対する強制切断のフローチャートである。
第１３図はＴＣＰ／ＩＰ接続に対する通常切断のフローチャートである。
【発明を実施するための最良の形態】  第１図には本発明に係るマイクロコンピュータのブロック図が示される。同図に示されるマイクロコンピュータ１は、特に制限されないが、相補型ＭＯＳ集積回路製造技術などにより、単結晶シリコンのような１個の半導体基板上に形成されて１個のチップ若しくはペレット状にされ、必要に応じてパッケージングされている。
マイクロコンピュータ１は、特に制限されないが、ＣＰＵ（中央処理装置）２、クロック発振器３、割込みコントローラ４、ＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）５、フラッシュメモリのような書換え可能な不揮発性メモリ又はマスクＲＯＭなどによって構成されるＲＯＭ（リード・オンリ・メモリ）６、ＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）等によって構成されるＲＡＭ７、リフレッシュコントローラ８、クロックサイクル数によりシステムの動作異常を監視するＷＤＴ（ウォッチ・ドッグ・タイマ）９、ＴＣＵ（タイマ・カウンタ・ユニット）１０、ＳＣＩ（シリアル・コミュニケーション・インタフェース）１１、ＵＳＢ（ユニバーサル・シリアル・バス）１２、ＡＤ（アナログ・ディジタル）変換器１３、バスコントローラ１４、及び入出力ポート１５を有し、それらは参照符号１６で代表される内部バスに接続される。
前記ＣＰＵ２は、図示は省略するが、命令制御部と実行部を有する。命令制御部はＲＯＭ６などに格納されているプログラムをアクセスして命令をフェッチし、フェッチした命令を解読して制御情報を生成する。実行部は前記制御情報に従って演算やオペランドアクセスなどを行なって命令を実行する。
特に制限されないが、入出力ポート１５にはネットワークインタフェースカード（ＮＩＣ）を構成するイーサネットデバイス２０が接続される。イーサネットデバイス２０はイーサネットケーブル２１に接続され、ＭＡＣ層のパケット通信処理を行なうハードウェアのネットワークインタフェースを実現する。特に制限されないが、イーサネットデバイス２０はイーサネットコントローラ２２、バッファメモリ２３、及びイーサネットケーブル２１に結合するトランシーバ・レシーバ２４等を有する。
マイクロコンピュータ１は、ＴＣＰ／ＩＰプロトコルによるデータ通信を行なうのに、パケット通信処理を行なうハードウェアのイーサネットデバイス２０とＣＰＵ２が処理するソフトウェアのプロトコルスタックとしてのＴＣＰ／ＩＰ用処理プログラム（単にＴＣＰ／ＩＰプロトコルスタックとも称する）を用いる。ＴＣＰ／ＩＰプロトコルスタックはアプリケーションプログラムから呼び出されて実行される。アプリケーションプログラムとはブラウザソフトウェアやメールソフトウェアなどである。それらＴＣＰ／ＩＰプロトコルスタック及びアプリケーションプログラムはオペレーティングシステム（ＯＳ）等と一緒に前記ＲＯＭ６が保有する。
第２図にはＣＰＵ２のアドレスマップが例示される。ＲＯＭ６のアドレス空間には、先頭から、ベクタ、ＯＳ、ＴＣＰ／ＩＰプロトコルスタック、及びアプリケーションプログラムが配置される。アプリケーションプログラムはデータ通信以外のプログラムも含まれ、マイクロコンピュータ１の利用者の必要に応じて組み込まれる所謂ユーザプログラムとして把握してよい。ＲＡＭ７のアドレス空間には、ＯＳのワーク領域（ＯＳワーク）、スタック領域、ＴＣＰ／ＩＰプロトコルスタック用のワーク領域（ＴＣＰ／ＩＰワーク）、アプリケーションプログラム用のワーク領域（ユーザワーク）が割当てられる。
第３図にはＴＣＰ／ＩＰプロトコルスタックが保有する７種類のＡＰＩプログラムの種類が示される。サービス開始ＡＰＩプログラムはＴＣＰ／ＩＰ通信のための初期設定を行なう処理プログラムである。初期設定項目として例えばイーサネットデバイス２０の初期化、ＴＣＰ／ＩＰワークの初期化などがある。受動接続設定ＡＰＩプログラムは、接続されるのを待つために自ポートのＩＰアドレスとポート番号を設定する処理プログラムである。能動接続要求ＡＰＩプログラムは接続を要求する相手ポートを設定する処理プログラムとされる。イベント待ちＡＰＩプログラムは設定や要求に対する応答を待つ処理プログラムである。データ送信ＡＰＩプログラムはデータを送信する処理プログラムである。接続のクローズＡＰＩプログラムは自らの接続を遮断し、相手側の接続遮断は相手に任せる処理プログラムとされる。接続の強制切断ＡＰＩプログラムは自らの接続と相手側の接続を共に強制遮断する処理プログラムとされる。イベント待ちＡＰＩプログラムは所定のイベント発生を待つための処理プログラムとされる。
第４図にはイベント待ちＡＰＩプログラムが認識するイベントの一覧が示される。認識すべきイベントは、受動接続設定ＡＰＩプログラム又は能動接続ＡＰＩプログラムの実行後に確認すべき受動／能動接続の確立、接続のクローズＡＰＩプログラムの実行後に確認すべきクローズ完了、接続の強制切断ＡＰＩプログラムの実行後に確認すべき強制クローズ、データ受信があったというデータ受信、データ送信のＡＰＩプログラムの実行後に確認すべきデータ送信完了、イベント待ちＡＰＩプログラムによるイベント待ちのタイムアウト（ウェイトのタイムアウト）、とされる。どのイベントを待つのかはフラグなどによってアプリケーションプログラムから指示される。
第５図にはＴＣＰ／ＩＰによるパケットデータ受信処理のフローチャートが例示される。パケットデータ受信処理は、サービス開始ＡＰＩプログラムが実行されて通信設定の初期化が完了され、その上で、受動接続設定又は能動接続設定のＡＰＩプログラムが実行されて接続が確立されていることが前提とされる。この前提の下で、アプリケーションプログラムからデータ受信イベントのフラグがセットされ、イベント待ちＡＰＩプログラムが呼び出されて実行される。これによる実行内容が第５図の処理であり、先ず、イーサネットデバイス２０からパケットデータの受信割り込みを待つ（Ｓ１）。
イーサネットデバイス２０は受信したパケットデータを順次バッファメモリ２３に受信し、データ受信に呼応してパケットデータの受信割り込みをマイクロコンピュータ１に出力する。ＴＣＰ／ＩＰによるパケットデータは、例えばインターネット・プロトコル・バージョン４では第６図に示されるフォーマットを有し、広義のＴＣＰ／ＩＰプロトコルに含まれるＡＲＰ（アドレス・リゾリューション・プロトコル）、ＩＣＭＰ（インターネット・コントロール・メッセージ・プロトコル）、ＴＣＰ、ＵＤＰ（ユーザ・データグラム・プロトコル）の全てのプロトコルのパケットフォーマットにおいて、先頭１４バイトがＭＡＣ層の制御情報とされ、これに続いて、ヘッダ及び必要なデータが付随する。ＩＣＭＰはＩＰのエラーメッセージや制御メッセージを転送するプロトコルでありＴＣＰ／ＩＰ接続されているコンピュータ間で互いの状態を確認するのに用いられる。ＴＣＰはネットワークのトランスポート層のプロトコルである。ＵＤＰは信頼性を保証しないトランスポート層の通信プロトコルである。第６図のパケットフォーマットにおいて１４バイトのＭＡＣ層制御情報の最後の２バイトはパケットのタイプを示し、そこから少なくとも４２バイトのデータを参照することによって当該パケットデータのプロトコルの種別、送信先ＩＰアドレス及びポート番号等が解る。要するに、そのパケットデータが通信チャネルとしての機能上マイクロコンピュータが必要とするパケットデータであるかがわかる。第５図の処理フローではパケットデータの受信割り込みがあったとき、パケットデータの４２バイトをバッファメモリ２３からＲＡＭ７に読み込む（Ｓ２）。読み込んだデータから当該パケットが自らのＩＰアドレス宛てデータであるかを判定し（Ｓ３）、そうでなければ当該パケットデータを廃棄する。廃棄するとは、当該パケットデータをバッファメモリ２３からＲＡＭ７に読み込まないという意味である。ステップＳ３にて自らのＩＰアドレス宛てデータであるかことを判別したときは、当該パケットデータをバッファメモリ２３からＲＡＭ７に読み込んで、プロトコル解析を行なう（Ｓ４）。これによれば、ＭＡＣ層における受信パケットデータの一部をマイクロコンピュータ１のオンチップＲＡＭ７に取り込んで解析すればよいからＲＡＭ７のワーク領域にそのパケットデータの全てを取り込んで展開するような処理を要せず、必要とするオンチップＲＡＭ７のサイズが小さくて済む。ちなみにＲＡＭ７の容量は２Ｋ〜４Ｋバイト程度とされる。
第７図にはバッファメモリ２３からパケットデータの４２バイトを取り出す様子が模式的に示される。バッファメモリ２３はリングバッファとして動作される。リングバッファのパケットデータはページ単位で管理される。イーサネットコントローラ２３はＲＡＭ７に対するＭＭＵ機能を有し、ＣＰＵ２はこれを利用して、ページ内のパケットデータに対して１３バイト目から４２バイトのデータをＲＡＭ７のワーク領域（ＴＣＰ／ＩＰワーク）に読み込む。
第８図には第５図のプロトコル解析処理（Ｓ４）の詳細が例示される。ＣＰＵ２はＲＡＭ７に読み込んだ４２バイトのパケットデータに基づいて当該パケットデータのプロトコルがＡＲＰ、ＩＣＭＰ、ＴＣＰ、ＵＤＰなどのどれに該当するかを判定する。ＡＲＰの場合にはＡＲＰ返答を送信し、ＩＣＭＰの場合にはＩＣＭＰ返答を返す。ＴＣＰに対してはポート番号とＩＰアドレスを確認し、自らのアドレス宛てでなければ当該パケットデータは廃棄されている。自らのアドレス宛ての場合に、それが制御用パケットであればＴＣＰ返信を返し、データパケットであればイベント待ち状態から起床する。ここで、イベント待ち状態から起床するとは、イベント待ちＡＰＩプログラムの実行を終了することであり、ＣＰＵ２の制御はアプリケーションプログラムに移行し、アプリケーションプログラムにしたがって対応するパケットデータのデータ部（転送データ）がバッファメモリ２３からＲＡＭ７に転送される。アプリケーションプログラムはＲＡＭ７に転送されたパケットデータに対して所要のデータ処理を行なう。これによれば、前記解析の結果に従ってパケットデータをオンチップＲＡＭ７に取り込む処理はアプリケーションプログラムで直接行い、プロトコルスタックを用いない。よって、プロトコルスタックのコンパクト化に資することができる。例えばＲＯＭ６の容量は３２Ｋバイトである。
ＴＣＰの場合４２バイトのパケットデータに対するプロトコル解析によってイベントの発生が認識されるものがある。そのようなイベントの認識は、第８図では、接続確立（ＳＬＥＶ＿ＣＯＮＮＥＣＴ）、接続要求の成功、データ送信完了（ＳＬＥＶ＿ＴＥＮＤ）、接続切断（ＳＬＥＶ＿ＲＳＴ）、及び切断要求の成功（ＳＬＥＶ＿ＣＬＳ）とされる。ちなみにデータ受信イベント（ＳＬＥＶ＿ＲＸ）はＲｘ割り込みで認識される。イベントが認識されると、対応するイベント待ち状態から起床され、そのイベントに応じてＣＰＵ２の処理がアプリケーションプログラムに移行され、或いは別のＡＰＩプログラムに移行される。
第８図ではＵＤＰが認識されたときの処理について特に図示していないが、ＴＣＰの場合とほぼ同様に考えることが可能である。但し、ＴＣＰよりは簡素化される。また、システムで対応していないその他のプロトコルに対してはそのパケットデータは廃棄される。
第９図にはＴＣＰ／ＩＰによる受動接続処理のフローチャートが例示される。アプリケーションプログラムによって受動接続ＡＰＩプログラムの実行が指定されると、受動接続設定のＡＰＩプログラムがプロトコルスタックから呼び出され、自ポートのＩＰアドレスとポート番号が設定され、次に、イベント待ちＡＰＩプログラムを実行して接続確立のイベント発生を待つ。そのイベント発生により、イベント待ち状態から起床し、接続が確立される。
第１０図にはＴＣＰ／ＩＰによる能動接続処理のフローチャートが例示される。アプリケーションプログラムによって能動接続ＡＰＩプログラムの実行が指定されると、能動接続要求のＡＰＩプログラムがプロトコルスタックから呼び出され、相手ポートのＩＰアドレスとポート番号が設定され、次に、イベント待ちＡＰＩプログラムを実行して接続確立のイベント発生を待つ。そのイベント発生により、イベント待ち状態から起床し、接続が確立される。
第１１図にはＴＣＰ／ＩＰによるデータ送信処理のフローチャートが例示される。イベント待ちＡＰＩプログラムを実行してデータ受信イベントの発生を待つ。データ受信イベントが発生すると、イベント待ち状態から起床し、アプリケーションプログラムに従って第５図で説明した処理が行なわれ、送信に必要なイーサネットデバイス上の受信ページ番号とデータ長をバッファメモリ２３からＲＡＭ７に取得する。次にデータ送信ＡＰＩプログラムの実行に移行し、ＲＡＭ７上のデータをバッファメモリ２３に転送し、イーサネットデバイスに送信させる。
第１２図にはＴＣＰ／ＩＰ接続に対する強制切断のフローチャートが例示される。ＣＰＵ２は接続の強制切断ＡＰＩプログラムを実行すればよい。
第１３図にはＴＣＰ／ＩＰ接続に対する通常切断のフローチャートが例示される。ＣＰＵ２は接続のクローズＡＰＩプログラムを実行してからイベント待ちＡＰＩプログラムを実行して接続相手先からのクローズ完了のイベント発生を待つ。クローズ完了のイベント発生に起因して当該ポート番号による通信を終了する。
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。
例えば、ＲＡＭ及びＲＯＭの記憶容量は上記説明に限定されず適宜変更可能である。また、マイクロコンピュータとはＣＰＵを有するシステムオンチップの半導体集積回路を総称する概念のものでさる。ＣＰＵは１６ビットＣＰＵに限定されず、３２ビットＣＰＵなどであってもよい。用途から言えば特別に高機能なＣＰＵは必要ない。また、プロトコルスタックの処理プログラムの種類や処理内容についても適宜変更可能である。更に、パケットデータの一部をバッファメモリからオンチップＲＡＭに転送するときのタスク切替はデータ受信割り込みに限定されず、その他のタスクスイッチ指令に応答して行なってもよい。
【産業上の利用可能性】  本発明は、ネットワーク家電や携帯端末等に代表される小規模でデータ処理性能が比較的低いシステムにおけるＴＣＰ／ＩＰインタフェース等に広く適用することができる。
【図１】
0004252577.tif 000002
【図２】
0004252577.tif 000003
【図３】
0004252577.tif 000004
【図４】
0004252577.tif 000005
【図５】
0004252577.tif 000006
【図６】
0004252577.tif 000007
【図７】
0004252577.tif 000008
【図８】
0004252577.tif 000009
【図９】
0004252577.tif 000010
【図１０】
0004252577.tif 000011
【図１１】
0004252577.tif 000012
【図１２】
0004252577.tif 000013
【図１３】
0004252577.tif 000014