JP6112412B2 - 入出力制御回路及び入出力制御回路における同期制御方法 - Google Patents

入出力制御回路及び入出力制御回路における同期制御方法 Download PDF

Info

Publication number
JP6112412B2
JP6112412B2 JP2013145144A JP2013145144A JP6112412B2 JP 6112412 B2 JP6112412 B2 JP 6112412B2 JP 2013145144 A JP2013145144 A JP 2013145144A JP 2013145144 A JP2013145144 A JP 2013145144A JP 6112412 B2 JP6112412 B2 JP 6112412B2
Authority
JP
Japan
Prior art keywords
input
control
register
cpu
expansion device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013145144A
Other languages
English (en)
Other versions
JP2015018408A (ja
Inventor
寿浩 小野
寿浩 小野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Konica Minolta Inc
Original Assignee
Konica Minolta Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Konica Minolta Inc filed Critical Konica Minolta Inc
Priority to JP2013145144A priority Critical patent/JP6112412B2/ja
Publication of JP2015018408A publication Critical patent/JP2015018408A/ja
Application granted granted Critical
Publication of JP6112412B2 publication Critical patent/JP6112412B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Description

本発明は、入出力制御回路及び入出力制御回路における同期制御方法に関し、特に、バスの同一チャンネル上に複数のIO拡張デバイスが接続された入出力制御回路及び当該入出力制御回路における複数のIO拡張デバイスの同期制御方法に関する。
CPU(Central Processing Unit)で制御できるIO信号(GPIO:General Purpose Input/Output)数は限られており、必要な信号の全てをCPUのGPIOで制御することが困難な場合がある。そのような場合に用いられるものとしてIO拡張デバイスがある。IO拡張デバイスは、CPUのある特定のインタフェースに接続され、インタフェースを経由したIO拡張デバイスへのアクセス(レジスタ制御)によって、その入出力が制御される。
このようなIO拡張デバイスはインタフェースの1つのチャンネルに対して1個接続されるのが一般的である。しかしながら、仮にIO拡張デバイスで制御すべき信号が増えた場合、IO拡張デバイスを回路容量又はIO数の多いデバイスに変更しなければならず、大きなコストアップを招く。そこで、IO拡張デバイスを変更せずに、制御できる信号を増やすための様々な方法が提案されている。
例えば、下記特許文献1には、入出力方向の制御可能な入出力共有手段と、前記入出力共有手段を入力点とするか出力点とするかを設定する設定手段と、前記入出力共有手段が入力点として機能する場合に入力データを内部処理手段に転送し、前記入出力共有手段が出力点として機能する場合に内部処理手段からの出力データを前記入出力共有手段に転送する転送手段と、を有するデータ入出力制御方式が開示されている。この公報では、各IOポートをSWで択一的に割り付け可能とし、任意の同期入出力装置の任意の信号を入力または出力として自由に組み合わせできるようにしている。
また、下記特許文献2には、入出力と割込み制御を行う制御部を備えたI/Oデバイスに関し、前記I/Oデバイスは第1のバスを備え、前記制御部は、前記第1のバスのコマンド線を用いてコマンドを受け付けて応答を返すコマンド制御部と、前記第1のバスのデータ線を用いてデータの送受信を行うデータ制御部と、前記第1のバスのデータ線を用いて割り込みをホストコントローラへ伝送する割り込み制御部を備え、前記I/Oデバイスは1以上の第2のバスと、前記I/Oデバイスと前記ホストコントローラとの通信のためのデバイス番号を設定するデバイス番号設定手段と、前記I/Oデバイスの動作モードを設定するモード設定手段を備える構成が開示されている。この公報では、動作モードがマスタモードに設定されたI/Oデバイスをハブとして追加し、このハブがコマンド応答や割り込みの調定を行うことにより、複数I/Oデバイスの接続を可能としている。
また、下記特許文献3には、シリアルインタフェースを備えるワンチップマイコンと、前記ワンチップマイコンから出力されるシリアルデータを複数ビットのパラレルデータに変換する汎用シフトレジスタICとを備え、前記汎用シフトレジスタICは、複数ビットのパラレルデータを出力する複数の汎用ロジックICがカスケード接続されており、前記カスケード接続された一番目の汎用ロジックICに前記シリアルデータが入力され、前記各汎用ロジックICは、前記シリアルデータをラッチして複数ビットのパラレルデータとして出力すると共に、ラッチのタイミング前に入力されたシリアルデータを後段の汎用ロジックICに出力するI/O拡張回路が開示されている。この公報では、複数のシフトレジスタをカスケード接続することにより、出力信号を拡張している。
また、下記特許文献4には、コンピュータから出力された印刷データを複数の印刷装置に分配出力するデータ分配器であって、前記コンピュータに設けられた周辺機器接続用のポートと接続するためのコンピュータ側ポートと、前記印刷装置と接続するための複数の印刷装置側ポートと、前記それぞれの印刷装置側ポートに対応付けられたポートバッファと、前記コンピュータ側ポートに入力された印刷データを複数のポートバッファに複製出力する分配部とを備える構成が開示されている。この公報では、PCからのデータ出力をリピータハブのようなデバイスで受信し、各プリンタにリピート出力している。
特開平07−319592号公報 特開2009−123141号公報 特開2011−197981号公報 特開2003−076522号公報
しかしながら、1つのチャンネルに複数のIO拡張デバイスを接続した場合、個々のIO拡張デバイスを適切に制御することができないという問題が生じる。例えば、CPUからのリードアクセスでは、複数のIO拡張デバイスの各々がCPUに対してデータを出力するため、CPUは、どのデータが所定のIO拡張デバイスに接続される特定の外部機器から取得したデータであるのかを判断することができない。また、CPUからのライトアクセスでは、複数のIO拡張デバイスの各々にデータが書き込まれるため、所定のIO拡張デバイスに接続される特定の外部機器のみを制御することができない。また、特許文献の技術を利用し、SWやハブを用いて複数のIO拡張デバイスを切り換えることも可能であるが、この方法では切り換え制御が必要になり、回路構成が複雑になる。
また、複数のIO拡張デバイスに同じ信号が入力されるようにすると、追加したIO拡張デバイスで拡張できるIOを最大限に利用することができないという問題も生じる。すなわち、入力機能を割り当てたIO拡張デバイスと出力機能を割り当てたIO拡張デバイスとに同じ信号が入力されるようにした場合、出力機能を割り当てたIO拡張デバイスに対するリード信号や、入力機能を割り当てたIO拡張デバイスに対するライト信号など、必須ではない信号を入力するためにIOが使用され、その分、拡張できるIO数が減ってしまう。
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、バスの同一チャンネル上に複数のIO拡張デバイスが接続される構成において、各々のIO拡張デバイスを適切に制御することができ、また、IO拡張デバイスで拡張できるIOを最大限に利用することができる入出力制御回路及び入出力制御回路における同期制御方法を提供することにある。
本発明の一側面は、CPUの特定バスの同一チャンネル上に、複数のIO拡張デバイスが接続された入出力制御回路であって、前記複数のIO拡張デバイスは、入力制御用のIO拡張デバイスと出力制御用のIO拡張デバイスとで構成され、各々の前記IO拡張デバイスは、同一回路で構成されたレジスタ制御部を有し、前記出力制御用のIO拡張デバイスには、リード用の制御信号が入力されておらず、前記CPUからのライトアクセスでは、前記入力制御用のIO拡張デバイス及び前記出力制御用のIO拡張デバイスに、前記CPUから出力されるデータが書き込まれ、前記CPUからのリードアクセスでは、前記入力制御用のIO拡張デバイスのみが、前記レジスタ制御部が管理するレジスタの値を応答出力することを特徴とする。
本発明の一側面は、CPUの特定バスの同一チャンネル上に、入力制御用のIO拡張デバイスと出力制御用のIO拡張デバイスとで構成される、複数のIO拡張デバイスが接続された入出力制御回路における前記複数のIO拡張デバイスの同期制御方法であって、各々のIO拡張デバイスに、同一回路で構成されたレジスタ制御部を設け、前記出力制御用のIO拡張デバイスには、リード用の制御信号を入力せず、前記CPUからのライトアクセスでは、前記入力制御用のIO拡張デバイス及び前記出力制御用のIO拡張デバイスに、前記CPUから出力されるデータを書き込み、前記CPUからのリードアクセスでは、前記入力制御用のIO拡張デバイスのみが、前記レジスタ制御部が管理するレジスタの値を応答出力することを特徴とする。
本発明の入出力制御回路及び入出力制御回路における同期制御方法によれば、バスの同一チャンネル上に複数のIO拡張デバイスが接続される構成において、各々のIO拡張デバイスを適切に制御することができ、また、IO拡張デバイスで拡張できるIOを最大限に利用することができる。
その理由は、CPUの特定バスの同一チャンネル上に、入力制御用のIO拡張デバイスと出力制御用のIO拡張デバイスとで構成される複数のIO拡張デバイスが接続される場合に、出力制御用のIO拡張デバイスにはリード用の制御信号を入力せず、CPUからのライトアクセスでは、複数のIO拡張デバイスにCPUから出力されるデータを書き込み、CPUからリードアクセスでは、入力制御用のIO拡張デバイスのみがCPUにレジスタ値を応答出力するようにし、出力制御用のIO拡張デバイスに書き込んだデータを確認する場合には、入力制御用のIO拡張デバイスが出力制御用のIO拡張デバイスに代わってレジスタ値を応答出力するからである。
また、入力制御用のIO拡張デバイスにはライト用の制御信号を入力せず、出力制御用のIO拡張デバイスに入力されるリード用の制御信号は、当該IO拡張デバイス内で非アクティブな論理レベルに固定し、CPUからのライトアクセスでは、出力制御用のIO拡張デバイスのみにCPUから出力されるデータを書き込み、CPUからリードアクセスでは、アクティブなリード用の制御信号が入力される入力制御用のIO拡張デバイスのみがレジスタ値を応答出力するからである。
本発明の一実施形態に係る入出力制御回路におけるIO拡張デバイスへのライトアクセス及びリードアクセスを説明する図である。 本発明の一実施形態に係る他の入出力制御回路におけるIO拡張デバイスへのライトアクセス及びリードアクセスを説明する図である。 本発明の一実施例に係る入出力制御回路の構成を示す図である。 本発明の一実施例に係るIO拡張デバイス間の同期制御方法を説明する図である。 本発明の一実施例に係るIO拡張デバイスで拡張できるIO数(ポーリング方式の場合)を説明する図である。 本発明の一実施例に係るIO拡張デバイスで拡張できるIO数(集合割り込み方式の場合)を示す図である。 本発明の一実施例に係る入出力制御回路で使用されるレジスタを示す図である。 本発明の一実施例に係る入出力制御回路における入力拡張IO制御方法を示すフローチャート図である。 本発明の一実施例に係る入出力制御回路における出力拡張IO制御方法(書き込み時)を示すフローチャート図である。 本発明の一実施例に係る入出力制御回路における出力拡張IO制御方法(確認時)を示すフローチャート図である。 従来の回路におけるIO拡張デバイスへのライトアクセス及びリードアクセスを説明する図である。 従来の他の回路におけるIO拡張デバイスへのライトアクセス及びリードアクセスを説明する図である。
背景技術で示したように、入出力制御回路ではIO拡張デバイスが利用されているが、IO拡張デバイスで制御すべき信号が増えた場合に、IO拡張デバイスを回路容量やIO数の多いデバイスに変更するとコストアップを招いてしまう。また、IO拡張デバイスを変更せずに、複数のIO拡張デバイスを使用した場合、各々のIO拡張デバイスを適切に制御することができず、また、拡張できるIOを最大限に利用することができないという問題があった。この問題について、図面を参照して説明する。
例えば、図11に示すように、CPUが3チャンネルのパラレルバスを有しており、チャンネル1にデバイスAが接続され、チャンネル2にデバイスBが接続され、チャンネル3にデバイスC(IO拡張デバイス)が接続されているとする。この構成において、図11(a)に示すCPUからのライトアクセスでは、CPUからのセレクト信号Cとライト信号がデバイスCに入力され、デバイスCにCPUから出力されるデータが書き込まれる。また、図11(b)に示すCPUからのリードアクセスでは、CPUからのセレクト信号Cとリード信号がデバイスCに入力され、デバイスCはCPUにデータを出力する。従って、この構成では、CPUはIO拡張デバイスを適切に制御することができる。
この図11の構成において、デバイスC(IO拡張デバイス)で制御すべき信号が増えた場合、図12に示すように、チャンネル3にデバイスC1とデバイスC2の2つのIO拡張デバイスを接続することは可能である。
しかしながら、図12(a)に示すCPUからのライトアクセスでは、デバイスC1とデバイスC2とが同一チャンネルに接続されており、CPUからのセレクト信号Cとライト信号がデバイスC1とデバイスC2に入力されるため、デバイスC1とデバイスC2には共にCPUから出力されるデータが書き込まれてしまう。また、図12(b)に示すCPUからのリードアクセスでは、デバイスC1とデバイスC2とが同一チャンネルに接続されており、CPUからのセレクト信号Cとリード信号がデバイスC1とデバイスC2に入力されるため、デバイスC1とデバイスC2は共にCPUにデータを出力してしまう。そのため、CPUは所望のIO拡張デバイスのみを適切に制御することができない。
また、図12に示すように、IO拡張デバイスが入力制御用であるか出力制御用であるかに関わらず、デバイスC1とデバイスC2に同じ信号を入力すると、デバイスC1やデバイスC2が拡張できるIOを最大限に利用することができない。すなわち、出力制御用のIO拡張デバイスは必ずしもCPUにデータを出力する必要はないが、出力制御用のIO拡張デバイスにもリード信号を入力すると、その分、拡張できるIO数が減ってしまう。同様に、入力制御用のIO拡張デバイスには必ずしもCPUから出力されるデータを書き込む必要はないが、入力制御用のIO拡張デバイスにもライト信号を入力すると、その分、拡張できるIO数が減ってしまう。
そこで、本発明の一実施の形態では、バスの同一チャンネル上に複数のIO拡張デバイスが接続され、各々のIO拡張デバイスに入力/出力機能が割り当てられる入出力制御回路において、出力機能が割り当てられた出力制御用のIO拡張デバイスにはリード信号が入力しないようにするか、または、入力機能が割り当てられた入力制御用のIO拡張デバイスにはライト信号が入力しないようにする。
すなわち、前者の場合は、ホスト(CPU)からのライトアクセスは、入力/出力機能が割り当てられた双方のIO拡張デバイスにデータが書き込まれるようにし、かつ、CPUからのリードアクセスでは、入力機能が割り当てられた入力制御用のIO拡張デバイスのみがデータを応答出力するようにする。具体的には、図1に示すように、CPUが3チャンネルのパラレルバスを有しており、チャンネル1にデバイスAが接続され、チャンネル2にデバイスBが接続され、チャンネル3に入力制御用のデバイスC1と出力制御用のデバイスC2の2つのIO拡張デバイスが接続されている構成において、入力制御用のデバイスC1にはセレクト信号Cとライト信号とリード信号が入力されるようにし、出力制御用のデバイスC2にはセレクト信号Cとライト信号のみが入力されるようにする。
この場合、図1(a)に示すCPUからのライトアクセスでは、デバイスC1とデバイスC2とが同一チャンネルに接続されており、CPUからのセレクト信号Cとライト信号が双方に入力されるため、デバイスC1とデバイスC2には共にCPUから出力されるデータが書き込まれる。また、図1(b)に示すCPUからのリードアクセスでは、CPUからのセレクト信号CはデバイスC1とデバイスC2に入力されるが、リード信号はデバイスC1のみに入力されるため、デバイスC1のみがCPUにデータを出力する。この構成では、CPUからのライトアクセスでは、デバイスC1とデバイスC2の双方にデータが書き込まれるが、デバイスC1は入力制御用であり、書き込まれたデータを外部機器に出力しないため問題は生じない。また、デバイスC1とデバイスC2の双方に同じデータが書き込まれるため、デバイスC1に対するリードアクセスを利用する(すなわち、デバイスC1にデバイスC2の代理応答をさせる)ことにより、デバイスC2に書き込まれたデータを確認することができる。従って、CPUは所望のIO拡張デバイスのみを適切に制御することができる。
また、後者の場合は、CPUからのリードアクセスは、入力/出力機能が割り当てられた双方のIO拡張デバイスがデータを応答出力するようにし、かつ、CPUからのライトアクセスでは、出力機能が割り当てられた特定のIO拡張デバイスのみにデータが書き込まれるようにする。具体的には、図2に示すように、デバイスC1にはセレクト信号とリード信号のみが入力されるようにし、デバイスC2にはセレクト信号とライト信号とリード信号が入力されるようにする。
この場合、図2(a)に示すCPUからのライトアクセスでは、デバイスC1とデバイスC2が同一チャンネルに接続されており、CPUからのセレクト信号CはデバイスC1とデバイスC2に入力されるが、ライト信号はデバイスC2のみに入力されるため、デバイスC2のみにデータが書き込まれる。また、図2(b)に示すCPUからのリードアクセスでは、CPUからのセレクト信号Cとリード信号はデバイスC1とデバイスC2に入力されるが、後述するようにデバイスC2に入力されるリード信号をデバイスC2内で非アクティブな論理レベルに固定することによって、アクティブなリード信号が入力されるデバイスC1のみがCPUにデータを出力する。従って、CPUは所望のIO拡張デバイスのみを適切に制御することができる。
このように、バスの同一チャンネル上に入力機能が割り当てられたIO拡張デバイスと出力機能が割り当てられたIO拡張デバイスとが接続されている場合であっても、CPUからは1つのIO拡張デバイスが接続されているように見えるため、所望のIO拡張デバイスのみを適切に制御することができる。また、出力機能が割り当てられたIO拡張デバイスにはリード信号を入力しない、または、入力機能が割り当てられたIO拡張デバイスにはライト信号を入力しないため、追加したIO拡張デバイスのIOを最大限に利用することができる。更に、複数のIO拡張デバイス内の回路(レジスタを制御するレジスタ制御部)は共通化することができるため、設計効率を向上させることができ、コストアップを抑制することができる。
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係る入出力制御回路及び入出力制御回路における同期制御方法について、図3乃至図10を参照して説明する。図3は、本実施例の入出力制御回路の構成を示す図であり、図4は、本実施例のIO拡張デバイス間の同期制御方法を説明する図である。また、図5及び図6は、IO拡張デバイスで拡張できるIO数を説明する図であり、図7は、IO拡張デバイスのレジスタを示す図である。また、図8は、本実施例の入出力制御回路における入力拡張IO制御を示すフローチャート図であり、図9及び図10は、出力拡張IO制御を示すフローチャート図である。
本実施例の入出力制御回路は、CPU(正確には外部インタフェース機能を持ったCPUであり、SoC(System-on-a-chip)と呼ばれる。)と、入力制御用及び出力制御用の2つのIO拡張デバイスとを含む。ここでは、実施形態と同様の構成とし、図3に示すように、CPU10と、CPU10によって制御される4つのデバイス(デバイスA、デバイスB、デバイスC1、デバイスC2)とで構成されるものとする。
CPU10は、本実施例では、3チャンネルのパラレルバスを有しており、チャンネル1にデバイスA、チャンネル2にデバイスB、チャンネル3にデバイスC1、C2が接続されている。デバイスA、Bは、例えばNor-Flashメモリであり、チャンネル1に接続されるNor-Flashメモリ20にはブート用データが格納され、チャンネル2に接続されるNor-Flashメモリ30にはブート以外のFW(firmware)が格納されている。デバイスC1、C2は、ロジックデバイス(以下、CPLD:Complex Programmable Logic Device)であり、CPLD1(デバイスC1)は、入力制御用のIO拡張デバイス40として予め割り当てられ、CPLD2(デバイスC2)は、出力制御用のIO拡張デバイス50として予め割り当てられている。
また、CPU10は、各チャンネルに接続されたデバイスを選択するためのセレクト信号(セレクト信号A〜C)と、デバイスにデータを書き込むためのライト信号と、デバイスからデータを読み込むためのリード信号と、を出力する。デバイスAには、セレクト信号Aとライト信号とリード信号とが入力され、デバイスBには、セレクト信号Bとライト信号とリード信号とが入力される。また、本実施例では、実施形態の図1で示した構成を前提とし、CPLD1(デバイスC1)には、セレクト信号Cとライト信号とリード信号とが入力され、CPLD2(デバイスC2)には、セレクト信号Cとライト信号とが入力される。
図4は、CPLD1(デバイスC1)とCPLD2(デバイスC2)の構成を示している。CPLD1は、レジスタ制御部41を有し、CPLD2は、レジスタ制御部51を有している。このレジスタ制御部41、51は、RTL(Register Transfer Level)やHDL(Hardware Description Language)などで記述された共通のHW回路である。また、レジスタ制御部41には、入力制御レジスタ42と出力制御レジスタ43とが設けられ、レジスタ制御部51には、入力制御レジスタ52と出力制御レジスタ53とが設けられている。そして、CPLD1の出力制御レジスタ43とCPLD2と出力制御レジスタ53とは同期が取られている。
CPLD1には、主に外部からのセンサ信号(入力信号1〜3)などが入力される。一方、CPLD2には、電源制御用の信号(出力信号1〜3)などが出力される。ここで、CPLD2は、出力制御用のIO拡張デバイス50であり、入力を制御する必要はないため、実施形態の図2の構成を採用する場合には、CPLD2の入力制御レジスタ52に対して入力されるリード信号を非アクティブな論理レベルに固定しておくことでライト信号のみを使用できるようにする。
このような構成の入出力制御回路において、CPU10からのライトアクセスでは、CPLD1とCPLD2とが同一のチャンネル3に接続されており、CPU10からのセレクト信号Cとライト信号がCPLD1とCPLD2の双方に入力されるため、CPLD1とCPLD2は共に自分へのライトアクセスであると判断してデータを出力制御レジスタ43、53に取り込む。その際、CPLD1の出力制御レジスタ43は外部に接続されておらず、取り込んだデータを外部に出力することはない。従って、CPU10は、出力制御用として予め割り当てられたCPLD2のみを適切に制御することができる。例えば、入出力制御回路がMFP(Multi Function Peripheral)などの画像形成装置に組み込まれる場合は、CPUの電源制御やパネルの電源制御、FAXの電源制御などを行うことができる。
また、CPU10からのリードアクセスでは、CPLD1とCPLD2が同一のチャンネル3に接続されており、CPU10からのセレクト信号Cは、CPLD1とCPLD2に入力されるが、リード信号はCPLD1のみに入力されるため、CPLD1のみが自分へのリードアクセスであると判断して入力制御レジスタ42に保持したデータをCPU10に出力する。従って、CPU10は、入力制御用として予め割り当てられたCPLD1のみを適切に制御することができる。例えば、入出力制御回路がMFPなどの画像形成装置に組み込まれる場合は、紙詰まりなどを検知するセンサ、扉の開閉を検知するセンサ、用紙トレイに設けられたセンサなどからの信号を取得することができ、MFPの状態を判断することができる。
なお、実施形態の図2の構成(ライト信号がCPLD2のみに入力される構成)の場合、CPU10からのライトアクセスでは、CPLD1とCPLD2が同一のチャンネル3に接続されており、CPU10からのセレクト信号Cは、CPLD1とCPLD2に入力されるが、ライト信号はCPLD2のみに入力されるため、CPLD2のみが自分へのライトアクセスであると判断してデータを出力制御レジスタ53に取り込む。従って、出力制御用として予め割り当てられたCPLD2のみを適切に制御することができる。
また、CPU10からのリードアクセスでは、CPLD1とCPLD2が同一のチャンネル3に接続されており、CPU10からのセレクト信号Cとリード信号がCPLD1とCPLD2の双方に入力されるため、CPLD1とCPLD2は共に自分へのリードアクセスであると判断するが、CPLD2ではリード信号は非アクティブな論理レベルに固定されており、CPU10にデータを出力しない。従って、CPU10は、入力制御用として予め割り当てられたCPLD1のみを適切に制御することができる。
次に、IO拡張デバイスのIO数について説明する。図5は、IO拡張デバイスが使用できるIO数を説明する図であり、図5(a)は、入力/出力制御用のIO拡張デバイスを2つ接続した場合のIO数、(b)、(c)は、入力制御用のIO拡張デバイスと出力制御用のIO拡張デバイスとを接続した場合のIO数を示している。なお、図5は、CPU10が一定周期で入力制御用のIO拡張デバイスに対してリードを行うことで、CPLD1に入力されている各センサ信号の状態を取得するポーリング方式を採用した場合の例である。
各々のIO拡張デバイスには、デバイスバスに接続するために、セレクト信号、ライト信号、リード信号、データ信号が入力される。図5(a)の入力/出力制御用のIO拡張デバイスの場合、拡張IOとして使用できるIOがN本であるとすると、同じ構成の入力/出力制御用のIO拡張デバイスを追加すると、追加したIO拡張デバイスにもセレクト信号、ライト信号、リード信号、データ信号が入力されるため、拡張IOとして使用できるIOは同様にN本となる。
一方、図5(b)の場合、入力制御用IO拡張デバイスには、セレクト信号、ライト信号、リード信号、データ信号が入力され、入力制御用IO拡張デバイスが拡張IOとして使用できるIOはN本となるが、出力制御用IO拡張デバイスにはリード信号を入力しないため、出力制御用IO拡張デバイスが拡張IOとして使用できるIOはN+1本となる。同様に図5(c)の場合、出力制御用IO拡張デバイスにはセレクト信号、ライト信号、データ信号が入力され、出力制御用IO拡張デバイスが拡張IOとして使用できるIOはN本となるが、入力制御用IO拡張デバイスにはライト信号を入力しないため、入力制御用IO拡張デバイスが拡張IOとして使用できるIOはN+1本となる。従って、本実施例の構成では、IO拡張デバイスのIOを最大限に利用することができる。
図5では、ポーリング方式を採用した場合のIO拡張デバイスのIO数について示したが、ポーリングではCPU10が一定周期でリードを行う必要があるため、CPU10の負荷が増大してしまう。一方、このポーリング方式とは別に割り込み方式と呼ばれる方式が存在する。割り込み方式は、CPLD1内で入力されている各センサ信号の変化を検出し、変化を検出した場合に割り込み信号によってCPU10に通知する方式であり、この方式ではCPU10の負荷を軽減することができる。
図6は、割り込み方式を採用した場合のIO拡張デバイスが使用できるIO数を具体的に説明する図であり、複数のセンサ信号の検出を1本の割り込みによってCPU10に通知する集合割り込みの場合を示している。この場合、CPLD1及びCPLD2は割り込みを制御する割り込みコントローラ機能を有し、CPLD1の割り込みコントローラ機能は、センサ信号を検出するとCPU10に集合割り込み信号を出力し、CPU10はこの集合割り込み信号を受け取ると、CPLD1をリードして、どのセンサ信号に変化があったかを判断する。
CPLD1及びCPLD2は汎用ロジックデバイスであり、電源・GND、クロック入力が必須である。残りのIOはユーザIOと呼ばれ、ユーザが自由に使用可能であり、CPLD1及びCPLD2のユーザIOが共に25本であるとする。CPLD1では、セレクト信号、ライト信号、リード信号、8本のデータ信号、3本のアドレス信号、集合割り込み信号で合計15本となるため、残りの10本を拡張IO(入力0〜9)として使用することができる。一方、CPLD2では、セレクト信号、ライト信号、8本のデータ信号、3本のアドレス信号で合計13本となるため、残りの12本を拡張IO(出力0〜11)として使用することができる。従って、割り込み方式では、追加したIO拡張デバイスが使用できるIO数を更に増やすことができる。なお、本実施例ではデータ信号を8本としているが、データ信号は8本に限定されるものではない。また、本実施例ではアドレス信号を3本としているが、アドレス信号も3本に限定されるものではない。
図7は、上記集合割り込み方式を採用する場合に、CPLD1及びCPLD2に設けられるレジスタの一例である。CPLD1及びCPLD2には、3本のアドレス信号で規定される3ビット分(8個)のレジスタ、例えば、出力制御レジスタ1、出力制御レジスタ2、入力制御レジスタ1、入力制御レジスタ2、割り込み要因レジスタ1、割り込み要因レジスタ2、割り込み要因クリアレジスタ1、割り込み要因クリアレジスタ2が用意される。
出力制御レジスタ1(000)は、8ビットレジスタであり、各ビットが出力制御用IO拡張デバイスの拡張IOの8本と対応しており、各ビットを書き換えることでCPLD2から出力される拡張IO信号(出力0〜7)を制御することができる。
出力制御レジスタ2(001)は、8ビットレジスタであり、各ビットが出力制御用IO拡張デバイスの拡張IOの4本と対応している。レジスタとしては8ビットであるが、実際に使用するのは下位4ビットのみであり、各ビットを書き換えることでCPLD2から出力される拡張IO信号(出力8〜11)を制御することができる。
入力制御レジスタ1(010)は、8ビットレジスタであり、各ビットが入力制御用IO拡張デバイスの拡張IOの8本と対応しており、各ビットを読み出すことでCPLD1に入力されている拡張IO信号(入力0〜7)の状態を知ることができる。
入力制御レジスタ2(011)は、8ビットレジスタであり、各ビットが入力制御用IO拡張デバイスの拡張IOの2本と対応している。レジスタとしては8ビットであるが、実際に使用するのは下位2ビットのみであり、各ビットを読み出すことでCPLD1に入力されている拡張IO信号(入力8、9)の状態を知ることができる。
割り込み要因レジスタ1(100)は、入力制御レジスタ1の8ビットのうち、いずれかのセンサ信号の状態が変化した際に、対応するビットの値が”1”になる。後述の割り込み要因レジスタ2を含む、いずれかのビットの値が”1”である場合に、CPLD1はCPU10に対して集合割り込み信号を出力する。また、CPU10からのリードアクセスに対してCPLD1は割り込み要因レジスタ1の値を返す。
割り込み要因レジスタ2(101)は、入力制御レジスタ2の2ビットのうち、いずれかのセンサ信号の状態が変化した際に、対応するビットの値が”1”になる。前述の割り込み要因レジスタ1を含む、いずれかのビットの値が”1”である場合に、CPLD1はCPU10に対して集合割り込み信号を出力する。
割り込み要因クリアレジスタ1(110)は、上記割り込み要因レジスタ1と対応しており、本レジスタの各ビットに”1”が書き込まれたときに、対応する割り込み要因レジスタ1のビットの値が”0”にクリアされる。
割り込み要因クリアレジスタ2(111)は、上記割り込み要因レジスタ2と対応しており、本レジスタの各ビットに”1”が書き込まれたときに、対応する割り込み要因レジスタ2のビットの値が”0”にクリアされる。
次に、図7の構成のレジスタを用いて、図6の構成のCPLD1及びCPLD2を制御する方法について説明する。まず、入力拡張IO制御(入力制御用のIO拡張デバイス40の制御)について、図8のフローチャート図を参照して説明する。
まず、CPLD1のレジスタ制御部41は、CPLD1に入力されている拡張IO信号(入力0〜9)のいずれかの状態が変化したら(S101)、CPU10に集合割り込み信号を出力する(S102)。
CPU10は、集合割り込み信号を検出したら(S103)、割り込み要因レジスタ1をリードし(S104)、割り込み要因レジスタ1のいずれかのビットの値が”1”であるかを判断する(S105)。割り込み要因レジスタ1のいずれかのビットの値が”1”の場合は、CPU10は、入力制御レジスタ1をリードして入力信号の状態を確認し(S106)、各ビットに対応した処理を実行した後、割り込み要因レジスタ1をクリアし(S107)、S104に戻る。
一方、割り込み要因レジスタ1の全てのビットの値が”0”の場合は、CPU10は、割り込み要因レジスタ2をリードし(S108)、割り込み要因レジスタ2のいずれかのビットの値が”1”であるかを判断する(S109)。割り込み要因レジスタ2のいずれかのビットの値が”1”の場合は、CPU10は、入力制御レジスタ2をリードして入力信号の状態を確認し(S110)、各ビットに対応した処理を実行した後、割り込み要因レジスタ2をクリアし(S111)、S108に戻る。
上記フローについて、本実施例の入出力制御回路がMFPに組み込まれた場合を例にして説明する。図6に示した入力1〜10の内の入力4の状態が変化したとする。ここで、入力4はMFPのフロントカバー開閉センサからの信号とする。入力4の状態が変化すると、割り込み要因レジスタ1のビット4の値が”1”になり、CPU10に対して集合割り込み信号が出力される。CPU10は、この集合割り込み信号を検出すると、割り込み要因レジスタ1及び2をリードし、どの入力信号が変化したかを特定する。入力信号を特定した後、入力制御レジスタ1をリードして、現在入力4が”0”又は”1”のどちらの状態にあるかを確認する。状態を確認した後、対応した処理(ここでは「フロントカバーが開いています」といった表示処理)を行い、最後に割り込み要因クリアレジスタ1のビット4に”1”を書き込むことによって割り込み要因レジスタ1をクリアする。
次に、出力拡張制御(出力制御用のIO拡張デバイス50の制御)について、図9及び図10のフローチャート図を参照して説明する。出力拡張IO制御は、データの書き込みと出力値の確認(読み出し)とで構成される。
データの書き込みでは、CPU10によるライトアクセスにより、CPLD1及びCPLD2の双方の出力制御レジスタにデータが書き込まれる(S201)。この時、CPLD2からは信号が出力されないため、CPLD2から出力される出力信号のみが変化する(S202)。また、出力値の確認では、CPU10は出力制御レジスタをリードする(S301)。この時、CPLD2にはリード信号が入力されないため、CPLD1がCPLD2に代わって出力制御レジスタの値を返す(S302)。
上記フローについて、具体例を挙げて説明する。図6に示した出力0の状態を”1”から”0”に変化させたいとする。ここで、出力0の信号は、あるデバイスの電源をOFFするための制御信号とする。CPU10は、出力制御レジスタ1のビット0に”0”を書き込む。このとき、CPLD1内の出力制御レジスタの値も同時に書き換えられる。CPLD2は出力制御レジスタ1のビット0が”0”に変化したのを受けて、CPLD2から出力される出力0の信号が”0”に変化する。
CPU10が出力0の信号が正しく変化したかを確認する場合、出力制御レジスタに対してリードする。本実施例の構成ではCPLD2にはリード信号が接続されていないため、CPLD2がリード要求に対して出力制御レジスタのレジスタ値を応答することができない。しかしながら、CPLD1の出力制御レジスタにはCPLD2の出力制御レジスタと同じ値が保持されているため、CPLD1がレジスタ値を返すことができる。これにより、CPU10は、実際はCPLD2から出力されている出力制御レジスタのレジスタ値をCPLD1から読み出して確認することができる。
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、入出力制御回路の構成や制御は適宜変更可能である。
例えば、上記実施例では、CPU10は3チャンネルのパラレルバスを有し、チャンネル1にデバイスA、チャンネル2にデバイスB、チャンネル3にデバイスC1、C2が接続される構成としたが、バスの同一チャンネル上に、入力制御用のIO拡張デバイス40と出力制御用のIO拡張デバイス50とが接続される限りにおいて、CPU10が有するバスの数や各チャンネルに接続されるデバイスは任意である。
本発明は、バスの同一チャンネル上に複数のIO拡張デバイスが接続された入出力制御回路及び当該入出力制御回路における複数のIO拡張デバイスの同期制御方法に利用可能である。
10 CPU
20 Nor-Flashメモリ
30 Nor-Flashメモリ
40 入力制御用のIO拡張デバイス
41 レジスタ制御部
42 入力制御レジスタ
43 出力制御レジスタ
50 出力制御用のIO拡張デバイス
51 レジスタ制御部
52 入力制御レジスタ
53 出力制御レジスタ

Claims (14)

  1. CPUの特定バスの同一チャンネル上に、複数のIO拡張デバイスが接続された入出力制御回路であって、
    前記複数のIO拡張デバイスは、入力制御用のIO拡張デバイスと出力制御用のIO拡張デバイスとで構成され、
    各々の前記IO拡張デバイスは、同一回路で構成されたレジスタ制御部を有し、
    前記出力制御用のIO拡張デバイスには、リード用の制御信号が入力されておらず、
    前記CPUからのライトアクセスでは、前記入力制御用のIO拡張デバイス及び前記出力制御用のIO拡張デバイスに、前記CPUから出力されるデータが書き込まれ、
    前記CPUからのリードアクセスでは、前記入力制御用のIO拡張デバイスのみが、前記レジスタ制御部が管理するレジスタの値を応答出力する、
    ことを特徴とする入出力制御回路。
  2. 前記ライトアクセスでは、前記入力制御用のIO拡張デバイスの前記レジスタ制御部が管理するレジスタ、及び、前記出力制御用のIO拡張デバイスの前記レジスタ制御部が管理するレジスタに、前記データが書き込まれ、
    前記リードアクセスでは、前記CPUは、前記入力制御用のIO拡張デバイスの前記レジスタの値を読み込むことにより、前記出力制御用のIO拡張デバイスの前記レジスタに書き込まれた前記データを確認できる、
    ことを特徴とする請求項1に記載の入出力制御回路。
  3. 各々の前記IO拡張デバイスは、外部から入力される入力信号の変化を検出し、前記入力信号が変化したら、割り込み信号を前記CPUに通知する割り込みコントローラ機能を有する、
    ことを特徴とする請求項1又は2に記載の入出力制御回路。
  4. 前記入力制御用のIO拡張デバイスに複数の入力信号が入力されており、
    前記入力制御用のIO拡張デバイスの前記割り込みコントローラ機能は、各々の入力信号の状態に応じた値を特定レジスタの各ビットに書き込み、いずれかのビットの値が変化したら、集合割り込み信号を前記CPUに通知し、
    前記CPUは、前記集合割り込み信号を受信した後、前記特定レジスタの各ビットの値を読み込むことにより、状態が変化した入力信号を特定できる、
    ことを特徴とする請求項3に記載の入出力制御回路。
  5. 前記CPUは、前記特定レジスタとは異なる他のレジスタの所定のビットに所定の値を書き込むことにより、前記他のレジスタの前記所定のビットに対応する前記特定レジスタのビットの値を初期化できる、
    ことを特徴とする請求項4に記載の入出力制御回路。
  6. CPUの特定バスの同一チャンネル上に、複数のIO拡張デバイスが接続された入出力制御回路であって、
    前記複数のIO拡張デバイスは、入力制御用のIO拡張デバイスと出力制御用のIO拡張デバイスとで構成され、
    各々の前記IO拡張デバイスは、同一回路で構成されたレジスタ制御部を有し、
    前記入力制御用のIO拡張デバイスには、ライト用の制御信号が入力されておらず、前記出力制御用のIO拡張デバイスに入力されるリード用の制御信号は、当該出力制御用のIO拡張デバイス内で非アクティブな論理レベルに固定されており、
    前記CPUからのライトアクセスでは、前記出力制御用のIO拡張デバイスのみに、前記CPUから出力されるデータが書き込まれ、
    前記CPUからのリードアクセスでは、アクティブなリード用の制御信号が入力される前記入力制御用のIO拡張デバイスのみが、前記レジスタ制御部が管理するレジスタの値を応答出力する、
    ことを特徴とする入出力制御回路。
  7. 各々の前記IO拡張デバイスは、外部から入力される入力信号の変化を検出し、前記入力信号が変化したら、割り込み信号を前記CPUに通知する割り込みコントローラ機能を有する、
    ことを特徴とする請求項6に記載の入出力制御回路。
  8. CPUの特定バスの同一チャンネル上に、入力制御用のIO拡張デバイスと出力制御用のIO拡張デバイスとで構成される、複数のIO拡張デバイスが接続された入出力制御回路における前記複数のIO拡張デバイスの同期制御方法であって、
    各々のIO拡張デバイスに、同一回路で構成されたレジスタ制御部を設け、
    前記出力制御用のIO拡張デバイスには、リード用の制御信号を入力せず、
    前記CPUからのライトアクセスでは、前記入力制御用のIO拡張デバイス及び前記出力制御用のIO拡張デバイスに、前記CPUから出力されるデータを書き込み、
    前記CPUからのリードアクセスでは、前記入力制御用のIO拡張デバイスのみが、前記レジスタ制御部が管理するレジスタの値を応答出力する、
    ことを特徴とする同期制御方法。
  9. 前記ライトアクセスでは、前記入力制御用のIO拡張デバイスの前記レジスタ制御部が管理するレジスタ、及び、前記出力制御用のIO拡張デバイスの前記レジスタ制御部が管理するレジスタに、前記データを書き込み、
    前記リードアクセスでは、前記CPUは、前記入力制御用のIO拡張デバイスの前記レジスタの値を読み込むことにより、前記出力制御用のIO拡張デバイスの前記レジスタに書き込まれた前記データを確認する、
    ことを特徴とする請求項8に記載の同期制御方法。
  10. 各々の前記IO拡張デバイスに割り込みコントローラ機能を設け、
    前記入力制御用のIO拡張デバイスの前記割り込みコントローラ機能は、外部から入力される入力信号の変化を検出し、前記入力信号が変化したら、割り込み信号を前記CPUに通知する、
    ことを特徴とする請求項8又は9に記載の同期制御方法。
  11. 前記入力制御用のIO拡張デバイスに複数の入力信号が入力される場合、
    前記入力制御用のIO拡張デバイスの前記割り込みコントローラ機能は、特定レジスタの各ビットに、各々の入力信号の状態に応じた値を書き込み、いずれかのビットの値が変化したら、集合割り込み信号を前記CPUに通知し、
    前記CPUは、前記集合割り込み信号を受信した後、前記特定レジスタの値を読み込むことにより、状態が変化した入力信号を特定する、
    ことを特徴とする請求項10に記載の同期制御方法。
  12. 前記CPUは、前記特定レジスタとは異なる他のレジスタの所定のビットに所定の値を書き込むことにより、前記他のレジスタの前記所定のビットに対応する前記特定レジスタのビットの値を初期化する、
    ことを特徴とする請求項11に記載の同期制御方法。
  13. CPUの特定バスの同一チャンネル上に、入力制御用のIO拡張デバイスと出力制御用のIO拡張デバイスとで構成される、複数のIO拡張デバイスが接続された入出力制御回路における前記複数のIO拡張デバイスの同期制御方法であって、
    各々の前記IO拡張デバイスに、同一回路で構成されたレジスタ制御部を設け、
    前記入力制御用のIO拡張デバイスには、ライト用の制御信号を入力せず、かつ、前記出力制御用のIO拡張デバイスに入力するリード用の制御信号を、当該出力制御用のIO拡張デバイス内で非アクティブな論理レベルに固定し、
    前記CPUからのライトアクセスでは、前記出力制御用のIO拡張デバイスのみに、前記CPUから出力されるデータを書き込み、
    前記CPUからのリードアクセスでは、アクティブなリード用の制御信号が入力される前記入力制御用のIO拡張デバイスのみが、前記レジスタ制御部が管理するレジスタの値を応答出力する、
    ことを特徴とする同期制御方法。
  14. 各々の前記IO拡張デバイスに割り込みコントローラ機能を設け、
    前記入力制御用のIO拡張デバイスの前記割り込みコントローラ機能は、外部から入力される入力信号の変化を検出し、前記入力信号が変化したら、割り込み信号を前記CPUに通知する、
    ことを特徴とする請求項13に記載の同期制御方法。
JP2013145144A 2013-07-11 2013-07-11 入出力制御回路及び入出力制御回路における同期制御方法 Active JP6112412B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013145144A JP6112412B2 (ja) 2013-07-11 2013-07-11 入出力制御回路及び入出力制御回路における同期制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013145144A JP6112412B2 (ja) 2013-07-11 2013-07-11 入出力制御回路及び入出力制御回路における同期制御方法

Publications (2)

Publication Number Publication Date
JP2015018408A JP2015018408A (ja) 2015-01-29
JP6112412B2 true JP6112412B2 (ja) 2017-04-12

Family

ID=52439341

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013145144A Active JP6112412B2 (ja) 2013-07-11 2013-07-11 入出力制御回路及び入出力制御回路における同期制御方法

Country Status (1)

Country Link
JP (1) JP6112412B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752188A (zh) * 2020-05-28 2020-10-09 南京南瑞继保电气有限公司 一种io组态方法及***

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6160822B2 (ja) * 2013-08-09 2017-07-12 コニカミノルタ株式会社 I/o拡張デバイス群およびi/o拡張デバイス
CN113704157B (zh) * 2021-08-04 2024-04-02 威创集团股份有限公司 一种基于总线控制多路不同电平复位信号的***

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5864534A (ja) * 1981-10-14 1983-04-16 Fuji Electric Co Ltd コンピユ−タ装置におけるデ−タ転送方式
JPH11250007A (ja) * 1998-03-05 1999-09-17 Hitachi Ltd シリアルアクセスシステム及びそれに用いるデバイス
JP2004341683A (ja) * 2003-05-14 2004-12-02 Sony Corp データバス通信システムおよびデータバス通信制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752188A (zh) * 2020-05-28 2020-10-09 南京南瑞继保电气有限公司 一种io组态方法及***

Also Published As

Publication number Publication date
JP2015018408A (ja) 2015-01-29

Similar Documents

Publication Publication Date Title
USRE44270E1 (en) System for providing access of multiple data buffers to a data retaining and processing device
US10140242B2 (en) General purpose input/output (GPIO) signal bridging with I3C bus interfaces and virtualization in a multi-node network
CN100405352C (zh) 通过串行总线互连多个处理节点的装置及方法
JP5209461B2 (ja) 集積回路内のデバイス間のデータ転送
US8700835B2 (en) Computer system and abnormality detection circuit
KR20160060527A (ko) Pci 장치와 이를 포함하는 pci 시스템
US8775712B2 (en) Bus connecting device for connecting host with external device
JP2011070655A (ja) 情報処理装置、メモリダンプシステムおよびメモリダンプ方法
JP6112412B2 (ja) 入出力制御回路及び入出力制御回路における同期制御方法
WO2024103829A1 (zh) 一种端口配置方法、组件及硬盘扩展装置
CN115208752A (zh) 基于从设备类型的网络设备配置
JP2003296267A (ja) バスシステム及びバスシステムを含む情報処理システム
JP4642531B2 (ja) データ要求のアービトレーション
KR100938612B1 (ko) 전송 장치, 전송 장치를 갖는 정보 처리 장치 및 제어 방법
JP2006126938A (ja) データ転送システム及びそのデータ転送方法
US7716392B2 (en) Computer system having an I/O module directly connected to a main storage for DMA transfer
JP2007508620A (ja) マルチマスタ共用資源システム中で使用するための通信ステアリング
KR102669925B1 (ko) PCIe 인터페이스 장치 및 그 동작 방법
JP2003022212A (ja) 双方向ram
JP5640941B2 (ja) プロセスデータモニタシステム
JP2005010966A (ja) Lsi装置
JP6535516B2 (ja) マルチ・プログラマブルデバイス・システムとその制御方法
JP2001027920A (ja) バスブリッジ回路及びそのパワーマネージメント方法
JP6213029B2 (ja) 通信装置、及び通信システム
JP2014026454A (ja) ブリッジ回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160328

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170131

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170302

R150 Certificate of patent or registration of utility model

Ref document number: 6112412

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150