説明

シリアルデバイスサーバ

【課題】LANネットワークを経由したシリアル通信における、即時処理されるべきコマンドの処理遅延を解決する。
【解決手段】シリアルデバイスサーバは、TCP/IP部を介してLANネットワークと、シリアル制御部を介してシリアル機器と接続されている。シリアルデバイスサーバと(LANネットワークを介した)通信相手との間には、コマンド送受信用とデータ送受信用の2つの通信コネクションが用意され、コマンドの送受信にはコマンド送受信用の通信コネクションが、データの送受信にはデータ送受信用の通信コネクションが、それぞれ利用される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シリアル通信技術に関し、特に、LANネットワークを経由したシリアル通信における処理の効率化をはかる技術に関する。
【背景技術】
【0002】
近年、LANネットワークを経由して、パーソナルコンピュータ等のクライアント端末から、シリアル機器(例えば、RS−232Cインタフェースを有する機器)を利用する技術が知られている。このような技術として、例えば、特許文献1がある。
【0003】
特許文献1では、ネットワークに制御機器とセットトップボックスが接続され、セットトップボックスに被制御機器が接続されている。セットトップボックスは、制御機器からの制御コマンドをプロトコル変換し、被制御機器に与える。これにより、ネットワークを介して制御機器から被制御機器を制御することができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2000−244981号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、上記のようなLANネットワークを経由したシリアル通信技術では、コマンドとデータとを1つの通信コネクションで送信するため、受信側は、先行するデータの処理が終了した後にコマンドの処理を行うこととなり、万一、受信側の受信処理が遅延した場合には、コマンドの処理までも遅延してしまうという問題があった。これは、特に、即時処理されるべきコマンドに対しては重大な問題となる。
【0006】
例えば、クライアント端末の受信バッファが溢れそうになった場合、クライアント端末は、データ受信不能のコマンドをシリアル機器またはシリアルデバイスサーバに送信する。本来、これは即時処理されるべきものであるが、シリアル機器またはシリアルデバイスサーバは、コマンドに先行するデータの処理が終了するまで、当該コマンドを処理できない。したがって、データ処理に遅延が生じた場合、データ受信不能に係る処理が遅れ、クライアント端末の受信バッファが溢れるといった問題が生じる。
【0007】
そこで、本発明は、このような問題を鑑み、コマンドとデータをそれぞれ異なる通信コネクションで伝送することで、即時処理されるべきコマンドの遅延問題を解決するものである。
【課題を解決するための手段】
【0008】
第1の発明は、ネットワークインタフェースとシリアルインタフェースを備え、当該ネットワークインタフェースを介して信号を送受信すると共に、当該シリアルインタフェースを介して信号を送受信するシリアルデバイスサーバであって、当該ネットワークインタフェースを介して送受信する信号のうちコマンドを送受信するためのコマンド用ソケットと、当該ネットワークインタフェースを介して送受信する信号のうちデータを送受信するためのデータ用ソケットとを有するTCP/IP部を備えることを特徴とする。
【0009】
第2の発明は、ネットワークインタフェースとシリアルインタフェースを備え、当該ネットワークインタフェースを介して信号を送受信すると共に、当該シリアルインタフェースを介して信号を送受信するシリアルデバイスサーバであって、当該ネットワークインタフェースを介して送受信する信号のうちコマンドを送受信するためのコマンド用ソケットと、当該ネットワークインタフェースを介して送受信する信号のうちデータを送受信するためのデータ用ソケットとを有するTCP/IP部と、TCP/IP部から受信したコマンドが即時型コマンドか同期型コマンドかを判別する解析判別部と、同期型コマンドを保存する一時保存部と、TCP/IP部から受信したデータの同期情報を同期制御部に与える第1のデータ管理部と、第1のデータ管理部から取得した同期情報に基づき同期型コマンドをシリアル制御部に与える同期制御部と、シリアル制御部から受信したデータの同期情報を同期情報付与部に与える第2のデータ管理部と、シリアル制御部から受信したコマンドに対し第2のデータ管理部から取得した同期情報を付与する同期情報付与部を備えることを特徴とする。
【0010】
なお、第2の発明にいう「同期情報」とは、実施例2においては、コマンドのオフセット値と第1のデータ管理部から与えられたオフセット値が相当する。また、実施例3においては、コマンドおよびデータに付与されたシーケンス情報が相当する。
【発明の効果】
【0011】
このように、本発明によれば、コマンドとデータをそれぞれ異なる通信コネクションで伝送するので、即時処理されるべきコマンドの遅延問題を解決することができる。
【0012】
また、本発明によれば、コマンドとデータをそれぞれ異なる通信コネクションで伝送するので、処理の簡略化が可能となり、スループットの向上を実現できる。
【0013】
また、本発明によれば、コマンドとデータをそれぞれ異なる通信コネクションで伝送するので、コマンド送受信とデータ送受信に対し個別的な帯域制御が可能となる。例えば、データ送受信用通信コネクションの帯域を絞りつつ、コマンド送受信用通信コネクションの帯域をそのままにすれば、コマンドの即時処理という要請を満たしながら、データ送受信の帯域を絞ることが可能となる。
【図面の簡単な説明】
【0014】
【図1】本発明における、LANネットワークを経由してシリアル機器を制御するシステムの構成例を示した図である。
【図2】本発明の実施例1における、シリアルデバイスサーバの構成例を示した図である。
【図3】本発明の実施例1における、シリアルデバイスサーバと通信相手との間のLANネットワーク上の通信の一例を示した図である。
【図4】本発明の実施例2における、シリアルデバイスサーバの構成例を示した図である。
【図5】本発明の実施例2における、シリアルデバイスサーバと通信相手との間のLANネットワーク上の通信の一例を示した図である。
【図6】本発明の実施例3における、シリアルデバイスサーバと通信相手との間のLANネットワーク上の通信の一例を示した図である。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態について、図面を参照しながら詳細に説明していく。ただし、本発明の範囲は、以下の実施形態や図示例に限定されるものではなく、幾多の変更及び変形が可能である。
【0016】
最初に、LANネットワークを経由してシリアル機器を制御するシステムの構成例について説明する。これらの構成例は、本発明において共通に適用されるものである。従って、実施例1、2、3に示す、本発明のシリアルデバイスサーバは、これらの構成例のいずれに対しても適用可能である。ただし、本発明を適用できるシステムは、これらの構成例に限定されるものではない。
【0017】
図1は、LANネットワークを経由してシリアル機器を制御するシステムの構成例を示している。図示されるように、構成例として2つあり、1つはクライアントサーバ方式、もう1つはM2M方式である。さらに、クライアントサーバ方式は、内部プログラムの構成により、2つに分類される。
【0018】
図1において、クライアント端末1は、例えば、パーソナルコンピュータである。シリアル機器3は、例えば、RS−232Cインタフェースを有する機器(一例として、ラベルプリンタや計測機器等があげられる)である。シリアルデバイスサーバ2は、LANネットワークと接続するためのネットワークインタフェースと、シリアル機器3と接続するためのシリアルインタフェースを備える。なお、シリアルデバイスサーバ2の機能及び他の構成については後述する。
【0019】
図1(a)は、クライアントサーバ方式の一例である。図示されるように、クライアント端末1とシリアルデバイスサーバ2とがLANネットワークで接続され、シリアルデバイスサーバ2とシリアル機器3とがシリアルケーブルで接続されている。本方式において、クライアント端末1は、LANネットワークを経由して、シリアルデイバスサーバ2に接続されたシリアル機器3を制御できる。なお、本方式は、内部プログラムの構成により、次の2つに分類できる。
【0020】
ひとつが、図1(b)で示すものである。図示されるように、(シリアル機器を制御する)アプリケーションプログラム(APP)4が、TCP/IPプログラム5のソケットI/Fを利用して、コマンド及びデータを、シリアルデバイスサーバ2に対し送信する。
【0021】
もうひとつが、図1(c)で示すものである。図示されるように、本構成では、COMI/Fの動作をエミュレートする仮想COMドライバプログラム6を備える。仮想COMドライバプログラム6は、(シリアル機器を制御する)アプリケーションプログラム(APP)4に対してはCOMI/Fとして動作する。そして、当該アプリケーションプログラム4から与えられたコマンド及びデータを、LANネットワークで送受信できる形式にして(IPパケット内部にカプセル化して)、シリアルデバイスサーバ2に対し送信する。
【0022】
図1(d)は、M2M方式の一例である。図示されるように、シリアルデバイスサーバ2aとシリアルデバイスサーバ2bとがLANネットワークで接続され、シリアルデバイスサーバ2aにはクライアント端末1が、シリアルデイバスサーバ2bにはシリアル機器3が、それぞれ、シリアルケーブルで接続されている。本方式において、クライアント端末1は、シリアルデバイスサーバ2a及びLANネットワークを経由して、シリアルデイバスサーバ2bに接続されたシリアル機器3を制御できる。
【実施例1】
【0023】
本発明の実施例1について説明する。本発明の実施例1は、コマンドとデータをそれぞれ異なる通信コネクションで伝送することで、即時処理されるべきコマンドの遅延問題を解決するものである。
【0024】
なお、本明細書において、コマンドとは、通信相手(一例として、図1では、クライアント端末が相当する)とシリアルデバイスサーバとの間で通信される情報のうち、シリアル機器あるいはシリアル伝送路を制御することを目的とする制御情報のことをいう。コマンドには、例えば、シリアル伝送路の回線オープン、回線クローズ、通信開始命令、伝送速度変更命令等が含まれる。また、データとは、通信相手とシリアル機器との間で通信されることを目的とするデータ情報のことをいう。
【0025】
図2は、本発明の実施例1における、シリアルデバイスサーバの構成例を示した図である。シリアルデバイスサーバ10は、TCP/IP部11を介してLANネットワークと接続され、シリアル制御部13を介してシリアル機器と接続されている。TCP/IP部11は、LANネットワークとの通信を行うプログラム群である。なお、TCP/IP部11には、図示されるように、LANネットワークとの通信でコマンドを入出力する為のコマンド用ソケット(例えば、Port1000)と、LANネットワークとの通信でデータを入出力する為のデータ用ソケット(例えば、Port1001)が設けられる。解析部12は、コマンドの内容を解析し、これをControl部13に与える。シリアル制御部13は、シリアル伝送路における、制御信号線を制御するControl部13aと、データ線を制御するData部13bを備えている。
【0026】
図3は、本発明の実施例1における、シリアルデバイスサーバと通信相手との間のLANネットワーク上の通信の一例である。図示されるように、シリアルデバイスサーバと通信相手との間では、コマンド送受信用とデータ送受信用の2つの通信コネクションが用意される。そして、コマンド送受信にはコマンド送受信用の通信コネクション20が、データ送受信にはデータ送受信用の通信コネクション21が、それぞれ利用される。なお、通信コネクションとは、例えば、TCPプロトコルに基づいたTCPセッションをいう。
【0027】
一例では、通信相手のTCP/IP部(図示せず)は、シリアルデバイスサーバのTCP/IP部との間で、2つのTCPセッション(通信コネクション)を確立すると共に、シリアルデバイスサーバに対して送信するに際し、コマンドはコマンド用TCPセッション(コマンド送受信用の通信コネクション)を介して、データはデータ用TCPセッション(データ送受信用の通信コネクション)を介して、行う。
【0028】
次に、図2を用いて、シリアルデバイスサーバが、通信相手からコマンド及びデータを受信した場合の動作について説明する。TCP/IP部11は、(コマンド用ソケットを介して)コマンドを受信すると、これを解析部12に与える。解析部12は、コマンドの内容を解析し、これをControl部13aに与える。Control部13aは、コマンドの内容に基づき、(例えば、フロー制御の為に)制御信号線の制御等を行う。また、コマンドに対する処理結果は、TCP/IP部11のコマンド用ソケットを介して、通信相手に送信される。
【0029】
TCP/IP部11は、(データ用ソケットを介して)データを受信すると、これをData部13bに与える。Data部13bは、データ線を経由し、制御信号線の状態に応じてデータをシリアル機器に伝送する。また、データに対する処理結果は、TCP/IP部のデータ用ソケットを介して、通信相手に送信される。
【0030】
このように、本発明の実施例1によれば、コマンドとデータをそれぞれ異なる通信コネクションを用いて送信するので、即時性の高いコマンドにつき、遅延問題(先行するデータの処理を終えるまでコマンドの処理ができない)を生じさせることなく、その処理を行うことができる。また、上記遅延問題を生じさせないので、システムのスループットを向上させることができる。
【0031】
また、本発明の実施例1によれば、通信コネクションのうち、データ送受信用の通信コネクションに対しては帯域制限を付与しつつ、コマンド送受信用の通信コネクションに対しては即時性を尊重するなど、帯域制御の選択的適用が可能となる。同様に、IPsec等の暗号化処理の適用についても、選択的な適用が可能になる。
【実施例2】
【0032】
実施例2は、実施例1の構成に、コマンド及びデータの同期をとる構成を加えたものである。例えば、データをNバイト送信した後に所定のコマンドを実行する場合など、コマンドとデータの処理につきその前後関係の調整が必要となるときに有用である。
【0033】
図4は、本発明の実施例2における、シリアルデバイスサーバの構成例を示した図である。解析判別部32は、受信したコマンドを解析し、即時型コマンドの場合、これをControl部38aへ与え、同期型コマンドの場合、これを一時保存部33に保存する。ここで、即時型コマンドとは、データとの同期の必要なく即時に実行できるコマンドである。また、同期型コマンドとは、データとの関係につき同期が必要なコマンドである。一時保存部33は、同期型コマンドの処理を待たせる為の一時保存領域(キュー)である。第1のデータ管理部36は、TCP/IP部31から与えられたデータのオフセット値(詳細は後述する)を管理する。同期制御部34は、コマンドのオフセット値と第1のデータ管理部36から与えられたオフセット値に基づいて、適時に同期型コマンドをControl部38aに与える。第2のデータ管理部37は、(通信相手に返信する)データの処理結果のオフセット値を管理する。同期情報付与部35は、(通信相手に返信する)コマンドの処理結果に対し、第2のデータ管理部37から与えられたオフセット値に基づき、オフセット値を付与する。TCP/IP部31及びシリアル制御部38の機能は、実施例1と同様である。
【0034】
図5は、本発明の実施例2における、シリアルデバイスサーバと通信相手との間のLANネットワーク上の通信の一例である。図示されるように、通信コネクションは、実施例1と同様、コマンド送受信用、データ送受信用の、2つが用意される。なお、実施例2では、コマンドとデータの同期をとる為、コマンドにオフセット値が付与されている。
【0035】
図5では、例えば、コマンド(+オフセット値50)41bは、データ(20バイト)40a及びデータ(30バイト)40bの処理が終了した後に実行される。なお、図示していないが、同期が不要なコマンドについては、オフセット値を付与しない(または−1などの特別な値を付与する)としておき、同期処理から除外するようにしてもよい。
【0036】
次に、図4を用いて、シリアルデバイスサーバが、通信相手からコマンド及びデータを受信した場合の動作について説明する。TCP/IP部31は、(コマンド用ソケットを介して)コマンドを受信すると、これを解析判別部32に与える。解析判別部32は、コマンドの内容を解析し、即時型コマンドか同期型コマンドかを判別する。即時型コマンドの場合、これをControl部38aに与える。同期型コマンドの場合、データと同期をとる為、これを一時保存部33(キュー)に記憶する。
【0037】
TCP/IP部31は、(データ用ソケットを介して)データを受信すると、第1のデータ管理部36を経由して、これをData部38bに与える。第1のデータ管理部36は、TCP/IP部31から受信したデータのオフセット値を管理し、その情報を同期制御部34に与える。Data部38bは、データ線を経由し、制御信号線の状態に応じてデータをシリアル機器に伝送する。
【0038】
同期制御部34は、同期型コマンドのオフセット値と第1のデータ管理部36から与えられたオフセット値に基づき、同期型コマンドを一時保存部33から取得し、これをControl部38aに与える。
【0039】
Control部38aは、与えられた即時型コマンドまたは同期型コマンドに基づき、(例えば、フロー制御の為に)制御信号線の制御等を行う。
【0040】
データに対する処理結果は、Data部38bから第2のデータ管理部37に与えられる。第2のデータ管理部37は処理結果のオフセット値を管理し、その情報を同期情報付与部35に与える。また、処理結果は、TCP/IP部31のデータ用ソケットを介して、通信相手に送信される。
【0041】
コマンドに対する処理結果は、Contorl部38aから同期情報付与部35に与えられる。同期情報付与部35は、処理結果に対し、第2のデータ管理部37からの与えられた情報に基づき、オフセット値を付与する。処理結果は、TCP/IP部31のコマンド用ソケットを介して、通信相手に送信される。
【0042】
このように、本発明の実施例2によれば、コマンドとデータの同期を要する場合においても、実施例1に示された効果を達成することができる。
【0043】
また、データのオフセット値を管理しこれに基づきコマンドと同期させる実施例2の処理は、従来のデータを全て判定する処理に対し、充分に軽いため、実施例1にて達成された高いスループットを維持できる。
【実施例3】
【0044】
実施例2は、データのオフセット値を用いてコマンドとデータの前後関係を定義したが、これは、コマンドがデータに先行して受信されるという経験則に基づいている。多くの場合、当該経験則が破綻することはないが、実施例3は、さらに確実な同期処理を目的とするものである。
【0045】
本発明の実施例3における、シリアルデバイスサーバの構成例は、図4と同様である。ただし、実施例3においては、コマンドとデータとの同期をとるにあたりシーケンス番号を利用するため、同期制御部、同期情報付与部、第1のデータ管理部、第2のデータ管理部は、オフセット値ではなく、シーケンス番号に基づいて、同期をとる処理を行う。
【0046】
図6は、本発明の実施例3における、シリアルデバイスサーバと通信相手との間のLANネットワーク上の通信の一例である。図示されるように、通信コネクションは、実施例1、実施例2と同様、コマンド送受信用、データ送受信用の、2つが用意される。なお、実施例3では、コマンドとデータの同期をとる為、シーケンス番号が付与されている。
【0047】
図6では、例えば、コマンド(SEQ4)51bは、これに先行するシーケンス番号(SEQ番号)の処理が終了するまで、実行されない。また、シリアルデバイスサーバは、各データに付与されているLENを参照することで、次のデータブロックの先頭を検出することができる。
【0048】
シリアルデバイスサーバが、通信相手からコマンド及びデータを受信した場合の動作は、(同期処理にシーケンス番号を利用する点を除いて)実施例2と同様であるので、説明は省略する。
【0049】
このように、本発明の実施例3によれば、コマンドとデータの同期を要する場合において、シーケンス番号に基づき同期をとるため、データがコマンドに先行して届く場合でも、その前後関係の同期をとることができる。
【0050】
また、各データに付与されているシーケンス番号の連続性を確認することで、各データの間で処理しなければならない、未到着のコマンドの存在を検出することができる。
【0051】
また、実施例2と同様、実施例3の処理は、従来のデータを全て判定する処理に対し、充分に軽いため、実施例1にて達成された高いスループットを維持できる。
【0052】
以上、本発明の実施例について説明したが、本発明は上記各実施例に限定されるものではない。各実施例においては、シリアル通信規格としてRS−232C規格をあげたが、本発明の適用範囲はこれに限られるものではなく、例えば、USB(Universal Serial Bus)規格やIEEE1394規格を用いてもよい。
【0053】
また、実施例2または実施例3に対する変形例として、コマンドに時間待ちコマンドを追加すれば、時間制御を取り込むことができる。例えば、Nバイトのデータを処理後、制御信号線を状態A(コマンド1)とし、M秒待機(コマンド2)したのち、制御信号線を状態B(コマンド3)にする、という処理である。
【産業上の利用可能性】
【0054】
本発明は、シリアル通信に関し、特に、LANネットワークを経由してシリアル機器を制御するシステムに対し有用である。
【符号の説明】
【0055】
1 クライアント端末
2 シリアルデバイスサーバ
3 シリアル機器

【特許請求の範囲】
【請求項1】
ネットワークインタフェースとシリアルインタフェースを備え、当該ネットワークインタフェースを介して信号を送受信すると共に、当該シリアルインタフェースを介して信号を送受信するシリアルデバイスサーバであって、当該ネットワークインタフェースを介して送受信する信号のうちコマンドを送受信するためのコマンド用ソケットと、当該ネットワークインタフェースを介して送受信する信号のうちデータを送受信するためのデータ用ソケットとを有するTCP/IP部を備えることを特徴とするシリアルデバイスサーバ。
【請求項2】
ネットワークインタフェースとシリアルインタフェースを備え、当該ネットワークインタフェースを介して信号を送受信すると共に、当該シリアルインタフェースを介して信号を送受信するシリアルデバイスサーバであって、
当該ネットワークインタフェースを介して送受信する信号のうちコマンドを送受信するためのコマンド用ソケットと、当該ネットワークインタフェースを介して送受信する信号のうちデータを送受信するためのデータ用ソケットとを有するTCP/IP部と、
TCP/IP部から受信したコマンドが即時型コマンドか同期型コマンドかを判別する解析判別部と、
同期型コマンドを保存する一時保存部と、
TCP/IP部から受信したデータの同期情報を同期制御部に与える第1のデータ管理部と、
第1のデータ管理部から取得した同期情報に基づき同期型コマンドをシリアル制御部に与える同期制御部と、
シリアル制御部から受信したデータの同期情報を同期情報付与部に与える第2のデータ管理部と、
シリアル制御部から受信したコマンドに対し第2のデータ管理部から取得した同期情報を付与する同期情報付与部と、
を備えることを特徴とするシリアルデバイスサーバ。
【請求項3】
同期情報がオフセット情報であることを特徴とする請求項2記載のシリアルデバイスサーバ。
【請求項4】
同期情報がシーケンス情報であることを特徴とする請求項2記載のシリアルデバイスサーバ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−23511(P2012−23511A)
【公開日】平成24年2月2日(2012.2.2)
【国際特許分類】
【出願番号】特願2010−159231(P2010−159231)
【出願日】平成22年7月14日(2010.7.14)
【出願人】(500112146)サイレックス・テクノロジー株式会社 (74)
【Fターム(参考)】