(57)【要約】【課題】  本発明は、制御部の数を増やすことなく、単一の制御部によって複数のチャネルを制御することができる半導体装置及びその通信制御方法を提供することを目的とする。  【解決手段】  マスターチャネルMC２とスレーブチャネルSC２を有し、当該マスターチャネルMC２とスレーブチャネルSC２のうちいずれか一方しか駆動することができないバス制御部２１が、マスターチャネルMC２を駆動しているときに、スレーブチャネルSC２においてスタート条件SA２が発生したことを、スタート条件検出回路１６から通知されると、マスターチャネルMC２の駆動を一時停止すると共にスレーブチャネルSC２を駆動することにより、バス制御部２１の数を増やすことなく、単一のバス制御部２１によって２つのマスターチャネルMC２及びスレーブチャネルSC２を制御することができる。【選択図】  図１
2005228068.tif 000002
【特許請求の範囲】
【請求項１】
複数のチャネルを有し、前記複数のチャネルを介してそれぞれ所望のデバイスと接続され、前記複数のチャネルのうちいずれか１つのチャネルのみ動作状態に遷移させると共に他のチャネルについてはアイドル状態に維持することにより、当該動作状態に遷移したチャネルのみ制御する制御部と、
前記アイドル状態にあるチャネルにおいて発生する、前記アイドル状態から前記動作状態に遷移させるための動作開始要求を検出する検出部と
を備え、前記制御部は、
前記検出部によって前記動作開始要求が検出されると、前記動作状態にある前記チャネルを前記アイドル状態に遷移させると共に、前記動作開始要求が検出された前記チャネルを前記アイドル状態から前記動作状態に遷移させる
ことを特徴とする半導体装置。
【請求項２】
前記制御部は、
前記検出部によって前記動作開始要求が検出されると、前記動作状態にある前記チャネルと前記動作開始要求が検出された前記チャネルとに対してクロック同期を行った上で、前記動作状態にある前記チャネルに出力するクロックを所定レベルに固定することにより、前記動作状態にある前記チャネルを前記アイドル状態に遷移させると共に、前記動作開始要求が検出された前記チャネルを前記アイドル状態から前記動作状態に遷移させることを特徴とする請求項１記載の半導体装置。
【請求項３】
前記制御部は、
前記各チャネルにそれぞれ接続されたバスを介して前記デバイスとそれぞれ接続されていることを特徴とする請求項１記載の半導体装置。
【請求項４】
前記バスは、
シリアルデータラインとシリアルクロックラインを有するシリアルバスであることを特徴とする請求項３記載の半導体装置。
【請求項５】
複数のチャネルを有し、当該複数のチャネルを介してそれぞれ所望のデバイスと接続された制御部が、前記複数のチャネルのうちいずれか１つのチャネルのみ動作状態に遷移させると共に他のチャネルについてはアイドル状態に維持することにより、当該動作状態に遷移したチャネルのみ制御する制御ステップと、
前記アイドル状態にあるチャネルにおいて発生する、前記アイドル状態から前記動作状態に遷移させるための動作開始要求を検出する検出ステップと、
前記制御部は、前記検出ステップにおいて前記動作開始要求が検出されると、前記動作状態にある前記チャネルを前記アイドル状態に遷移させると共に、前記動作開始要求が検出された前記チャネルを前記アイドル状態から前記動作状態に遷移させる切替えステップと
を備えることを特徴とする半導体装置の通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及びその通信制御方法に関する。
【背景技術】
【０００２】
従来、シリアルバス規格としてInter IC Bus（以下、これをI2Cバスと呼ぶ）が標準化されている。このI2Cバスは、シリアルデータライン(SDA)とシリアルクロックライン(SCL)の２本のバスラインによって構成され、当該I2Cバスによって接続されている各デバイスは、それぞれ固有のアドレスを有している。
【０００３】
データ転送はマスターとスレーブの間で行われ、バス使用権を獲得したデバイスであるマスターは、複数のデバイスのうち通信相手として所望するデバイスであるスレーブのアドレスを指定することにより、当該指定したスレーブとの間でデータ転送を実行するようになされている。
【０００４】
またI2Cバスは、当該I2Cバスをコントロールする複数のデバイスを接続することができるマルチマスターバスであり、バスの衝突検出機能及びアービトレーション機能を有するため、たとえ複数のマスターが同時にデータ転送を開始しようとしても、データ破壊を防止することができる。なおマスターとなるのは、一般にはマイクロコントローラである。
【０００５】
ここで図５にマイクロコントローラ１の構成を示す。このマイクロコントローラ１は、CPU(Central Processing Unit)2と、当該マイクロコントローラ１に接続されたI2Cバスのアービトレーションを行うバス制御部３とを有し、これらを内部バスBUSによって接続することにより構築されている。
【０００６】
このマイクロコントローラ１のバス制御部３は、マスターチャネルMC１及びスレーブチャネルSC１を有し、マスターチャネルMC１のI2CバスBUS１を介して外部の複数のデバイスと接続されると共に、スレーブチャネルSC１のI2CバスBUS２を介して外部の複数のデバイスと接続されている。
【０００７】
また、マスターチャネルMC１のI2CバスBUS１は、シリアルデータラインSDA１とシリアルクロックラインSCL１の２本のバスラインを有し、同様に、スレーブチャネルSC１のI2CバスBUS２は、シリアルデータラインSDA２とシリアルクロックラインSCL２の２本のバスラインを有する。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、かかるマイクロコントローラ１は、マスターチャネルMC１及びスレーブチャネルSC１のうちいずれか一方しか駆動することができず、例えばマスターチャネルMC１を駆動させているときは、スレーブチャネルSC１を駆動できず、この場合、スレーブチャネルSC１を監視していないことになる。
【０００９】
ここで図６はI2Cバスの状態を示し、このうち図６(a)はマスターチャネルMC１のI2CバスBUS１の状態を示し、図６(b)はスレーブチャネルSC１のI2CバスBUS２の状態を示す。
【００１０】
この図６に示すように、マイクロコントローラ１は、マスターチャネルMC１を駆動させ、当該マスターチャネルMC１が動作(BUSY)状態にあるときは（図６(a)）、例えばスレーブチャネルSC１のI2CバスBUS２に接続されたマイクロコントローラ（図示せず）が、バス使用権を取得しデータ転送を開始するためのスタート条件SA1（図６(b)）を発生させても、当該発生したスタート条件SA１を検出することができない。
【００１１】
従って、この場合、マイクロコントローラ１は、データ転送を終了するためのストップ条件SO１を発生させ、マスターチャネルMC１をアイドル(IDLE)状態に遷移させるまで、スレーブチャネルSC１を駆動することができない。
【００１２】
その際、マイクロコントローラ１では、上述したスタート条件SA1（図６(b)）を優先して処理しなければならない場合であっても、マスターチャネルMC１の駆動中はスレーブチャネルSC１を監視していないため、当該スタート条件SA1を検出することができず、当該スタート条件SA1を優先して処理することはできないという問題が生じる。
【００１３】
なお、マスターチャネルMC１及びスレーブチャネルSC１の両方を同時に駆動させる方法も考えられるが、この場合、バス制御部３が２つ必要になり、回路規模が大きくなるという問題が生じる。
【００１４】
本発明は以上の点を考慮してなされたもので、単一のバス制御部によって複数のチャネルを制御することができる半導体装置及びその通信制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の一態様による半導体装置は、
複数のチャネルを有し、前記複数のチャネルを介してそれぞれ所望のデバイスと接続され、前記複数のチャネルのうちいずれか１つのチャネルのみ動作状態に遷移させると共に他のチャネルについてはアイドル状態に維持することにより、当該動作状態に遷移したチャネルのみ制御する制御部と、
前記アイドル状態にあるチャネルにおいて発生する、前記アイドル状態から前記動作状態に遷移させるための動作開始要求を検出する検出部と
を備え、前記制御部は、
前記検出部によって前記動作開始要求が検出されると、前記動作状態にある前記チャネルを前記アイドル状態に遷移させると共に、前記動作開始要求が検出された前記チャネルを前記アイドル状態から前記動作状態に遷移させる
ことを特徴とする。
【００１６】
また本発明の一態様による半導体装置の通信制御方法は、
複数のチャネルを有し、当該複数のチャネルを介してそれぞれ所望のデバイスと接続された制御部が、前記複数のチャネルのうちいずれか１つのチャネルのみ動作状態に遷移させると共に他のチャネルについてはアイドル状態に維持することにより、当該動作状態に遷移したチャネルのみ制御する制御ステップと、
前記アイドル状態にあるチャネルにおいて発生する、前記アイドル状態から前記動作状態に遷移させるための動作開始要求を検出する検出ステップと、
前記制御部は、前記検出ステップにおいて前記動作開始要求が検出されると、前記動作状態にある前記チャネルを前記アイドル状態に遷移させると共に、前記動作開始要求が検出された前記チャネルを前記アイドル状態から前記動作状態に遷移させる切替えステップと
を備えることを特徴とする。
【発明の効果】
【００１７】
本発明の半導体装置及びその通信制御方法によれば、動作開始要求を検出すると、動作状態にあるチャネルをアイドル状態に遷移させると共に、動作開始要求が検出されたチャネルをアイドル状態から動作状態に遷移させるようにしたことにより、制御部の数を増やすことなく、単一の制御部によって複数のチャネルを制御することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態について図面を参照して説明する。
【００１９】
図１に、本発明の実施の形態によるI2Cバスシステム１０の構成を示す。このI2Cバスシステム１０は、I2CバスBUS３又はBUS４をコントロールするマイクロコントローラ１１と、I2CバスBUS４をコントロールするマイクロコントローラ１２とを有する。
【００２０】
マイクロコントローラ１１は、マスターチャネルMC２及びスレーブチャネルSC２を有し、マスターチャネルMC２に接続されたI2CバスBUS３を介して外部のデバイス１３及び１４と接続されると共に、スレーブチャネルSC２に接続されたI2CバスBUS４を介して外部のマイクロコントローラ１２及びデバイス１５と接続されている。
【００２１】
また、I2CバスBUS３は、シリアルデータラインSDA３とシリアルクロックラインSCL３の２本のバスラインを有し、同様に、I2CバスBUS４は、シリアルデータラインSDA４とシリアルクロックラインSCL４の２本のバスラインを有する。
【００２２】
スタート条件検出回路１６は、I2CバスBUS３及びBUS４にそれぞれ接続され、マスターチャネルMC２又はスレーブチャネルSC２において、バス使用権を取得しデータ転送を開始するためのスタート条件が発生した場合には、当該発生したスタート条件を検出し、スタート条件が発生したことを表す通知信号S１を生成してこれをマイクロコントローラ１１に出力するようになされている。
【００２３】
マイクロコントローラ１１は、図２に示すように、CPU２０と、当該マイクロコントローラ１１に接続されたI2CバスBUS３及びBUS４のアービトレーションを行うバス制御部２１とを有し、これらを内部バスBUSによって接続することにより構築されている。
【００２４】
このマイクロコントローラ１１のバス制御部２１は、マスターチャネルMC２及びスレーブチャネルSC２を有し、マスターチャネルMC２にはI2CバスBUS３が接続されると共に、スレーブチャネルSC２にはI2CバスBUS４が接続されている。
【００２５】
ここで図３にI2Cバスの状態を示し、このうち図３(a)はマスターチャネルMC２に接続されたI2CバスBUS３の状態を示し、図３(b)はスレーブチャネルSC２に接続されたI2CバスBUS４の状態を示す。
【００２６】
この図３に示すように、スタート条件検出回路１６は、マスターチャネルMC２が駆動し動作(BUSY)状態にあるときに（図３(a)）、例えばスレーブチャネルSC２のI2CバスBUS４に接続されたマイクロコントローラ１２が、スタート条件SA２（図３(b)）を発生させると、当該発生したスタート条件SA２を検出し、スタート条件が発生したことを表す通知信号S１を生成しこれをマイクロコントローラ１１のCPU２０を介してバス制御部２１に出力する。
【００２７】
バス制御部２１は、この通知信号S１に基づくタイミングで、マスターチャネルMC２のシリアルクロックSCLとスレーブチャネルSC２のシリアルクロックSCLとを「０」に設定しクロック同期を行った上で、マスターチャネルMC２のシリアルクロックSCLのみ「０」に固定することにより、当該マスターチャネルMC２の通信を一時停止する一方、スレーブチャネルSC２の動作を開始する。
【００２８】
そして、このバス使用権を獲得したマイクロコントローラ１２は、通信相手として所望するデバイスであるスレーブのアドレスを指定し、これをスレーブアドレスとしてスレーブチャネルSC２のI2CバスBUS４に送信する。
【００２９】
ここで図４に本実施の形態による通信制御処理手順RT１を示す。すなわちこの図４においてマイクロコントローラ１１は、通信制御処理手順RT１に入ると、ステップSP１において、マスターチャネルMC２を駆動し、当該マスターチャネルMC２における通信を実行する。
【００３０】
そしてステップSP２において、割込み要求が例えばマイクロコントローラ１２において発生すると、続くステップSP３において、スタート条件検出回路１６は、スタート条件SA２の検出を試みる。
【００３１】
このステップSP３において肯定結果が得られると、このことはマイクロコントローラ１２がスタート条件SA２を発生させ、スタート条件検出回路１６が当該スタート条件SA２を検出したことを表しており、このときスタート条件検出回路１６は、マイクロコントローラ１１に通知信号S１を出力してステップSP４に移る。
【００３２】
これに対して、ステップSP３において否定結果が得られると、このことはスタート条件SA２が発生しておらず、スタート条件検出回路１６がスタート条件SA２を検出できなかったことを表しており、このときマイクロコントローラ１１はステップSP５に移る。
【００３３】
そしてステップSP４において、マイクロコントローラ１１は、マスターチャネルMC２の通信を停止する。続くステップSP６に移って、マイクロコントローラ１２がスレーブアドレスを指定しこれをスレーブチャネルSC２のI2CバスBUS４に送信すると、デバイス１５は、このスレーブアドレスを取得する。
【００３４】
ステップSP７において、デバイス１５は、取得したスレーブアドレスと、当該デバイス１５に割り当てられているアドレスとを比較する。
【００３５】
このステップSP７において肯定結果が得られると、このことはスレーブアドレスが自分宛てに送信されてきたことを表しており、このときデバイス１５は、ステップSP８に移って、アクノリッジ（ACK）をマイクロコントローラ１２に送信することにより、スレーブチャネルSC２の通信を実行した後、マスターチャネルMC２の通信を再開させる。
【００３６】
これに対して、ステップSP７において否定結果が得られると、このことはスレーブアドレスが自分宛てに送信されてきたものではないことを表しており、このときデバイス１５は、ノットアクノリッジ（NACK）をマイクロコントローラ１２に送信することにより、マスターチャネルMC２を起動させ、マスターチャネルMC２における通信を再開させる。
【００３７】
そしてステップSP５において、マイクロコントローラ１１は、マスターチャネルMC２の通信が終了したか否かを判断し、当該通信が終了したと判断した場合にはステップSP９に移って通信制御処理手順RT１を終了し、当該通信が終了していないと判断した場合にはステップSP１に戻って上述の動作を繰り返す。
【００３８】
以上の構成を備えたことにより、マスターチャネルMC２とスレーブチャネルSC２を有し、当該マスターチャネルMC２とスレーブチャネルSC２のうちいずれか一方しか駆動することができないバス制御部２１が、マスターチャネルMC２を駆動しているときに、スレーブチャネルSC２においてスタート条件SA２が発生したことを、スタート条件検出回路１６から通知されると、マスターチャネルMC２の駆動を一時停止すると共にスレーブチャネルSC２を駆動することにより、駆動するチャネルを切り替える。
【００３９】
よって、本実施の形態によれば、バス制御部２１の数を増やすことなく、単一のバス制御部２１によって２つのマスターチャネルMC２及びスレーブチャネルSC２を制御することができる。
【００４０】
なお上述の実施の形態においては、マスターチャネルMC２を駆動しているときに、スレーブチャネルSC２において発生するスタート条件SA２を検出し、駆動するチャンネルをマスターチャネルMC２からスレーブチャネルSC２に切り替える場合について述べたが、本発明はこれに限らず、例えばスレーブチャネルSC２を駆動しているときに、マスターチャネルMC２において発生するスタート条件SA２を検出し、駆動するチャンネルをスレーブチャネルSC２からマスターチャネルMC２に切り替える場合など、バス制御部２１によって制御されていないチャネルに制御を移すことが可能である。
【００４１】
また上述の実施の形態においては、駆動するチャネルを、スレーブチャネルSC２から元のマスターチャネルMC２に戻すタイミングとして、ストップ条件SO２を検出したタイミングを用いた場合について述べたが、本発明はこれに限らず、駆動するチャネルを、所望のデータ単位毎に切り替えるようにしても良く、この場合、１つのチャネルが長時間にわたってバス制御部２１を占有することを防止することができ、また駆動するチャネルを切り替えるデータ単位を小さくすることにより、マスターチャネルMC２及びスレーブチャネルSC２を仮想的に同時に制御することも可能である。
【００４２】
また上述の実施の形態においては、マスターチャネルMC２及びスレーブチャネルSC２を制御する場合について述べたが、本発明はこれに限らず、単一のバス制御部２１によって複数のチャネルを制御し得るものであれば良い。
【図面の簡単な説明】
【００４３】
【図１】本発明の実施の形態によるI2Cバスシステムの構成を示すブロック図である。
【図２】同I2Cバスシステムにおけるマイクロコントローラの構成を示すブロック図である。
【図３】I2Cバスの状態を示す説明図である。
【図４】同マイクロコントローラによる通信制御処理手順を示すフローチャートである。
【図５】従来のマイクロコントローラの構成を示すブロック図である。
【図６】従来のI2Cバスの状態を示す説明図である。
【符号の説明】
【００４４】
１、１１、１２  マイクロコントローラ
２、２０  CPU
３、２１  バス制御部
１０  I2Cバスシステム
１３，１４，１５  デバイス
１６  スタート条件検出回路
【図１】
2005228068.tif 000003
【図２】
2005228068.tif 000004
【図３】
2005228068.tif 000005
【図４】
2005228068.tif 000006
【図５】
2005228068.tif 000007
【図６】
2005228068.tif 000008