(57)【特許請求の範囲】
【請求項１】
シリアルデータを入出力する第一のデータ入出力部と第二のデータ入出力部とが、一つのシリアルポートを介してデータを入出力するシリアルポート共有システムにおいて、
第一のデータ入出力部および第二のデータ入出力部が出力したデータを格納し、格納したデータをシリアルポートに出力する出力バッファを備え、
第一のデータ入出力部は、データを出力バッファに出力する場合に、第二のデータ入出力部にデータ出力を停止させ、出力バッファが第二のデータ入出力部が出力した全てのデータをシリアルポートに出力したときに、データを出力バッファに出力し、出力バッファが第一のデータ入出力部が出力した全てのデータをシリアルポートに出力したときに、第二のデータ入出力部にデータ出力の再開を許可する
ことを特徴とするシリアルポート共有システム。
【請求項２】
シリアルデータを入出力する第一のデータ入出力部と第二のデータ入出力部とが、一つのシリアルポートを介してデータを入出力するシリアルポート共有システムにおいて、
シリアルポートから入力したデータを格納し、格納したデータを出力する入力バッファと、
入力バッファが出力したデータを第一のデータ入出力部または第二のデータ入出力部に出力する切替部とを備え、
切替部は、入力バッファが第一のデータ入出力部に入力すべきデータが続くことを示す第一の所定のデータを格納した場合に、第一の所定のデータに続くデータを第一のデータ入出力部に出力し、入力バッファが第一のデータ入出力部に入力すべきデータの終了を示す第二の所定のデータを格納した場合に、第二の所定のデータに続くデータを第二のデータ入出力部に出力する
ことを特徴とするシリアルポート共有システム。
【請求項３】
シリアルデータを入出力する第一のデータ入出力部と第二のデータ入出力部とが、一つのシリアルポートを介してデータを入出力するシリアルポート共有システムにおいて、
第一のデータ入出力部および第二のデータ入出力部が出力したデータを格納し、格納したデータをシリアルポートに出力する出力バッファと、
シリアルポートから入力したデータを格納し、格納したデータを出力する入力バッファと、
入力バッファが出力したデータを第一のデータ入出力部または第二のデータ入出力部に出力する切替部とを備え、
第一のデータ入出力部は、データを出力バッファに出力する場合に、第二のデータ入出力部にデータ出力を停止させ、出力バッファが第二のデータ入出力部が出力した全てのデータをシリアルポートに出力したときに、データを出力バッファに出力し、出力バッファが第一のデータ入出力部が出力した全てのデータをシリアルポートに出力したときに、第二のデータ入出力部にデータ出力の再開を許可し、
切替部は、入力バッファが第一のデータ入出力部に入力すべきデータが続くことを示す第一の所定のデータを格納した場合に、第一の所定のデータに続くデータを第一のデータ入出力部に出力し、入力バッファが第一のデータ入出力部に入力すべきデータの終了を示す第二の所定のデータを格納した場合に、第二の所定のデータに続くデータを第二のデータ入出力部に出力する
ことを特徴とするシリアルポート共有システム。
【請求項４】
出力バッファが格納するデータが存在しなくなったことを第一のデータ入出力部に通知する出力バッファ情報通知手段を備え、
第一のデータ入出力部は、出力バッファ情報通知手段からの通知により、出力バッファが第二のデータ入出力部が出力した全てのデータをシリアルポートに出力したこと、および出力バッファが第一のデータ入出力部が出力した全てのデータをシリアルポートに出力したことを判断する
請求項１または請求項３に記載のシリアルポート共有システム。
【請求項５】
入力バッファが第一の所定のデータを格納したことと、入力バッファが第二の所定のデータを格納したこととを第一のデータ入出力部に通知する入力バッファ情報通知手段を備え、
第一のデータ入出力部は、入力バッファが第一の所定のデータを格納したときに、切替部に第一の所定のデータに続くデータを第一のデータ入出力部に出力させ、入力バッファが第二の所定のデータを格納したときに、切替部に第二の所定のデータに続くデータを第二のデータ入出力部に出力させ、
切替部は、第一のデータ入出力部からの要求に応じて、第一の所定のデータに続くデータを第一のデータ入出力部に出力し、第二の所定のデータに続くデータを第二のデータ入出力部に出力する
請求項２または請求項３に記載のシリアルポート共有システム。
【請求項６】
シリアルデータを入出力する第一のデータ入出力部と第二のデータ入出力部とが、一つのシリアルポートを用いてデータを出力するデータ出力方法であって、
格納したデータを先入れ先出し順に出力する出力バッファに第二のデータ入出力部がデータを出力するステップと、
第二のデータ入出力部にデータ出力を停止させるステップと、
出力バッファが、第二のデータ入出力部が出力した全てのデータをシリアルポートに出力するステップと、
第一のデータ入出力部が、出力バッファにデータを出力するステップと、
出力バッファが、第一のデータ入出力部が出力した全てのデータをシリアルポートに出力するステップと、
第二のデータ入出力部にデータ出力の再開を許可するステップとを含む
ことを特徴とするデータ出力方法。
【請求項７】
シリアルデータを入出力する第一のデータ入出力部と第二のデータ入出力部とが、一つのシリアルポートを用いてデータを入力するデータ入力方法であって、
格納したデータを先入れ先出し順に出力する入力バッファが、シリアルポートからのデータを格納し、
入力バッファが第一のデータ入出力部に入力すべきデータが続くことを示す第一の所定のデータを格納した場合に、第一の所定のデータに続くデータを第一のデータ入出力部に出力し、入力バッファが第一のデータ入出力部に入力すべきデータの終了を示す第二の所定のデータを格納した場合に、第二の所定のデータに続くデータを第二のデータ入出力部に出力する
ことを特徴とするデータ入力方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のデータ入出力部が共通のシリアルポートを用いてデータの入出力を行うシリアルポート共有システム、データ出力方法、およびデータ入力方法に関する。
【０００２】
【従来の技術】
モデムとの間のデータ入出力を、シリアルポートを介して行う情報処理装置がある。図４は、モデムを用いて通信を行う従来の情報処理装置の例を示す説明図である。情報処理装置１０１，１１１は、例えば、パーソナルコンピュータ等である。情報処理装置１０１，１１１は、モデム１０２，１１２を用いて、公衆回線１２０を介して通信を行う。ここでは、情報処理装置１１１が、情報処理装置１０１の異常等を監視する場合を例に説明する。
【０００３】
情報処理装置１０１は、ＵＡＲＴ（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ  ａｎｄ  Ｔｒａｎｓｍｉｔｔｅｒ  ：汎用非同期送受信装置）１０３と、サービスプロセッサ１０４と、シリアルポート１０５とを備える。情報処理装置１１１も、情報処理装置１０１と同様にＵＡＲＴと、サービスプロセッサと、シリアルポートとを備えるが、図示を省略した。
【０００４】
ＵＡＲＴ１０３は、情報処理装置１１１のＵＡＲＴとデータを授受する。また、ＵＡＲＴ１０３は、情報処理装置１０１における情報処理を実行するＣＰＵ１０６とバス接続されている。そして、ＣＰＵ１０６は、通信プログラムに従って、ＵＡＲＴ１０３およびモデム１０２を介して、他の情報処理装置１１１等と通信を行う。ＣＰＵ１０６は、パラレルデータを入出力する。ＵＡＲＴ１０３は、ＣＰＵ１０６が出力したパラレルデータをシリアルデータに変換し、このシリアルデータをシリアルポート１０５に出力する。また、ＵＡＲＴ１０３は、シリアルポート１０５から入力されるシリアルデータをパラレルデータに変換してＣＰＵ１０６に出力する。
【０００５】
サービスプロセッサ１０４は、情報処理装置１０１の状態監視等を行う。例えば、情報処理装置１０１に異常（温度異常等）が発生したときに、情報処理装置１１１に異常を通知する。サービスプロセッサ１０４は、シリアルデータを入出力する。
【０００６】
ＵＡＲＴ１０３およびサービスプロセッサ１０４は、いずれも共通のシリアルポート１０５を介してモデム１０２にデータを出力する。シリアルポート１０５は、このデータのビット列をシリアルにモデム１０２に転送する。モデム１０２は、このデータを情報処理装置１１１に伝える。シリアルポート１０５がＵＡＲＴ１０３とサービスプロセッサ１０４のどちらのデータをモデム１０２に出力するのかは、論理スイッチによって切り替える。
【０００７】
また、モデム１０２は、情報処理装置１１１から受信したデータを、情報処理装置１０１に入力する。情報処理装置１１１から受信したデータには、ＵＡＲＴ１０３に入力すべきデータと、サービスプロセッサ１０４に入力すべきデータとがある。モデム１０２は、共通のシリアルポート１０５を介して、ＵＡＲＴ１０３またはサービスプロセッサ１０４にデータを入力する。シリアルポート１０５は、モデム１０２から送られたデータのビット列をシリアルにＵＡＲＴ１０３やサービスプロセッサ１０４に伝える。モデム１０２からシリアルポート１０５に送られたデータをＵＡＲＴ１０３とサービスプロセッサ１０４のどちらに入力するのかは、論理スイッチによって切り替える。
【０００８】
【発明が解決しようとする課題】
しかし、ＵＡＲＴ１０３とサービスプロセッサ１０４との切り替えに論理スイッチを用いると、データのビット列の途中（例えば１バイトのデータの途中）で切り替えが実行されてしまう可能性がある。そして、１バイトのビット列の途中で切り替えが行われると、データが破壊されてしまう。例えば、ＵＡＲＴ１０３が、シリアルポート１０５を介してモデム１０２にデータを出力しているとする。このとき、モデム１０２へのデータ出力が完了しないうちに、サービスプロセッサ１０４がシリアルポート１０５を介してモデム１０２にデータを出力するように切り替えると、ＵＡＲＴ１０３の出力データのビット列が途切れ、データが破壊されてしまう場合がある。
【０００９】
このような問題は、シリアルポート１０５を介してＵＡＲＴ１０３やサービスプロセッサ１０４にデータを入力する場合にも生じる。以下、データを入力する場合の例について説明する。ＣＰＵ１０６は、ＵＡＲＴ１０３に”Ａ０ｈ”というデータが入力されると特定の動作をし、サービスプロセッサ１０４は、”Ａ０ｈ，Ｂ０ｈ”という連続するデータが入力されると別の動作をするものとする。この”ｈ”は、１６進数表示であることを示す符号である。ＵＡＲＴ１０３に入力するデータに続いて、サービスプロセッサ１０４に入力すべき”Ａ０ｈ，Ｂ０ｈ”が伝送された場合、この”Ａ０ｈ”がＵＡＲＴ１０３に入力されると、ＣＰＵ１０６が所望の動作とは異なる動作を行ってしまう。そのため、この”Ａ０ｈ”がＵＡＲＴ１０３に入力される前に、入力先をサービスプロセッサ１０４に切り替えなければならない。しかし、論理スイッチによって切り替えを行うと、ＵＡＲＴ１０３に入力するビット列の途中（例えば１バイトのデータの途中）で切り替えられ、データが破壊される可能性がある。
【００１０】
本発明は、シリアルポートを介してデータを出力する出力元や、シリアルポートを介してデータを入力するときの入力先を、データを破壊させずに切り替えることができるシリアルポート共有システム、データ出力方法、およびデータ入力方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明によるシリアルポート共有システムは、シリアルデータを入出力する第一のデータ入出力部と第二のデータ入出力部とが、一つのシリアルポートを介してデータを入出力するシリアルポート共有システムであって、第一のデータ入出力部および第二のデータ入出力部が出力したデータを格納し、格納したデータをシリアルポートに出力する出力バッファを備え、第一のデータ入出力部は、データを出力バッファに出力する場合に、第二のデータ入出力部にデータ出力を停止させ、出力バッファが第二のデータ入出力部が出力した全てのデータをシリアルポートに出力したときに、データを出力バッファに出力し、出力バッファが第一のデータ入出力部が出力した全てのデータをシリアルポートに出力したときに、第二のデータ入出力部にデータ出力の再開を許可することを特徴とする。
【００１２】
また、本発明によるシリアルポート共有システムは、シリアルデータを入出力する第一のデータ入出力部と第二のデータ入出力部とが、一つのシリアルポートを介してデータを入出力するシリアルポート共有システムであって、シリアルポートから入力したデータを格納し、格納したデータを出力する入力バッファと、入力バッファが出力したデータを第一のデータ入出力部または第二のデータ入出力部に出力する切替部とを備え、切替部は、入力バッファが第一のデータ入出力部に入力すべきデータが続くことを示す第一の所定のデータを格納した場合に、第一の所定のデータに続くデータを第一のデータ入出力部に出力し、入力バッファが第一のデータ入出力部に入力すべきデータの終了を示す第二の所定のデータを格納した場合に、第二の所定のデータに続くデータを第二のデータ入出力部に出力することを特徴とする。
【００１３】
また、本発明によるシリアルポート共有システムは、シリアルデータを入出力する第一のデータ入出力部と第二のデータ入出力部とが、一つのシリアルポートを介してデータを入出力するシリアルポート共有システムであって、第一のデータ入出力部および第二のデータ入出力部が出力したデータを格納し、格納したデータをシリアルポートに出力する出力バッファと、シリアルポートから入力したデータを格納し、格納したデータを出力する入力バッファと、入力バッファが出力したデータを第一のデータ入出力部または第二のデータ入出力部に出力する切替部とを備え、第一のデータ入出力部は、データを出力バッファに出力する場合に、第二のデータ入出力部にデータ出力を停止させ、出力バッファが第二のデータ入出力部が出力した全てのデータをシリアルポートに出力したときに、データを出力バッファに出力し、出力バッファが第一のデータ入出力部が出力した全てのデータをシリアルポートに出力したときに、第二のデータ入出力部にデータ出力の再開を許可し、切替部は、入力バッファが第一のデータ入出力部に入力すべきデータが続くことを示す第一の所定のデータを格納した場合に、第一の所定のデータに続くデータを第一のデータ入出力部に出力し、入力バッファが第一のデータ入出力部に入力すべきデータの終了を示す第二の所定のデータを格納した場合に、第二の所定のデータに続くデータを第二のデータ入出力部に出力することを特徴とする。
【００１４】
例えば、出力バッファが格納するデータが存在しなくなったことを第一のデータ入出力部に通知する出力バッファ情報通知手段を備え、第一のデータ入出力部は、出力バッファ情報通知手段からの通知により、出力バッファが第二のデータ入出力部が出力した全てのデータをシリアルポートに出力したこと、および出力バッファが第一のデータ入出力部が出力した全てのデータをシリアルポートに出力したことを判断する。
【００１５】
また、例えば、入力バッファが第一の所定のデータを格納したことと、入力バッファが第二の所定のデータを格納したこととを第一のデータ入出力部に通知する入力バッファ情報通知手段を備え、第一のデータ入出力部は、入力バッファが第一の所定のデータを格納したときに、切替部に第一の所定のデータに続くデータを第一のデータ入出力部に出力させ、入力バッファが第二の所定のデータを格納したときに、切替部に第二の所定のデータに続くデータを第二のデータ入出力部に出力させ、切替部は、第一のデータ入出力部からの要求に応じて、第一の所定のデータに続くデータを第一のデータ入出力部に出力し、第二の所定のデータに続くデータを第二のデータ入出力部に出力する。
【００１６】
また、本発明によるデータ出力方法は、シリアルデータを入出力する第一のデータ入出力部と第二のデータ入出力部とが、一つのシリアルポートを用いてデータを出力するデータ出力方法であって、格納したデータを先入れ先出し順に出力する出力バッファに第二のデータ入出力部がデータを出力するステップと、第二のデータ入出力部にデータ出力を停止させるステップと、出力バッファが、第二のデータ入出力部が出力した全てのデータをシリアルポートに出力するステップと、第一のデータ入出力部が、出力バッファにデータを出力するステップと、出力バッファが、第一のデータ入出力部が出力した全てのデータをシリアルポートに出力するステップと、第二のデータ入出力部にデータ出力の再開を許可するステップとを含むことを特徴とする。
【００１７】
また、本発明によるデータ入力方法は、シリアルデータを入出力する第一のデータ入出力部と第二のデータ入出力部とが、一つのシリアルポートを用いてデータを入力するデータ入力方法であって、格納したデータを先入れ先出し順に出力する入力バッファが、シリアルポートからのデータを格納し、入力バッファが第一のデータ入出力部に入力すべきデータが続くことを示す第一の所定のデータを格納した場合に、第一の所定のデータに続くデータを第一のデータ入出力部に出力し、入力バッファが第一のデータ入出力部に入力すべきデータの終了を示す第二の所定のデータを格納した場合に、第二の所定のデータに続くデータを第二のデータ入出力部に出力することを特徴とする。
【００１８】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本発明によるシリアルポート共有システムの実施の一形態を示す説明図である。図１に示すシリアルポート共有システム１は、モデム３１を介してデータを送受信するパーソナルコンピュータ等の情報処理装置３０に適用される。情報処理装置３０，４０は、それぞれモデム３１，４１を用いて、公衆回線５０を介して通信を行う。ここでは、情報処理装置４０が、情報処理装置３０の異常等を監視する場合を例に説明する。
【００１９】
図１では、他の情報処理装置４０に送信するデータの伝送経路と、他の情報処理装置４０から受信したデータの伝送経路を破線で示す。
【００２０】
本例のシリアルポート共有システム１は、サービスプロセッサ２と、ＵＡＲＴ３と、シリアルポート４と、シリアルデータ−パラレルデータ変換部６，８と、パラレルデータ−シリアルデータ変換部７と、出力バッファ部１０と、入力バッファ部２０とを備える。
【００２１】
シリアルデータ−パラレルデータ変換部６，８は、入力されるシリアルデータをパラレルデータに変換して出力する。シリアルデータ−パラレルデータ変換部６は、ＵＡＲＴ３およびサービスプロセッサ２からシリアルデータを入力され、そのデータをパラレルデータに変換して出力バッファ部１０に出力する。シリアルデータ−パラレルデータ変換部８は、シリアルポート４からシリアルデータを入力され、そのデータをパラレルデータに変換して入力バッファ部１０に出力する。
【００２２】
パラレルデータ−シリアルデータ変換部７は、出力バッファ１０からパラレルデータを入力され、そのデータをシリアルデータに変換してシリアルポート４に出力する。
【００２３】
ＵＡＲＴ３は、他の情報処理装置４０のＵＡＲＴとデータを授受する。ＵＡＲＴ３は、情報処理装置３０における情報処理を実行するＣＰＵ５とバス接続されている。そして、ＣＰＵ５は、通信プログラムに従って、ＵＡＲＴ３やモデム３１等を介して、他の情報処理装置４０等と通信を行う。ＣＰＵ５は、情報処理装置４０と送受信するデータとして、パラレルデータを入出力する。ＵＡＲＴ３は、入力バッファ部２０が出力したシリアルデータをパラレルデータに変換してＣＰＵ５に出力する。また、ＵＡＲＴ３は、ＣＰＵ５が出力したパラレルデータをシリアルデータに変換する。そして、このシリアルデータを、シリアルデータ−パラレルデータ変換部６を介して出力バッファ部１０に出力する。シリアルデータ−パラレルデータ変換部６は、ＵＡＲＴ３の出力データをパラレルデータに変換して出力バッファ１０に出力する。
【００２４】
サービスプロセッサ２は、情報処理装置３０の状態監視等を行う。例えば、情報処理装置３０に温度異常等の異常が生じたときに、情報処理装置４０に異常を通知する。サービスプロセッサ２は、情報処理装置４０と送受信するデータとして、シリアルデータを入出力する。サービスプロセッサ２は、後述する切替部２４からシリアルデータを入力される。また、シリアルデータ−パラレルデータ変換部６を介して出力バッファ部１０にデータを出力する。シリアルデータ−パラレルデータ変換部６は、サービスプロセッサ２の出力データをパラレルデータに変換して出力バッファ１０に出力する。
【００２５】
シリアルポート４は、サービスプロセッサ２およびＵＡＲＴ３の出力データをパラレルデータ−シリアルデータ変換部７から取得し、モデム３１に転送する。また、情報処理装置４０が情報処理装置３０に向けて送信したデータをモデム３１から取得し、このデータのビット列を、シリアルデータ−パラレルデータ変換部８に転送する。
【００２６】
出力バッファ部１０は、出力バッファ１１と、出力バッファ情報通知部１２とを備える。出力バッファ１１は、シリアルデータ−パラレルデータ変換部６がパラレルデータに変換したＵＡＲＴ３の出力データやサービスプロセッサ２の出力データを一時的に格納する。そして、先に格納したデータから先に出力するＦＩＦＯ（Ｆｉｒｓｔ−ｉｎ  Ｆｉｒｓｔ−ｏｕｔ：先入れ先出し）順でデータをシリアルポート４に出力する。このとき、出力バッファ１１は、パラレルデータ−シリアルデータ変換部７を介して、データをシリアルポート４に出力する。パラレルデータ−シリアルデータ変換部７は、出力バッファ１１から取得したデータをシリアルデータに変換してシリアルポート４に出力する。シリアルポート４は、パラレルデータ−シリアルデータ変換部７が出力したデータのビット列をシリアルにモデム３１に転送する。
【００２７】
出力バッファ情報通知部１２は、出力バッファ１１にデータが格納されているか否かを監視し、格納されていたデータが全てパラレルデータ−シリアルデータ７に出力されたときに、出力バッファ１１内のデータがなくなったことをサービスプロセッサ２に通知する。サービスプロセッサ２は、この通知に応じて、ＵＡＲＴ３からのデータ出力を制御する。
【００２８】
入力バッファ部２０は、入力バッファ２１と、入力バッファ情報通知部２２と、切替制御部２３と、切替部２４とを備える。入力バッファ２１は、シリアルデータ−パラレルデータ変換部８が出力するパラレルデータを一時的に格納し、格納したデータをＦＩＦＯ順で切替部２４に出力する。切替部２４は、入力バッファ２１が出力するパラレルデータをシリアルデータに変換し、ＵＡＲＴ３またはサービスプロセッサ２に出力する。
【００２９】
他の情報処理装置４０は、情報処理装置３０のサービスプロセッサ２に入力すべきデータの前に所定のデータを付加する。この所定のデータは、サービスプロセッサ２に入力すべきデータが次に続くことを意味するデータである。以下、このデータをスタートコードと記す。また、他の情報処理装置４０は、サービスプロセッサ２に入力すべきデータの後にも所定のデータを付加する。この所定のデータは、サービスプロセッサ２に入力すべきデータの終了を意味するデータである。以下、このデータをエンドコードと記す。例えば、スタートコードおよびエンドコードがともに”ＦＦｈ”であり、サービスプロセッサ２に入力すべきデータが”１０ｈ，２０ｈ”であるとする。この場合、他の情報処理装置４０は、情報処理装置３０に”ＦＦｈ，１０ｈ，２０ｈ，ＦＦｈ”というデータを送信する。シリアルポート４は、このデータのビット列を、モデム３１からシリアルデータ−パラレルデータ変換部８にシリアルに転送する。また、情報処理装置４０は、ＵＡＲＴ３に入力すべきデータには、スタートコードおよびエンドコードを付加せずに送信する。
【００３０】
入力バッファ情報通知部３は、スタートコード（第一の所定のデータ）やエンドコード（第二の所定のデータ）がシリアルデータ−パラレルデータ変換部８から入力バッファ２１に入力されたときに、その旨の情報をサービスプロセッサ２に通知する。切替制御部２３は、サービスプロセッサ２の制御に従って、切替部２４からＵＡＲＴ３へのデータ出力を停止させたり再開させたりする。
【００３１】
本例において、シリアルデータを入出力する第一のデータ入出力部はサービスプロセッサ２であり、シリアルデータを入出力する第二のデータ入出力部はＣＰＵ５とバス接続されているＵＡＲＴ３である。また、出力バッファ情報通知手段は、出力バッファ情報通知部１２であり、入力バッファ情報通知手段は、入力バッファ情報通知部２２である。
【００３２】
次に、ＵＡＲＴ３とサービスプロセッサ２とが、シリアルポート４を介してデータを出力するときの動作について説明する。図２は、ＵＡＲＴ３とサービスプロセッサ２がデータを出力するときの動作の例を示す流れ図である。ＵＡＲＴ３は、他の情報処理装置４０に送信すべきデータを、シリアルデータ−パラレルデータ変換部６を介して出力バッファ１１に出力する（ステップＳ７１）。シリアルデータ−パラレルデータ変換部６は、ＵＡＲＴ３の出力データをパラレルデータに変換し、出力バッファ１１は、ＵＡＲＴ３の出力データをパラレルデータとして格納する。出力バッファ１１は、このデータを、パラレルデータ−シリアルデータ変換部７を介してシリアルポート４に出力する。パラレルデータ−シリアルデータ変換部７は、このデータをシリアルデータに変換してシリアルポート４に出力する。シリアルポート４に出力されたデータは、モデム３１を介して他の情報処理装置４０に送信される。
【００３３】
サービスプロセッサ２は、他の情報処理装置４０にデータを送信する場合、ＵＡＲＴ３にデータ出力の停止を指示する（ステップＳ７２）。ＵＡＲＴ３は、指示があったときに出力していたデータの出力が完了した後は、データ出力を停止する。ＵＡＲＴ３の出力データは、出力バッファ１１に格納されるが、順次パラレルデータ−シリアルデータ変換部７を介してシリアルポート４に出力される。出力バッファ１１内のデータがなくなったならば、出力バッファ情報通知部１２が、その旨をサービスプロセッサ２に通知する（ステップＳ７３）。
【００３４】
サービスプロセッサ２は、この通知を受けると、他の情報処理装置４０に送信すべきデータを、シリアルデータ−パラレルデータ変換部６を介して出力バッファ１１に出力する（ステップＳ７４）。シリアルデータ−パラレルデータ変換部６は、サービスプロセッサ２の出力データをパラレルデータに変換して出力バッファ１１に出力する。出力バッファ１１は、このデータを順次シリアルポート４に向けて出力する。パラレルデータ−シリアルデータ変換部７は、出力バッファ１１が出力したデータをシリアルデータに変換してシリアルポート４に出力する。サービスプロセッサ２が出力した全てのデータが出力バッファ１１からパラレルデータ−シリアルデータ変換部７を介してシリアルポート４に出力されると、出力バッファ情報通知部１２は、出力バッファ１１内にデータがなくなったことをサービスプロセッサ２に通知する（ステップＳ７５）。
【００３５】
サービスプロセッサ２は、ステップＳ７５の通知を受けると、ＵＡＲＴ３にデータ出力の再開を許可する（ステップＳ７６）。この後、ＵＡＲＴ３は、再びシリアルデータ−パラレルデータ変換部６を介して出力バッファ１１にデータを出力する（ステップＳ７７）。
【００３６】
次に、ＵＡＲＴ３とサービスプロセッサ２とが、シリアルポート４を介してデータを取得するときの動作について説明する。図３は、ＵＡＲＴ３とサービスプロセッサ２がデータを取得するときの動作の例を示す流れ図である。モデム３１が他の情報処理装置４０から受信したデータは、シリアルポート４によってシリアルデータ−パラレルデータ変換部８に転送される。シリアルデータ−パラレルデータ変換部８は、このデータをパラレルデータに変換して入力バッファ２１に出力する。入力バッファ２１は、シリアルデータ−パラレルデータ変換部８から取得したデータを格納し、ＦＩＦＯ順に切替部２４に出力する。切替部２４は、このデータをシリアルデータに変換して、ＵＡＲＴ３に出力する（ステップＳ８１）。
【００３７】
入力バッファ情報通知部２２は、入力バッファ２１に格納されるデータを監視し、入力バッファ２１にスタートコードが入力されたか否かを判断する（ステップＳ８２）。入力バッファ情報通知部２２は、スタートコードが入力バッファ２１に格納されたならば、スタートコードが入力された旨をサービスプロセッサ２に通知する（ステップＳ８３）。スタートコードが入力されるまでは、ステップＳ８１の動作を継続する。
【００３８】
ステップＳ８３の通知を受けたサービスプロセッサ２は、切替制御部２３に、スタートコードより後のデータをＵＡＲＴ３に出力させずに、サービスプロセッサ２に出力させるように要求する（ステップＳ８４）。切替制御部２３は、切替部２４がスタートコードをＵＡＲＴ３に出力した後、切替部２４にＵＡＲＴ３へのデータ出力を停止させ、サービスプロセッサ２へのデータ出力を開始させる。切替部２４は、切替制御部２３に従い、スタートコードをＵＡＲＴ３に出力した後、ＵＡＲＴ３へのデータ出力を停止する（ステップＳ８５）。スタートコードは、サービスプロセッサ２に入力すべきデータが次に続くことを意味するデータであるが、スタートコードそのものはＵＡＲＴ３に入力される。切替部２４は、スタートコードに続くデータをＦＩＦＯ順にサービスプロセッサ２に出力する（ステップＳ８６）。
【００３９】
入力バッファ情報通知部２２は、入力バッファ２１に格納されるデータを監視し、入力バッファ２１にエンドコードが入力されたか否かを判断する（ステップＳ８７）。入力バッファ情報通知部２２は、エンドコードが入力バッファ２１に格納されたならば、エンドコードが入力された旨をサービスプロセッサ２に通知する（ステップＳ８８）。エンドコードが入力されるまでは、ステップＳ８６の動作を継続する。
【００４０】
ステップＳ８８の通知を受けたサービスプロセッサ２は、切替制御部２３に、ＵＡＲＴ３へのデータ出力を再開し、エンドコードより後のデータをＵＡＲＴ３に出力させるように要求する（ステップＳ８９）。切替制御部２３は、切替部２４がエンドコードを出力した後、切替部２４にＵＡＲＴ３へのデータ出力を再開させる。
【００４１】
切替部２４は、切替制御部２３に従い、エンドコードをサービスプロセッサ２に出力した後、サービスプロセッサ２へのデータ出力を停止し、エンドコードに続くデータをＵＡＲＴ３に出力する（ステップＳ９０）。
【００４２】
なお、スタートコードとエンドコードは、同一のデータ（例えば、”ＦＦｈ”とする。）であってもよい。この場合、入力バッファ情報通知部２２は、”ＦＦｈ”が入力バッファ２１に入力された回数をカウントし、１回目の入力時にはスタートコードが入力され、２回目の入力時にはエンドコードが入力されたと判断すればよい。ただし、入力バッファ情報通知部２２は、２回目の入力時にエンドコートが入力されたと判断してステップＳ８８の動作を行ったならば、カウントしている回数を０回に初期化する。
【００４３】
本発明によれば、サービスプロセッサ２がデータを出力するときには、ＵＡＲＴ３にデータ出力の停止を指示する。ＵＡＲＴ３は、指示があったときに出力していたデータの出力が完了した後は、データ出力を停止する。そして、出力バッファ１１内のデータがなくなってからサービスプロセッサ２がデータを出力する。従って、ＵＡＲＴ３が出力したデータのビット列を途中で途切れさせずに、データの出力元をＵＡＲＴ３からサービスプロセッサ２に切り替えることができる。
【００４４】
そして、サービスプロセッサ２が出力したデータが、全て出力バッファ１１からシリアルポート４に送られたならば、サービスプロセッサ２は、ＵＡＲＴ３にデータ出力の再開を指示する。従って、ＵＡＲＴ３は、データ出力を再開することができる。また、サービスプロセッサ３が出力したデータのビット列を途中で途切れさせずに、データの出力元をサービスプロセッサ２からＵＡＲＴ３に切り替えることができる。
【００４５】
また、本発明によれば、サービスプロセッサ２に入力すべきデータが入力バッファ２１に格納された場合、切替部２４はそのデータに付加されているスタートコードをＵＡＲＴ３に出力した後は、ＵＡＲＴ３へのデータ出力を停止する。そして、スタートコードに続くデータをサービスプロセッサ２に出力する。切替部２４は、エンドコードを出力した後、ＵＡＲＴ３へのデータ出力を再開する。従って、サービスプロセッサ２に入力すべきデータがＵＡＲＴ３に入力されてしまうことがない。例えば、ＣＰＵ５は、ＵＡＲＴ１０３に”Ａ０ｈ”というデータが入力されると特定の動作をし、サービスプロセッサ２は、”Ａ０ｈ，Ｂ０ｈ”という連続するデータが入力されると別の動作をするものとする。このとき、サービスプロセッサ２に入力されるべき”Ａ０ｈ，Ｂ０ｈ”は、ＵＡＲＴ３に入力されない。この結果、”Ａ０ｈ”がＵＡＲＴ３に入力されてしまい、所望の動作とは異なる動作が行われることを防止できる。
【００４６】
また、データのビット列を途切れさせずに、データの入力先をＵＡＲＴ３からサービスプロセッサ２に切り替えたり、サービスプロセッサ２からＵＡＲＴ３に切り替えることができる。
【００４７】
次に、他の情報処理装置４０がサービスプロセッサ２に特定の動作を命令するデータを送信し、サービスプロセッサ２が肯定応答（ＡＣＫ）を返す場合を例にして本発明の動作を説明する。サービスプロセッサ２に特定の動作を命令するデータを”０１ｈ”、スタートコードおよびエンドコードを”ＦＦｈ”とする。
【００４８】
他の情報処理装置４０は、ＵＡＲＴ３に入力すべきデータの中に”０１ｈ”を挿入する場合、”０１ｈ”の前にスタートコードを付加し、後にエンドコードを付加して”ＦＦｈ，０１ｈ，ＦＦｈ”というデータを挿入する。他の情報処理装置４０が送信したデータは、シリアルポート４およびシリアルデータ−パラレルデータ変換部８を介して入力バッファ２１に入力される。入力バッファ２１は、入力されたデータを格納し、ＦＩＦＯ順に切替部２４に出力する。切替部２４は、入力されたデータをＵＡＲＴ３に出力する（ステップＳ８１）。入力バッファ２１に最初の”ＦＦｈ”が格納されると、入力バッファ情報通知部２２は、スタートコードが入力バッファ２１に入力された旨をサービスプロセッサ２に通知する（ステップＳ８２，Ｓ８３）。
【００４９】
この通知を受けたサービスプロセッサ２は、切替制御部２３に、最初の”ＦＦｈ”より後のデータをＵＡＲＴ３に出力させずに、サービスプロセッサ２に出力させるように要求する（ステップＳ８４）。切替部２４は、切替制御部２３に従い、最初の”ＦＦｈ”をＵＡＲＴ３に出力した後、ＵＡＲＴ３へのデータ出力を停止する（ステップＳ８５）。そして、”０１ｈ”以降のデータをサービスプロセッサ２に出力する（ステップＳ８６）。入力バッファ２１に二番目の”ＦＦｈ”が格納されると、入力バッファ情報通知部２２は、エンドコードが入力バッファ２１に入力された旨をサービスプロセッサ２に通知する（ステップＳ８７，Ｓ８８）。
【００５０】
この通知を受けたサービスプロセッサ２は、切替制御部２３に、二番目の”ＦＦｈ”より後のデータをサービスプロセッサ２に出力させずに、ＵＡＲＴ３に出力させるように要求する（ステップＳ８９）。切替部２４は、切替制御部２３に従い、二番目の”ＦＦｈ”をサービスプロセッサ２に出力した後、サービスプロセッサ２へのデータ出力を停止する。そして、二番目の”ＦＦｈ”より後のデータをＵＡＲＴ３に出力する（ステップＳ９０）。
【００５１】
また、サービスプロセッサ２は、”０１ｈ”が入力されると特定の動作を行い、他の情報処理装置４０にＡＣＫを返す。このとき、サービスプロセッサ２は、ＵＡＲＴ３にデータ出力を停止させる（ステップＳ７２）。ＵＡＲＴ３が既に出力したデータが出力バッファ２１からパラレルデータ−シリアルデータ変換部７に出力され、データがなくなったならば、出力バッファ情報通知部２２がその旨をサービスプロセッサ２に通知する（ステップＳ７３）。
【００５２】
サービスプロセッサ２は、この通知を受けると、ＡＣＫを出力バッファ１１に出力する（ステップＳ７４）。ＡＣＫが出力バッファ１１からパラレルデータ−シリアルデータ変換部７に出力され、出力バッファ１１内のデータがなくなったならば、出力バッファ情報通知部２２がその旨をサービスプロセッサ２に通知する（ステップＳ７５）。この通知を受けたサービスプロセッサ２は、ＵＡＲＴ３にデータ出力の再開を許可し（ステップＳ７６）、ＵＡＲＴ３は出力バッファ１１にデータを出力する（ステップＳ７７）。
【００５３】
上記の例では、サービスプロセッサ２が、入力バッファ情報通知部２２からの通知に応じて切替制御部２３に指示を出す場合を説明した。ＵＡＲＴ３が、入力バッファ情報通知部２２から通知を受けて、切替制御部２３に指示を出してもよい。この場合、入力バッファ情報通知部は、入力バッファがスタートデータを格納したことと、エンドコードを格納したこととをＵＡＲＴ３に通知する。ＵＡＲＴ３は、入力バッファがスタートコードを格納したときに、切替制御部２３に、スタートコードに続くデータをサービスプロセッサ２に出力させるように要求する。また、入力バッファがエンドコードを格納したときに、切替制御部２３に、エンドコードに続くデータをＵＡＲＴ３に出力させるように要求する。切替部２４は、切替制御部２３に従い、スタートコードに続くデータをサービスプロセッサ２に出力し、エンドコードに続くデータをＵＡＲＴ３に出力する。
【００５４】
すなわち、本発明は、入力バッファが第一の所定のデータを格納したことと、入力バッファが第二の所定のデータを格納したこととを第二のデータ入出力部に通知する入力バッファ情報通知手段を備え、第二のデータ入出力部は、入力バッファが第一の所定のデータを格納したときに、切替部に第一の所定のデータに続くデータを第一のデータ入出力部に出力させ、入力バッファが第二の所定のデータを格納したときに、切替部に第二の所定のデータに続くデータを第二のデータ入出力部に出力させ、切替部は、第二のデータ入出力部からの要求に応じて、第一の所定のデータに続くデータを第一のデータ入出力部に出力し、第二の所定のデータに続くデータを第二のデータ入出力部に出力する構成であってもよい。
【００５５】
また、サービスプロセッサ２が、出力バッファ情報通知部１２からの通知に応じてＵＡＲＴ３に指示を出すのではなく、ＵＡＲＴ３が、出力バッファ情報通知部１２からの通知に応じてサービスプロセッサ２に指示を出してもよい。この場合、ＵＡＲＴ３は、データを出力バッファ１１に出力する場合に、サービスプロセッサ２にデータ出力を停止させる。そして、ＵＡＲＴ３は、出力バッファ１１がサービスプロセッサ２が出力した全てのデータをシリアルポートに出力したときに、データを出力バッファに出力する。出力バッファ１１がＵＡＲＴ３が出力した全てのデータをシリアルポートに出力したときに、ＵＡＲＴ３は、サービスプロセッサ２にデータ出力の再開を許可する。また、出力バッファ情報通知部１２は、出力バッファ１１内にデータがなくなったことをＵＡＲＴ３に通知する。
【００５６】
【発明の効果】
本発明によれば、第一のデータ入出力部は、データを出力バッファに出力する場合に、第二のデータ入出力部にデータ出力を停止させ、出力バッファが第二のデータ入出力部が出力した全てのデータをシリアルポートに出力したときに、データを出力バッファに出力し、出力バッファが第一のデータ入出力部が出力した全てのデータをシリアルポートに出力したときに、第二のデータ入出力部にデータ出力の再開を許可する。従って、シリアルポートを介してデータを出力する出力元を、データを破壊させずに切り替えることができる。
【００５７】
また、本発明によれば、切替部は、入力バッファが第一のデータ入出力部に入力すべきデータが続くことを示す第一の所定のデータを格納した場合に、第一の所定のデータに続くデータを第一のデータ入出力部に出力し、入力バッファが第一のデータ入出力部に入力すべきデータの終了を示す第二の所定のデータを格納した場合に、第二の所定のデータに続くデータを第二のデータ入出力部に出力する。従って、シリアルポートを介してデータを入力するときの入力先を、データを破壊させずに切り替えることができる。
【図面の簡単な説明】
【図１】本発明によるシリアルポート共有システムの実施の一形態を示す説明図である。
【図２】ＵＡＲＴとサービスプロセッサがデータを出力するときの動作の例を示す流れ図である。
【図３】ＵＡＲＴとサービスプロセッサがデータを取得するときの動作の例を示す流れ図である。
【図４】モデムを用いて通信を行う従来の情報処理装置の例を示す説明図である。
【符号の説明】
１  シリアルポート共有システム
２  サービスプロセッサ
３  ＵＡＲＴ（汎用非同期送受信装置）
４  シリアルポート
５  ＣＰＵ
６，８  シリアルデータ−パラレルデータ変換部
７  パラレルデータ−シリアルデータ変換部
１０  出力バッファ部
１１  出力バッファ
１２  出力バッファ情報通知部
２０  入力バッファ部
２１  入力バッファ
２２  入力バッファ情報通知部
２３  切替制御部
２４  切替部
【図１】
0003567925.tif 000002
【図２】
0003567925.tif 000003
【図３】
0003567925.tif 000004
【図４】
0003567925.tif 000005