(57)【特許請求の範囲】
【請求項１】
ネットワークインタフェースとシリアルインタフェースとを備え，当該ネットワークインタフェースを介して信号を送受信すると共に，当該シリアルインタフェースを介して信号を送受信するシリアルデバイスサーバであって，
当該ネットワークインタフェースを介して送受信する信号のうちコマンドを送受信するためのコマンド用ソケットと，当該ネットワークインタフェースを介して送受信する信号のうちデータを送受信するためのデータ用ソケットとを有するＴＣＰ／ＩＰ部と，
前記シリアルインタフェースで送受信される信号をコマンドおよびデータによって制御するシリアル制御部と，
前記ＴＣＰ／ＩＰ部のコマンド用ソケットから受信したコマンドが即時型コマンドか同期型コマンドかを判別し，判別の結果，即時型コマンドである場合，当該即時型コマンドを前記シリアル制御部に与える一方，同期型コマンドである場合，当該同期型コマンドを所定の記憶領域に保存する解析判別部と，
前記ＴＣＰ／ＩＰ部のデータ用ソケットから受信したデータに含まれる同期情報を同期制御部に与える第１のデータ管理部と，
前記第１のデータ管理部から取得した同期情報に基づいて前記所定の記憶領域に保存されている同期型コマンドを前記シリアル制御部に与える同期制御部と，
前記シリアル制御部から受信したデータの同期情報を同期情報付与部に与える第２のデータ管理部と，
前記シリアル制御部から受信したコマンドに対し第２のデータ管理部から取得した同期情報を付与し，前記ＴＣＰ／ＩＰ部のコマンド用ソケットに与える同期情報付与部と，
を備えるシリアルデバイスサーバ。
【請求項２】
同期情報がオフセット情報であることを特徴とする請求項１記載のシリアルデバイスサーバ。
【請求項３】
同期情報がシーケンス情報であることを特徴とする請求項１記載のシリアルデバイスサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアル通信技術に関し、特に、ＬＡＮネットワークを経由したシリアル通信における処理の効率化をはかる技術に関する。
【背景技術】
【０００２】
近年、ＬＡＮネットワークを経由して、パーソナルコンピュータ等のクライアント端末から、シリアル機器（例えば、ＲＳ−２３２Ｃインタフェースを有する機器）を利用する技術が知られている。このような技術として、例えば、特許文献１がある。
【０００３】
特許文献１では、ネットワークに制御機器とセットトップボックスが接続され、セットトップボックスに被制御機器が接続されている。セットトップボックスは、制御機器からの制御コマンドをプロトコル変換し、被制御機器に与える。これにより、ネットワークを介して制御機器から被制御機器を制御することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２４４９８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上記のようなＬＡＮネットワークを経由したシリアル通信技術では、コマンドとデータとを１つの通信コネクションで送信するため、受信側は、先行するデータの処理が終了した後にコマンドの処理を行うこととなり、万一、受信側の受信処理が遅延した場合には、コマンドの処理までも遅延してしまうという問題があった。これは、特に、即時処理されるべきコマンドに対しては重大な問題となる。
【０００６】
例えば、クライアント端末の受信バッファが溢れそうになった場合、クライアント端末は、データ受信不能のコマンドをシリアル機器またはシリアルデバイスサーバに送信する。本来、これは即時処理されるべきものであるが、シリアル機器またはシリアルデバイスサーバは、コマンドに先行するデータの処理が終了するまで、当該コマンドを処理できない。したがって、データ処理に遅延が生じた場合、データ受信不能に係る処理が遅れ、クライアント端末の受信バッファが溢れるといった問題が生じる。
【０００７】
そこで、本発明は、このような問題を鑑み、コマンドとデータをそれぞれ異なる通信コネクションで伝送することで、即時処理されるべきコマンドの遅延問題を解決するものである。
【課題を解決するための手段】
【０００８】
第１の発明は、ネットワークインタフェースとシリアルインタフェースを備え、当該ネットワークインタフェースを介して信号を送受信すると共に、当該シリアルインタフェースを介して信号を送受信するシリアルデバイスサーバであって、当該ネットワークインタフェースを介して送受信する信号のうちコマンドを送受信するためのコマンド用ソケットと、当該ネットワークインタフェースを介して送受信する信号のうちデータを送受信するためのデータ用ソケットとを有するＴＣＰ／ＩＰ部を備えることを特徴とする。
【０００９】
第２の発明は、ネットワークインタフェースとシリアルインタフェースを備え、当該ネットワークインタフェースを介して信号を送受信すると共に、当該シリアルインタフェースを介して信号を送受信するシリアルデバイスサーバであって、当該ネットワークインタフェースを介して送受信する信号のうちコマンドを送受信するためのコマンド用ソケットと、当該ネットワークインタフェースを介して送受信する信号のうちデータを送受信するためのデータ用ソケットとを有するＴＣＰ／ＩＰ部と、ＴＣＰ／ＩＰ部から受信したコマンドが即時型コマンドか同期型コマンドかを判別する解析判別部と、同期型コマンドを保存する一時保存部と、ＴＣＰ／ＩＰ部から受信したデータの同期情報を同期制御部に与える第１のデータ管理部と、第１のデータ管理部から取得した同期情報に基づき同期型コマンドをシリアル制御部に与える同期制御部と、シリアル制御部から受信したデータの同期情報を同期情報付与部に与える第２のデータ管理部と、シリアル制御部から受信したコマンドに対し第２のデータ管理部から取得した同期情報を付与する同期情報付与部を備えることを特徴とする。
【００１０】
なお、第２の発明にいう「同期情報」とは、実施例２においては、コマンドのオフセット値と第１のデータ管理部から与えられたオフセット値が相当する。また、実施例３においては、コマンドおよびデータに付与されたシーケンス情報が相当する。
【発明の効果】
【００１１】
このように、本発明によれば、コマンドとデータをそれぞれ異なる通信コネクションで伝送するので、即時処理されるべきコマンドの遅延問題を解決することができる。
【００１２】
また、本発明によれば、コマンドとデータをそれぞれ異なる通信コネクションで伝送するので、処理の簡略化が可能となり、スループットの向上を実現できる。
【００１３】
また、本発明によれば、コマンドとデータをそれぞれ異なる通信コネクションで伝送するので、コマンド送受信とデータ送受信に対し個別的な帯域制御が可能となる。例えば、データ送受信用通信コネクションの帯域を絞りつつ、コマンド送受信用通信コネクションの帯域をそのままにすれば、コマンドの即時処理という要請を満たしながら、データ送受信の帯域を絞ることが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明における、ＬＡＮネットワークを経由してシリアル機器を制御するシステムの構成例を示した図である。
【図２】本発明の実施例１における、シリアルデバイスサーバの構成例を示した図である。
【図３】本発明の実施例１における、シリアルデバイスサーバと通信相手との間のＬＡＮネットワーク上の通信の一例を示した図である。
【図４】本発明の実施例２における、シリアルデバイスサーバの構成例を示した図である。
【図５】本発明の実施例２における、シリアルデバイスサーバと通信相手との間のＬＡＮネットワーク上の通信の一例を示した図である。
【図６】本発明の実施例３における、シリアルデバイスサーバと通信相手との間のＬＡＮネットワーク上の通信の一例を示した図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について、図面を参照しながら詳細に説明していく。ただし、本発明の範囲は、以下の実施形態や図示例に限定されるものではなく、幾多の変更及び変形が可能である。
【００１６】
最初に、ＬＡＮネットワークを経由してシリアル機器を制御するシステムの構成例について説明する。これらの構成例は、本発明において共通に適用されるものである。従って、実施例１、２、３に示す、本発明のシリアルデバイスサーバは、これらの構成例のいずれに対しても適用可能である。ただし、本発明を適用できるシステムは、これらの構成例に限定されるものではない。
【００１７】
図１は、ＬＡＮネットワークを経由してシリアル機器を制御するシステムの構成例を示している。図示されるように、構成例として２つあり、１つはクライアントサーバ方式、もう１つはＭ２Ｍ方式である。さらに、クライアントサーバ方式は、内部プログラムの構成により、２つに分類される。
【００１８】
図１において、クライアント端末１は、例えば、パーソナルコンピュータである。シリアル機器３は、例えば、ＲＳ−２３２Ｃインタフェースを有する機器（一例として、ラベルプリンタや計測機器等があげられる）である。シリアルデバイスサーバ２は、ＬＡＮネットワークと接続するためのネットワークインタフェースと、シリアル機器３と接続するためのシリアルインタフェースを備える。なお、シリアルデバイスサーバ２の機能及び他の構成については後述する。
【００１９】
図１（ａ）は、クライアントサーバ方式の一例である。図示されるように、クライアント端末１とシリアルデバイスサーバ２とがＬＡＮネットワークで接続され、シリアルデバイスサーバ２とシリアル機器３とがシリアルケーブルで接続されている。本方式において、クライアント端末１は、ＬＡＮネットワークを経由して、シリアルデイバスサーバ２に接続されたシリアル機器３を制御できる。なお、本方式は、内部プログラムの構成により、次の２つに分類できる。
【００２０】
ひとつが、図１（ｂ）で示すものである。図示されるように、（シリアル機器を制御する）アプリケーションプログラム（ＡＰＰ）４が、ＴＣＰ／ＩＰプログラム５のソケットＩ／Ｆを利用して、コマンド及びデータを、シリアルデバイスサーバ２に対し送信する。
【００２１】
もうひとつが、図１（ｃ）で示すものである。図示されるように、本構成では、ＣＯＭＩ／Ｆの動作をエミュレートする仮想ＣＯＭドライバプログラム６を備える。仮想ＣＯＭドライバプログラム６は、（シリアル機器を制御する）アプリケーションプログラム（ＡＰＰ）４に対してはＣＯＭＩ／Ｆとして動作する。そして、当該アプリケーションプログラム４から与えられたコマンド及びデータを、ＬＡＮネットワークで送受信できる形式にして（ＩＰパケット内部にカプセル化して）、シリアルデバイスサーバ２に対し送信する。
【００２２】
図１（ｄ）は、Ｍ２Ｍ方式の一例である。図示されるように、シリアルデバイスサーバ２ａとシリアルデバイスサーバ２ｂとがＬＡＮネットワークで接続され、シリアルデバイスサーバ２ａにはクライアント端末１が、シリアルデイバスサーバ２ｂにはシリアル機器３が、それぞれ、シリアルケーブルで接続されている。本方式において、クライアント端末１は、シリアルデバイスサーバ２ａ及びＬＡＮネットワークを経由して、シリアルデイバスサーバ２ｂに接続されたシリアル機器３を制御できる。
【実施例１】
【００２３】
本発明の実施例１について説明する。本発明の実施例１は、コマンドとデータをそれぞれ異なる通信コネクションで伝送することで、即時処理されるべきコマンドの遅延問題を解決するものである。
【００２４】
なお、本明細書において、コマンドとは、通信相手（一例として、図１では、クライアント端末が相当する）とシリアルデバイスサーバとの間で通信される情報のうち、シリアル機器あるいはシリアル伝送路を制御することを目的とする制御情報のことをいう。コマンドには、例えば、シリアル伝送路の回線オープン、回線クローズ、通信開始命令、伝送速度変更命令等が含まれる。また、データとは、通信相手とシリアル機器との間で通信されることを目的とするデータ情報のことをいう。
【００２５】
図２は、本発明の実施例１における、シリアルデバイスサーバの構成例を示した図である。シリアルデバイスサーバ１０は、ＴＣＰ／ＩＰ部１１を介してＬＡＮネットワークと接続され、シリアル制御部１３を介してシリアル機器と接続されている。ＴＣＰ／ＩＰ部１１は、ＬＡＮネットワークとの通信を行うプログラム群である。なお、ＴＣＰ／ＩＰ部１１には、図示されるように、ＬＡＮネットワークとの通信でコマンドを入出力する為のコマンド用ソケット（例えば、Ｐｏｒｔ１０００）と、ＬＡＮネットワークとの通信でデータを入出力する為のデータ用ソケット（例えば、Ｐｏｒｔ１００１）が設けられる。解析部１２は、コマンドの内容を解析し、これをＣｏｎｔｒｏｌ部１３に与える。シリアル制御部１３は、シリアル伝送路における、制御信号線を制御するＣｏｎｔｒｏｌ部１３ａと、データ線を制御するＤａｔａ部１３ｂを備えている。
【００２６】
図３は、本発明の実施例１における、シリアルデバイスサーバと通信相手との間のＬＡＮネットワーク上の通信の一例である。図示されるように、シリアルデバイスサーバと通信相手との間では、コマンド送受信用とデータ送受信用の２つの通信コネクションが用意される。そして、コマンド送受信にはコマンド送受信用の通信コネクション２０が、データ送受信にはデータ送受信用の通信コネクション２１が、それぞれ利用される。なお、通信コネクションとは、例えば、ＴＣＰプロトコルに基づいたＴＣＰセッションをいう。
【００２７】
一例では、通信相手のＴＣＰ／ＩＰ部（図示せず）は、シリアルデバイスサーバのＴＣＰ／ＩＰ部との間で、２つのＴＣＰセッション（通信コネクション）を確立すると共に、シリアルデバイスサーバに対して送信するに際し、コマンドはコマンド用ＴＣＰセッション（コマンド送受信用の通信コネクション）を介して、データはデータ用ＴＣＰセッション（データ送受信用の通信コネクション）を介して、行う。
【００２８】
次に、図２を用いて、シリアルデバイスサーバが、通信相手からコマンド及びデータを受信した場合の動作について説明する。ＴＣＰ／ＩＰ部１１は、（コマンド用ソケットを介して）コマンドを受信すると、これを解析部１２に与える。解析部１２は、コマンドの内容を解析し、これをＣｏｎｔｒｏｌ部１３ａに与える。Ｃｏｎｔｒｏｌ部１３ａは、コマンドの内容に基づき、（例えば、フロー制御の為に）制御信号線の制御等を行う。また、コマンドに対する処理結果は、ＴＣＰ／ＩＰ部１１のコマンド用ソケットを介して、通信相手に送信される。
【００２９】
ＴＣＰ／ＩＰ部１１は、（データ用ソケットを介して）データを受信すると、これをＤａｔａ部１３ｂに与える。Ｄａｔａ部１３ｂは、データ線を経由し、制御信号線の状態に応じてデータをシリアル機器に伝送する。また、データに対する処理結果は、ＴＣＰ／ＩＰ部のデータ用ソケットを介して、通信相手に送信される。
【００３０】
このように、本発明の実施例１によれば、コマンドとデータをそれぞれ異なる通信コネクションを用いて送信するので、即時性の高いコマンドにつき、遅延問題（先行するデータの処理を終えるまでコマンドの処理ができない）を生じさせることなく、その処理を行うことができる。また、上記遅延問題を生じさせないので、システムのスループットを向上させることができる。
【００３１】
また、本発明の実施例１によれば、通信コネクションのうち、データ送受信用の通信コネクションに対しては帯域制限を付与しつつ、コマンド送受信用の通信コネクションに対しては即時性を尊重するなど、帯域制御の選択的適用が可能となる。同様に、ＩＰｓｅｃ等の暗号化処理の適用についても、選択的な適用が可能になる。
【実施例２】
【００３２】
実施例２は、実施例１の構成に、コマンド及びデータの同期をとる構成を加えたものである。例えば、データをＮバイト送信した後に所定のコマンドを実行する場合など、コマンドとデータの処理につきその前後関係の調整が必要となるときに有用である。
【００３３】
図４は、本発明の実施例２における、シリアルデバイスサーバの構成例を示した図である。解析判別部３２は、受信したコマンドを解析し、即時型コマンドの場合、これをＣｏｎｔｒｏｌ部３８ａへ与え、同期型コマンドの場合、これを一時保存部３３に保存する。ここで、即時型コマンドとは、データとの同期の必要なく即時に実行できるコマンドである。また、同期型コマンドとは、データとの関係につき同期が必要なコマンドである。一時保存部３３は、同期型コマンドの処理を待たせる為の一時保存領域（キュー）である。第１のデータ管理部３６は、ＴＣＰ／ＩＰ部３１から与えられたデータのオフセット値（詳細は後述する）を管理する。同期制御部３４は、コマンドのオフセット値と第１のデータ管理部３６から与えられたオフセット値に基づいて、適時に同期型コマンドをＣｏｎｔｒｏｌ部３８ａに与える。第２のデータ管理部３７は、（通信相手に返信する）データの処理結果のオフセット値を管理する。同期情報付与部３５は、（通信相手に返信する）コマンドの処理結果に対し、第２のデータ管理部３７から与えられたオフセット値に基づき、オフセット値を付与する。ＴＣＰ／ＩＰ部３１及びシリアル制御部３８の機能は、実施例１と同様である。
【００３４】
図５は、本発明の実施例２における、シリアルデバイスサーバと通信相手との間のＬＡＮネットワーク上の通信の一例である。図示されるように、通信コネクションは、実施例１と同様、コマンド送受信用、データ送受信用の、２つが用意される。なお、実施例２では、コマンドとデータの同期をとる為、コマンドにオフセット値が付与されている。
【００３５】
図５では、例えば、コマンド（＋オフセット値５０）４１ｂは、データ（２０バイト）４０ａ及びデータ（３０バイト）４０ｂの処理が終了した後に実行される。なお、図示していないが、同期が不要なコマンドについては、オフセット値を付与しない（または−１などの特別な値を付与する）としておき、同期処理から除外するようにしてもよい。
【００３６】
次に、図４を用いて、シリアルデバイスサーバが、通信相手からコマンド及びデータを受信した場合の動作について説明する。ＴＣＰ／ＩＰ部３１は、（コマンド用ソケットを介して）コマンドを受信すると、これを解析判別部３２に与える。解析判別部３２は、コマンドの内容を解析し、即時型コマンドか同期型コマンドかを判別する。即時型コマンドの場合、これをＣｏｎｔｒｏｌ部３８ａに与える。同期型コマンドの場合、データと同期をとる為、これを一時保存部３３（キュー）に記憶する。
【００３７】
ＴＣＰ／ＩＰ部３１は、（データ用ソケットを介して）データを受信すると、第１のデータ管理部３６を経由して、これをＤａｔａ部３８ｂに与える。第１のデータ管理部３６は、ＴＣＰ／ＩＰ部３１から受信したデータのオフセット値を管理し、その情報を同期制御部３４に与える。Ｄａｔａ部３８ｂは、データ線を経由し、制御信号線の状態に応じてデータをシリアル機器に伝送する。
【００３８】
同期制御部３４は、同期型コマンドのオフセット値と第１のデータ管理部３６から与えられたオフセット値に基づき、同期型コマンドを一時保存部３３から取得し、これをＣｏｎｔｒｏｌ部３８ａに与える。
【００３９】
Ｃｏｎｔｒｏｌ部３８ａは、与えられた即時型コマンドまたは同期型コマンドに基づき、（例えば、フロー制御の為に）制御信号線の制御等を行う。
【００４０】
データに対する処理結果は、Ｄａｔａ部３８ｂから第２のデータ管理部３７に与えられる。第２のデータ管理部３７は処理結果のオフセット値を管理し、その情報を同期情報付与部３５に与える。また、処理結果は、ＴＣＰ／ＩＰ部３１のデータ用ソケットを介して、通信相手に送信される。
【００４１】
コマンドに対する処理結果は、Ｃｏｎｔｏｒｌ部３８ａから同期情報付与部３５に与えられる。同期情報付与部３５は、処理結果に対し、第２のデータ管理部３７からの与えられた情報に基づき、オフセット値を付与する。処理結果は、ＴＣＰ／ＩＰ部３１のコマンド用ソケットを介して、通信相手に送信される。
【００４２】
このように、本発明の実施例２によれば、コマンドとデータの同期を要する場合においても、実施例１に示された効果を達成することができる。
【００４３】
また、データのオフセット値を管理しこれに基づきコマンドと同期させる実施例２の処理は、従来のデータを全て判定する処理に対し、充分に軽いため、実施例１にて達成された高いスループットを維持できる。
【実施例３】
【００４４】
実施例２は、データのオフセット値を用いてコマンドとデータの前後関係を定義したが、これは、コマンドがデータに先行して受信されるという経験則に基づいている。多くの場合、当該経験則が破綻することはないが、実施例３は、さらに確実な同期処理を目的とするものである。
【００４５】
本発明の実施例３における、シリアルデバイスサーバの構成例は、図４と同様である。ただし、実施例３においては、コマンドとデータとの同期をとるにあたりシーケンス番号を利用するため、同期制御部、同期情報付与部、第１のデータ管理部、第２のデータ管理部は、オフセット値ではなく、シーケンス番号に基づいて、同期をとる処理を行う。
【００４６】
図６は、本発明の実施例３における、シリアルデバイスサーバと通信相手との間のＬＡＮネットワーク上の通信の一例である。図示されるように、通信コネクションは、実施例１、実施例２と同様、コマンド送受信用、データ送受信用の、２つが用意される。なお、実施例３では、コマンドとデータの同期をとる為、シーケンス番号が付与されている。
【００４７】
図６では、例えば、コマンド（ＳＥＱ４）５１ｂは、これに先行するシーケンス番号（ＳＥＱ番号）の処理が終了するまで、実行されない。また、シリアルデバイスサーバは、各データに付与されているＬＥＮを参照することで、次のデータブロックの先頭を検出することができる。
【００４８】
シリアルデバイスサーバが、通信相手からコマンド及びデータを受信した場合の動作は、（同期処理にシーケンス番号を利用する点を除いて）実施例２と同様であるので、説明は省略する。
【００４９】
このように、本発明の実施例３によれば、コマンドとデータの同期を要する場合において、シーケンス番号に基づき同期をとるため、データがコマンドに先行して届く場合でも、その前後関係の同期をとることができる。
【００５０】
また、各データに付与されているシーケンス番号の連続性を確認することで、各データの間で処理しなければならない、未到着のコマンドの存在を検出することができる。
【００５１】
また、実施例２と同様、実施例３の処理は、従来のデータを全て判定する処理に対し、充分に軽いため、実施例１にて達成された高いスループットを維持できる。
【００５２】
以上、本発明の実施例について説明したが、本発明は上記各実施例に限定されるものではない。各実施例においては、シリアル通信規格としてＲＳ−２３２Ｃ規格をあげたが、本発明の適用範囲はこれに限られるものではなく、例えば、ＵＳＢ（Universal Serial Bus）規格やＩＥＥＥ１３９４規格を用いてもよい。
【００５３】
また、実施例２または実施例３に対する変形例として、コマンドに時間待ちコマンドを追加すれば、時間制御を取り込むことができる。例えば、Ｎバイトのデータを処理後、制御信号線を状態Ａ（コマンド１）とし、Ｍ秒待機（コマンド２）したのち、制御信号線を状態Ｂ（コマンド３）にする、という処理である。
【産業上の利用可能性】
【００５４】
本発明は、シリアル通信に関し、特に、ＬＡＮネットワークを経由してシリアル機器を制御するシステムに対し有用である。
【符号の説明】
【００５５】
１  クライアント端末
２  シリアルデバイスサーバ
３  シリアル機器
【図１】
0005194307.tif 000002
【図２】
0005194307.tif 000003
【図３】
0005194307.tif 000004
【図４】
0005194307.tif 000005
【図５】
0005194307.tif 000006
【図６】
0005194307.tif 000007