(57)【要約】      （修正有）【課題】割り込み発生時の送信時間をさらに短縮した短縮通信システムを提供する。【解決手段】アプリケーション２０側の割り込みハンドラ１３は、送信開始イベントとしての割り込みが発生したときに送信データを取得し、メッセージ用バッファ１４に転送する。このときメッセージ用バッファ１４は送信データを一時的に記憶する。ネットワークドライバ１１は、割り込みハンドラ１３からのイベント通知を受け取ると送信要求待ちタスク２１を起床させる。この送信要求待ちタスク２１は、メッセージ用バッファ１４から送信データを取得する。この取得後に送信データのパケット送信処理が実行される。【選択図】図２
2016122378.tif 000002
【特許請求の範囲】
【請求項１】
リアルタイムオペレーションシステムにおいて特定のプロトコルを利用したネットワーク通信を行う通信システムであって、
送信開始イベントとしての割り込みが発生したときに送信データを取得するアプリケーション側の割込処理手段と、
前記割込処理手段の取得した送信データを一時的に蓄えるメッセージ用バッファと、
前記割込処理手段からの送信要求後にネットワークドライバ側で起床し、前記メッセージ用バッファから前記送信データを取得する送信要求待ち手段と、
を備えることを特徴とする通信システム。
【請求項２】
前記割込処理手段は、
前記メッセージ用バッファに前記送信データを直接転送し、
前記ネットワークドライバに送信要求を直接行う
ことを特徴とする請求項１記載の通信システム。
【請求項３】
リアルタイムオペレーションシステムにおいて特定のプロトコルを利用したネットワーク通信を行う通信方法であって、
送信開始イベントとしての割り込みが発生したときにアプリケーション側の割込処理手段が送信データを取得する取得ステップと、
前記割込処理手段が、前記送信データをメッセージ用バッファに転送するデータ転送ステップと、
前記割り込み処理手段が、ネットワークドライバに送信要求する送信要求ステップと、
前記送信要求を受け取った後にネットワークドライバ側で送信要求待ち手段が起床し、前記メッセージ用バッファから前記送信データを取得するデータ取得ステップと、
を有することを特徴とする通信方法。
【請求項４】
前記データ転送ステップは、前記メッセージ用バッファに前記送信データを直接転送し、
前記送信要求ステップは、前記ネットワークドライバに送信要求を直接行うことを特徴とする請求項３記載の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特定のプロトコルを利用したネットワーク通信の通信システムおよび通信方法に関する。
【背景技術】
【０００２】
ＴＣＰ／ＩＰ（Ｔｒａｎｓｆｅｒ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）のプロトコルに従って通信を行う通信システムとしては、特許文献１が公知となっている。この通信システムは、ＴＣＰ／ＩＰプロトコルスタックをバイパスする通信ルートが選択可能となっている。
【０００３】
すなわち、送信データの判別結果に応じてＴＣＰ／ＩＰプロコルスタックをバイパスする通信ルートまたはＴＣＰ／ＩＰプロトコルスタックを経由する通信ルートが選択される。
【０００４】
ここで選択された通信ルートに応じてアプリケーション側でプロトコルにしたがったパケットを作成し、作成されたパケットをネットワークドライバに渡して送信を実行する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−１１９４４６
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の通信システムは、ＴＣＰ/ＩＰプロトコルスタックをバイパスすることで高速データ伝送を図っているものの、次の問題が生じるおそれがある。
【０００７】
（１）ネットワークの送信において時間のかかる代表的な処理としては、以下の処理が挙げられる。
・ＴＣＰ／ＩＰプロトコルスタック内処理
・ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のシステムコール内処理
・データ受け渡し処理
・タスク切替処理
ＲＴＯＳ（Ｒｅａｌ−ｔｉｍｅ  ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）において特許文献１の通信システムを用いる場合、一般的にはアプリケーションとネットワークドライバとで同期をとるためにシステムコールを使用する。このときＯＳのシステムコールではスケジューリングなどが行われるため、処理の遅延が生じるおそれがある。
【０００８】
また、送信イベントのトリガが割り込みの場合、ネットワークドライバに送信要求するシステムコールは待ちが発生してしまうため、割り込みハンドラ内では使用できない。
【０００９】
そのため、一旦、送信処理タスクにデータを渡し、該送信処理タスクでネットワークドライバへの送信要求を行うこととなる。これにより割り込みと送信処理タスクへのデータの受け渡し処理と、割り込み終了後に送信用のタスクに切り替える処理とに時間がかかってしまう。
【００１０】
その結果、特許文献１の通信システムは、ＴＣＰ/ＩＰプロトコルスタックをバイパスする点である程度の送信時間を短縮可能なものの、依然として無駄な時間がかかるおそれがある。
【００１１】
（２）この点を図４に基づき詳細に説明する。特許文献１の通信システムは、前述のようにネットワークドライバへ１への送信要求をシステムコールで行うため、アプリケーション２側では送信割込処理手段（以下、割り込みハンドラとする。）３から一旦、送信処理タスク４に処理を移行する必要がある。そのため、割り込みハンドラ３は、メッセージ用バッファ５を介して送信処理タスク４にデータを転送する。
【００１２】
また、送信処理タスク４からネットワークドライバ１へデータを転送するため、メッセージ用バッファ６を介して送信要求待ちタスク７にデータを転送する。その後に送信要求（イベント通知）のシステムコールを発行する。
【００１３】
そうすると、特許文献１の通信システムを用いた場合、二段階のデータ転送（送信処理タスク４へのデータ転送，送信要求待ちタスク７へのデータ転送）が発生し、さらにタスクの切替時間も生じてしまう。したがって、特許文献１の通信システムは、割り込み発生時の送信時間の短縮化としては不十分なおそれがある。
【００１４】
本発明は、このような従来の問題を解決するためになされ、割り込み発生時の送信時間をさらに短縮化することを解決課題としている。
【課題を解決するための手段】
【００１５】
本発明の一態様は、リアルタイムオペレーションシステムにおいて特定のプロトコルを利用したネットワーク通信を行う通信システムであって、送信開始イベントとしての割り込みが発生したときに送信データを取得するアプリケーション側の割込処理手段と、前記割込処理手段の取得した送信データを一時的に蓄えるメッセージ用バッファと、前記割込処理手段からの送信要求後にネットワークドライバ側で起床し、前記メッセージ用バッファから前記送信データを取得する送信要求待ち手段と、を備えることを特徴としている。
【００１６】
本発明の他の態様は、リアルタイムオペレーションシステムにおいて特定のプロトコルを利用したネットワーク通信を行う通信方法であって、送信開始イベントとしての割り込みが発生したときにアプリケーション側の割込処理手段が送信データを取得する取得ステップと、前記割込処理手段が、前記送信データをメッセージ用バッファに転送するデータ転送ステップと、前記割り込み処理手段が、ネットワークドライバに送信要求する送信要求ステップと、前記送信要求を受け取った後にネットワークドライバ側で送信要求待ち手段が起床し、前記メッセージ用バッファから前記送信データを取得するデータ取得ステップと、を有することを特徴としている。
【発明の効果】
【００１７】
本発明によれば、リアルタイムオペレーションシステムにおける特定のプロトコルを利用したネットワーク通信にあたって、割り込み発生時の送信時間をさらに短縮化することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態に係る通信システムの構成図。
【図２】同  ＴＣＰ／ＩＰプロトコルスタックのバイパス動作図。
【図３】同  フローチャート。
【図４】特許文献１におけるＴＣＰ／ＩＰプロトコルスタックのバイパス動作図。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態に係る通信システムを説明する。この通信システムは、例えばＩＴＲＯＮやＴ−ＫｅｒｎｅｌなどのＲＴＯＳにおいて、特定のプロトコルを利用したネットワーク通信（パケット送信）の遅延時間を短縮させている。
【００２０】
≪システム構成≫
図１に基づき前記通信システムの構成例を説明する。この通信システム１０は、特許文献１と同様にＴＣＰ/ＩＰプロトコルスタックのバイパス動作が可能に構成されている。
【００２１】
すなわち、ネットワークドライバ１１は、割り込みを受信すると「Ｅｔｈｅｒｎｅｔ（登録商標）」等のパスからデータの一部をＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）で受信バッファ１２に転送し、通信ルートＡ，Ｂを選択する。
【００２２】
通信ルートがＴＣＰ／ＩＰプロコルスタックをバイパスする場合は通信ルートＡが選択される。この場合は受信バッファ１２に残りのデータをＤＭＡ転送し、アプリケーション側の送信割込処理手段１３で処理する。この送信割込処理手段１３は、受信バッファ１２に転送されたデータをプロトコルに従ったパケットに作成する。作成されたデータは、ネットワークドライバ１１に送信バッファ１４を介して送られる。
【００２３】
通信ルートがＴＣＰ／ＩＰプロコルスタックを経由する場合は通信ルートＢが選択される。この場合は受信バッファ１２のデータを、受信バッファ１５を介して受信バッファ１６に転送する。この受信バッファ１６のデータは、処理手段１７によりＴＣＰ／ＩＰプロトコルスタックに従って処理され、送信バッファ１８，１９を介してネットワークドライバ１１に送られる。
【００２４】
≪バイパス動作の詳細≫
図２に基づきＴＣＰ／ＩＰプロコルスタックのバイパス動作、即ち図１中の通信ルートＡの動作を説明する。ここでは送信バッファ１４は、メッセージ用バッファ１４と呼ぶ。
【００２５】
まず、アプリケーション２０側では、送信イベントのトリガとしての割り込みが発生すると、送信割込処理手段１３（以下、割り込みハンドラ１３とする。）が呼び出される。この割り込みハンドラ１３は、メッセージ用バッファ１４にデータ送信し、さらにネットワークドライバ１１への送信要求を実行する。
【００２６】
つぎにネットワークドライバ１１側では、前記送信要求に応じて送信要求待ちタスク２１が起床する。この送信要求待ちタスク２１は、メッセージ用バッファ１４からデータを取得する。このデータがイーサネットコントローラに送られ、パケット送信処理が実行される。
【００２７】
図３に基づき前記動作の処理手順（処理ステップ）の詳細を説明する。ここで図３（ａ）のＳ０１〜Ｓ０３はアプリケーション２０側の処理手順を示し、図３（ｂ）のＳ０４〜Ｓ０６はネットワークドライバ１１側の処理手順を示している。
【００２８】
ただし、事前にアプリケーション２０側の割り込みハンドラ１３と、ネットワークドライバ１１側の送信要求待ちタスク２１との間でデータ転送が可能なメッセージ用バッファ１４が用意されているものとする。
【００２９】
Ｓ０１：割り込みを受け付けると割り込みハンドラ１３が起動し、処理が開始される。ここでは割り込みハンドラ１３は、ネットワークドライバ１１への送信データを主に受信バッファ１２から取得するが、他のメモリ（ＲＡＭ，ＲＯＭ）から取得もしくは作成してもよいものとする。
【００３０】
Ｓ０２：割り込みハンドラ１３は、ＴＣＰ／ＩＰプロトコルに応じたプロトコルヘッダと送信データとを作成し、作成した送信データをメッセージ用バッファ１４に転送する。これによりメッセージ用バッファ１４に送信データが一時的に蓄えられる。
【００３１】
Ｓ０３：割り込みハンドラ１３は、ネットワークドライバ１１への送信要求、即ちイベント通知を行う。このイベント通知により割り込みハンドラ１３は処理を完了し、次の割り込み発生時に再度同様な処理を実行する。
【００３２】
Ｓ０４〜Ｓ０６：Ｓ０３のイベント通知を受け取るとネットワークドライバ１１内で送信要求待ちタスク２１が起床する（Ｓ０４）。この送信要求待ちタスク２１によりメッセージ用バッファの送信データを受信し（Ｓ０５）、該送信データのパケット送信処理を実行する（Ｓ０６）。その後は送信要求待ちタスク２１を終了し、次のイベント通知まで待機する。
【００３３】
したがって、前記通信システム１０によれば、Ｓ０２，Ｓ０５に示すように、ＯＳのシステムコールを使用することなく、割り込み発生時に割り込みハンドラ１３がメッセージ用バッファ１４経由でネットワークドライバ１１に直接データ転送することができる。これにより単にＴＣＰ／ＩＰプロトコルスタックをバイパスするだけの特許文献１の通信システムよりも、さらにパケット送信にかかる遅延時間を短縮することができる。
【００３４】
（１）すなわち、特許文献１の通信システムは、ネットワークドライバ１へのイベント通知をシステムコールにて行うため、図４に示すように、割り込みハンドラ３から送信処理タスク４にタスクが切り替わり、メッセージ用バッファ５，６を経由した二段階のデータ転送が必要となる。
【００３５】
これに対して前記通信システム１０によれば、タスクを切り替えることなく割り込みハンドラ１３がメッセージ用バッファ１４経由でネットワークドライバ１１に直接データ転送するため、データ転送の回数が削減され、この点でパケット送信にかかる遅延時間を短縮することができる。
【００３６】
また、前記通信システム１０によれば、システムコールを使用しないため、システムコールによる遅延をカットでき、さらに割り込み完了後にタスク処理に切り替える必要がなく、タスクの切替時間も短縮できる。
【００３７】
（２）さらに前記通信システム１０によれば、パケット送信にかかる遅延時間が短縮されるため、メッセージ用バッファ１４に記憶された送信データを高速に処理することが可能となる。
【００３８】
したがって、メッセージ用バッファ１４のバッファフルによるパケット欠落を防止するこができる。また、パケット送信の遅延時間を短縮することによって高周期のパケット送信が可能になる。
【００３９】
≪産業上の利用分野≫
前記通信システム１０は、石油プラントや電力プラントなどのプロセス制御、あるいは系統保護リレーシステム用ＩＰ系ネットワークなどのＴＣＰ／ＩＰプロトコルに従った通信に使用することができる。
【符号の説明】
【００４０】
１０…通信システム
１１…ネットワークドライバ
１２，１５，１６…受信バッファ
１３…送信割込処理手段（割り込みハンドラ）
１４…メッセージ用バッファ（送信バッファ）
１８，１９…送信バッファ
２０…アプリケーション
２１…送信要求待ちタスク（送信要求待ち手段）
【図１】
2016122378.tif 000003
【図２】
2016122378.tif 000004
【図３】
2016122378.tif 000005
【図４】
2016122378.tif 000006