(57)【要約】【課題】システムの処理速度および精度を低下させることなく、複数の割り込み要因に基づいて、ＣＰＵの一つの割り込み入力端子に対して入力する割り込み信号を発生する。【解決手段】割り込み制御回路１１は、複数の割り込み要因から発生される複数の割り込み入力信号の立ち上がりまたは立ち下がりのエッジによりそれぞれ起動される複数のタイマー１１０〜１１３と、これらの複数のタイマーの出力の論理和を得てＣＰＵ１０の割り込み入力端子に入力する論理和ゲート１０６とを備える。各タイマーには、対応する割り込み要因の割り込み処理時間に対応する満了時間を設定する。各タイマーはその動作が抑止されていないときいずれかの割り込み入力信号の立ち上がりまたは立ち下がりエッジにより起動され前記論理和手段に割り込み信号を出力するとともに、当該タイマーに設定された満了時間が経過するまで他のタイマーの動作を抑止する。【選択図】図１
2008077184.tif 000002
【特許請求の範囲】
【請求項１】
複数の割り込み要因に基づいて、ＣＰＵの一つの割り込み入力端子に対して入力する割り込み信号を発生する割り込み制御回路であって、
複数の割り込み要因から発生される複数の割り込み入力信号の立ち上がりまたは立ち下がりのエッジによりそれぞれ起動される複数のタイマーと、
これらの複数のタイマーの出力の論理和を得て前記ＣＰＵの割り込み入力端子に入力する論理和手段と、
前記複数の割り込み要因毎に任意の満了時間を前記複数のタイマーに設定する手段とを備え、
各タイマーはその動作が抑止されていないとき前記割り込み入力信号の立ち上がりまたは立ち下がりエッジにより起動され前記論理和手段に割り込み信号を出力するとともに、当該タイマーに設定された満了時間が経過するまで他のタイマーの動作を抑止する
ことを特徴とする割り込み制御回路。
【請求項２】
各タイマーの出力で、対応する前記割り込み要因について割り込み入力信号を発生しているモジュールに対してその出力を解除させる請求項１記載の割り込み制御回路。
【請求項３】
前記複数のタイマーの出力を所定のタイミングで格納するレジスタを有し、このレジスタの内容を割り込み発生要因の特定用に供する請求項１記載の割り込み制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵへの割り込み信号を発生する制御回路にあって、複数の割り込み要因をＯＲ処理して１本の割り込み信号として出力する割り込み制御回路に関する。
【背景技術】
【０００２】
このような従来の割り込み制御回路の一例を図３に示す。この例では、ＣＰＵ２０および制御回路２１間において割り込み制御が行われている。すなわち、ＣＰＵ２０への割り込み信号は、制御回路２１から発生している。この割り込み制御回路２１は、割り込み発生要因として回路モジュール（ｍｏｄｕｌｅ０〜３）２００〜２０３の４個を持つ。それぞれの割り込み出力ＩＲＱ０〜３は、論理和ゲート２０６によってＯＲ出力され、ＩＲＱ２０８としてＣＰＵ２０へ入力される。
【０００３】
ＣＰＵ２０は、ＩＲＱ２０８の割り込みを受けてＲＯＭ（図示無し）内のプログラムに従い制御回路２１内のレジスタ２０９のデータを読み、割り込み発生要因がモジュール２００〜２０３のどれかを特定する。その後、割り込み要因に応じたソフト処理を行う。
【０００４】
ＣＰＵ２０の割り込み検出がエッジ検出の場合、割り込み信号の立ち下がりエッジもしくは立ち上がりエッジでのみ割り込みが発生したと判断される。したがって、複数の割り込みが重複して発生した場合はＩＲＱ２０８では複数の割り込みの発生を区別することができない。
【０００５】
図４に、複数のモジュールから複数の割り込み信号ＩＲＱ＿０〜３が多重して発生をしている様子を示す。ＣＰＵ２０への割り込み信号ＩＲＱ２０８は、複数のモジュールからの割り込み信号ＩＲＱ＿０〜３の論理和出力であるので、重複した割り込み信号ＩＲＱ＿０〜３はＬＯＷに固定されたままの単一の割り込み信号と区別がつかず、ＩＲＱのエッジ（ここでは立ち下がりエッジ）は一回のみとなってしまう。したがって、本来は４回の割り込みが発生しているのにもかかわらず、１回の割り込みしか発生していないと、ＣＰＵは間違った判断をしてしまう。
【０００６】
このような問題を解決するために、従来、重複した割り込みの発生数分の割り込みエッジを再発生することが提案されている（特許文献１参照）。
【０００７】
図５にその割り込み発生時の各信号のタイミングチャートを示す。
【０００８】
図の例では、割り込み信号ＩＲＱ＿０〜３が多重して発生をしているが、割り込みの発生回数分ＩＲＱの出力を一旦Ｈｉに戻すことにより、割り込み要因の個数分立ち下がりエッジが発生し、ＣＰＵは割り込み発生を正確に判断できる。
【特許文献１】特開平５−１５８７０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、上記特許文献１に記載の方式の場合、割り込み発生要因ごとの割り込み処理時間が考慮されておらず、ＣＰＵ側の割り込み処理が間に合わず、割り込み発生を逃してしまうおそれがあった。
【００１０】
具体的には、図５の例において、ＩＲＱの立ち下がりエッジ４０１はＩＲＱ＿０による割り込み要因、ＩＲＱの立ち下がりエッジ４０２はＩＲＱ＿１による割り込み要因、ＩＲＱの立ち下がりエッジ４０３はＩＲＱ＿２による割り込み要因、ＩＲＱの立ち下がりエッジ４０４はＩＲＱ＿３による割り込み要因である。
【００１１】
しかし、割り込み再発生までの時間は一律にｔ０であった。ＣＰＵは、それぞれの割り込み要因に応じて割り込み処理を行うが、各割り込み要因の割り込み処理に要する時間はまちまちである。つまり、割り込み要因によっては割り込み再発生までの時間ｔ０を上回ってしまうことがあり、そのような割り込み要因についてはＩＲＱが割り込み発生要因回数分だけ立ち下がりエッジを発生してもＣＰＵ側の割り込み処理が行われないという事態が生じる。
【００１２】
また、割り込み再発生までの時間ｔ０を割り込み要因に応じた最大の割り込み処理時間ｔ０ｍａｘにすれば割り込み処理が行われないという問題は生じないが、どの割り込み要因についても最大の割り込み処理時間にすることによりシステムの処理速度および精度が低下してしまうといった課題があった。
【００１３】
本発明は、このような背景においてなされたものであり、その目的は、システムの処理速度および精度を低下させることなく、複数の割り込み要因に基づいて、ＣＰＵの一つの割り込み入力端子に対して入力する割り込み信号を発生することができる割り込み制御回路を提供することにある。
【課題を解決するための手段】
【００１４】
本発明による割り込み制御回路は、複数の割り込み要因に基づいて、ＣＰＵの一つの割り込み入力端子に対して入力する割り込み信号を発生する割り込み制御回路であって、複数の割り込み要因から発生される複数の割り込み入力信号の立ち上がりまたは立ち下がりのエッジによりそれぞれ起動される複数のタイマーと、これらの複数のタイマーの出力の論理和を得て前記ＣＰＵの割り込み入力端子に入力する論理和手段と、前記複数の割り込み要因毎に任意の満了時間を前記複数のタイマーに設定する手段とを備え、各タイマーはその動作が抑止されていないとき前記割り込み入力信号の立ち上がりまたは立ち下がりエッジにより起動され前記論理和手段に割り込み信号を出力するとともに、当該タイマーに設定された満了時間が経過するまで他のタイマーの動作を抑止することを特徴とする。
【００１５】
複数の割り込み要因の各々については、通常、予めその割り込み処理に要する概略の時間は実験的または経験的に既知である。そこで、複数のタイマーについてその該当する割り込み要因毎に、所定の満了時間（例えば、予想される最大の割り込み処理時間に対応する時間）を設定することができる。あるタイマーが起動された後、その満了時間が満了するまでの間、他の割り込み要因に対応する他のタイマーの動作は抑止されるので、現在の割り込みの終了後にタイマーの抑止が解除され、次の割り込み入力の受付が可能となる。したがって、割り込みが受け付けられずに割り込み処理が欠落してしまうことがなくなる。
【００１６】
各タイマーの出力で、対応する前記割り込み要因について割り込み入力信号を発生しているモジュールに対してその出力を解除させる。これにより、割り込みが受け付けられるまで待機していた割り込み要求を割り込み受け付けとともに解除することができる。
【００１７】
前記複数のタイマーの出力を所定のタイミングで格納するレジスタを有してもよい。各タイマーは割り込み要因と対応づけられているので、このレジスタの内容に基づいて割り込み発生要因を特定することができる。
【発明の効果】
【００１８】
本発明によれば、割り込み要因ごとの割り込み処理時間を考慮して、割り込み処理中の割り込み要因以外の他の割り込み要因の割り込みの発生を抑止することにより、ＣＰＵ側の割り込み処理が間に合わず、必要な割り込み処理が欠落してしまうといった問題を回避することができる。
【００１９】
また、すべての割り込み要因に対してタイマー満了時間として一律に割り込み処理時間の最大値を設定するものではないので、システムの処理速度および精度を向上させることができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の好適な実施の形態について図を用いて詳細に説明する。
【００２１】
図１は、本発明の代表的な実施の形態である割り込み制御回路のブロック図である。この例では、ＣＰＵ１０および割り込み制御回路１１間において割り込み制御が行われている。割り込み制御回路１１は、ここでは例えばＡＳＩＣのようなデバイスを使用した回路を想定しているが、一般的には他のデバイスから発生されることもある。
【００２２】
この割り込み制御回路１１は割り込み発生要因としてモジュール（ｍｏｄｕｌｅ０〜３）１００〜１０３の４個を持つ。それぞれの割り込み出力ＮＩＲＱ＿０ｉ〜ＮＩＲＱ＿３ｉは、タイマー１１０〜１１３（ｔｉｍｅｒ０〜３）へ入力される（ここに“ＮＩＲＱ”の“Ｎ”はアッパーバーを示し、アクティブＬＯＷの信号を意味している。以下、同様。）。タイマー１１０〜１１３は、上位側の割り込み発生からの所定時間経過後、自分の割り込み信号が発生していた場合、ＮＩＲＱ＿０〜ＮＩＲＱ＿３をそれぞれ出力する。
【００２３】
たとえば、タイマー１１０（ｔｉｍｅｒ０）に注目した場合、タイマー１１０は、モジュール１００からの割り込み発生要因ＮＩＲＱ＿０ｉを受け取ると、所定幅の負のパルスＮＩＲＱ＿０を発生するとともに、基準クロック（図示せず）のカウントを開始する。タイマー１１０のカウント中は、抑止信号（ｄｉｓａｂｌｅ）１２０が他のタイマーの動作およびＮＩＲＱの出力を抑止する。タイマー１１０のカウントが終了すると、抑止信号１２０による抑止状態が解除され、他のタイマーの動作が許可される。これにより、例えば次のタイマー１１１のＮＩＲＱ＿１ｉに割り込み発生要因があればＮＩＲＱ＿１が出力される。
【００２４】
タイマー１１１は、ＮＩＲＱ＿１を発生するとともにカウントを開始する。タイマー１１１のカウント中は、抑止信号１２１が他のタイマーの動作およびＮＩＲＱの出力を抑止する。タイマー１１１のカウントが終了すると他のタイマーの動作が許可され、例えば次のタイマー１１２のＮＩＲＱ＿２ｉに割り込み発生要因があればＮＩＲＱ＿２が出力される。
【００２５】
タイマー１１２は、ＮＩＲＱ＿２を発生するとともにカウントを開始する。タイマー１１２のカウント中は、抑止信号１２２が他のタイマーの動作およびＮＩＲＱの出力を抑止する。タイマー１１２のカウントが終了すると、他のタイマーの動作が許可される。これにより、例えば次のタイマー１１３のＮＩＲＱ＿３ｉに割り込み発生要因があればＮＩＲＱ＿３が出力される。
【００２６】
タイマー１１３については、図の例では以降の割り込みがないが、再度、多重割り込みが発生した場合でもＣＰＵ側の処理時間が確保できるように抑止信号１２３を発生し、他のタイマーの動作およびＮＩＲＱの出力を抑止するようにしている。
【００２７】
このようなタイマー１１０〜１１３はリング状に抑止信号が連鎖し、あるタイマーの動作中は、リング状の後続のすべてのタイマーの動作が抑止されるようになっている。
【００２８】
タイマー１１０〜１１３の出力ＮＩＲＱ＿０〜ＮＩＲＱ＿３は論理和ゲート１０６に入力される。論理和ゲート１０６の出力ＮＩＲＱ１０８は、ＣＰＵ１０の割り込み端子に入力される。ＣＰＵには複数の割り込み端子が存在しうるが、本発明は、単一の割り込み端子を複数の割り込み要因に共用する場合を想定している。
【００２９】
また、各タイマー１１０〜１１３は、ＣＰＵ１０からレジスタ１３０を介して、それぞれに任意の満了時間を設定することができる。これにより、モジュール１００〜１０３からの割り込み発生要因ごとに次に割り込みが受け付けられるまでの時間を設定可能となる。
【００３０】
このように、各割り込み発生要因ごとに他の割り込みを抑止する時間を任意に設定可能とすることで、ＣＰＵ側の割り込み処理が間に合わず、必要な割り込み処理が欠落してしまうといった不具合が回避される。
【００３１】
レジスタ１０９にはタイマー１１０〜１１３の出力ＮＩＲＱ＿０〜ＮＩＲＱ＿３が所定のタイミングで書き込まれる。所定のタイミングとは例えばＮＩＲＱ１０８の出力時または所定のクロックによる周期的なタイミングである。
【００３２】
ＣＰＵ１０は、ＮＩＲＱ１０８の割り込みを受けた時点で、ＲＯＭ（図示無し）内のプログラムに従い制御回路２１内のレジスタ１０９のデータを読み、割り込み発生要因がモジュール１０１〜１０３のどれかを特定する。
【００３３】
図２は、図１に示した割り込み制御回路において多重割り込みが発生した場合の動作例を示すタイミングチャートである。
【００３４】
図中、ＮＩＲＱ＿０ｉ，ＮＩＲＱ＿１ｉ，ＮＩＲＱ＿２ｉ，ＮＩＲＱ＿３ｉは、それぞれ、モジュール１００〜１０３の割り込み発生要因となる信号である。この信号は、この例では、割り込み要求時に低レベルとなる。ＮＩＲＱ＿０，ＮＩＲＱ＿１，ＮＩＲＱ＿２，ＮＩＲＱ＿３は、それぞれ、タイマー１１０〜１１３のＮＩＲＱ出力であり、この例では、所定幅の負パルスである。ＮＩＲＱは、ＮＩＲＱ＿０，ＮＩＲＱ＿１，ＮＩＲＱ＿２，ＮＩＲＱ＿３の論理和信号である。各タイマー１１０〜１１３の満了時間は、ＣＰＵ１０からレジスタ１３０を介して、それぞれｔ０，ｔ１，ｔ２，ｔ３に設定される。
【００３５】
図の例では、すべての割り込み発生要因の信号ＮＩＲＱ＿０ｉ，ＮＩＲＱ＿１ｉ，ＮＩＲＱ＿２ｉ，ＮＩＲＱ＿３ｉが同時に発生している場合を示している。この例では、タイマー１１０が最初に応答し、ＮＩＲＱ＿０の負パルスを発生する。これはＮＩＲＱ１０８としてＯＲゲート１０６を通過し、ＣＰＵ１０に割り込み信号として印加される。この割り込み信号の立ち下がりエッジでＣＰＵ１０に割り込みが掛かる。図示しないが、ＮＩＲＱ＿０の負パルスはモジュール１００に帰還され、その立ち上がりエッジでモジュール１００の信号ＮＩＲＱ＿０ｉの割り込み要求が解除される（すなわち、ＮＩＲＱ＿０ｉが高レベルに戻る）。
【００３６】
ＮＩＲＱ＿０の負パルスの立ち下がりと同時に、タイマー１１０がスタートし、抑止信号１２０が出力される。タイマー１１０はその満了時間（ここではｔ０）の経過時に抑止信号１２０を解除する。これにより、後段のタイマーの動作が可能となり、ＮＩＲＱ＿１ｉがタイマー１１１に受け付けられ、ＮＩＲＱ＿１の負パルスを発生する。これはＮＩＲＱ１０８としてＯＲゲート１０６を通過し、ＣＰＵ１０に割り込み信号として印加される。このとき、直前の割り込み処理は既に終了しているので、この割り込みは直ちに受け付けられる。図示しないが、ＮＩＲＱ＿１の負パルスはモジュール１０１に帰還され、その立ち上がりエッジでモジュール１０１の信号ＮＩＲＱ＿１ｉの割り込み要求が解除される（すなわち、ＮＩＲＱ＿１ｉが立ち上がる）。
【００３７】
ＮＩＲＱ＿１の負パルスの立ち下がりと同時に、タイマー１１１がスタートし、抑止信号１２１が出力される。タイマー１１１はその満了時間（ここではｔ１）の経過時に抑止信号１２１を解除する。これにより、後段のタイマーの動作が可能となり、ＮＩＲＱ＿２ｉがタイマー１１２に受け付けられ、ＮＩＲＱ＿２の負パルスを発生する。これはＮＩＲＱ１０８としてＯＲゲート１０６を通過し、ＣＰＵ１０に割り込み信号として印加される。このとき、直前の割り込み処理は既に終了しているので、この割り込みは直ちに受け付けられる。図示しないが、ＮＩＲＱ＿２の負パルスはモジュール１０２に帰還され、その立ち上がりエッジでモジュール１０２の信号ＮＩＲＱ＿２ｉの割り込み要求が解除される（すなわち、ＮＩＲＱ＿２ｉが立ち上がる）。
【００３８】
ＮＩＲＱ＿２の負パルスの立ち下がりと同時に、タイマー１１２がスタートし、抑止信号１２２が出力される。タイマー１１２はその満了時間（ここではｔ２）の経過時に抑止信号１２２を解除する。これにより、後段のタイマーの動作が可能となり、ＮＩＲＱ＿３ｉがタイマー１１３に受け付けられ、ＮＩＲＱ＿３の負パルスを発生する。これはＮＩＲＱ１０８としてＯＲゲート１０６を通過し、ＣＰＵ１０に割り込み信号として印加される。このとき、直前の割り込み処理は既に終了しているので、この割り込みは直ちに受け付けられる。図示しないが、ＮＩＲＱ＿３の負パルスはモジュール１０３に帰還され、その立ち上がりエッジでモジュール１０３の信号ＮＩＲＱ＿３ｉの割り込み要求が解除される（すなわち、ＮＩＲＱ＿３ｉが立ち上がる）。
【００３９】
ＮＩＲＱ＿３の負パルスの立ち下がりと同時に、タイマー１１３がスタートし、抑止信号１２３が出力される。タイマー１１３はその満了時間（ここではｔ３）の経過時に抑止信号１２３を解除する。これにより、後段のタイマーの動作が可能となる。図の例では後段のタイマーへの割り込み要因信号は発生していない。図示しないが、ＮＩＲＱ＿３の負パルスはモジュール１０３に帰還され、その立ち上がりエッジでモジュール１０３の信号ＮＩＲＱ＿３ｉの割り込み要求が解除される（すなわち、ＮＩＲＱ＿３ｉが立ち上がる）。
【００４０】
このように、多重の割り込みが発生した場合に、その発生要因ごとにＣＰＵ側での割り込み処理時間が異なっても、再度、割り込みエッジを発生させる場合には、タイマーによりあらかじめ設定された時間を確保している。その結果、割り込み処理が間に合わず、割り込み発生を逃してしまうといったことが回避される。
【００４１】
なお、図２の例ではすべての割り込み要因の割り込みが同時に発生した例を示したが、発生タイミングが若干ずれても、後発の割り込みが直前の割り込み処理中に発生した場合に、その割り込み処理終了後に後発の割り込みが有効に受け付けられることが明らかである。
【００４２】
以上、本発明の好適な実施の形態について説明したが、上記で言及した以外にも種々の変形、変更を行うことが可能である。
【図面の簡単な説明】
【００４３】
【図１】本発明の代表的な実施の形態である割り込み制御回路のブロック図である。
【図２】図１に示した割り込み制御回路において多重割り込みが発生した場合の動作例を示すタイミングチャートである。
【図３】従来の割り込み制御回路の一例を示すブロック図である。
【図４】複数のモジュールから複数の割り込み信号が多重して発生をしている様子を示すタイミングチャートである。
【図５】図３に示した割り込み制御回路において、図４に示すような多重割り込みが発生した場合の様子を示すタイミングチャートである。
【符号の説明】
【００４４】
１１…制御回路
１００〜１０３…モジュール
１０６…論理和ゲート
１０９…レジスタ
１１０〜１１３…タイマー
１２０〜１２３…抑止信号
１３０…レジスタ
【図１】
2008077184.tif 000003
【図２】
2008077184.tif 000004
【図３】
2008077184.tif 000005
【図４】
2008077184.tif 000006
【図５】
2008077184.tif 000007