JP2008234189A - 信号転送装置、バスマスター装置及び信号転送方法 - Google Patents
信号転送装置、バスマスター装置及び信号転送方法 Download PDFInfo
- Publication number
- JP2008234189A JP2008234189A JP2007071335A JP2007071335A JP2008234189A JP 2008234189 A JP2008234189 A JP 2008234189A JP 2007071335 A JP2007071335 A JP 2007071335A JP 2007071335 A JP2007071335 A JP 2007071335A JP 2008234189 A JP2008234189 A JP 2008234189A
- Authority
- JP
- Japan
- Prior art keywords
- signal
- bus master
- bus
- state
- initialization
- 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.)
- Pending
Links
Images
Abstract
【課題】バスマスターが通信途中でハングアップした場合であってもバスサイクルを完了し、もってバススレーブにおける不具合発生を防ぐこと。
【解決手段】バスマスター1とバススレーブ2との間で信号を転送するデータ転送回路100であって、バスマスター1とバススレーブ2との間の通信方式に関する情報を記憶しているプロトコル記憶部103と、バスマスター1から受信したMasBus信号に基づいてそれにするDevBus信号に関する情報をプロトコル記憶部103から取得して出力する転送制御部101と、バスマスター1及び転送制御部101の少なくとも一方の状態に応じてMasBus信号とDevBus信号とのいずれか一方を出力させるSELECT信号を出力する信号選択部102とを有することを特徴とする。
【選択図】図1
【解決手段】バスマスター1とバススレーブ2との間で信号を転送するデータ転送回路100であって、バスマスター1とバススレーブ2との間の通信方式に関する情報を記憶しているプロトコル記憶部103と、バスマスター1から受信したMasBus信号に基づいてそれにするDevBus信号に関する情報をプロトコル記憶部103から取得して出力する転送制御部101と、バスマスター1及び転送制御部101の少なくとも一方の状態に応じてMasBus信号とDevBus信号とのいずれか一方を出力させるSELECT信号を出力する信号選択部102とを有することを特徴とする。
【選択図】図1
Description
本発明は、信号転送装置、バスマスター装置及び信号転送方法に関し、特にデータ転送中のリセット動作に関する。
近年、マイクロコンピュータ(以下、マイコン)は家電製品等にも搭載されるようになり、あらゆる製品のデジタル化が進んでいる。マイコンの制御においては、初期化のためにリセット信号を用いることが一般的である。マイコンの専用端子として設けられたリセット端子に信号を入力することにより、マイコンが初期化される。この様な初期化動作は、例えば装置の起動時や装置動作における異常発生時に実行される。上述したように、リセット動作は外部からマイコンに入力される信号に基づいて実行されるため、マイコンの動作クロックとは無関係に実行されることが一般的である。このため、マイコンがメモリ等と通信を実行している最中にリセット信号が入力されると、通信の途中でマイコンが強制的にリセットされ、通信相手のデータ破壊等につながる。
この様な課題に対し、外部から入力されるリセット信号をマイコンのクロック信号に同期すると共に、マイコンのバスアクセス信号の状態を検出し、バスアクセス信号が非活性化状態である場合にリセット動作が実行されるようにする方法が提案されている。(例えば特許文献1参照)。特許文献1の方法によれば、マイコンが他の機器と通信している最中にリセット信号が入力された場合であっても、通信が完了してバスアクセス信号が非活性化状態となったときに初めてリセット動作が実行されるため、通信途中でリセット動作が実行されることにより、通信相手のデータ破壊等の不具合が発生することがなくなる。
特開平5−127780号公報
しかしながら、マイコンが通信途中にハングアップし、リセット信号が入力された場合を考えると、マイコンは通信を完了することが出来ない。従って、特許文献1の技術ではバスアクセス信号が非活性化状態とならず、いつまでもリセット動作が実行されない。結果的に、装置を復旧させるためにマイコン単体のリセット動作を行うことができないため、装置全体の再起動が必要となる。また、マイコンが実行途中であった通信も完了されないため、通信相手のデータ破壊につながる可能性もある。このような課題は、マイコンとメモリ等の通信の場合に限らず、バスマスターとバススレーブとの通信において同様に課題となる。バスマスターの例としては、マイコン、CPU(Central Processing Unit)及びDMA(Direct Memory Access)並びにUSB(Universal Serial Bus)、IEEE1394(Institute of Electrical and Electronic Engineers 1394)、SATA(Serial ATA)、IDE(Integrated Drive Electronics)、等の各種インターフェースコントローラ等が挙げられる。また、バススレーブの例としては、RAM(Random Access Memory)等の作業用メモリのコントローラ等が挙げられる。
本発明は、上述した実情を考慮してなされたもので、バスマスターが通信途中でハングアップした場合であってもバスサイクルを完了し、もってバススレーブにおける不具合発生を防ぐことを目的とする。
上記の課題を解決するために、請求項1に記載の発明は、バスマスターとバススレーブとの間で信号を転送する信号転送装置であって、前記バスマスターと前記バススレーブとの間の通信方式に関する情報を記憶している通信方式記憶部と、前記バスマスターから受信した第1の信号に基づいて当該第1の信号に対応する第2の信号に関する情報を前記通信方式記憶部から取得して出力する転送制御部と、前記バスマスター及び前記転送制御部の少なくとも一方の状態に応じて前記第1の信号と前記第2の信号とのいずれか一方を出力させる選択信号を出力する信号選択部とを有することを特徴とする。
また、請求項2に記載の発明は、請求項1に記載の信号転送装置において、前記転送制御部は、前記第1の信号の受信状態及び前記2の信号の出力状態に基づいて前記バスマスターの初期化可否を示す初期化可否信号を出力することを特徴とする。
また、請求項3に記載の発明は、請求項2に記載の信号転送装置において、前記バスマスターの初期化のために外部から入力される初期化信号と前記初期化可否信号とに基づいて前記バスマスターに初期化動作を実行させる初期化実行信号を生成する初期化制御部を更に有することを特徴とする。
また、請求項4に記載の発明は、請求項3に記載の信号転送装置において、前記転送制御部は、前記第1の信号が非活性状態から活性状態に遷移した場合に前記初期化可否信号を“High”状態から“Low”状態に遷移させることを特徴とする。
また、請求項5に記載の発明は、請求項3または4に記載の信号転送装置において、前記転送制御部は、前記第1の信号及び前記第2の信号の少なくとも一方が活性状態から非活性状態に遷移した場合に前記初期化可否信号を“High”状態から“Low”状態に遷移させることを特徴とする。
また、請求項6に記載の発明は、請求項4または5に記載の信号転送装置において、前記初期化信号は、“High”状態において前記バスマスターを初期化させることを示し、前記初期化制御部は、前記初期化信号と前記初期化可否信号との論理積を前記初期化実行信号として出力することを特徴とする。
また、請求項7に記載の発明は、請求項1乃至6いずれか1項に記載の信号転送装置において、前記選択信号に基づいて前記第1の信号と前記第2の信号とを切り換えて出力する信号切り換え部を更に有することを特徴とする。
また、請求項8に記載の発明は、請求項1乃至7いずれか1項に記載の信号転送装置において、前記信号選択部は、前記バスマスターがハングアップした場合に、前記選択信号の状態を前記第2の信号を出力させる状態とすることを特徴とする。
また、請求項9に記載の発明は、請求項1乃至8いずれか1項に記載の信号転送装置において、前記第1の信号及び前記第2の信号は、前記通信方式に応じて定められるコマンド情報を有し、前記信号選択部は、前記第1の信号に含まれるコマンド情報と前記第2の信号に含まれるコマンド情報とが異なる場合に、前記選択信号の状態を前記第2の信号を出力させる状態とすることを特徴とする。
また、請求項10に記載の発明は、請求項1乃至9いずれか1項に記載の信号転送装置において、前記転送制御部は、前記受信した第1の信号に係る通信方式と前記通信方式記憶部に記憶されている全通信方式とが不一致である場合に、前記受信した第1の信号に係る通信方式に関する情報を前記通信方式記憶部に記憶することを特徴とする。
また、請求項11に記載の発明は、請求項10に記載の信号転送装置において、前記転送制御部は、前記受信した第1の信号に係る通信方式と前記通信方式記憶部に記憶されている全通信方式とが不一致である場合に、前記受信した第1の信号を前記第2の信号として出力することを特徴とする。
また、請求項12に記載の発明は、バス接続において能動的にデータ転送を開始可能なバスマスター装置であって、請求項1乃至11いずれか1項に記載の信号転送装置を有することを特徴とする。
また、請求項13に記載の発明は、バスマスターとバススレーブとの間で信号を転送する信号転送方法であって、前記バスマスターから第1の信号を受信し、前記受信した第1の信号に基づいて当該第1の信号に対応する第2の信号に関する情報を取得して出力し、前記バスマスター及び前記第2の信号の少なくとも一方の状態に応じて前記第1の信号と前記第2の信号とのいずれか一方を出力させる選択信号を出力することを特徴とする。
本発明によれば、バスマスターが通信途中でハングアップした場合であってもバスサイクルを完了し、もってバススレーブにおける不具合発生を防ぐことが可能となる。
以下、図面を参照して、本発明の実施形態を詳細に説明する。
本発明は、バスマスターとバススレーブとの間に信号転送装置を設け、バスマスターがバスサイクル途中でハングアップした場合であっても、その信号転送装置がバススレーブとの通信を続行してバスサイクルを完了させ、もってバススレーブにおける不具合発生を防ぐことをその要旨とする。
本発明は、バスマスターとバススレーブとの間に信号転送装置を設け、バスマスターがバスサイクル途中でハングアップした場合であっても、その信号転送装置がバススレーブとの通信を続行してバスサイクルを完了させ、もってバススレーブにおける不具合発生を防ぐことをその要旨とする。
図1は、本実施例に係る信号転送装置としてのデータ転送回路100及びデータ転送回路100がバスサイクルを仲介するバスマスター1及びバススレーブ2を示すブロック図である。図1に示すように、バスマスター1、バススレーブ2はシステムバス3を介して接続されており、バスマスター1はデータ転送回路100を介してシステムバス3に接続されている。バスマスター1は、システムバス3を介して実行される通信において主となる構成であり、システムバス3を介した通信において能動的に通信を開始することができるマイコン、CPU、DMAやUSB、IEEE1394、SATA、IDE等の各種インターフェースコントローラ等が該当する。即ち、バスマスター1がバススレーブに対してコマンドを送信し、そのコマンドに対してバススレーブが応答する形態で通信が実行される。バススレーブ2は、システムバス3を介して実行される通信においてバスマスタ−1に従って動作する構成であり、具体的にはDRAM等メインメモリのコントローラ等が該当する。
データ転送回路100は、図1に示すように転送制御部101、プロトコル記憶部102、信号選択部103、論理積回路104、セレクタ105及び入出力選択部106a、106bを有する。データ転送回路100は、バスマスター1とバススレーブ2との通信において、バスマスター1からバススレーブ2へのコマンドの発行を仲介し、コマンドの送信が途中で途切れることなく最後まで完了されるように動作する。また、データ転送回路100は、バスマスター1を初期化するために外部から入力されるRESET信号をバスマスター1に代わって受信し、バスマスター1とバススレーブ2との通信状態に基づいてバスマスター1の初期化タイミングを判断してRESET_i信号としてバスマスター1に入力する。以下、夫々の構成について具体的に説明する。
転送制御部101は、バスマスター1からバススレーブ2に対して発行されるコマンドであるMasBus信号を受信し、そのコマンドのプロトコルを判断すると共にその判断結果に基づいてMasBus信号を出力する。また、転送制御部101は、MasBus信号のプロトコル判断に際して、プロトコル記憶部102に格納されているプロトコル情報を参照する。更に、転送制御部101は、MasBus信号及びDevBus信号の状態に基づいてバスマスター1の初期化可否の状態を示すidle_det信号を出力する。プロトコル記憶部102は、バスマスター1からバススレーブ2に対して発行されるコマンドのプロトコル情報を格納している。即ち、プロトコル記憶部102は、バスマスター1とバススレーブ2との通信方式に関する情報を記憶している。バスマスター1からバススレーブ2に発行されるコマンドは複数種類あるが、それらは予め定められたプロトコルに従う。プロトコル記憶部102はそれら予め定められたプロトコルを記憶しており、転送制御部101からの読み出し命令に従って対応するプロトコル情報を転送制御部101に送信する。詳細は後述する。
信号選択部103は、バスマスター1から転送制御部101に入力されるMasBus信号と同様の信号及び転送制御部101から出力されるDevBus信号を比較し、両者の差異に基づいて選択信号となるSELECT信号を出力する。詳細は後述する。論理積回路104は外部から入力されるRESET信号(初期化信号)と転送制御部101から出力されるidle_det信号(初期化可否信号)との論理積としてRESET_i信号(初期化実行信号)を出力する。このRSET_i信号はバスマスター1に入力される。即ち、論理積回路104は、バスマスター1の初期化動作を制御する初期化制御部として動作する。セレクタ105は、MasBus信号及びDevBus信号が入力されており、SELECT信号に基づいていずれか一方が出力される。即ち、セレクタ105は、信号切り換え部として動作する。入出力選択部106a、106bは、バスマスター1とバススレーブ2とのシステムバス3を介した双方向通信を保障するために設けられる。
バスマスター1から出力されデータ転送回路100に入力される信号(MasBus信号)は入出力選択部106aによって転送制御部101、信号選択部103及びセレクタ105に対して振り分けられる。他方、バススレーブ2からバスマスター1に対して送信される信号であって入出力選択部106aに入力される信号は、バスマスター1に対して送信される。また、バススレーブ2からバスマスター1に対して送信される信号であって、入出力選択部106bに入力される信号は、入出力選択部106bによって入力出力選択部106aに入力されるように振り分けられる。他方、バスマスター1からバススレーブ2に送信される信号であって、入出力選択部106bに入力される信号(セレクタ105の出力信号)は、システムバス3を介してバススレーブ2に送信される。
次に、図2を用いて、プロトコル記憶部102に記憶されているプロトコル情報について説明する。図2に示すように、プロトコル記憶部102には、第1クロックのビットストリーム、第2クロック以降のビットストリーム及び夫々のプロトコルを一意に識別するIDが含まれる。図2に示すように、バスマスター1からバススレーブ2に送信されるMasBus信号は1クロックによって送信されるコマンド(CMD1a、CMD2a・・・)が複数連なったコマンド群として構成される。第1クロックのビットストリームは、転送制御部101がプロトコル記憶部102を検索する際に検索キーとなる。即ち、転送制御部101は、MasBus信号の第1クロックの受信に応じてプロトコル記憶部102を検索し、その第1クロックに対応する第2クロック以降の情報をプロトコル記憶部102から取得し、DevBus信号として出力する。夫々のプロトコルによってその情報量が異なるため、第2クロック以降の全クロック数は夫々のプロトコルによって異なる。
図3は、図2に示すプロトコル記憶部102に示す1クロック分のコマンドの内容を模式的に示す図である。図3に示すように、1クロック分のコマンドは、大きく分けてコマンド領域、データ領域及び予備領域を有する。コマンド領域はCMD1a、CMD1b、・・・夫々のコマンドにおいて定められた情報である。即ち、図2中のID01で示すプロトコルに基づく命令が、夫々異なる命令として2回実行された場合であっても、双方の命令に含まれるコマンドCMD1a、CMD1b・・・に含まれるコマンド領域の情報は夫々同一である。データ領域は、夫々のコマンドにおいて適宜異なる情報が格納される領域である。即ち、データの読み出し命令であれば、読み出し先のアドレス情報等が格納され、データの書き込み命令であれば、書き込むべきデータが格納される。予備領域は、夫々のプロトコルにおいて適宜利用される領域であり、その用いられ方は夫々のプロトコルによって異なる。図2に示すプロトコル記憶部102に記憶されているプロトコル情報には、コマンド領域及び予備領域の情報が格納されており、データ領域の情報はブランク若しくはダミーとなっている。
次に、図4を用いて、本実施例に係るデータ転送回路100の通常動作について説明する。図4は、本実施例に係るデータ転送回路100においてバスマスター1からバススレーブ2に対して図2に示すID01のプロトコルに従った命令が送信される場合を示すタイミングチャートである。図4に示すように、バスマスター1から命令が発行され、クロックT0においてMasBus信号として転送制御部101にCMD1aが入力されると、転送制御部101は受信したCMD1aの情報に基づいてプロトコル記憶部102を検索し、CMD2a〜CMD6aに関する情報を取得する。MasBus信号は転送制御部101の他、信号選択部103及びセレクタ105に入力されている。
クロックT0の状態においては、DevBus信号はアイドル状態であり、信号選択部103に入力されるMasBus信号とDevBus信号とは異なるが、信号選択部103は、DevBus信号がアイドル状態の場合回路が通常状態であることを示す“Low”信号をSELECT信号として出力する。セレクタ105は、SELECT信号として“Low”が入力されている場合、MasBus信号入力を出力する。従って、クロックT0のタイミングにおいては、入出力選択回路106bにはセレクタ105からMasBus信号が入力され、データ転送回路100はMasBus信号としてCMD1aを出力する。
次に、クロックT0の次クロックであるクロックT1のタイミングにおいて、バスマスター1からの出力してCMD2aが出力され、MasBus信号として転送制御部101、信号選択部103、セレクタ105に入力される。転送制御部101は、前クロックにおいてプロトコル記憶部102から取得したプロトコル情報に基づき、CMD2aをDevBus信号として出力する。ここで、転送制御部101がDevBus信号として出力するコマンドCMD2aは、プロトコル記憶部102から取得したCMD2aであり、そのコマンド領域はMasBus信号として受信するCMD2aと同一であるが、そのデータ領域は異なる。
信号選択部103には、MasBus信号としてのコマンドCMD2aとDevBus信号としてのコマンドCMD2aとが入力されている。信号選択部103は、夫々のコマンドのコマンド領域を比較し、両者が一致するか否か確認する。ここで、クロックT1のタイミングにおけるMasBus信号としてのコマンドCMD2aとDevBus信号としてのコマンドCMD2aとはそのデータ領域は異なるがコマンド領域は同一であるため、信号選択部103は回路が通常状態であることを示す信号“Low”をSELECT信号として出力する。即ち、状態判別回路103は、MasBus信号として入力されているコマンドの所定領域が、転送制御部101及びプロトコル制御部102によって先読みされ、DevBus信号として出力されているコマンドの所定領域と一致するか否か確認することにより、MasBus信号の正当性を確認する。その確認の結果、MasBus信号が正当であると判断されれば“Low”を正当でないと判断されれば“High”を出力する。
セレクタ105はSELECT信号が“Low”であるため、MasBus信号入力を出力する。結果的に、クロックT1のタイミングにおいても、データ転送回路100は、MasBus信号としてCMD2aを出力する。以降、クロックT2〜T5まで同様の動作が繰り返され、バスマスター1から出力された一連のコマンド群CMD1a〜CMD6aがバススレーブ2に対して送信される。その後、クロックT6においてバスマスター1の出力MasBus信号がアイドル状態となると共に、転送制御部101の出力DevBus信号もアイドル状態となる。このようにして、一の転送命令に係るバスサイクルが終了する。従って、バスマスター1がハングアップするようなことがなく、MasBus信号が正常に出力されていれば、データ転送回路100はMasBus信号をそのまま出力するため、通常動作に不具合をあたえることなく、バスサイクルを監視することが可能である。
次に、図5を用いて、本実施例に係るデータ転送回路100の動作において、バスサイクル中にRESET信号が入力された場合の動作を説明する。RESET信号が入力された論理積回路104の出力であるRESET_i信号の状態は、転送制御部101から論理積回路104に入力されるidle_det信号の状態によって決定される。ここで、転送制御部101は、MasBus信号がアイドル状態である場合、即ち、バスマスター1とバススレーブ2との通信状態が非活性状態である場合に、バスマスター1の初期化を許可する“High”信号を出力する。従って、RESET信号“High”が外部から入力されたタイミングにおいて、idle_det信号が“High”であれば、その論理積は“High”となるため、バスマスター1に対してRESET_i信号として“High”が入力され、バスマスター1が初期化される。
また、転送制御部101は、MasBus信号がアイドル状態からコマンド転送状態、即ち図4に示すクロックT0のタイミング以降のように、コマンドCMD1cが入力されているような状態となったことを検知して、idle_det信号を“High”から“Low”に遷移させる。これにより、外部からRESET信号が入力された場合であっても、論理積回路104の出力は“Low”
に固定されるため、バスマスター1とバススレーブ2との通信実行中に、バスマスター1が初期化されてしまい、バスサイクルが途切れることによるバススレーブ2の不具合発生を防ぐことが可能となる。更に、転送制御部101は、idle_det信号が“Low”の場合に信号を“High”に遷移させる条件として2つの条件を有する。1つは、“High”から“Low”となる場合の逆の条件であり、即ち、MasBus信号が活性状態からアイドル状態となったことを検出し場合である。もう1つは、転送制御部101がプロトコル記憶部102から取得してDevBus信号として出力しているコマンドが終了し、DevBus信号がアイドル状態となったことを検出した場合である。これについては後に詳述する。
に固定されるため、バスマスター1とバススレーブ2との通信実行中に、バスマスター1が初期化されてしまい、バスサイクルが途切れることによるバススレーブ2の不具合発生を防ぐことが可能となる。更に、転送制御部101は、idle_det信号が“Low”の場合に信号を“High”に遷移させる条件として2つの条件を有する。1つは、“High”から“Low”となる場合の逆の条件であり、即ち、MasBus信号が活性状態からアイドル状態となったことを検出し場合である。もう1つは、転送制御部101がプロトコル記憶部102から取得してDevBus信号として出力しているコマンドが終了し、DevBus信号がアイドル状態となったことを検出した場合である。これについては後に詳述する。
図5は、本実施例に係るデータ転送回路100においてバスマスター1からバススレーブ2に対して図2に示すID03のプロトコルに従った命令が送信される場合を示すタイミングチャートである。図5に示すように、クロックT2のタイミングまでは図4に示す場合と略同一の動作を行う。尚、クロックT0のタイミングにおいて、転送制御部101は、MasBus信号がアイドル状態から活性状態となったことを検出してidle_det信号を“High”から“Low”に遷移させる。ここで、クロックT2のタイミングの後、データ転送回路100からコマンドCMD3cが発信されている間に、RESET信号が“Low”から“High”に遷移した場合、即ち外部からRESET信号が入力された場合を考える。このとき、クロックT0のタイミング以降、MasBus信号及びDevBus信号のいずれもidle_det信号を“Low”から“High”に遷移させる条件を満たしていないため、転送制御部101はidle_det信号として“Low”を出力しており、論理積回路104の出力RESET_i信号は“Low”に固定されている。従って、バスマスター1は初期化されず、クロックに従い、MasBus信号としてコマンドCMD3c、CMD4c、CMD5cを出力する。
クロックT5においてバスマスター1の出力MasBus信号がアイドル状態となると共に、転送制御部101の出力DevBus信号もアイドル状態となる。これにより、転送制御部101は、idle_det信号を“Low”から“High”に遷移させる。このとき、RESET信号として論理積回路104に“High”が入力され続けているため、idle_det信号が“Low”から“High”に遷移したことに基づき、論理積回路104の出力であるRESET_i信号が“High”に遷移し、バスマスター1が初期化される。このように、本実施例に係るデータ転送回路100は、バスマスター1とバススレーブ2とのバスサイクルを保障し、両者の通信途中にバスマスター1が初期化されることによるバススレーブ2の不具合発生を防ぐことが可能となる。
次に、図6を用いて、本実施例に係るデータ転送回路100の動作において、バスサイクル中にバスマスター1がハングアップした場合の動作について説明する。図6は、本実施例に係るデータ転送回路100においてバスマスター1からバススレーブ2に対して図2に示すID04のプロトコルに従った命令が送信され、すべての命令が送信完了する前にバスマスター1がハングアップした場合を示すタイミングチャートである。図6に示すように、クロックT2のタイミングの前までは、図5に示す動作と略同等の動作を実行する。ここで、クロックT2のタイミングにおいて、DevBus信号はコマンドCMD2dからコマンドCMD3dに切り換わるが、バスマスター1はハングアップしており、CMD2dのままとなった場合を考える。このとき、信号選択部103は、MasBus信号がCMD2dであるのに対してDevBus信号がCMD3dであることを検知し、MasBus信号が正当でないと判断してSELECT信号を“Low”から“High”に遷移させる。セレクタ105は、SELECT信号が“High”となったため、出力をMasBus信号からDevBus信号に切り換える。これにより、セレクタ105から入出力選択回路106bにはDevBus信号がクロックに従って出力される。即ち、クロックT2のタイミング以降はDevBus信号のCMD3dが出力され、クロックT3のタイミング以降はDevBus信号のCMD4dが出力される。
バスマスター1がハングアップすることにより、本来連続してバススレーブ2に入力されるべきコマンド群が途中で途切れてしまう。これにより、バススレーブ2に不具合が発生する可能性がある。上述した通り、DevBus信号として出力されるコマンドは転送制御部101がプロトコル記憶部102から取得したコマンド情報であり、コマンド領域はMasBus信号と同一であるがデータ領域はブランク若しくはダミーデータとなっている。従って、ハングアップしてMasBus信号を出力不可能となったバスマスター1に代わり、プロトコル記憶部に記憶されているコマンドに従ってDevBus信号をバススレーブ2に入力したとしても、本来バスマスター1がバススレーブ2に対して実行しようとしていた処理を完全に完了することは出来ないが、本来連続してバススレーブ2に入力されるべきコマンド群のうち、コマンド領域のデータは入力することができる。従って、バスマスター1が完遂すべきであった処理を完遂することは出来ないが、バスサイクルを完了することができるため、バススレーブ2の不具合発生を防ぐことが可能となる。
尚、上記の説明においては、バスマスター1がデータ転送回路100を介してシステムバス3に接続される例を説明したが、この他、例えばバスマスター1がデータ転送回路100の機能を有していても良い。図7は、バスマスター1がデータ転送回路100を有する例を示す図である。図7の例に示すバスマスター1は制御部11、出力部12、入力部13、入出力選択部14に加えてデータ転送回路100を有する。制御部11は出力部12を介してMasBus信号を出力し、データ転送回路100に入力する。データ転送回路100は上記の説明と同様に動作する。また、入出力選択部14は、図1の例に示す入出力選択部106bに対応する役割を担う。システムバス3側からバスマスター1に入力される信号は入出力選択部14によって振り分けられ、入力部13を経て制御部11に入力される。このような構成であっても、上記と同等の効果を奏することができる。また、図7の例においては、バスマスター1にデータ転送回路100の機能を持たせたことにより、1のデバイスとして集積化が可能となり、回路基板への実装スペース等の点において有効である。
バスマスター1に対するデータ転送装置100の他の適用態様につき、更に図8(a)〜(c)を用いて説明する。図8(a)は図1に示す態様を簡易化して示すブロック図である。即ち、バスマスター1はデータ転送回路100を介してシステムバス3に接続されており、バスマスター1がデータ転送回路100にMasBus信号を入力するのに対し、データ転送回路100は、MasBus信号若しくはDevBus信号をシステムバス3に対して出力する。また、外部からRESET信号が入力されるのに対し、データ転送回路100はMasBus信号若しくはDevBus信号の状態に基づき、RESET_i信号を出力する。
図8(b)は、図1に示す例においてセレクタ105がデータ転送回路100の外部にセレクタ4として設けられると共に、データ転送回路100がバスマスター1の出力端子に接続されている例を示す。図8(b)に示すように、データ転送回路100はバスマスター1から入力されるMasBus信号に基づき、DevBus信号及びSELECT信号を出力する。バスマスター1が出力するMasBus信号はデータ転送回路100及びセレクタ4に入力される。セレクタ4はバスマスター1から入力されるMasBus信号とデータ転送回路100から入力されるDevBus信号を、同様にデータ転送回路100から入力されるSELECT信号に基づいて切り換えてシステムバス3に出力する。
図8(c)に示す例は、図8(b)に示す例において、更に論理積回路104を論理積回路5としてデータ転送回路100の外部に設ける例を示す図である。データ転送回路100は。バスマスター100から入力されるMasBus信号及び独自に生成するDevBus信号に基づいてidle_det信号を生成する。論理積回路5は外部から入力されるRESET信号とバスマスター1から入力されるidle_det信号との論理積をRESET_i信号としてバスマスター1に対して出力する。このように本実施例に係るデータ転送方法によるバスサイクルの保障効果は様々な態様によって実現可能であり、データ転送回路100の構成は適宜選択され、実装される。
また、上記の説明においては、信号選択部102は、MasBus信号とDevBus信号との比較に基づいて動作する例を説明したが、少なくともバスマスター1及び転送制御部101の信号出力状態に応じて動作すればよく、MasBus信号若しくはDevBus信号以外の信号に基づいて動作しても良い。例えば、信号選択部102は、バスマスター1がハングアップしたことを示す信号を受信することにより、MasBus信号とDevBus信号とのいずれかを出力させるSELECT信号を切り換えても良い。
また、上記の説明において、転送制御部101がMasBus信号の第1クロックに基づいてプロトコル記憶部103を検索し、対応する第2クロック以降のコマンド情報を取得する例を説明した。この他、例えばプロトコル記憶部103が、第2クロック以降のコマンド情報も個別に記憶しており、転送制御部101は、MasBas信号としてバスマスター1から受信したコマンドに基づいたプロトコル記憶部103の検索を毎クロック行うようにしても良い。即ち、図4の例において転送制御部101は、クロックT0のタイミングにおいてMasBus信号として受信したコマンドCMD1aに基づいてプロトコル記憶部103からDevBus信号となるためのCMD2aを取得し、その取得したCMD2aをクロックT1のタイミングにおいてDevBus信号として出力すると共に、MasBus信号として受信したコマンドCMD2aに基づいてプロトコル記憶部103から次のDevBus信号となるためのCMD3aを取得する。以降、同様の動作を一連のコマンド群が終了するまで実行することにより、上記と同様の効果を得ることが可能となる。尚、転送の途中でバスマスター1がハングアップした場合においては、上記の説明と同様に、以降のコマンドを一括して取得することにより、上記と同様にバスサイクルを保障することが可能となる。
実施例1においては、データ転送回路100に含まれるプロトコル記憶部102がバスマスター1から発行され得るコマンドのプロトコルを予め記憶している例を説明した。しかしながら、例えばCPUの交換等でバスマスター1が変わり、バスマスター1から発行され得るコマンドのプロトコルが増加若しくは変化する場合、プロトコル記憶部102の更新若しくはデータ転送回路100の交換等が必要となる場合がある。本実施例においては、データ転送制御部100がバスマスター1から発行されるプロトコルの学習機能を有する例を説明する。尚、実施例1と同様の符号を付す構成については実施例1と同一又は相当部を示し、説明を省略する。
本実施例に係るデータ転送回路100の全体構成は、概ね図1に示す構成と同一である。ここで、本実施例に係る転送制御部101は、実施例1に示す機能に加えて、バスマスター1から新たなプロトコルに従ったコマンドが入力された場合に、そのプロトコルをプロトコル記憶部102に記憶する機能及びMasBus信号入力とDevBus信号出力とをバイパスする、即ちMasBus信号として入力されている信号をそのままDevBus信号として出力する機能を有する。図9を用いて、本実施例に係る転送制御部101の動作について説明する。図9は、本実施例に係る転送制御部101の動作を示すフローチャートである。図9に示すように、転送制御部101は、MasBus信号として、図4に示すクロックT0のタイミングのように第1クロックコマンドを受信すると(S901)、受信した第1クロックコマンドを用いてプロトコル記憶部102を検索する(S902)。
S902の検索の結果、プロトコル記憶部102に該当するプロトコルが格納されていなければ(S903)、転送制御部101はMasBus信号入力とDevBus信号出力とをバイパスする(S904)。これにより、DevBus信号としてMasBus信号と同一の信号が出力される。また、転送制御部101は、S902の検索の結果該当するプロトコルがない場合(S903)、S901で受信した第1クロックコマンド以降、毎クロックMasBus信号として入力されるコマンドをプロトコル記憶部102に記憶する(S905)。このとき記憶される情報は、図3に示すコマンド領域及び予備領域であり、データ領域にはブランク若しくはダミーデータを記憶する。
転送制御部101は、MasBus信号としてコマンドが入力されている間は、プロトコル記憶を毎クロック繰り返す(S905)。MasBus信号がアイドル状態となったことを検出すると(S906)、転送制御部101は、MasBus信号入力とDevBus信号出力とのバイパスを解除すると共に(S907)、当該動作によってプロトコル記憶部102に記憶した一連のコマンド群に対して、図2に示すようにIDを割り振って(S908)プロトコル記憶を完了し、処理を終了する。他方、S903において、該当するプロトコルが検索された場合、転送制御部101は実施例1において説明した通常動作を実行し、処理を終了する。このようにして、新たなプロトコルの学習が完了する。このようにして学習されたプロトコルが再度入力された場合は、S903において街頭プロトコルとして検索され、転送制御部101が通常通りの処理を実行するため、新たなプロトコルに対しても実施例1と同様にバスサイクルを保障する機能を発揮することが可能となる。
また、本実施例においては、プロトコル記憶部102に記憶されていないコマンドが入力された場合に、転送制御部101がMasBus信号入力とDevBus信号出力とをバイパスすることにより、信号選択部103のSELECT信号出力を“Low”に固定し、セレクタ105の出力がMasBus信号となるようにしている。この他の例として、実施例1において説明したように、信号選択部103のSELECT信号出力が、DevBus信号がアイドル状態の場合“Low”となるの場合を考える。このような場合、転送制御部101が、S903において該当プロトコル無しと判断された場合にDevBus信号としてアイドル信号を出力し続けるようにすることにより、信号選択部103のSELECT信号出力は“Low”となり、セレクタ105の出力をMasBus信号とすることができる。
尚、この転送制御部101の機能(プロトコル記憶部102に該当プロトコルが無い場合に、DevBus信号としてアイドル信号を出力し続ける機能若しくはMasBus信号入力とDevBus信号出力とをバイパスする機能)は、転送制御部101がプロトコル学習機能を有さない場合、即ち実施例1の場合にも適用可能である。これにより、予測不能なプロトコルが入力された場合に、信号選択部103が誤ってSELECT信号として“High”を出力し、セレクタ105の出力がDevBus信号となってバスマスター1とバススレーブ2との通信が断絶してしまうことを防ぐことができる。
1 バスマスター
2 バススレーブ
3 システムバス
11 制御部
12 出力部
13 入力部
14 入出力選択部
100 データ転送回路
101 転送制御部
102 状態判別部
103 プロトコル記憶部
104 論理積回路
105 セレクタ
106a、106b 入出力選択部
2 バススレーブ
3 システムバス
11 制御部
12 出力部
13 入力部
14 入出力選択部
100 データ転送回路
101 転送制御部
102 状態判別部
103 プロトコル記憶部
104 論理積回路
105 セレクタ
106a、106b 入出力選択部
Claims (13)
- バスマスターとバススレーブとの間で信号を転送する信号転送装置であって、
前記バスマスターと前記バススレーブとの間の通信方式に関する情報を記憶している通信方式記憶部と、
前記バスマスターから受信した第1の信号に基づいて当該第1の信号に対応する第2の信号に関する情報を前記通信方式記憶部から取得して出力する転送制御部と、
前記バスマスター及び前記転送制御部の少なくとも一方の状態に応じて前記第1の信号と前記第2の信号とのいずれか一方を出力させる選択信号を出力する信号選択部とを有することを特徴とする、信号転送装置。 - 前記転送制御部は、前記第1の信号の受信状態及び前記2の信号の出力状態に基づいて前記バスマスターの初期化可否を示す初期化可否信号を出力することを特徴とする、請求項1に記載の信号転送装置。
- 前記バスマスターの初期化のために外部から入力される初期化信号と前記初期化可否信号とに基づいて前記バスマスターに初期化動作を実行させる初期化実行信号を生成する初期化制御部を更に有することを特徴とする、請求項2に記載の信号転送装置。
- 前記転送制御部は、前記第1の信号が非活性状態から活性状態に遷移した場合に前記初期化可否信号を“High”状態から“Low”状態に遷移させることを特徴とする、請求項3に記載の信号転送装置。
- 前記転送制御部は、前記第1の信号及び前記第2の信号の少なくとも一方が活性状態から非活性状態に遷移した場合に前記初期化可否信号を“High”状態から“Low”状態に遷移させることを特徴とする、請求項3または4に記載の信号転送装置。
- 前記初期化信号は、“High”状態において前記バスマスターを初期化させることを示し、
前記初期化制御部は、前記初期化信号と前記初期化可否信号との論理積を前記初期化実行信号として出力することを特徴とする、請求項4または5に記載の信号転送装置。 - 前記選択信号に基づいて前記第1の信号と前記第2の信号とを切り換えて出力する信号切り換え部を更に有することを特徴とする、請求項1乃至6いずれか1項に記載の信号転送装置。
- 前記信号選択部は、前記バスマスターがハングアップした場合に、前記選択信号の状態を前記第2の信号を出力させる状態とすることを特徴とする、請求項1乃至7いずれか1項に記載の信号転送装置。
- 前記第1の信号及び前記第2の信号は、前記通信方式に応じて定められるコマンド情報を有し、
前記信号選択部は、前記第1の信号に含まれるコマンド情報と前記第2の信号に含まれるコマンド情報とが異なる場合に、前記選択信号の状態を前記第2の信号を出力させる状態とすることを特徴とする、請求項1乃至8いずれか1項に記載の信号転送装置。 - 前記転送制御部は、前記受信した第1の信号に係る通信方式と前記通信方式記憶部に記憶されている全通信方式とが不一致である場合に、前記受信した第1の信号に係る通信方式に関する情報を前記通信方式記憶部に記憶することを特徴とする、請求項1乃至9いずれか1項に記載の信号転送装置。
- 前記転送制御部は、前記受信した第1の信号に係る通信方式と前記通信方式記憶部に記憶されている全通信方式とが不一致である場合に、前記受信した第1の信号を前記第2の信号として出力することを特徴とする、請求項10に記載の信号転送装置。
- バス接続において能動的にデータ転送を開始可能なバスマスター装置であって、
請求項1乃至11いずれか1項に記載の信号転送装置を有することを特徴とするバスマスター装置。 - バスマスターとバススレーブとの間で信号を転送する信号転送方法であって、
前記バスマスターから第1の信号を受信し、
前記受信した第1の信号に基づいて当該第1の信号に対応する第2の信号に関する情報を取得して出力し、
前記バスマスター及び前記第2の信号の少なくとも一方の状態に応じて前記第1の信号と前記第2の信号とのいずれか一方を出力させる選択信号を出力することを特徴とする、信号転送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007071335A JP2008234189A (ja) | 2007-03-19 | 2007-03-19 | 信号転送装置、バスマスター装置及び信号転送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007071335A JP2008234189A (ja) | 2007-03-19 | 2007-03-19 | 信号転送装置、バスマスター装置及び信号転送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008234189A true JP2008234189A (ja) | 2008-10-02 |
Family
ID=39906900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007071335A Pending JP2008234189A (ja) | 2007-03-19 | 2007-03-19 | 信号転送装置、バスマスター装置及び信号転送方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008234189A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8463956B2 (en) | 2010-03-04 | 2013-06-11 | Ricoh Company, Ltd. | Data transfer control apparatus |
US8713205B2 (en) | 2008-11-27 | 2014-04-29 | Ricoh Company, Ltd. | Data transfer device and data transfer method |
KR102113670B1 (ko) * | 2020-02-25 | 2020-05-20 | 주식회사 수산이앤에스 | 버스 확장 구조를 갖는 안전등급 제어기 및 이의 통신 방법 |
-
2007
- 2007-03-19 JP JP2007071335A patent/JP2008234189A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8713205B2 (en) | 2008-11-27 | 2014-04-29 | Ricoh Company, Ltd. | Data transfer device and data transfer method |
US8463956B2 (en) | 2010-03-04 | 2013-06-11 | Ricoh Company, Ltd. | Data transfer control apparatus |
KR102113670B1 (ko) * | 2020-02-25 | 2020-05-20 | 주식회사 수산이앤에스 | 버스 확장 구조를 갖는 안전등급 제어기 및 이의 통신 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5623593B2 (ja) | ベーシック・インプット/アウトプット・システムを同時に更新するためのラックおよびその方法 | |
JP5229326B2 (ja) | マルチコアcpuにおける消費電力制御方法,消費電力制御プログラム及び情報処理システム | |
JP4773412B2 (ja) | 集積回路の刻時制御方法及びその方法を適用した集積回路 | |
JP4788912B2 (ja) | Plc | |
JP5469066B2 (ja) | データを交換する方法及びシステム | |
CN100587678C (zh) | 外部设备访问装置和系统大规模集成电路 | |
JP2008097523A (ja) | Plc装置 | |
US9495178B2 (en) | Electronics apparatus able to revise micro-program and algorithm to revise micro-program | |
JP2008234189A (ja) | 信号転送装置、バスマスター装置及び信号転送方法 | |
JP2009187314A (ja) | 二重化コントローラ・システム、cpuモジュール、そのプログラム | |
JP2014099099A (ja) | 制御システム | |
JP2016130947A (ja) | 制御システム、および制御装置 | |
JP2008226111A (ja) | 2重化コントローラシステム、その稼動系コントローラ | |
JP2007172096A (ja) | 情報処理装置、および、その起動制御方法 | |
KR20050046932A (ko) | i2C 버스를 이용한 슬레이브 장치들의 상태 검사 시스템 | |
JP2006236371A (ja) | 制御システム | |
JP2006099305A (ja) | プログラマブルlsiのコンフィグレーション制御方法 | |
JP2006126938A (ja) | データ転送システム及びそのデータ転送方法 | |
JP2009187474A (ja) | 半導体装置、携帯可能な電子装置、自己診断方法、自己診断プログラム | |
JP2010186302A (ja) | マルチノードシステム、異常処理方法、スイッチ、ノード及びプログラム | |
JP4411236B2 (ja) | Cpuシステム | |
JP2007241570A (ja) | プログラマブルコントローラ間通信のための共有メモリの設定方式 | |
JP2008186426A (ja) | ユニット増設システム | |
JP2007052685A (ja) | マイクロコントローラ | |
JP5944017B2 (ja) | 情報処理装置およびプログラム |