(57)【特許請求の範囲】
【請求項１】
処理ユニットと、メインメモリと、ローカルバスとを具備するコンピュータ、
前記ローカルバスへ結合されている標準ＵＡＲＴの条件を満足しない非標準装置であって、前記ローカルバス上の第一通信ポートに対応するＩ／Ｏスロットを占有しており且つ標準ＵＡＲＴ用のレジスタセットと異なるレジスタセットを具備する非標準装置、
前記処理ユニットによって実行されるオペレーティングシステムであって、前記第一通信ポートに対応する標準ＵＡＲＴのレジスタセットへアクセスする手順を包含しているオペレーティングシステム、
前記処理ユニットによって実行される通信ドライバであって、標準ＵＡＲＴのレジスタセットへのアクセスのための手順の実行に応答して標準ＵＡＲＴのレジスタセットの内のレジスタに対応する前記メインメモリ内の格納位置へアクセスするＵＡＲＴエミュレーションと、前記メインメモリ内の格納位置と前記非標準装置のレジスタセットとの間で値を転送するＩ／Ｏハンドラとを有する通信ドライバ、
を有することを特徴とするシステム。
【請求項２】
請求項１において、前記ローカルバスがＩＳＡバスを有することを特徴とするシステム。
【請求項３】
請求項１において、前記非標準装置が、更に、
前記ローカルバスからのデータ通信を受取るべく適合されている比較器、
前記比較器へ結合されており前記データ信号と比較するための信号を発生するパターン発生器、
前記比較器へ動作結合されているカウンタであって、前記データ信号が前記パターン信号と等しくないことを前記比較器が表す場合には初期状態へリセットし且つ前記データ信号が前記パターン信号と等しいことを前記比較器が表す場合にはカウント値を最終状態へ向かって前進させるカウンタ、
前記カウンタへ結合されており且つ前記ローカルバスから信号を受取るべく適合されているレジスタであって、前記カウンタが前記最終状態に到達すると、前記非標準装置によって占有されているＩ／Ｏスロットのベースアドレスを表す値を前記ローカルバスからラッチするレジスタ、
を有することを特徴とするシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ユニバーサル非同期受信機送信機（ＵＡＲＴ）のソフトウエアエミュレーション及びローカルバスへ結合されている非標準（Ｉ／Ｏ）インターフェースを具備する装置を有するコンピュータシステムに関するものであって、更に詳細には、非標準装置に対してＣＯＭポートを割当てる場合に競合を回避するための方法及び回路に関するものである。
【０００２】
【従来の技術】
典型的なパソコン（ＰＣ）は、ユーザが選択した装置を接続するための例えばＩＳＡ，ＶＥＳＡ，ＰＣＩバス等の１つ又はそれ以上のローカルバスを有している。ＰＣは、通常、ジャンパーワイヤ又は装置上のトグルスイッチの設定によって表わされる装置アドレスを使用して装置との通信を行なう。異なる製造業者によって製造された１組の装置がアドレス競合（コンフリクト）を発生することなしに動作可能であるという保証はないので問題が発生する場合がある。例え１組の装置が一体的に動作可能なものであったとしても、装置をローカルバスへ接続する場合には、ユーザがアドレス競合を見極め且つそのような競合を回避するためにアドレス設定を変更することが必要となる場合がある。このことはＰＣに対して装置を付け加えることを困難なものとする場合がある。ＩＳＡバスへ接続されている一般的な装置としては、例えばプリンタ、モデム又はマウス等のシリアル入力／出力（Ｉ／Ｏ）装置がある。例えばＭＳ−ＤＯＳオペレーティングシステムと関連して稼動するマイクロソフト社のウインドウズ（商標）等のオペレーティング環境は、ＩＳＡバスへ結合されているシリアル装置に対して標準化した接続を与えている。特に、ウインドウズ及びＭＳ−ＤＯＳは、各々が予め定義されたベース装置アドレスを有している４個の通信即ちＣＯＭポートをサポートしている。このことは、ＩＳＡバスへ結合されている各シリアル装置が少なくとも４つの異なるベース装置アドレスに対する設定を有している場合には装置アドレス競合を解消することを可能とする。各ＣＯＭポートは、ユニバーサル非同期受信機／送信機（ＵＡＲＴ）として知られている通信インターフェースを含むシリアル装置へ接続させるためのものである。このＵＡＲＴは当該技術分野において公知であり、例えば、ナショナルセミコンダクタコーポレイションからの１９９４年「テレコミュニケーションデータブック（Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｄａｔａ  Ｂｏｏｋ）」に記載されている。
【０００３】
図１はオペレーティング環境１３０及び通信ドライバ１２０を介してシリアル装置１１０とアプリケーション１４０との間で通信を行なう従来例を示している。オペレーティング環境１３０は、アプリケーション１４０がシリアル装置１１０と通信するためにコールする複数個のサブルーチンからなるライブラリを提供している。該サブルーチンは、データ及び制御情報をＵＡＲＴ１０５へ書込み且つそれから読取る通信ドライバ１２０をコールする。図１に示した標準化した通信インターフェースは、アプリケーション１４０の複雑性を減少させている。何故ならば、アプリケーション１４０は、多様な通信プロトコルを実行することが必要とされないからである。従って、殆どのアプリケーションは標準インターフェースに対してかかれている。然しながら、標準ハードウエアＵＡＲＴがある装置にとっては妥当なものではなく又は高価すぎる場合がある。
【０００４】
【発明が解決しようとする課題】
本発明は、以上の点に鑑みなされたものであって、上述した如き従来技術の欠点を解消し、改良した通信システム及び方法を提供することを目的とする。本発明は、更に、標準ＵＡＲＴインターフェースの利点を非標準装置に与えることを可能とする技術を提供することを目的とする。
【０００５】
【課題を解決するための手段】
本発明によれば、ＵＡＲＴ（ユニバーサル非同期受信機送信機）のソフトウエアエミュレーションが、非標準Ｉ／Ｏインターフェースを具備する装置が、標準ＵＡＲＴインターフェースへアクセスするための手順を包含するオペレーティング環境を介して、アプリケーションと通信することを可能とする。ソフトウエアＵＡＲＴは、非標準装置がＣＯＭポート間での装置アドレス競合を回避するプロトコルを利用することを可能としている。更に、非標準装置と標準ＵＡＲＴ装置との間の差異は、このオペレーティング環境の下で稼動しているアプリケーションにとっては透明なもの即ち関与を必要とするものではない。
【０００６】
本発明の一実施例においては、コンピュータシステムが、非標準装置と該非標準装置用のＣＯＭドライバとを有している。この非標準装置は、第一ＣＯＭポートに対応するＩ／Ｏスロットへ接続するが、ＵＡＲＴ用の標準レジスタセットとは異なるレジスタセットを有している。ＣＯＭドライバは、第一ＣＯＭポートにおけるＵＡＲＴのレジスタへのアクセスを要求する手順に応答して、その代わりにコンピュータシステムのメインメモリにおける格納位置へアクセスするＵＡＲＴエミュレーション、及びメインメモリ内の格納位置と該装置のレジスタセットとの間で値を転送するＩ／Ｏハンドラを有している。オプションとして、このシステムは、第二ＣＯＭポートに対応するＩ／Ｏスロットへ結合されているＵＡＲＴを具備する標準装置を有しており、且つ該ＣＯＭドライバは標準装置へアクセスするためのルーチンを有している。
【０００７】
標準装置とのアドレス競合を回避するために、非標準装置は、非標準装置の装置アドレスを設定するための回路を有している。一実施例においては、この回路は、ローカルバスからのデータ信号を受取り且つそのデータ信号を所定の一連の値を有するパターン信号と比較すべく適合されている比較器と、該比較器へ結合されており該データ信号がパターン信号に等しいものではないことを該比較器が表わす場合には初期状態へリセットし且つ該データ信号がパターン信号と等しいことを該比較器が表わす場合には最終状態へ向かって前進するカウンタと、該カウンタが最終状態に到達した場合に非標準装置のベースアドレスを表わす値をローカルバスからラッチするレジスタとを有している。通常、この回路は、更に、比較器がローカルバスから受取るデータ信号を選択するアドレスデコーダも有している。
【０００８】
ＣＯＭドライバは、所定のパターンのアドレス及びデータ信号をローカルバス上へ送給し次いで装置のベースアドレスを表わす信号でパターンを追従することによって非標準装置のベースアドレスを設定する。該装置はベースアドレスを有しておらず且つローカルバス上の信号に応答することのないロック状態でスタートする。該装置がＣＯＭドライバによって送給されたパターンを認識すると、装置アドレスがＣＯＭドライバによって供給された値に設定され、該装置はアンロック状態へ遷移する。アンロック状態においては、該装置はその装置のベースアドレスに対応するローカルバス上の信号に応答する。
【０００９】
【発明の実施の形態】
図２に示した本発明の実施例は、オペレーティング環境１３０の下で稼動しているアプリケーション１４０がハードウエアＵＡＲＴ１０５を具備するシリアル装置１１０及び／又は非標準入力／出力（Ｉ／Ｏ）インターフェース２０５を具備するシリアル装置２１０と通信を行なうことを可能としている。ＣＯＭドライバ２２０はハードウエアＵＡＲＴ１０５と通信するための従来のソフトウエアサブルーチン及びシリアル装置２１０用のソウトウエアＵＡＲＴ２２２を有している。ソウトウエアＵＡＲＴ２２２は、オペレーティング環境１３０及びアプリケーション１４０が、あたかもシリアル装置２１０がハードウエアＵＡＲＴを有するものであるかのように、非標準シリアル装置２１０と透明的に通信を行なうことを可能としている。
【００１０】
本発明の一実施例においては、オペレーティング環境１３０はＩＳＡバス１１５へ接続されている最大で４個のシリアル装置と通信を行なうための４個のＣＯＭポートをサポートしているマイクロソフト社のウインドウズを有している。標準ＣＯＭポートはＩＳＡバス１１５上の８個のアドレスからなるスロットを占有している。これら８個のアドレスは以下の表１の如く機能する標準ＵＡＲＴのレジスタに対応している。
【００１１】
0003759234.tif 000002
表１に示した除数ラッチは、ライン制御レジスタにおけるビットＤＬＡＢをセットすることによりイネーブル即ち動作可能状態とされる。
【００１２】
シリアル装置２１０は論理的にＣＯＭポートを占有するが、ＩＳＡバス１１５上のＩ／Ｏアドレススロットを物理的に占有するハードウエアＵＡＲＴを有するものではない。従って、シリアル装置２１０によって使用されるＣＯＭポート用のＩ／Ｏスロットは非標準インターフェース２０５に対して使用可能である。非標準Ｉ／Ｏ２０５はＩＳＡバス１１５上の最大で８個のアドレスを占有するが、表１に示した標準機能に従うことは必要ではない。非標準インターフェースの一例について以下に説明する。
【００１３】
アプリケーション１４０はいずれの種類のソフトウエアとすることも可能である。典型的なアプリケーション１４０は、モデムを介してデータを送信及び受信する通信プログラムである。ＩＳＡバス１１５へ接続されている装置へアクセスするために、アプリケーション１４０はオペレーティング環境１３０におけるルーチンをコールする。そのルーチンがＣＯＭドライバ２２０をコールし、且つＣＯＭドライバ２２０がＩＳＡバス１１５を介して装置１１０及び／又は２１０へアクセスする。ＣＯＭドライバ２２０は、ＵＡＲＴ１０５用の標準ＣＯＭドライバ及びソフトウエアＵＡＲＴ２２２及び非標準Ｉ／Ｏ装置２１０との通信のためのＩ／Ｏハンドラ２２４を包含するソフトウエアである。コンピュータ稼動アプリケーション１４０が、オペレーティング環境１３０がＣＯＭドライバ１２０をコールする場合及びインタラプト期間中にＣＯＭドライバ２２０のソフトウエアを実行する。
【００１４】
ソフトウエアＵＡＲＴ２２２はコンピュータ稼動ＣＯＭドライバ２２０におけるメモリ位置であり且つ標準ＵＡＲＴのレジスタに対応している１組の仮想レジスタを有している。該仮想レジスタは、シリアル装置２１０及びオペレーティング環境１３０からの情報を使用してアップデートされる。Ｉ／Ｏハンドラ２２４はＡＳＩＣと呼ばれるシリアル装置２１０（ハードウエア）へアクセスする。
【００１５】
ＣＯＭポートの初期化期間中に、ＣＯＭドライバ２２０は、４個のＣＯＭポートのうちのいずれを標準ＵＡＲＴ装置へ割当てるかを決定し、非標準装置が存在するか否かを判別し、次いで割当てをしていないＣＯＭポート及びＩ／Ｏスロットを装置２１０に対して割当てる。シリアル装置２１０はスタートアップ即ち始動時期間中初期的にロックされている。ロックされていると、シリアル装置２１０はＩＳＡバス１１５からデータ信号ＤＡＴＡ及びアドレス信号ＡＤＤＡＲを受取るが、いずれのアドレスにも応答することはない。ＣＯＭドライバ２２０は、装置２１０によって認識される予め定義したパターンに等しい値でアドレス信号ＡＤＤＲ及びデータ信号ＤＡＴＡを送信することによって装置２１０をアンロックする。アンロックされると、装置２１０のベース装置アドレスは、装置２１０をアンロックしている間にＣＯＭドライバ２２０が供給する情報に依存する。装置２１０はＣＯＭドライバ２２０によってセットされるアドレスに応答し、装置２１０が存在していることを表わす。
【００１６】
図３Ａはコンピュータのローカルバスへ結合されている装置をアンロックするアンロック回路３００のブロック図を示している。アンロック回路３００は本明細書においてはＩＳＡバスへ結合されているシリアル装置として説明しているが、アンロック回路３００は例えばＶＬＢ又はＰＣＩバス等のローカルバスへ結合されている任意の装置に対してより一般的に適用可能なものである。
【００１７】
アンロック回路３００はベースアドレスデコーダ３３０及びパターン発生器３１０を有している。該装置がロックされている間は、ベースアドレスデコーダ３３０がパターン発生器３１０への信号ＳＥＬをアサート即ち活性化させる。パターン発生器３１０が信号ＰＡＴを発生し、その信号は予め定めたシーケンスからのものであり且つ信号ＳＥＬの値に対応するバイトを表わしている。信号ＳＥＬは初期状態、例えばカウント値０又は最大カウントを表わす状態でスタートする。ローカルバスが認識された値を有するアドレス信号ＡＤＤＲを担持する場合には、ベースアドレスデコーダ３３０がローカルバスからのデータ信号ＤＡＴＡを信号ＰＡＴと比較し、且つ信号ＰＡＴとＤＡＴＡとが等しい場合には、信号ＳＥＬを変化させ、従って信号ＳＥＬは最終状態へ向かって前進する。そうでない場合には、信号ＳＥＬは初期状態を表わすようにリセットされる。信号ＳＥＬを前進させることは、例えば、初期状態（最小値）から最終状態（最大値）へ向かってカウント値をインクリメントさせるか、又は初期状態（最大値）から最終状態（最小値）へ向けてカウントをデクリメントさせることが可能である。
【００１８】
信号ＳＥＬが最終状態に到達すると、ベースアドレスデコーダ３３０は該装置に対するベースアドレスを受取り且つ格納し、次いで信号ＰＣＳＹＮＣをアサート即ち活性化させて、該装置がアンロックされたことを表わす。ＣＯＭドライバは多数の方法でベースアドレスを該装置へ送信する。例えば、パターンの送信期間中に使用されるか又はデータ信号に追従するアドレス信号はベースアドレスを表わすことが可能である。
【００１９】
図３Ｂはベースアドレスデコーダ３３０の一実施例のブロック図を示している。ベースアドレスデコーダ３３０はＩＳＡバス１１５のアドレス線へ結合されているＡＮＤゲート３３１，３３２，３３３を有している。ＡＤＮゲート３３３は、コンピュータがデータの書込を行なっており且つアドレス信号ＡＤＤＲ［１１：０］が００１ｘ  １１１ｘ  １１１の二進数形態を有しており尚ｘがビットＡＤＤＲ４及びＡＤＤＲ８は「ｄｏｎ’ｔ  ｃａｒｅ」ビット、即ち０又は１のいずれの値も有することの可能なビットであることを表わしていることを信号ＩＯＷＣＮが表わす場合に、信号ＡＤＸをアサート即ち活性化させる。ＣＯＭドライバはビットＡＤＤＲ８及びＡＤＤＲ４に対する値を選択し、従って信号ＡＤＤＲ［１１：０］はＩＳＡバスへ結合されているいずれかのその他の装置に対応することはない。信号ＡＥＮは、コンピュータにおけるＤＭＡコントローラがＩＳＡバス１１５上へアドレスを与える場合を表わす。図示した実施例においては、アンロック回路３００はＤＭＡコントローラに応答することはなく、且つ信号ＡＤＸは、信号ＡＥＮがアドレス信号ＡＤＤＲ［１１：０］がＤＭＡコントローラからのものでないことを表わす場合にのみにアサート即ち活性化される。
【００２０】
ＡＮＤゲート３３３は、書込サイクル終了時に信号ＡＤＸをデアサート即ち脱活性化させ且つレジスタ３３９をしてＩＳＡバス１１５上の信号ＤＡＴＡ［７：０］からのバイトをラッチさせる。比較器３４０が、そのラッチされたバイトを信号ＰＡＴ［７：０］と比較し且つ、ラッチされたバイトが信号ＰＡＴ［７：０］によって表わされるバイトと等しい場合には信号ＥＱＵＡＬをアサート即ち活性化させる。信号ＥＱＵＡＬは、次に信号ＡＤＸがアサート即ち活性化された場合に何が起こるかを決定する。信号ＥＱＵＡＬはカウンタ３３５及びフリップフロップ３４５用のクロックイネーブル信号として作用し、且つフリップフロップ３４１に対する入力信号として作用する。信号ＥＱＵＡＬがアサート即ち活性化された状態で、ＡＮＤゲート３３３が信号ＡＤＸをアサート即ち活性化すると、カウンタ３３５がカウント信号ＳＥＬ［２：０］をインクリメントし、フリップフロップ３４１が信号ＭＡＴＣＨをアサート即ち活性化し、且つフリップフロップ３４５は信号ＰＣＳＹＮＣを信号ＳＥＬ［２：０］のビットＳＥＬ２の値へセットする。信号ＥＱＵＡＬがデアサート即ち脱活性化されている場合には、ＡＮＤゲート３３３が信号ＡＤＸをアサートする場合に、フリップフロップ３４１は信号ＭＡＴＣＨをデアサート即ち脱活性化させ、それはカウンタ３３５をカウント値が０である初期状態へリセットする。従って、カウンタ３３５は、ＩＳＡバス１１５からのデータバイトが予め定めたパターンからのデータバイトと等しくない場合にゼロへリセットされる。更に、ＩＳＡバス１１５からの信号ＲＥＳＥＴはカウンタ３３５をリセットさせることが可能である。
【００２１】
ＣＯＭドライバ２２０がＩＳＡバス１１５上において００１ｘ  １１１ｘ  １１１１の形態のアドレス及び信号ＰＡＴ［７：０］に等しいデータバイトを発生する場合に、信号ＥＱＵＡＬがアサート即ち活性化されると、カウント信号ＳＥＬ［２：０］がインクリメントする。信号ＳＥＬ［２：０］をインクリメントすることは、パターン発生器３１０をして信号ＰＡＴ［７：０］が予め定めたパターンにおける次のバイトを表わすようにセットさせる。
【００２２】
図３Ｃはパターン発生器３１０の一実施例のブロック図である。パターン発生器３１０は信号ＳＥＬ［２：０］を受取るべく結合されているセレクト端子を具備するマルチプレクサ３１１乃至３１８を有している。マルチプレクサ３１１乃至３１４の入力端子は電圧ＶＣＣ又は接地へ結合される。信号ＳＥＬ０はマルチプレクサ３１１及び３１２から信号ＡＯＵＴ［７：０］に対する２つの値のうちの１つ及びマルチプレクサ３１３及び３１４から信号ＢＯＵＴ［７：０］に対する２つの値のうちの１つを選択する。マルチプレクサ３１５及び３１６は、出力信号ＤＯＵＴ［７：０］を選択し、それは選択信号ＳＥＬ１に依存して信号ＡＯＵＴ［７：０］又はＢＯＵＴ［７：０］のいずれかに等しい。マルチプレクサ３１７及び３１８は信号ＰＡＴ［７：０］を選択し、その信号は選択信号ＳＥＬ２の値に依存して、信号ＤＯＵＴ［７：０］又は固定値に等しい。パターン発生器３１０は５バイトストリング、即ち「ＰＣｔｅｌ」用のＡＳＣＩＩコードを発生し、それは装置の製造業者を表わす。
【００２３】
図３Ｃに示した実施例の代わりに多くのその他のパターン及びパターン発生器を使用することが可能である。例えば、パターン発生器３１０は、リードオンリメモリ等のメモリを使用して実現することが可能であり、その場合には、信号ＳＥＬ［２：０］はアドレス信号であり、又は組合わせ論理を使用して実現することも可能であり、その場合には信号ＳＥＬ［２：０］は入力信号である。パターンにおける各値は１バイトよりも長いもの又は短いものとすることが可能であり、且つ信号ＳＥＬとは独立的な一定値とすることが可能である。更に、所定のパターンは５つの値よりも長いもの又は短いものとすることが可能である。パターンの長さを増加させると、装置を不本位にアンロックさせる可能性を減少させる。
【００２４】
ＣＯＭドライバ２２０が所定のパターンにマッチした５つのデータバイトからなるシーケンスを送給すると、カウンタ３３５は最終状態へインクリメントし且つ信号ＳＥＬ［２：０］のビットＳＥＬ２は、５番目のバイトが送給される場合にセットされる。ビットＳＥＬ２がセットされているので、信号ＡＤＸをアサート即ち活性化させるＡＮＤゲート３３３は、フリップフロップ３３７及び３３８をしてアドレス信号ＡＤＤＲ［１１：０］のＡＤＤＲ８及びＡＤＤＲ４ビットをラッチさせ且つ格納させ、且つフリップフロップ３４５をして信号ＰＣＳＹＮＣをアサート即ち活性化させる。信号ＰＣＳＹＮＣは、装置がアンロックされており且つ００１ａ  １１１ｂ  １０００の形態のベースアドレスを有していることを表わし、その場合にフリップフロップ３３７及び３３８からの信号ＰＣＡ８及びＰＣＡ４はａ及びｂビットの値を表わす。これらのａ及びｂビットの値は４つの可能な組合わせを有しており、それらは、ＣＯＭドライバ２２０が他の３つのＣＯＭポートのベースアドレスと異なるベースアドレスを与える組合わせを選択することを可能としている。
【００２５】
予め定めたパターンに続くバイトに対してアドレス信号ＡＤＤＲ［１１：０］がアサート即ち活性化されると、信号ＰＣＡ４及びＰＣＡ８がラッチされる。予め定めたパターンに続くバイトはパターン発生器３１０からの信号ＰＡＴ［７：０］とマッチすることはない。従って、カウンタ３３５は初期状態へリセットされ、且つＳＥＬ２ビットはクリアされる。予め定めたパターンが再送されない限り、信号ＰＣＡ８及びＰＣＡ４は変化することはない。コンピュータシステムの通常動作期間中に予め定めたパターンが不本意に送信される蓋然性はないが、所望により、ＣＯＭドライバ２２０は送信中のパターンをモニタし且つ、例えば、装置２１０に対してｎｏ−ｏｐ（動作なし）値を書込むことによって予め定めたパターンの繰返しを防止する。
【００２６】
該装置がアンロックされると、信号ＡＤＢＡＳＥは、アドレス信号ＡＤＤＲ［１１：０］が該装置に対応するか否かを表わす。信号ＡＥＮがアドレス信号ＡＤＤＲ［１１：０］がＤＭＡコントローラからのものでないことを表わす場合には、アドレス信号ＡＤＤＲ［１１：０］が００１ｘ  １１１ｘ  １ｘｘｘの形態を有している場合に、ＡＮＤゲート３３２は信号ＡＤＢをアサート即ち活性化させる。信号ＡＤＢがアサートされ、信号ＰＣＳＹＮＣがアサートされ、且つアドレス信号ＡＤＤＲ［１１：０］のＡＤＤＲ８及びＡＤＤＲ４ビットが信号ＰＣＡ８及びＰＣＡ４に等しい場合にのみ、比較器３４４は信号ＡＤＢＡＳＥをアサートする。従来のアドレスデコード回路（不図示）がＡＤＤＲ２，ＡＤＤＲ１，ＡＤＤＲ０ビットをデコードし、該装置内のどのレジスタがＩＳＡバス１１５を介してアクセスされているか否かを判別する。
【００２７】
該装置のレジスタセット及び付加的なデコード回路は、該装置の機能に対して必要とされる場合に実現することが可能である。標準ＵＡＲＴインターフェースは追従することは必要ではない。このことは、Ｉ／Ｏインターフェースを該装置の特定の機能に対して最適化させ且つ実現することを可能としている。
【００２８】
図２は、シリアル装置２１０が、ソフトウエアモデムを実現するためにＰＳＴＮ電話線２０８へ接続されているアナログ・デジタル変換器（ＡＤＣ）２０６及びデジタル・アナログ変換器（ＤＡＣ）２０７を有する実施例を示している。この実施例においては、ソフトウエアＵＡＲＴ２２２及びＩ／Ｏハンドラ２２４はソフトウエアモデム２２３の一部である。非標準Ｉ／Ｏインターフェース２０５におけるレジスタセットを表２に示してある。
【００２９】
0003759234.tif 000003
表２のレジスタセットにおいては、データレジスタは、ホストコンピュータによってＤＡＣ２０７へ送給されるか又はＡＤＣ２０６から受取られる１６ビットデータワードに対するものである。入力／出力ポートレジスタは、例えば、シリアル装置２１０におけるハードウエアによって実現されるリング検知及びオン・オフフックリレーの制御（装置２０８を活性電話線へ接続するか又は切断）等のモデム機能のためである。制御／ステータスレジスタは、シリアル装置２１０用の汎用制御・ステータスビットである。
【００３０】
ＡＤＣ２０６が電話線２０８からアナログ通信信号を受取り且つそのアナログ通信信号を一連のサンプルデジタル値へ変換する。ソフトウエアモデム２２３がサンプルデジタル値を受取り且つサンプル値によって表わされる波形及び使用されているモデムプロトコルに基づいて受取ったデータを判別する。ソフトウエアモデム２２３は、更に、一連のデジタル値を発生し、それはＤＡＣ２０７へ送られ且つ電話線２０８を介してアナログ信号として送信される。送信されたアナログ信号は例えば、ＩＴＵ  Ｖ．３２ｂｉｓ，Ｖ．３２，Ｖ．２２ｂｉｓ，Ｖ．２３，Ｖ．２２，Ｖ．２１，Ｖ．１７，Ｖ．２９，Ｖ．２７ｔｅｒ標準等の標準モデムプロトコルにしたがってフォーマットされたデータ値及び搬送波信号を与える。装置２１０は周期的なインタラプトを発生し、その期間中に、ソフトウエアモデム２２３がＡＤＣ２０６からの１組のサンプルデジタル値を読取り且つ送信されたアナログ信号を表わす１組のデジタル値を書込む。ＣＯＭドライバ２２０は装置２１０によって使用されるインタラプト回数（即ちＩＲＱ）を８個の値のうちのユーザが選択した１つへセットする。
【００３１】
アプリケーション１４０は従来のハードウエアモデムと同一の態様でソフトウエアモデム２２３と通信を行なう。アプリケーション１４０はオペレーティング環境１３０を介してデータ及び制御値を送給し且つ受取る。データ及び制御値は標準ＵＡＲＴ装置に対してフォーマットされており、従ってソフトウエアモデム２２３がハードウエアＵＡＲＴを有する標準モデムであるか又はソフトウエアモデムであるか否かはアプリケーション１４０及びオペレーティング環境１３０にとっては完全に透明即ち関与しない状態である。
【００３２】
以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ限定されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
【図面の簡単な説明】
【図１】  アプリケーションとＵＡＲＴ装置との間の従来のインターフェースを示したブロック図。
【図２】  本発明の一実施例に基づくインターフェースを示したブロック図。
【図３Ａ】  装置をアンロックさせ且つその装置のベース装置アドレスをセットする回路を示したブロック図。
【図３Ｂ】  図３Ａの回路において使用可能なベースアドレスデコーダの一実施例を示したブロック図。
【図３Ｃ】  図３Ａの回路において使用可能なパターン発生器の一実施例を示したブロック図。
【符号の説明】
１０５  ハードウエアＵＡＲＴ
１１０  シリアル装置
１３０  ウインドウシステム
１４０  ウインドウアプリケーション
２０５  非標準Ｉ／Ｏインターフェース
２０６  ＡＤＣ
２０７  ＤＡＣ
２１０  非標準シリアル装置
２２０  ＣＯＭドライバ
２２２  ソフトウエアＵＡＲＴ
２２３  ソフトウエアモデム
２２４  Ｉ／Ｏハンドラ
【図１】
0003759234.tif 000004
【図２】
0003759234.tif 000005
【図３Ａ】
0003759234.tif 000006
【図３Ｂ】
0003759234.tif 000007
【図３Ｃ】
0003759234.tif 000008