(57)【要約】【課題】記憶部へ正規のデータを書き込み、またデータ書き込みの誤動作を軽減することができるＣＰＵインターフェース回路を提供する。【解決手段】ＣＰＵインターフェース回路であって、ＣＰＵから出力されるチップセレクト信号、ライトイネーブル信号のいずれか一方または両方にノイズが有るか否か判定する判定部と、判定部によってノイズが無いと判定された場合、ＣＰＵから出力されたデータを書き込み、ノイズが有ると判定された場合、データを書き込まない記憶部とを有する。【選択図】図１
2012079075.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵから出力されるチップセレクト信号、ライトイネーブル信号のいずれか一方または両方にノイズが有るか否か判定する判定部と、
前記判定部によってノイズが無いと判定された場合、前記ＣＰＵから出力されたデータを書き込み、ノイズが有ると判定された場合、前記データを書き込まない記憶部と、
を有するＣＰＵインターフェース回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵからの信号に基づき記憶部へのアクセス制御をする技術に関する。
【背景技術】
【０００２】
ＣＰＵ（Central Processing Unit）からメモリ、外部デバイスへのアクセスを制御するＣＰＵインターフェース回路が知られている。このＣＰＵインターフェース回路は、ＡＳＩＣやＦＰＧＡで実装されており、また、ＣＰＵからの設定値などを格納するためのレジスタを内部に有する。
【０００３】
関連のある技術として、以下の文献が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０８−１４９１１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＣＰＵからメモリや外部デバイス、内部レジスタ等の記憶部へのライト動作が行われる際、制御信号にノイズが生じ、誤動作する場合がある。
【０００６】
本発明は、上述した課題を解決するためになされたものであり、ＣＰＵからのアクセス時(ライト動作時)、制御信号にノイズ等が生じた場合でも誤動作せず、正常なライト動作を可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係るＣＰＵインターフェース回路は、ＣＰＵから出力されるチップセレクト信号、ライトイネーブル信号のいずれか一方または両方にノイズが有るか否か判定する判定部と、判定部によってノイズが無いと判定された場合、ＣＰＵから出力されたデータを書き込み、ノイズが有ると判定された場合、データを書き込まない記憶部とを有する。
【発明の効果】
【０００８】
記憶部へ正規のデータを書き込み、正常なライト動作を行うことができる。
【図面の簡単な説明】
【０００９】
【図１】本実施の形態に係るＣＰＵインターフェース回路のシステム構成の一例を示す図である。
【図２】本実施の形態に係るＣＰＵインターフェース回路のタイミングチャートの一例を示す図である。
【図３】本実施の形態に係る判定回路部の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
図１は、本実施の形態に係るＣＰＵインターフェース回路の構成を示す図である。ＣＰＵインターフェース回路１００は、外部のＣＰＵ１０１及び外部の水晶発振器１１０と接続され、ＡＳＩＣ（Application Specific Integrated Circuit）又はＦＰＧＡ（Field Programmable Gate Array）で実装された回路である。
【００１１】
同期回路部１０２は、ＣＰＵ１０１から出力される信号を、水晶発振器１１０の発振周波数に基づいたクロックで同期化(ラッチ)する回路である。判定回路部１０３は、少なくとも２つのカウンタ（第一カウンタ３０１、第二カウンタ３０２）を有し、設定部１０４で設定された設定カウント数、および各カウンタのカウント数に基づき、正常なアクセスかどうかを判定する回路である。判定回路部１０３は、正常なアクセスと判断した場合、レジスタ部１０８へ有効信号を出力することでレジスタ部１０８へデータが書き込まれる。一方、異常なアクセスと判断した場合、判定回路部１０３はレジスタ部１０８へ無効信号を出力するとともに、ＣＰＵ１０１に対してＩＮＴ信号（割り込み信号）を出力する。
【００１２】
設定部１０４は、設定カウント数を保持するレジスタを少なくとも含む回路であり、予め設定されている設定カウント数以外に、ＣＰＵ１０１から設定カウント数を取得し、この値を設定することもできる。ＳＷ１０９は外部スイッチであり、ＣＰＵ１０１から設定部１０４へ正常なアクセスが不可能な場合でも、設定カウント数の設定を可能とする。
【００１３】
デコード部１０５は、ＣＰＵインターフェース回路１００の内部レジスタのいずれの記憶領域へのアクセスかを判別し、該当するアドレスを選択する。データはデコード部１０５によって選択されたアドレスに書き込まれる。ライト制御信号生成部１０６は、ラッチされた信号を同期回路部１０２から取得し、判定回路部１０３に出力する。また、ライト制御信号生成部１０６は、レジスタ部１０８へデータを書き込むためのライトイネーブル信号を生成する回路であり、判定回路部１０３に対して生成したライトイネーブル信号を出力する。
【００１４】
リード制御信号生成部１０７は、ＣＰＵ１０１がレジスタ部１０８のデータを読み出すためのリードイネーブル信号を生成する。データラッチ部１１１は、レジスタ部１０８に書き込むデータを一時的に保持する回路である。
【００１５】
ここで、図１に示されている各信号の表記について説明する。ＣＬＫはクロック信号であり、ＣＳはチップセレクト信号である。ＷＥはライトイネーブル信号であり、ＡＤはアドレスである。ＩＮＴは割り込み信号であり、ＤＡはデータであり、ＯＥはアウトプットイネーブル信号である。
【００１６】
次に、ＣＰＵインターフェース回路１００の動作を説明する。
【００１７】
図２は、本実施の形態のタイミングチャートの一例を示す図であり、図２（Ａ）のタイミングチャートは正常アクセス時のタイミングチャートを示しており、図２（Ｂ）は異常アクセス時のタイミングチャートを示している。設定部１０４で設定される項目は、設定カウント数：ｎである。図２の例ではｎ＝１２としているが、設定カウント数は、ＣＳ信号とＷＥ信号が同時に"Ｌ"になる期間内であれば、いずれの値であってもよい。また、設定カウント数：ｎは初期値を持つが、設定カウント数の値はＣＰＵ１０１やＳＷ１０９によって変更されてもよい。
【００１８】
ＣＰＵ１０１からの各信号は、同期回路部１０２によってラッチされ、内部クロックに同期される(メタステーブル対策)。図２のｆ１＿ＡＤ、ｆ１＿ＤＡ等、「ｆ１＿」で表記された各信号は、同期回路部１０２によって１回ラッチされた信号であり、ｆ２＿ＡＤ、ｆ２＿ＤＡ等、「ｆ２＿」で表記された各信号は、「ｆ１＿」で表記された信号がさらに同期回路部１０２によって１回ラッチされた信号である。同期回路部１０２は、「ｆ２＿」表記の信号を出力する。
【００１９】
ライト制御信号生成部１０６は、ＣＰＵ１０１からのライト要求の場合、デコード部１０５で選択されたアドレスに対応する記憶領域へのライトイネーブル信号を生成する。その後、判定回路部１０３によってノイズの無い正常なアクセスかどうかの判定が行われる。
【００２０】
判定回路部１０３には２つのカウンタ（第一カウンタ３０１、第二カウンタ３０２）があり、この２つのカウンタの値、および設定カウント数の値を用いて、正常なアクセスかどうかの判定を行う。第一カウンタ３０１は、ｆ２＿ＣＳ信号の立ち下がり及びｆ２＿ＷＥ信号の立ち下がりを検出したらカウントを開始し、１クロック経過するごとにカウントアップされる。第一カウンタ３０１の値：ｍが設定カウント数の値：ｎまで到達した場合に第一カウンタ３０１はクリアされる。
【００２１】
第二カウンタ３０２は、ｆ２＿ＣＳ信号の立ち下がり及びｆ２＿ＷＥ信号の立ち下がりを検出したらカウントを開始し、ｆ２＿ＣＳとｆ２＿ＷＥが同時に"Ｌ"の時にカウントアップし、第一カウンタ３０１の値：ｍが設定カウント数の値：ｎに到達した場合にクリアされる。このとき（すなわちｍ＝ｎのとき）、第一カウンタ３０１の値：ｍと第二カウンタ３０２の値：ｌが一致した場合、判定回路部１０３は、正常アクセスと判断し、有効信号（ライト制御信号生成部１０６が生成したライトイネーブル信号でもよい）をレジスタ部１０８に送信する。不一致の場合、判定回路部１０３は、異常アクセスと判断し、無効信号をレジスタ部１０８に送信するとともに、ＣＰＵ１０１に対してＩＮＴ信号を出力する。
【００２２】
図２（Ａ）で示すように、正常アクセス時には、第一カウンタ３０１の値：ｍが設定カウント数の値：ｎに到達したとき（すなわち、ｍ＝ｎ＝１２）、第二カウンタ３０２の値：ｌも１２となる。第一カウンタ３０１と第２カウンタのカウント値が一致しているため（ｍ＝ｌ）、判定回路部１０３は正常アクセスと判断する。正常アクセスの場合、判定回路部１０３は有効信号をレジスタ部１０８に出力する。レジスタ部１０８は、判定回路部１０３によって出力された有効信号を用いてデータラッチ部１１１で保持されているデータに更新する。
【００２３】
一方、図２（Ｂ）のタイミングチャートに示す例は、ＷＥ信号にノイズが発生している例（異常アクセス）であり、ｆ２＿ＷＥ信号に立ち下がりが検出されてから設定カウント数の値:ｎ＝１２までに、ＷＥ信号が１回"Ｈ"となる場合の例である。この場合、第一カウンタ３０１の値：ｍが設定カウント数の値：ｎに到達したとき、第二カウンタ３０２の値:ｌは１１となる。第二カウンタ３０２は、上述の通りｆ２＿ＷＥ信号とｆ２＿ＣＳ信号とが同時に”Ｌ”のときにカウントアップされるカウンタである一方、第一カウンタ３０１は、１クロック経過するごとにカウントアップされるカウンタであるため、ノイズ等で１回でもいずれかの信号に”Ｈ”が入る場合、ｍとｌとが一致しなくなる。図２（Ｂ）の例では、第二カウンタ３０２の値:ｌと第一カウンタ３０１の値:ｍ＝１２とは不一致であるため、判定回路部１０３は異常アクセスと判断する。
【００２４】
異常アクセスの場合、判定回路部１０３はＩＮＴ信号をＣＰＵ１０１に出力する。ＩＮＴ信号を受信したＣＰＵ１０１は、ＣＰＵインターフェース回路１００に対してリトライを行ったり、またはエラーとしてアラームを外部に出力したりする。また、判定回路部１０３で異常アクセスと判断された場合、無効信号がレジスタ部１０８に出力され、レジスタ部１０８はデータを更新しない。
【００２５】
判定回路部１０３は、このように、第一カウンタ３０１の値：ｍが設定カウント数の値：ｎに到達したとき、第一カウンタ３０１の値：ｍと第二カウンタ３０２の値:ｌとを比較し、その比較結果によって各信号のノイズの有無を判定する。
【００２６】
図２の例では、ＷＥ信号にノイズが発生したものとして説明したが、ＣＳ信号にノイズが発生した場合でも適用でき、またＷＥ信号、ＣＳ信号の両方にノイズが発生した場合でも適用できる。
【００２７】
次に、図３のフローチャートを参照しつつ、判定回路部１０３の動作について説明する。尚、以下の説明でのＣＳ信号、ＷＥ信号は、それぞれ同期回路部１０２によってラッチされた信号であるものとする。
【００２８】
判定回路部１０３は、設定カウント数の値：ｎを設定部１０４から取得し（Ｓ１、Ｓ１１）、ＣＳ信号の立ち下がりエッジを検出し、且つＷＥ信号の立ち下りエッジを検出したかを判定する（Ｓ２、Ｓ１２）。ＣＳ信号、ＷＥ信号が共に立ち下った場合（Ｓ２、ＹｅｓおよびＳ１２、Ｙｅｓ）、第一カウンタ３０１、第二カウンタ３０２のカウントが共に開始される（Ｓ３、Ｓ１３）。
【００２９】
第一カウンタ３０１の値：ｍが設定カウント数の値：ｎに到達するまで、ｍは１クロック経過ごとに１つインクリメントされる（Ｓ４、Ｓ５）。一方、第二カウンタ３０２に関しては、判定回路部１０３は、ＣＳ信号が”Ｌ”、ＷＥ信号が”Ｌ”の２つの条件が共に成立するかを１クロックごとに判定する（Ｓ１４）。成立する場合（Ｓ１４、Ｙｅｓ）、第二カウンタ３０２の値：ｌが１つインクリメントされる（Ｓ１５）。一方成立しない場合（Ｓ１４、Ｎｏ）、第二カウンタ３０２の値：ｌはインクリメントされない（Ｓ１６）。
【００３０】
第一カウンタ３０１の値：ｍが設定カウント数の値：ｎに到達した場合（Ｓ５、ＹｅｓおよびＳ１７、Ｙｅｓ）、判定回路部１０３は、第一カウンタ３０１の値：ｍと第二カウンタ３０２の値：ｌとを比較する（Ｓ２０）。比較の結果、ｍ＝ｌが成立する場合（Ｓ２０、Ｙｅｓ）、判定回路部１０３は正常アクセスとみなし、レジスタ部１０８に対し有効信号を出力することで、データラッチ部１１１に一時的に保持されているデータがレジスタ部１０８に書き込まれる（Ｓ２１）。一方、ｍ＝ｌが成立しない場合（Ｓ２０、Ｎｏ）、判定回路部１０３は異常アクセスとみなし、レジスタ部１０８に対し無効信号を出力するとともに、ＣＰＵ１０１にＩＮＴ信号を出力する（Ｓ２２）。尚、レジスタ部１０８は、データラッチ部１１１に保持されているデータを書き込まない。
【００３１】
判定回路部１０３は、第一カウンタ３０１の値：ｍと第二カウンタ３０２の値：ｌを共にクリアし（Ｓ６、Ｓ１８）、処理は終了となる。この各カウンタのクリア後、繰り返し処理が行われる場合、Ｓ２、Ｓ１２に戻る。
【００３２】
本実施の形態のように、ＣＰＵから出力されるＷＥ信号、ＣＳ信号にノイズが発生したか否かを判定し、発生していない場合はデータを書き込み、発生した場合はデータを書き込まないことで、データ書き込みの誤動作を軽減することができる。
【００３３】
本実施の形態で説明したＣＰＵインターフェース回路は、ＣＰＵから出力されるＷＥ信号、ＣＳ信号のいずれか一方または両方にノイズが有るか否か判定する判定部（上述の例では判定回路部１０３）と、判定部によってノイズが無いと判定された場合、ＣＰＵから出力されるデータを書き込み、ノイズが有ると判定された場合、データを書き込まない記憶部（上述の例ではレジスタ部１０８およびデータラッチ部１１１）とを有する。
【００３４】
また、判定部は、カウンタを有し、予め設定された設定カウント数、および、カウンタのカウント値に基づきノイズが有るか否か判定する。
【００３５】
また、判定部は、予め設定された設定カウント数をｎ、ＣＳ信号とＷＥ信号の電位レベルが同時に遷移したときにカウントが開始されるクロックカウント数をｍ、ＣＳ信号とＷＥ信号の電位レベルが同時に遷移したときからカウントが開始され、ＣＳ信号とＷＥ信号の電位レベルが一致してＬｏｗまたはＨｉｇｈであるときのカウント数をｌとしたときに、値ｌ、ｍ、ｎに基づきノイズが有るか否か判定する。
【００３６】
判定部は、上述のｍがｎに到達したときにｍとｌが一致している場合はノイズが無いと判定し、ｍとｌが一致していない場合はノイズが有ると判定する。
【００３７】
また、判定部は、さらに、ノイズが有ると判定した場合にＣＰＵに対し割り込み信号を出力する。
【符号の説明】
【００３８】
１００  ＣＰＵインターフェース回路、１０１  ＣＰＵ、１０２  同期回路部、１０３  判定回路部、１０４  設定部、１０５  デコード部、１０６  ライト制御信号生成部、１０７  リード制御信号生成部、１０８  レジスタ部、１０９ＳＷ、１１０  水晶発振器、１１１  データラッチ部、３０１  第一カウンタ、３０２  第二カウンタ。
【図１】
2012079075.tif 000003
【図３】
2012079075.tif 000004
【図２】
2012079075.tif 000005