(57)【要約】【課題】  １６５５０互換の機能を備えるとともに、レジスタ・マップに対して高速にアクセスできるシリアル通信コントローラを提供する。【解決手段】  ホストから与えられるアドレスに基づいて、複数台のレジスタに対してリード／ライト・アクセスを行うシリアル通信コントローラにおいて、前記ホストから与えられたアドレスに基づいて、複数の前記レジスタを同時にアクセスする一括処理回路を備えたことを特徴とするシリアル通信コントローラ。【選択図】                    図１
2009301451.tif 000002
【特許請求の範囲】
【請求項１】
ホストから与えられるアドレスに基づいて、複数台のレジスタに対してリード／ライト・アクセスを行うシリアル通信コントローラにおいて、
前記ホストから与えられたアドレスに基づいて、複数の前記レジスタを同時にアクセスする一括処理回路を備えたことを特徴とするシリアル通信コントローラ。
【請求項２】
ホストから与えられるアドレスに基づいて、複数台のレジスタに対してリード／ライト・アクセスを行うシリアル通信コントローラにおいて、
前記ホストから与えられたアドレスに基づいて同時にアクセスする複数の前記レジスタのアドレスを格納するセット・アドレス・レジスタを備えたアドレス登録レジスタと、
前記ホストからのアクセスにより前記セット・アドレス・レジスタに格納された内容に基づいてレジスタ・セレクト信号を出力するファスト・アクセス・レジスタを備えた登録アドレス・デコード回路と、
前記ホストから前記レジスタを個別にアクセスするか同時に複数の前記レジスタをアクセスするかの信号を受けて切り換え制御するセレクタと
を設けたことを特徴とするシリアル通信コントローラ。
【請求項３】
前記ホストは、登録アドレス・デコード回路に対し、ワード方式またはロング形式でアクセスすることを特徴とする請求項１に記載のシリアル通信コントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主として各種製造装置で用いられる組み込み用のシリアル通信コントローラに関し、特に、１６５５０（コンピュータのシリアル・ポート等の通信に使用されるＩＣチップの一つ）互換の機能を備えるとともに、内部に設定されるレジスタに対して高速にアクセスできるように改善するものである。
【背景技術】
【０００２】
一般に、各種製造装置で使用される組み込み用のシリアル通信コントローラには、ＰＬＣ（プログラマブル・ロジック・コントローラ）等が採用され、このようなシリアル通信コントローラに使用されるレジスタには１６５５０互換のレジスタ・マップが用いられる場合が多い。ここで、１６５５０とはナショナル・セミコンダクター社製の通信コントローラであり、業界標準となっているＩＣチップである。
【０００３】
また、このようなシリアル通信コントローラは、イーサネット（登録商標）通信や多チャンネルのシリアル通信に対応できることが要求されるが、この際、通信のためのインターフェースを介してリードまたはライトの要求がなされた場合、できるだけ速やかに内部のレジスタにアクセスする必要がある。
【０００４】
このような、シリアル通信コントローラの先行技術文献として、例えば下記特許文献１が知られ、組み込み用のコントローラの先行技術文献として、例えば、非特許文献１が知られている。
【０００５】
【特許文献１】特開平０９―３１９７０２号公報
【０００６】
【非特許文献１】松岡康二也、他３名、「インターネットを利用したＦＡ−ＭＡのリモートＯＭＥ機能」、横河技報、横河電機株式会社、２００２年、Ｖｏｌ.４６  Ｎｏ．４、ｐ．１２３−１２６
【０００７】
以下、図４を参照して従来のシリアル通信コントローラを説明する。上述のように、シリアル通信のコントローラに設置されるレジスタは、１６５５０互換のレジスタ・マップが設定される場合が多いため、レジスタの制御方法もこれに即したものを用いて説明する。
【０００８】
図４は、シリアル通信コントローラ１における１６５５０レジスタ・マップ互換レジスタの構成ブロック図である。この図４において、ホスト１０は例えば温度調節計（以下「温調計」という）等の周辺機器であり、シリアル通信コントローラ１に符号化したデータを出力する。
【０００９】
アドレス・デコード回路２０は、ホスト・アドレス線ＬＡから与えられるアドレスのデコード回路であり、ホスト１０から指定されたアドレス（Ａ２，Ａ１，Ａ０）をデコードし、後段の各レジスタ４０，５０，６０に出力するセレクト信号Ｓ４０，Ｓ５０，Ｓ６０のいずれかの信号を作成する。
【００１０】
データ線選択／方向定義回路３０は、ホスト１０側のホスト・データ線ＬＤ（３２ビット幅）と、各レジスタ４０，５０，６０側のレジスタ・データ線ＬＲＤ４０，ＬＲＤ５０，ＬＲＤ６０（８ビット）を接続する回路である。
【００１１】
また、データ線選択／方向定義回路３０は、ホスト制御線ＬＣ（リード／ライト信号）の内容によりデータ接続の方向を定義するとともに、データの読込み時は各レジスタ４０，５０，６０からホスト１０へ、データの書込み時はホスト１０から各レジスタ４０，５０，６０へ信号を通過させる。
【００１２】
ここで、例えばレジスタ４０は１６５５０互換に対応する構成とすると、そのレジスタ・マップは、図５に示す通りである。この図で、レジスタ名は、それぞれＲＢＲ，ＴＨＲ，ＤＬＬ，・・・等と定義され、それぞれ８ビット単位で構成される（０−７）。
【００１３】
アドレス・デコード回路２０から出力されたセレクト信号Ｓ４０が有効（例えば「１」で有効／「０」で無効）のときにこのレジスタ・マップがアクティブとなり、一方でリード信号またはライト信号はホスト１０からホスト制御線ＬＣを介して与えられる。
【００１４】
尚、レジスタ５０，６０の構成は、それぞれセレクト信号Ｓ５０，Ｓ６０で動作する点を除き、その動作はレジスタ４０と同様（レジスタ・マップの構成も含む）なので説明を省略する。
【００１５】
次に、図４のシリアル通信コントローラの１の動作を説明する。まず、ホスト１０側が特定のレジスタ（例えばレジスタ４０）の内容を読み出す場合について説明する。ホスト１０は、ホスト・アドレス線ＬＡを介してアドレス・デコード回路２０に対して読み出すべきレジスタ４０のアドレスを出力するとともに、ホスト制御線ＬＣを介してリード信号をアサートする。
【００１６】
アドレス・デコード回路２０は、ホスト・アドレス線ＬＡを介して入力されたアドレスと一致するレジスタ４０のセレクト信号Ｓ４０をアサートする。これによりレジスタ４０は、レジスタ・データ線ＬＲＤ４０を介してレジスタ内容を出力する。
【００１７】
レジスタ５０，６０の内容を読み出す場合も上記の動作と同様である。
【００１８】
次に、ホスト１０側が特定のレジスタ（例えばレジスタ４０）に書き込みをする場合について説明する。ホスト１０は、ホスト・アドレス線ＬＡを介してアドレス・デコード回路２０に対して書き込むレジスタ４０のアドレスを出力するとともに、ホスト制御線ＬＣを介してライト信号をアサートする。
【００１９】
アドレス・デコード回路２０は、ホスト・アドレス線ＬＡを介して入力されたアドレスと一致するレジスタ４０のセレクト信号Ｓ４０をアサートする。これによりレジスタ４０は、レジスタ・データ線ＬＲＤ４０を介してデータを格納する。
【００２０】
レジスタ５０，６０の内容を書き込む場合も上記の動作と同様である。
【００２１】
続いて、図５のレジスタ・マップを参照して受信処理の詳細なフローを説明する。まず、第１回目のアクセスとして、ホスト制御線ＬＣを介してリード信号が入力されると、ライン・ステータス・レジスタＬＳＲ（Ｌｉｎｅ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ）７２が読み出され、このレジスタＬＳＲにステータスが設定されているかどうかが確認される。
【００２２】
即ち、ＬＳＲ７２「０」ビット目にあるデータ・レディＤＲ７３を参照することにより受信データの存在が確認される（例えば「１」でデータあり／「０」でデータなし）。もし、受信データが存在しなければ、この受信処理を終了する。
【００２３】
次に、ＤＲ７３を参照して受信データが存在する場合（「０」ビット目が「１」）、ＬＳＲ７２の「１」ビット目にあるオーバー・ランＯＥ７４、「２」ビット目にあるフレーミング・エラーＦＥ７５等のビット内容を確認してエラーが存在しないことを確認する。
【００２４】
ここでエラーがなければ、次の第２回目のアクセスに移行する。第２回目のアクセスは、レシーバ・バッファ・レジスタＲＢＲ７１のレジスタへのアクセスとなり、このレジスタＲＢＲ１より、実際に読み出すべきデータ（１バイト：ＲＤ０−ＲＤ７）が読み出される。
【００２５】
このように、従来のアクセス処理は、上述したような第１回目のアクセス、第２回目のアクセスの計２段階の処理となる。即ち、単純な受信処理でも最低２回のアクセス処理が必要となる。
【００２６】
シリアル通信コントローラは、受信データを読み出したら再びＬＳＲ７２の内容を確認し、以下これらのアクセス動作を繰り返す。
【００２７】
このように、従来のシリアル通信コントローラでは、１回のアクセスで１つのレジスタに対してアクセスし、以下、２回目のアクセスから順次、必要なレジスタにアクセスしてリード、ライト動作を行っている。
【発明の開示】
【発明が解決しようとする課題】
【００２８】
しかし、従来のシリアル通信コントローラでは、図５のレジスタ・マップで説明したように、１回のアクセスで１つのレジスタにしかアクセスすることができず、アクセス・サイズもバイト単位であることから、制御速度が固定であり、これ以上の高速化を実現することが困難だった。
【００２９】
また、図５の例では単純な受信処理の場合、２回のアクセスで足りているが、実際には他のステータスも見る必要があるため、このことが原因となり制御に更なる時間が必要となる場合もある。
【００３０】
一方、アクセス・サイズをワード（Ｗｏｒｄ）またはロング（Ｌｏｎｇ）等に単純に変更するだけでは、アクセス手順によっては不要なデータを取得することとなり、高速化を図ることができない場合もある。更に、レジスタ・マップをオリジナルに並べ替ると、従来から使用されている上位アプリケーションとの互換性が失われる。
【００３１】
また、シリアル通信コントローラを制御するプログラムにも複数の種類があるため、それらの全てに対応するように最適なレジスタ・マップを新たに決めることも困難である。
【００３２】
本発明は、これらの問題点を考慮してなされたものであり、１６５５０互換の機能を備えるとともに、レジスタ・マップに対して高速にアクセスできるシリアル通信コントローラを提供することを目的とする。
【課題を解決するための手段】
【００３３】
このような課題を解決する本発明は、次の通りである。
（１）ホストから与えられるアドレスに基づいて、複数台のレジスタに対してリード／ライト・アクセスを行うシリアル通信コントローラにおいて、
前記ホストから与えられたアドレスに基づいて、複数の前記レジスタを同時にアクセスする一括処理回路を備えたことを特徴とするシリアル通信コントローラ。
（２）ホストから与えられるアドレスに基づいて、複数台のレジスタに対してリード／ライト・アクセスを行うシリアル通信コントローラにおいて、
前記ホストから与えられたアドレスに基づいて同時にアクセスする複数の前記レジスタのアドレスを格納するセット・アドレス・レジスタを備えたアドレス登録レジスタと、
前記ホストからのアクセスにより前記セット・アドレス・レジスタに格納された内容に基づいてレジスタ・セレクト信号を出力するファスト・アクセス・レジスタを備えた登録アドレス・デコード回路と、
前記ホストから前記レジスタを個別にアクセスするか同時に複数の前記レジスタをアクセスするかの信号を受けて切り換え制御するセレクタと
を設けたことを特徴とするシリアル通信コントローラ。
（３）前記ホストは、登録アドレス・デコード回路に対し、ワード方式またはロング形式でアクセスすることを特徴とする請求項１に記載のシリアル通信コントローラ。
【発明の効果】
【００３４】
本発明では次のような効果がある。複数のレジスタに同時にアクセスするための一括処理回路を備えたので、ホストからシリアル通信コントローラのレジスタに対して高速にアクセスすることができる。
【発明を実施するための最良の形態】
【００３５】
以下、図１を参照して本発明によるシリアル通信コントローラの構成例を説明する。但し、従来と同様の構成については同一の符号を付して説明を省略する。
【００３６】
一括処理回路１００は、登録アドレス・デコード回路１１０とアドレス登録レジスタ１２０からなり、まとまった単位でレジスタ４０，５０，６０にアクセスする場合に使用される。
【００３７】
アドレス登録レジスタ１２０は、セット・アドレス・レジスタ（Ｓｅｔ  Ａｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ）であり、ホスト１０からアクセスするレジスタのアドレス（Ａ３，Ａ２，Ａ１，Ａ０）をまとめて格納する。
【００３８】
具体的には、アドレス登録レジスタ１２０は、図２，図３に示すセット・アドレス・レジスタＳＡＲ１，ＳＡＲ２，ＳＡＲ３，ＳＡＲ４を備え、これらのレジスタＳＡＲ１，ＳＡＲ２，ＳＡＲ３，ＳＡＲ４にまとめてアクセスするレジスタ４０，５０，６０，・・・のアドレスを格納し、更にホスト１０側からの読み書きも可能である。
【００３９】
ここで図２，図３の概要を説明する。図２は割り込み優先順位の定義づけを表したものであり、図３はこの割り込み優先順位の定義づけに相当する具体的なレジスタ（レジスタ４０，５０，６０）のビット割付例である。
【００４０】
図２において、オフセット・アドレスＯｆｆｓｅｔが領域Ｙ、即ち「０＊１０」〜「０＊１７」の行ＳＡＲ１，ＳＡＲ２，ＳＡＲ３，ＳＡＲ４は、本発明にて新たに登録アドレスを追加したアドレス・マップであり、上部の領域Ｘは従来と同様のアドレス・マップである。
【００４１】
また、追加した領域Ｙにおける各行のうち、レジスタＳＡＲ１，ＳＡＲ２，ＳＡＲ３，ＳＡＲ４はアドレス登録レジスタ１２０に設定され、残りの行、即ち、ファスト・アクセス・レジスタ（Ｆａｓｔ  Ａｃｃｅｓｓ  Ｒｅｇｉｓｔｅｒ）ＦＡＲ１，ＦＡＲ２，ＦＡＲ３，ＦＡＲ４は、後述する登録アドレス・デコード回路１１０に設定される。レジスタＦＡＲ１〜４にアクセスが実行されると、登録アドレス・デコード回路１１０が動作するが、この動作は後述する。
【００４２】
尚、図３は、割り込み優先順位の定義づけに相当する具体的なレジスタのビット割付例であり、ファスト・アクセス・レジスタ（Ｆａｓｔ  Ａｃｃｅｓｓ  Ｒｅｇｉｓｔｅｒ）ＦＡＲ１，ＦＡＲ２，ＦＡＲ３，ＦＡＲ４の具体的なビット割付例を示す。
【００４３】
この例のレジスタＦＡＲ１，ＦＡＲ２，ＦＡＲ３，ＦＡＲ４は、レジスタＳＡＲ１，ＳＡＲ２，ＳＡＲ３，ＳＡＲ４の指定に対応する、図２に示す従来のレジスタ領域内のレジスタ内容を写像するものである。登録アドレス・デコード回路１１０は、ホストからのアクセスによりアドレス・マップの登録変更が可能である。
【００４４】
セレクタ２００は、一括処理回路１００から入力される「登録アドレスによるデコード後のレジスタ１〜Ｎセレクト信号」及びアドレス・デコード回路２０から入力される「従来互換レジスタ１〜Ｎセレクト信号」に基づいて、図４で説明した従来方式のアクセスをするか、あるいは、各レジスタ４０，５０，６０にまとめてアクセスするか切り換える。
【００４５】
セレクタ２００の切り換え、即ち、「登録アドレスによるデコード後のレジスタ１〜Ｎセレクト信号」と「従来互換レジスタ１〜Ｎセレクト信号」との切り換えについては、ホスト１０から与えられるホスト・アドレス（Ａ３，Ａ２,Ａ１,Ａ０）のうち、アドレスＡ３のよって切り換え制御される。
【００４６】
つまり、レジスタをまとめてアクセスする場合には、一括処理回路１００から出力されるデコード後のレジスタ１〜Ｎセレクト信号の内容に基づいてレジスタ・セレクト信号を出力し、上述したような従来方式の場合には、アドレス・デコード回路２０からのデコード信号に基づいてレジスタ・セレクト信号を出力する。
【００４７】
次に、図１の動作を説明する。まず、一括処理回路１００を使用してアクセスしない場合は従来と同様の動作である。この場合、セレクタ２００は、アドレス・デコード回路２０に基づいてセレクト信号Ｓ４００，Ｓ５００，Ｓ６００のいずれかを出力する。
【００４８】
続いて、複数のレジスタにまとめてアクセスする本発明による高速動作について説明する。まず、設定として、ホスト１０側からの命令により、まとめてアクセスしようとするレジスタのアドレスを一括処理回路１００のアドレス登録レジスタＳＡＲ１２０に設定する。
【００４９】
この設定後に、登録アドレス・デコード回路ＦＡＲ１１０に対して、ホスト１０からワードまたはロング方式でアクセスする。これにより、登録アドレス・デコード回路ＦＡＲ１１０が動作し、アドレス登録レジスタＳＡＲ１２０に登録されているレジスタ・セレクト信号を出力する。
【００５０】
図３の例によれば、レジスタ・セレクト信号Ｓ４００，Ｓ５００，Ｓ６００とこれらの信号に加えてもう１本のレジスタ・セレクト信号（図示せず）が出力される。
【００５１】
セレクタ２００は、このようにして登録アドレス・デコード回路１１０から出力される「登録アドレスによるデコード後のレジスタ１〜Ｎセレクト信号」に基づいて複数のレジスタ４０，５０，６０，・・・にセレクト信号Ｓ４００，Ｓ５００，Ｓ６００，・・・を出力する。
【００５２】
このように、レジスタ４０，５０，６０，・・・は、自分に対するレジスタ・セレクト信号Ｓ４００，Ｓ５００，Ｓ６００，・・・と、ホスト制御線ＬＣを介して入力されるリード信号またはライト信号を受信することにより、それぞれ独立して動作するため最大で４個同時に動作可能となる（ホスト・データ線ＬＣが３２ビットであるため）。
【００５３】
次に、図２、図３を参照して具体的なレジスタ４０，５０，６０の設定例を説明する。アドレス登録レジスタ１２０内のセット・アドレス・レジスタＳＡＲ１，ＳＡＲ２，ＳＡＲ３，ＳＡＲ４の設定として、ＳＡＲ１にレジスタＲＢＲのアドレス（図２に示すアドレス”０＊００”）、ＳＡＲ２にレジスタＩＥＲのアドレス（図２に示すアドレス”０＊０１”）、ＳＡＲ３にレジスタＬＳＲ（図２に示すアドレス”０＊０５”）、ＳＡＲ４にレジスタＭＳＲ（図２に示すアドレス”０＊０６”）を設定する。
【００５４】
これらのアドレス”０＊００”、”０＊０１”、”０＊０５”、”０＊０６”は、図２においてアドレス（Ａ２，Ａ１，Ａ０）のビット割り付けによって実現される。その具体的なビット値の例は図３に示す通りである。
【００５５】
この状態にあって、登録アドレス・デコード回路１１０内のレジスタＦＡＲ１，ＦＡＲ２，ＦＡＲ３，ＦＡＲ４に対して、ロング方式またはワード方式でリード・アクセスすることにより、４つのレジスタ４０，５０，６０，・・・に対して、同時に、レジスタ・セレクト信号Ｓ４００，Ｓ５００，Ｓ６００，・・・を与える。
【００５６】
つまり、レジスタＳＡＲ１に、図２に示すレジスタＲＢＲ（アドレス”０＊００”）の内容を設定し、レジスタＦＡＲ１がリード・アクセスされることによって、レジスタ・セレクト信号Ｓ４００が出力され、レジスタ４０の内容が読み込まれる（図３（Ａ））。
【００５７】
同様に、レジスタＳＡＲ２に図２に示すＩＥＲ（アドレス”０＊０１”）の内容を設定し、レジスタＦＡＲ２がリード・アクセスされることによってレジスタ・セレクト信号Ｓ５００が出力され、レジスタ５０の内容が読み込まれ（図３（Ｂ））、以下順次、レジスタＳＡＲ３に図２に示すＬＳＲ（アドレス”０＊０５”）の内容を設定し、レジスタＦＡＲ３がリード・アクセスされることによってレジスタ・セレクト信号Ｓ６００が出力されることとなる。
【００５８】
このように、レジスタ４０，５０，６０に対して、同時にレジスタ・セレクト信号Ｓ４００，Ｓ５００，Ｓ６００が与えられるので、同時に、複数のレジスタにアクセスすることができる。
【００５９】
尚、レジスタ４０，５０，６０，・・・は、それぞれ８ビット幅のレジスタ１データ線ＬＲＤ４０、レジスタ２データ線ＬＲＤ５０、レジスタ３データ線６０、・・・に同時に出力されるが、データ線選択／方向定義回路３０によって３２ビット幅として、同時にホスト１０側へ出力される。
【００６０】
このように、複数のレジスタに一括してアクセスできるので、ホスト１０からのシリアル通信コントローラの制御スピードが４倍となる。
【００６１】
本発明の応用例を説明する。図１の例では、レジスタを３台（レジスタ４０，５０，６０）用意したが、台数を増やすことによって、更なる高速化を実現できる。例えば、レジスタを８台用意すれば従来と比べて最大で８倍の処理速度を実現できる。また、図１の例では、リード・アクセスの場合について説明したが、ライト・アクセスについても同様の制御を実現することができる。
【図面の簡単な説明】
【００６２】
【図１】本発明のシリアル通信コントローラの構成図である。
【図２】割り込み優先順位の定義づけを表した表である。
【図３】割り込みレジスタのビット割付例である。
【図４】１６５５０レジスタ・マップ互換レジスタの制御ブロック図である。
【図５】１６５５０互換シリアルコントローラのレジスタ・マップ例である。
【符号の説明】
【００６３】
２        シリアル通信コントローラ
１０      ホスト
２０      アドレス・デコード回路
３０      ２データ線選択／方向定義回路
４０      レジスタ１
５０      レジスタ２
６０      レジスタＮ
１００    一括処理回路
１１０    登録アドレス・デコード回路
１２０    アドレス登録レジスタ
２００    セレクタ
【図１】
2009301451.tif 000003
【図２】
2009301451.tif 000004
【図３】
2009301451.tif 000005
【図４】
2009301451.tif 000006
【図５】
2009301451.tif 000007