(57)【要約】【課題】バスマスターが通信途中でハングアップした場合であってもバスサイクルを完了し、もってバススレーブにおける不具合発生を防ぐこと。【解決手段】バスマスター１とバススレーブ２との間で信号を転送するデータ転送回路１００であって、バスマスター１とバススレーブ２との間の通信方式に関する情報を記憶しているプロトコル記憶部１０３と、バスマスター１から受信したＭａｓＢｕｓ信号に基づいてそれにするＤｅｖＢｕｓ信号に関する情報をプロトコル記憶部１０３から取得して出力する転送制御部１０１と、バスマスター１及び転送制御部１０１の少なくとも一方の状態に応じてＭａｓＢｕｓ信号とＤｅｖＢｕｓ信号とのいずれか一方を出力させるＳＥＬＥＣＴ信号を出力する信号選択部１０２とを有することを特徴とする。【選択図】図１
2008234189.tif 000002
【特許請求の範囲】
【請求項１】
バスマスターとバススレーブとの間で信号を転送する信号転送装置であって、
前記バスマスターと前記バススレーブとの間の通信方式に関する情報を記憶している通信方式記憶部と、
前記バスマスターから受信した第１の信号に基づいて当該第１の信号に対応する第２の信号に関する情報を前記通信方式記憶部から取得して出力する転送制御部と、
前記バスマスター及び前記転送制御部の少なくとも一方の状態に応じて前記第１の信号と前記第２の信号とのいずれか一方を出力させる選択信号を出力する信号選択部とを有することを特徴とする、信号転送装置。
【請求項２】
前記転送制御部は、前記第１の信号の受信状態及び前記２の信号の出力状態に基づいて前記バスマスターの初期化可否を示す初期化可否信号を出力することを特徴とする、請求項１に記載の信号転送装置。
【請求項３】
前記バスマスターの初期化のために外部から入力される初期化信号と前記初期化可否信号とに基づいて前記バスマスターに初期化動作を実行させる初期化実行信号を生成する初期化制御部を更に有することを特徴とする、請求項２に記載の信号転送装置。
【請求項４】
前記転送制御部は、前記第１の信号が非活性状態から活性状態に遷移した場合に前記初期化可否信号を“Ｈｉｇｈ”状態から“Ｌｏｗ”状態に遷移させることを特徴とする、請求項３に記載の信号転送装置。
【請求項５】
前記転送制御部は、前記第１の信号及び前記第２の信号の少なくとも一方が活性状態から非活性状態に遷移した場合に前記初期化可否信号を“Ｈｉｇｈ”状態から“Ｌｏｗ”状態に遷移させることを特徴とする、請求項３または４に記載の信号転送装置。
【請求項６】
前記初期化信号は、“Ｈｉｇｈ”状態において前記バスマスターを初期化させることを示し、
前記初期化制御部は、前記初期化信号と前記初期化可否信号との論理積を前記初期化実行信号として出力することを特徴とする、請求項４または５に記載の信号転送装置。
【請求項７】
前記選択信号に基づいて前記第１の信号と前記第２の信号とを切り換えて出力する信号切り換え部を更に有することを特徴とする、請求項１乃至６いずれか１項に記載の信号転送装置。
【請求項８】
前記信号選択部は、前記バスマスターがハングアップした場合に、前記選択信号の状態を前記第２の信号を出力させる状態とすることを特徴とする、請求項１乃至７いずれか１項に記載の信号転送装置。
【請求項９】
前記第１の信号及び前記第２の信号は、前記通信方式に応じて定められるコマンド情報を有し、
前記信号選択部は、前記第１の信号に含まれるコマンド情報と前記第２の信号に含まれるコマンド情報とが異なる場合に、前記選択信号の状態を前記第２の信号を出力させる状態とすることを特徴とする、請求項１乃至８いずれか１項に記載の信号転送装置。
【請求項１０】
前記転送制御部は、前記受信した第１の信号に係る通信方式と前記通信方式記憶部に記憶されている全通信方式とが不一致である場合に、前記受信した第１の信号に係る通信方式に関する情報を前記通信方式記憶部に記憶することを特徴とする、請求項１乃至９いずれか１項に記載の信号転送装置。
【請求項１１】
前記転送制御部は、前記受信した第１の信号に係る通信方式と前記通信方式記憶部に記憶されている全通信方式とが不一致である場合に、前記受信した第１の信号を前記第２の信号として出力することを特徴とする、請求項１０に記載の信号転送装置。
【請求項１２】
バス接続において能動的にデータ転送を開始可能なバスマスター装置であって、
請求項１乃至１１いずれか１項に記載の信号転送装置を有することを特徴とするバスマスター装置。
【請求項１３】
バスマスターとバススレーブとの間で信号を転送する信号転送方法であって、
前記バスマスターから第１の信号を受信し、
前記受信した第１の信号に基づいて当該第１の信号に対応する第２の信号に関する情報を取得して出力し、
前記バスマスター及び前記第２の信号の少なくとも一方の状態に応じて前記第１の信号と前記第２の信号とのいずれか一方を出力させる選択信号を出力することを特徴とする、信号転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号転送装置、バスマスター装置及び信号転送方法に関し、特にデータ転送中のリセット動作に関する。
【背景技術】
【０００２】
近年、マイクロコンピュータ（以下、マイコン）は家電製品等にも搭載されるようになり、あらゆる製品のデジタル化が進んでいる。マイコンの制御においては、初期化のためにリセット信号を用いることが一般的である。マイコンの専用端子として設けられたリセット端子に信号を入力することにより、マイコンが初期化される。この様な初期化動作は、例えば装置の起動時や装置動作における異常発生時に実行される。上述したように、リセット動作は外部からマイコンに入力される信号に基づいて実行されるため、マイコンの動作クロックとは無関係に実行されることが一般的である。このため、マイコンがメモリ等と通信を実行している最中にリセット信号が入力されると、通信の途中でマイコンが強制的にリセットされ、通信相手のデータ破壊等につながる。
【０００３】
この様な課題に対し、外部から入力されるリセット信号をマイコンのクロック信号に同期すると共に、マイコンのバスアクセス信号の状態を検出し、バスアクセス信号が非活性化状態である場合にリセット動作が実行されるようにする方法が提案されている。（例えば特許文献１参照）。特許文献１の方法によれば、マイコンが他の機器と通信している最中にリセット信号が入力された場合であっても、通信が完了してバスアクセス信号が非活性化状態となったときに初めてリセット動作が実行されるため、通信途中でリセット動作が実行されることにより、通信相手のデータ破壊等の不具合が発生することがなくなる。
【特許文献１】特開平５−１２７７８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、マイコンが通信途中にハングアップし、リセット信号が入力された場合を考えると、マイコンは通信を完了することが出来ない。従って、特許文献１の技術ではバスアクセス信号が非活性化状態とならず、いつまでもリセット動作が実行されない。結果的に、装置を復旧させるためにマイコン単体のリセット動作を行うことができないため、装置全体の再起動が必要となる。また、マイコンが実行途中であった通信も完了されないため、通信相手のデータ破壊につながる可能性もある。このような課題は、マイコンとメモリ等の通信の場合に限らず、バスマスターとバススレーブとの通信において同様に課題となる。バスマスターの例としては、マイコン、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）及びＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）並びにＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＩＥＥＥ１３９４（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃ  Ｅｎｇｉｎｅｅｒｓ  １３９４）、ＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）、ＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）、等の各種インターフェースコントローラ等が挙げられる。また、バススレーブの例としては、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の作業用メモリのコントローラ等が挙げられる。
【０００５】
本発明は、上述した実情を考慮してなされたもので、バスマスターが通信途中でハングアップした場合であってもバスサイクルを完了し、もってバススレーブにおける不具合発生を防ぐことを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、請求項１に記載の発明は、バスマスターとバススレーブとの間で信号を転送する信号転送装置であって、前記バスマスターと前記バススレーブとの間の通信方式に関する情報を記憶している通信方式記憶部と、前記バスマスターから受信した第１の信号に基づいて当該第１の信号に対応する第２の信号に関する情報を前記通信方式記憶部から取得して出力する転送制御部と、前記バスマスター及び前記転送制御部の少なくとも一方の状態に応じて前記第１の信号と前記第２の信号とのいずれか一方を出力させる選択信号を出力する信号選択部とを有することを特徴とする。
【０００７】
また、請求項２に記載の発明は、請求項１に記載の信号転送装置において、前記転送制御部は、前記第１の信号の受信状態及び前記２の信号の出力状態に基づいて前記バスマスターの初期化可否を示す初期化可否信号を出力することを特徴とする。
【０００８】
また、請求項３に記載の発明は、請求項２に記載の信号転送装置において、前記バスマスターの初期化のために外部から入力される初期化信号と前記初期化可否信号とに基づいて前記バスマスターに初期化動作を実行させる初期化実行信号を生成する初期化制御部を更に有することを特徴とする。
【０００９】
また、請求項４に記載の発明は、請求項３に記載の信号転送装置において、前記転送制御部は、前記第１の信号が非活性状態から活性状態に遷移した場合に前記初期化可否信号を“Ｈｉｇｈ”状態から“Ｌｏｗ”状態に遷移させることを特徴とする。
【００１０】
また、請求項５に記載の発明は、請求項３または４に記載の信号転送装置において、前記転送制御部は、前記第１の信号及び前記第２の信号の少なくとも一方が活性状態から非活性状態に遷移した場合に前記初期化可否信号を“Ｈｉｇｈ”状態から“Ｌｏｗ”状態に遷移させることを特徴とする。
【００１１】
また、請求項６に記載の発明は、請求項４または５に記載の信号転送装置において、前記初期化信号は、“Ｈｉｇｈ”状態において前記バスマスターを初期化させることを示し、前記初期化制御部は、前記初期化信号と前記初期化可否信号との論理積を前記初期化実行信号として出力することを特徴とする。
【００１２】
また、請求項７に記載の発明は、請求項１乃至６いずれか１項に記載の信号転送装置において、前記選択信号に基づいて前記第１の信号と前記第２の信号とを切り換えて出力する信号切り換え部を更に有することを特徴とする。
【００１３】
また、請求項８に記載の発明は、請求項１乃至７いずれか１項に記載の信号転送装置において、前記信号選択部は、前記バスマスターがハングアップした場合に、前記選択信号の状態を前記第２の信号を出力させる状態とすることを特徴とする。
【００１４】
また、請求項９に記載の発明は、請求項１乃至８いずれか１項に記載の信号転送装置において、前記第１の信号及び前記第２の信号は、前記通信方式に応じて定められるコマンド情報を有し、前記信号選択部は、前記第１の信号に含まれるコマンド情報と前記第２の信号に含まれるコマンド情報とが異なる場合に、前記選択信号の状態を前記第２の信号を出力させる状態とすることを特徴とする。
【００１５】
また、請求項１０に記載の発明は、請求項１乃至９いずれか１項に記載の信号転送装置において、前記転送制御部は、前記受信した第１の信号に係る通信方式と前記通信方式記憶部に記憶されている全通信方式とが不一致である場合に、前記受信した第１の信号に係る通信方式に関する情報を前記通信方式記憶部に記憶することを特徴とする。
【００１６】
また、請求項１１に記載の発明は、請求項１０に記載の信号転送装置において、前記転送制御部は、前記受信した第１の信号に係る通信方式と前記通信方式記憶部に記憶されている全通信方式とが不一致である場合に、前記受信した第１の信号を前記第２の信号として出力することを特徴とする。
【００１７】
また、請求項１２に記載の発明は、バス接続において能動的にデータ転送を開始可能なバスマスター装置であって、請求項１乃至１１いずれか１項に記載の信号転送装置を有することを特徴とする。
【００１８】
また、請求項１３に記載の発明は、バスマスターとバススレーブとの間で信号を転送する信号転送方法であって、前記バスマスターから第１の信号を受信し、前記受信した第１の信号に基づいて当該第１の信号に対応する第２の信号に関する情報を取得して出力し、前記バスマスター及び前記第２の信号の少なくとも一方の状態に応じて前記第１の信号と前記第２の信号とのいずれか一方を出力させる選択信号を出力することを特徴とする。
【発明の効果】
【００１９】
本発明によれば、バスマスターが通信途中でハングアップした場合であってもバスサイクルを完了し、もってバススレーブにおける不具合発生を防ぐことが可能となる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
本発明は、バスマスターとバススレーブとの間に信号転送装置を設け、バスマスターがバスサイクル途中でハングアップした場合であっても、その信号転送装置がバススレーブとの通信を続行してバスサイクルを完了させ、もってバススレーブにおける不具合発生を防ぐことをその要旨とする。
【実施例１】
【００２１】
図１は、本実施例に係る信号転送装置としてのデータ転送回路１００及びデータ転送回路１００がバスサイクルを仲介するバスマスター１及びバススレーブ２を示すブロック図である。図１に示すように、バスマスター１、バススレーブ２はシステムバス３を介して接続されており、バスマスター１はデータ転送回路１００を介してシステムバス３に接続されている。バスマスター１は、システムバス３を介して実行される通信において主となる構成であり、システムバス３を介した通信において能動的に通信を開始することができるマイコン、ＣＰＵ、ＤＭＡやＵＳＢ、ＩＥＥＥ１３９４、ＳＡＴＡ、ＩＤＥ等の各種インターフェースコントローラ等が該当する。即ち、バスマスター１がバススレーブに対してコマンドを送信し、そのコマンドに対してバススレーブが応答する形態で通信が実行される。バススレーブ２は、システムバス３を介して実行される通信においてバスマスタ−１に従って動作する構成であり、具体的にはＤＲＡＭ等メインメモリのコントローラ等が該当する。
【００２２】
データ転送回路１００は、図１に示すように転送制御部１０１、プロトコル記憶部１０２、信号選択部１０３、論理積回路１０４、セレクタ１０５及び入出力選択部１０６ａ、１０６ｂを有する。データ転送回路１００は、バスマスター１とバススレーブ２との通信において、バスマスター１からバススレーブ２へのコマンドの発行を仲介し、コマンドの送信が途中で途切れることなく最後まで完了されるように動作する。また、データ転送回路１００は、バスマスター１を初期化するために外部から入力されるＲＥＳＥＴ信号をバスマスター１に代わって受信し、バスマスター１とバススレーブ２との通信状態に基づいてバスマスター１の初期化タイミングを判断してＲＥＳＥＴ＿ｉ信号としてバスマスター１に入力する。以下、夫々の構成について具体的に説明する。
【００２３】
転送制御部１０１は、バスマスター１からバススレーブ２に対して発行されるコマンドであるＭａｓＢｕｓ信号を受信し、そのコマンドのプロトコルを判断すると共にその判断結果に基づいてＭａｓＢｕｓ信号を出力する。また、転送制御部１０１は、ＭａｓＢｕｓ信号のプロトコル判断に際して、プロトコル記憶部１０２に格納されているプロトコル情報を参照する。更に、転送制御部１０１は、ＭａｓＢｕｓ信号及びＤｅｖＢｕｓ信号の状態に基づいてバスマスター１の初期化可否の状態を示すｉｄｌｅ＿ｄｅｔ信号を出力する。プロトコル記憶部１０２は、バスマスター１からバススレーブ２に対して発行されるコマンドのプロトコル情報を格納している。即ち、プロトコル記憶部１０２は、バスマスター１とバススレーブ２との通信方式に関する情報を記憶している。バスマスター１からバススレーブ２に発行されるコマンドは複数種類あるが、それらは予め定められたプロトコルに従う。プロトコル記憶部１０２はそれら予め定められたプロトコルを記憶しており、転送制御部１０１からの読み出し命令に従って対応するプロトコル情報を転送制御部１０１に送信する。詳細は後述する。
【００２４】
信号選択部１０３は、バスマスター１から転送制御部１０１に入力されるＭａｓＢｕｓ信号と同様の信号及び転送制御部１０１から出力されるＤｅｖＢｕｓ信号を比較し、両者の差異に基づいて選択信号となるＳＥＬＥＣＴ信号を出力する。詳細は後述する。論理積回路１０４は外部から入力されるＲＥＳＥＴ信号（初期化信号）と転送制御部１０１から出力されるｉｄｌｅ＿ｄｅｔ信号（初期化可否信号）との論理積としてＲＥＳＥＴ＿ｉ信号（初期化実行信号）を出力する。このＲＳＥＴ＿ｉ信号はバスマスター１に入力される。即ち、論理積回路１０４は、バスマスター１の初期化動作を制御する初期化制御部として動作する。セレクタ１０５は、ＭａｓＢｕｓ信号及びＤｅｖＢｕｓ信号が入力されており、ＳＥＬＥＣＴ信号に基づいていずれか一方が出力される。即ち、セレクタ１０５は、信号切り換え部として動作する。入出力選択部１０６ａ、１０６ｂは、バスマスター１とバススレーブ２とのシステムバス３を介した双方向通信を保障するために設けられる。
【００２５】
バスマスター１から出力されデータ転送回路１００に入力される信号（ＭａｓＢｕｓ信号）は入出力選択部１０６ａによって転送制御部１０１、信号選択部１０３及びセレクタ１０５に対して振り分けられる。他方、バススレーブ２からバスマスター１に対して送信される信号であって入出力選択部１０６ａに入力される信号は、バスマスター１に対して送信される。また、バススレーブ２からバスマスター１に対して送信される信号であって、入出力選択部１０６ｂに入力される信号は、入出力選択部１０６ｂによって入力出力選択部１０６ａに入力されるように振り分けられる。他方、バスマスター１からバススレーブ２に送信される信号であって、入出力選択部１０６ｂに入力される信号（セレクタ１０５の出力信号）は、システムバス３を介してバススレーブ２に送信される。
【００２６】
次に、図２を用いて、プロトコル記憶部１０２に記憶されているプロトコル情報について説明する。図２に示すように、プロトコル記憶部１０２には、第１クロックのビットストリーム、第２クロック以降のビットストリーム及び夫々のプロトコルを一意に識別するＩＤが含まれる。図２に示すように、バスマスター１からバススレーブ２に送信されるＭａｓＢｕｓ信号は１クロックによって送信されるコマンド（ＣＭＤ１ａ、ＣＭＤ２ａ・・・）が複数連なったコマンド群として構成される。第１クロックのビットストリームは、転送制御部１０１がプロトコル記憶部１０２を検索する際に検索キーとなる。即ち、転送制御部１０１は、ＭａｓＢｕｓ信号の第１クロックの受信に応じてプロトコル記憶部１０２を検索し、その第１クロックに対応する第２クロック以降の情報をプロトコル記憶部１０２から取得し、ＤｅｖＢｕｓ信号として出力する。夫々のプロトコルによってその情報量が異なるため、第２クロック以降の全クロック数は夫々のプロトコルによって異なる。
【００２７】
図３は、図２に示すプロトコル記憶部１０２に示す１クロック分のコマンドの内容を模式的に示す図である。図３に示すように、１クロック分のコマンドは、大きく分けてコマンド領域、データ領域及び予備領域を有する。コマンド領域はＣＭＤ１ａ、ＣＭＤ１ｂ、・・・夫々のコマンドにおいて定められた情報である。即ち、図２中のＩＤ０１で示すプロトコルに基づく命令が、夫々異なる命令として２回実行された場合であっても、双方の命令に含まれるコマンドＣＭＤ１ａ、ＣＭＤ１ｂ・・・に含まれるコマンド領域の情報は夫々同一である。データ領域は、夫々のコマンドにおいて適宜異なる情報が格納される領域である。即ち、データの読み出し命令であれば、読み出し先のアドレス情報等が格納され、データの書き込み命令であれば、書き込むべきデータが格納される。予備領域は、夫々のプロトコルにおいて適宜利用される領域であり、その用いられ方は夫々のプロトコルによって異なる。図２に示すプロトコル記憶部１０２に記憶されているプロトコル情報には、コマンド領域及び予備領域の情報が格納されており、データ領域の情報はブランク若しくはダミーとなっている。
【００２８】
次に、図４を用いて、本実施例に係るデータ転送回路１００の通常動作について説明する。図４は、本実施例に係るデータ転送回路１００においてバスマスター１からバススレーブ２に対して図２に示すＩＤ０１のプロトコルに従った命令が送信される場合を示すタイミングチャートである。図４に示すように、バスマスター１から命令が発行され、クロックＴ0においてＭａｓＢｕｓ信号として転送制御部１０１にＣＭＤ１ａが入力されると、転送制御部１０１は受信したＣＭＤ１ａの情報に基づいてプロトコル記憶部１０２を検索し、ＣＭＤ２ａ〜ＣＭＤ６ａに関する情報を取得する。ＭａｓＢｕｓ信号は転送制御部１０１の他、信号選択部１０３及びセレクタ１０５に入力されている。
【００２９】
クロックＴ0の状態においては、ＤｅｖＢｕｓ信号はアイドル状態であり、信号選択部１０３に入力されるＭａｓＢｕｓ信号とＤｅｖＢｕｓ信号とは異なるが、信号選択部１０３は、ＤｅｖＢｕｓ信号がアイドル状態の場合回路が通常状態であることを示す“Ｌｏｗ”信号をＳＥＬＥＣＴ信号として出力する。セレクタ１０５は、ＳＥＬＥＣＴ信号として“Ｌｏｗ”が入力されている場合、ＭａｓＢｕｓ信号入力を出力する。従って、クロックＴ0のタイミングにおいては、入出力選択回路１０６ｂにはセレクタ１０５からＭａｓＢｕｓ信号が入力され、データ転送回路１００はＭａｓＢｕｓ信号としてＣＭＤ１ａを出力する。
【００３０】
次に、クロックＴ0の次クロックであるクロックＴ1のタイミングにおいて、バスマスター１からの出力してＣＭＤ２ａが出力され、ＭａｓＢｕｓ信号として転送制御部１０１、信号選択部１０３、セレクタ１０５に入力される。転送制御部１０１は、前クロックにおいてプロトコル記憶部１０２から取得したプロトコル情報に基づき、ＣＭＤ２ａをＤｅｖＢｕｓ信号として出力する。ここで、転送制御部１０１がＤｅｖＢｕｓ信号として出力するコマンドＣＭＤ２ａは、プロトコル記憶部１０２から取得したＣＭＤ２ａであり、そのコマンド領域はＭａｓＢｕｓ信号として受信するＣＭＤ２ａと同一であるが、そのデータ領域は異なる。
【００３１】
信号選択部１０３には、ＭａｓＢｕｓ信号としてのコマンドＣＭＤ２ａとＤｅｖＢｕｓ信号としてのコマンドＣＭＤ２ａとが入力されている。信号選択部１０３は、夫々のコマンドのコマンド領域を比較し、両者が一致するか否か確認する。ここで、クロックＴ1のタイミングにおけるＭａｓＢｕｓ信号としてのコマンドＣＭＤ２ａとＤｅｖＢｕｓ信号としてのコマンドＣＭＤ２ａとはそのデータ領域は異なるがコマンド領域は同一であるため、信号選択部１０３は回路が通常状態であることを示す信号“Ｌｏｗ”をＳＥＬＥＣＴ信号として出力する。即ち、状態判別回路１０３は、ＭａｓＢｕｓ信号として入力されているコマンドの所定領域が、転送制御部１０１及びプロトコル制御部１０２によって先読みされ、ＤｅｖＢｕｓ信号として出力されているコマンドの所定領域と一致するか否か確認することにより、ＭａｓＢｕｓ信号の正当性を確認する。その確認の結果、ＭａｓＢｕｓ信号が正当であると判断されれば“Ｌｏｗ”を正当でないと判断されれば“Ｈｉｇｈ”を出力する。
【００３２】
セレクタ１０５はＳＥＬＥＣＴ信号が“Ｌｏｗ”であるため、ＭａｓＢｕｓ信号入力を出力する。結果的に、クロックＴ1のタイミングにおいても、データ転送回路１００は、ＭａｓＢｕｓ信号としてＣＭＤ２ａを出力する。以降、クロックＴ2〜Ｔ5まで同様の動作が繰り返され、バスマスター１から出力された一連のコマンド群ＣＭＤ１ａ〜ＣＭＤ６ａがバススレーブ２に対して送信される。その後、クロックＴ6においてバスマスター１の出力ＭａｓＢｕｓ信号がアイドル状態となると共に、転送制御部１０１の出力ＤｅｖＢｕｓ信号もアイドル状態となる。このようにして、一の転送命令に係るバスサイクルが終了する。従って、バスマスター１がハングアップするようなことがなく、ＭａｓＢｕｓ信号が正常に出力されていれば、データ転送回路１００はＭａｓＢｕｓ信号をそのまま出力するため、通常動作に不具合をあたえることなく、バスサイクルを監視することが可能である。
【００３３】
次に、図５を用いて、本実施例に係るデータ転送回路１００の動作において、バスサイクル中にＲＥＳＥＴ信号が入力された場合の動作を説明する。ＲＥＳＥＴ信号が入力された論理積回路１０４の出力であるＲＥＳＥＴ＿ｉ信号の状態は、転送制御部１０１から論理積回路１０４に入力されるｉｄｌｅ＿ｄｅｔ信号の状態によって決定される。ここで、転送制御部１０１は、ＭａｓＢｕｓ信号がアイドル状態である場合、即ち、バスマスター１とバススレーブ２との通信状態が非活性状態である場合に、バスマスター１の初期化を許可する“Ｈｉｇｈ”信号を出力する。従って、ＲＥＳＥＴ信号“Ｈｉｇｈ”が外部から入力されたタイミングにおいて、ｉｄｌｅ＿ｄｅｔ信号が“Ｈｉｇｈ”であれば、その論理積は“Ｈｉｇｈ”となるため、バスマスター１に対してＲＥＳＥＴ＿ｉ信号として“Ｈｉｇｈ”が入力され、バスマスター１が初期化される。
【００３４】
また、転送制御部１０１は、ＭａｓＢｕｓ信号がアイドル状態からコマンド転送状態、即ち図４に示すクロックＴ0のタイミング以降のように、コマンドＣＭＤ１ｃが入力されているような状態となったことを検知して、ｉｄｌｅ＿ｄｅｔ信号を“Ｈｉｇｈ”から“Ｌｏｗ”に遷移させる。これにより、外部からＲＥＳＥＴ信号が入力された場合であっても、論理積回路１０４の出力は“Ｌｏｗ”
に固定されるため、バスマスター１とバススレーブ２との通信実行中に、バスマスター１が初期化されてしまい、バスサイクルが途切れることによるバススレーブ２の不具合発生を防ぐことが可能となる。更に、転送制御部１０１は、ｉｄｌｅ＿ｄｅｔ信号が“Ｌｏｗ”の場合に信号を“Ｈｉｇｈ”に遷移させる条件として２つの条件を有する。１つは、“Ｈｉｇｈ”から“Ｌｏｗ”となる場合の逆の条件であり、即ち、ＭａｓＢｕｓ信号が活性状態からアイドル状態となったことを検出し場合である。もう１つは、転送制御部１０１がプロトコル記憶部１０２から取得してＤｅｖＢｕｓ信号として出力しているコマンドが終了し、ＤｅｖＢｕｓ信号がアイドル状態となったことを検出した場合である。これについては後に詳述する。
【００３５】
図５は、本実施例に係るデータ転送回路１００においてバスマスター１からバススレーブ２に対して図２に示すＩＤ０３のプロトコルに従った命令が送信される場合を示すタイミングチャートである。図５に示すように、クロックＴ2のタイミングまでは図４に示す場合と略同一の動作を行う。尚、クロックＴ0のタイミングにおいて、転送制御部１０１は、ＭａｓＢｕｓ信号がアイドル状態から活性状態となったことを検出してｉｄｌｅ＿ｄｅｔ信号を“Ｈｉｇｈ”から“Ｌｏｗ”に遷移させる。ここで、クロックＴ2のタイミングの後、データ転送回路１００からコマンドＣＭＤ３ｃが発信されている間に、ＲＥＳＥＴ信号が“Ｌｏｗ”から“Ｈｉｇｈ”に遷移した場合、即ち外部からＲＥＳＥＴ信号が入力された場合を考える。このとき、クロックＴ0のタイミング以降、ＭａｓＢｕｓ信号及びＤｅｖＢｕｓ信号のいずれもｉｄｌｅ＿ｄｅｔ信号を“Ｌｏｗ”から“Ｈｉｇｈ”に遷移させる条件を満たしていないため、転送制御部１０１はｉｄｌｅ＿ｄｅｔ信号として“Ｌｏｗ”を出力しており、論理積回路１０４の出力ＲＥＳＥＴ＿ｉ信号は“Ｌｏｗ”に固定されている。従って、バスマスター１は初期化されず、クロックに従い、ＭａｓＢｕｓ信号としてコマンドＣＭＤ３ｃ、ＣＭＤ４ｃ、ＣＭＤ５ｃを出力する。
【００３６】
クロックＴ5においてバスマスター１の出力ＭａｓＢｕｓ信号がアイドル状態となると共に、転送制御部１０１の出力ＤｅｖＢｕｓ信号もアイドル状態となる。これにより、転送制御部１０１は、ｉｄｌｅ＿ｄｅｔ信号を“Ｌｏｗ”から“Ｈｉｇｈ”に遷移させる。このとき、ＲＥＳＥＴ信号として論理積回路１０４に“Ｈｉｇｈ”が入力され続けているため、ｉｄｌｅ＿ｄｅｔ信号が“Ｌｏｗ”から“Ｈｉｇｈ”に遷移したことに基づき、論理積回路１０４の出力であるＲＥＳＥＴ＿ｉ信号が“Ｈｉｇｈ”に遷移し、バスマスター１が初期化される。このように、本実施例に係るデータ転送回路１００は、バスマスター１とバススレーブ２とのバスサイクルを保障し、両者の通信途中にバスマスター１が初期化されることによるバススレーブ２の不具合発生を防ぐことが可能となる。
【００３７】
次に、図６を用いて、本実施例に係るデータ転送回路１００の動作において、バスサイクル中にバスマスター１がハングアップした場合の動作について説明する。図６は、本実施例に係るデータ転送回路１００においてバスマスター１からバススレーブ２に対して図２に示すＩＤ０４のプロトコルに従った命令が送信され、すべての命令が送信完了する前にバスマスター１がハングアップした場合を示すタイミングチャートである。図６に示すように、クロックＴ2のタイミングの前までは、図５に示す動作と略同等の動作を実行する。ここで、クロックＴ2のタイミングにおいて、ＤｅｖＢｕｓ信号はコマンドＣＭＤ２ｄからコマンドＣＭＤ３ｄに切り換わるが、バスマスター１はハングアップしており、ＣＭＤ２ｄのままとなった場合を考える。このとき、信号選択部１０３は、ＭａｓＢｕｓ信号がＣＭＤ２ｄであるのに対してＤｅｖＢｕｓ信号がＣＭＤ３ｄであることを検知し、ＭａｓＢｕｓ信号が正当でないと判断してＳＥＬＥＣＴ信号を“Ｌｏｗ”から“Ｈｉｇｈ”に遷移させる。セレクタ１０５は、ＳＥＬＥＣＴ信号が“Ｈｉｇｈ”となったため、出力をＭａｓＢｕｓ信号からＤｅｖＢｕｓ信号に切り換える。これにより、セレクタ１０５から入出力選択回路１０６ｂにはＤｅｖＢｕｓ信号がクロックに従って出力される。即ち、クロックＴ2のタイミング以降はＤｅｖＢｕｓ信号のＣＭＤ３ｄが出力され、クロックＴ3のタイミング以降はＤｅｖＢｕｓ信号のＣＭＤ４ｄが出力される。
【００３８】
バスマスター１がハングアップすることにより、本来連続してバススレーブ２に入力されるべきコマンド群が途中で途切れてしまう。これにより、バススレーブ２に不具合が発生する可能性がある。上述した通り、ＤｅｖＢｕｓ信号として出力されるコマンドは転送制御部１０１がプロトコル記憶部１０２から取得したコマンド情報であり、コマンド領域はＭａｓＢｕｓ信号と同一であるがデータ領域はブランク若しくはダミーデータとなっている。従って、ハングアップしてＭａｓＢｕｓ信号を出力不可能となったバスマスター１に代わり、プロトコル記憶部に記憶されているコマンドに従ってＤｅｖＢｕｓ信号をバススレーブ２に入力したとしても、本来バスマスター１がバススレーブ２に対して実行しようとしていた処理を完全に完了することは出来ないが、本来連続してバススレーブ２に入力されるべきコマンド群のうち、コマンド領域のデータは入力することができる。従って、バスマスター１が完遂すべきであった処理を完遂することは出来ないが、バスサイクルを完了することができるため、バススレーブ２の不具合発生を防ぐことが可能となる。
【００３９】
尚、上記の説明においては、バスマスター１がデータ転送回路１００を介してシステムバス３に接続される例を説明したが、この他、例えばバスマスター１がデータ転送回路１００の機能を有していても良い。図７は、バスマスター１がデータ転送回路１００を有する例を示す図である。図７の例に示すバスマスター１は制御部１１、出力部１２、入力部１３、入出力選択部１４に加えてデータ転送回路１００を有する。制御部１１は出力部１２を介してＭａｓＢｕｓ信号を出力し、データ転送回路１００に入力する。データ転送回路１００は上記の説明と同様に動作する。また、入出力選択部１４は、図１の例に示す入出力選択部１０６ｂに対応する役割を担う。システムバス３側からバスマスター１に入力される信号は入出力選択部１４によって振り分けられ、入力部１３を経て制御部１１に入力される。このような構成であっても、上記と同等の効果を奏することができる。また、図７の例においては、バスマスター１にデータ転送回路１００の機能を持たせたことにより、１のデバイスとして集積化が可能となり、回路基板への実装スペース等の点において有効である。
【００４０】
バスマスター１に対するデータ転送装置１００の他の適用態様につき、更に図８（ａ）〜（ｃ）を用いて説明する。図８（ａ）は図１に示す態様を簡易化して示すブロック図である。即ち、バスマスター１はデータ転送回路１００を介してシステムバス３に接続されており、バスマスター１がデータ転送回路１００にＭａｓＢｕｓ信号を入力するのに対し、データ転送回路１００は、ＭａｓＢｕｓ信号若しくはＤｅｖＢｕｓ信号をシステムバス３に対して出力する。また、外部からＲＥＳＥＴ信号が入力されるのに対し、データ転送回路１００はＭａｓＢｕｓ信号若しくはＤｅｖＢｕｓ信号の状態に基づき、ＲＥＳＥＴ＿ｉ信号を出力する。
【００４１】
図８（ｂ）は、図１に示す例においてセレクタ１０５がデータ転送回路１００の外部にセレクタ４として設けられると共に、データ転送回路１００がバスマスター１の出力端子に接続されている例を示す。図８（ｂ）に示すように、データ転送回路１００はバスマスター１から入力されるＭａｓＢｕｓ信号に基づき、ＤｅｖＢｕｓ信号及びＳＥＬＥＣＴ信号を出力する。バスマスター１が出力するＭａｓＢｕｓ信号はデータ転送回路１００及びセレクタ４に入力される。セレクタ４はバスマスター１から入力されるＭａｓＢｕｓ信号とデータ転送回路１００から入力されるＤｅｖＢｕｓ信号を、同様にデータ転送回路１００から入力されるＳＥＬＥＣＴ信号に基づいて切り換えてシステムバス３に出力する。
【００４２】
図８（ｃ）に示す例は、図８（ｂ）に示す例において、更に論理積回路１０４を論理積回路５としてデータ転送回路１００の外部に設ける例を示す図である。データ転送回路１００は。バスマスター１００から入力されるＭａｓＢｕｓ信号及び独自に生成するＤｅｖＢｕｓ信号に基づいてｉｄｌｅ＿ｄｅｔ信号を生成する。論理積回路５は外部から入力されるＲＥＳＥＴ信号とバスマスター１から入力されるｉｄｌｅ＿ｄｅｔ信号との論理積をＲＥＳＥＴ＿ｉ信号としてバスマスター１に対して出力する。このように本実施例に係るデータ転送方法によるバスサイクルの保障効果は様々な態様によって実現可能であり、データ転送回路１００の構成は適宜選択され、実装される。
【００４３】
また、上記の説明においては、信号選択部１０２は、ＭａｓＢｕｓ信号とＤｅｖＢｕｓ信号との比較に基づいて動作する例を説明したが、少なくともバスマスター１及び転送制御部１０１の信号出力状態に応じて動作すればよく、ＭａｓＢｕｓ信号若しくはＤｅｖＢｕｓ信号以外の信号に基づいて動作しても良い。例えば、信号選択部１０２は、バスマスター１がハングアップしたことを示す信号を受信することにより、ＭａｓＢｕｓ信号とＤｅｖＢｕｓ信号とのいずれかを出力させるＳＥＬＥＣＴ信号を切り換えても良い。
【００４４】
また、上記の説明において、転送制御部１０１がＭａｓＢｕｓ信号の第１クロックに基づいてプロトコル記憶部１０３を検索し、対応する第２クロック以降のコマンド情報を取得する例を説明した。この他、例えばプロトコル記憶部１０３が、第２クロック以降のコマンド情報も個別に記憶しており、転送制御部１０１は、ＭａｓＢａｓ信号としてバスマスター１から受信したコマンドに基づいたプロトコル記憶部１０３の検索を毎クロック行うようにしても良い。即ち、図４の例において転送制御部１０１は、クロックＴ0のタイミングにおいてＭａｓＢｕｓ信号として受信したコマンドＣＭＤ１ａに基づいてプロトコル記憶部１０３からＤｅｖＢｕｓ信号となるためのＣＭＤ２ａを取得し、その取得したＣＭＤ２ａをクロックＴ1のタイミングにおいてＤｅｖＢｕｓ信号として出力すると共に、ＭａｓＢｕｓ信号として受信したコマンドＣＭＤ２ａに基づいてプロトコル記憶部１０３から次のＤｅｖＢｕｓ信号となるためのＣＭＤ３ａを取得する。以降、同様の動作を一連のコマンド群が終了するまで実行することにより、上記と同様の効果を得ることが可能となる。尚、転送の途中でバスマスター１がハングアップした場合においては、上記の説明と同様に、以降のコマンドを一括して取得することにより、上記と同様にバスサイクルを保障することが可能となる。
【実施例２】
【００４５】
実施例１においては、データ転送回路１００に含まれるプロトコル記憶部１０２がバスマスター１から発行され得るコマンドのプロトコルを予め記憶している例を説明した。しかしながら、例えばＣＰＵの交換等でバスマスター１が変わり、バスマスター１から発行され得るコマンドのプロトコルが増加若しくは変化する場合、プロトコル記憶部１０２の更新若しくはデータ転送回路１００の交換等が必要となる場合がある。本実施例においては、データ転送制御部１００がバスマスター１から発行されるプロトコルの学習機能を有する例を説明する。尚、実施例１と同様の符号を付す構成については実施例１と同一又は相当部を示し、説明を省略する。
【００４６】
本実施例に係るデータ転送回路１００の全体構成は、概ね図１に示す構成と同一である。ここで、本実施例に係る転送制御部１０１は、実施例１に示す機能に加えて、バスマスター１から新たなプロトコルに従ったコマンドが入力された場合に、そのプロトコルをプロトコル記憶部１０２に記憶する機能及びＭａｓＢｕｓ信号入力とＤｅｖＢｕｓ信号出力とをバイパスする、即ちＭａｓＢｕｓ信号として入力されている信号をそのままＤｅｖＢｕｓ信号として出力する機能を有する。図９を用いて、本実施例に係る転送制御部１０１の動作について説明する。図９は、本実施例に係る転送制御部１０１の動作を示すフローチャートである。図９に示すように、転送制御部１０１は、ＭａｓＢｕｓ信号として、図４に示すクロックＴ0のタイミングのように第１クロックコマンドを受信すると（Ｓ９０１）、受信した第１クロックコマンドを用いてプロトコル記憶部１０２を検索する（Ｓ９０２）。
【００４７】
Ｓ９０２の検索の結果、プロトコル記憶部１０２に該当するプロトコルが格納されていなければ（Ｓ９０３）、転送制御部１０１はＭａｓＢｕｓ信号入力とＤｅｖＢｕｓ信号出力とをバイパスする（Ｓ９０４）。これにより、ＤｅｖＢｕｓ信号としてＭａｓＢｕｓ信号と同一の信号が出力される。また、転送制御部１０１は、Ｓ９０２の検索の結果該当するプロトコルがない場合（Ｓ９０３）、Ｓ９０１で受信した第１クロックコマンド以降、毎クロックＭａｓＢｕｓ信号として入力されるコマンドをプロトコル記憶部１０２に記憶する（Ｓ９０５）。このとき記憶される情報は、図３に示すコマンド領域及び予備領域であり、データ領域にはブランク若しくはダミーデータを記憶する。
【００４８】
転送制御部１０１は、ＭａｓＢｕｓ信号としてコマンドが入力されている間は、プロトコル記憶を毎クロック繰り返す（Ｓ９０５）。ＭａｓＢｕｓ信号がアイドル状態となったことを検出すると（Ｓ９０６）、転送制御部１０１は、ＭａｓＢｕｓ信号入力とＤｅｖＢｕｓ信号出力とのバイパスを解除すると共に（Ｓ９０７）、当該動作によってプロトコル記憶部１０２に記憶した一連のコマンド群に対して、図２に示すようにＩＤを割り振って（Ｓ９０８）プロトコル記憶を完了し、処理を終了する。他方、Ｓ９０３において、該当するプロトコルが検索された場合、転送制御部１０１は実施例１において説明した通常動作を実行し、処理を終了する。このようにして、新たなプロトコルの学習が完了する。このようにして学習されたプロトコルが再度入力された場合は、Ｓ９０３において街頭プロトコルとして検索され、転送制御部１０１が通常通りの処理を実行するため、新たなプロトコルに対しても実施例１と同様にバスサイクルを保障する機能を発揮することが可能となる。
【００４９】
また、本実施例においては、プロトコル記憶部１０２に記憶されていないコマンドが入力された場合に、転送制御部１０１がＭａｓＢｕｓ信号入力とＤｅｖＢｕｓ信号出力とをバイパスすることにより、信号選択部１０３のＳＥＬＥＣＴ信号出力を“Ｌｏｗ”に固定し、セレクタ１０５の出力がＭａｓＢｕｓ信号となるようにしている。この他の例として、実施例１において説明したように、信号選択部１０３のＳＥＬＥＣＴ信号出力が、ＤｅｖＢｕｓ信号がアイドル状態の場合“Ｌｏｗ”となるの場合を考える。このような場合、転送制御部１０１が、Ｓ９０３において該当プロトコル無しと判断された場合にＤｅｖＢｕｓ信号としてアイドル信号を出力し続けるようにすることにより、信号選択部１０３のＳＥＬＥＣＴ信号出力は“Ｌｏｗ”となり、セレクタ１０５の出力をＭａｓＢｕｓ信号とすることができる。
【００５０】
尚、この転送制御部１０１の機能（プロトコル記憶部１０２に該当プロトコルが無い場合に、ＤｅｖＢｕｓ信号としてアイドル信号を出力し続ける機能若しくはＭａｓＢｕｓ信号入力とＤｅｖＢｕｓ信号出力とをバイパスする機能）は、転送制御部１０１がプロトコル学習機能を有さない場合、即ち実施例１の場合にも適用可能である。これにより、予測不能なプロトコルが入力された場合に、信号選択部１０３が誤ってＳＥＬＥＣＴ信号として“Ｈｉｇｈ”を出力し、セレクタ１０５の出力がＤｅｖＢｕｓ信号となってバスマスター１とバススレーブ２との通信が断絶してしまうことを防ぐことができる。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施例に係るバスマスター、バススレーブ、システムバス及びデータ転送回路の全体構成を示すブロック図である。
【図２】本発明の実施例に係るプロトコル記憶部に格納される情報例を示す図である。
【図３】本発明の実施例に係る通信コマンドに含まれる情報を示す図である。
【図４】本発明の実施例に係るデータ転送回路の動作を示すタイミングチャートである。
【図５】本発明の実施例に係るデータ転送回路の動作を示すタイミングチャートである。
【図６】本発明の実施例に係るデータ転送回路の動作を示すタイミングチャートである。
【図７】本発明の他の実施例に係るデータ転送回路を含むバスマスター、バススレーブ及びシステムバスの全体構成を示すブロック図である。
【図８】本発明の他の実施例に係るバスマスター、バススレーブ、システムバス及びデータ転送回路の全体構成を示すブロック図である。
【図９】本発明の他の実施例に係るデータ転送回路の動作を示すフローチャートである。
【符号の説明】
【００５２】
１    バスマスター
２    バススレーブ
３    システムバス
１１    制御部
１２    出力部
１３    入力部
１４    入出力選択部
１００    データ転送回路
１０１    転送制御部
１０２    状態判別部
１０３    プロトコル記憶部
１０４    論理積回路
１０５    セレクタ
１０６ａ、１０６ｂ    入出力選択部
【図１】
2008234189.tif 000003
【図２】
2008234189.tif 000004
【図３】
2008234189.tif 000005
【図４】
2008234189.tif 000006
【図５】
2008234189.tif 000007
【図６】
2008234189.tif 000008
【図７】
2008234189.tif 000009
【図８】
2008234189.tif 000010
【図９】
2008234189.tif 000011