JP2005228068A - 半導体装置及びその通信制御方法 - Google Patents
半導体装置及びその通信制御方法 Download PDFInfo
- Publication number
- JP2005228068A JP2005228068A JP2004036395A JP2004036395A JP2005228068A JP 2005228068 A JP2005228068 A JP 2005228068A JP 2004036395 A JP2004036395 A JP 2004036395A JP 2004036395 A JP2004036395 A JP 2004036395A JP 2005228068 A JP2005228068 A JP 2005228068A
- Authority
- JP
- Japan
- Prior art keywords
- channel
- state
- bus
- channels
- slave
- 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
Landscapes
- Bus Control (AREA)
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
【課題】 本発明は、制御部の数を増やすことなく、単一の制御部によって複数のチャネルを制御することができる半導体装置及びその通信制御方法を提供することを目的とする。
【解決手段】 マスターチャネルMC2とスレーブチャネルSC2を有し、当該マスターチャネルMC2とスレーブチャネルSC2のうちいずれか一方しか駆動することができないバス制御部21が、マスターチャネルMC2を駆動しているときに、スレーブチャネルSC2においてスタート条件SA2が発生したことを、スタート条件検出回路16から通知されると、マスターチャネルMC2の駆動を一時停止すると共にスレーブチャネルSC2を駆動することにより、バス制御部21の数を増やすことなく、単一のバス制御部21によって2つのマスターチャネルMC2及びスレーブチャネルSC2を制御することができる。
【選択図】 図1
【解決手段】 マスターチャネルMC2とスレーブチャネルSC2を有し、当該マスターチャネルMC2とスレーブチャネルSC2のうちいずれか一方しか駆動することができないバス制御部21が、マスターチャネルMC2を駆動しているときに、スレーブチャネルSC2においてスタート条件SA2が発生したことを、スタート条件検出回路16から通知されると、マスターチャネルMC2の駆動を一時停止すると共にスレーブチャネルSC2を駆動することにより、バス制御部21の数を増やすことなく、単一のバス制御部21によって2つのマスターチャネルMC2及びスレーブチャネルSC2を制御することができる。
【選択図】 図1
Description
本発明は、半導体装置及びその通信制御方法に関する。
従来、シリアルバス規格としてInter IC Bus(以下、これをI2Cバスと呼ぶ)が標準化されている。このI2Cバスは、シリアルデータライン(SDA)とシリアルクロックライン(SCL)の2本のバスラインによって構成され、当該I2Cバスによって接続されている各デバイスは、それぞれ固有のアドレスを有している。
データ転送はマスターとスレーブの間で行われ、バス使用権を獲得したデバイスであるマスターは、複数のデバイスのうち通信相手として所望するデバイスであるスレーブのアドレスを指定することにより、当該指定したスレーブとの間でデータ転送を実行するようになされている。
またI2Cバスは、当該I2Cバスをコントロールする複数のデバイスを接続することができるマルチマスターバスであり、バスの衝突検出機能及びアービトレーション機能を有するため、たとえ複数のマスターが同時にデータ転送を開始しようとしても、データ破壊を防止することができる。なおマスターとなるのは、一般にはマイクロコントローラである。
ここで図5にマイクロコントローラ1の構成を示す。このマイクロコントローラ1は、CPU(Central Processing Unit)2と、当該マイクロコントローラ1に接続されたI2Cバスのアービトレーションを行うバス制御部3とを有し、これらを内部バスBUSによって接続することにより構築されている。
このマイクロコントローラ1のバス制御部3は、マスターチャネルMC1及びスレーブチャネルSC1を有し、マスターチャネルMC1のI2CバスBUS1を介して外部の複数のデバイスと接続されると共に、スレーブチャネルSC1のI2CバスBUS2を介して外部の複数のデバイスと接続されている。
また、マスターチャネルMC1のI2CバスBUS1は、シリアルデータラインSDA1とシリアルクロックラインSCL1の2本のバスラインを有し、同様に、スレーブチャネルSC1のI2CバスBUS2は、シリアルデータラインSDA2とシリアルクロックラインSCL2の2本のバスラインを有する。
ところで、かかるマイクロコントローラ1は、マスターチャネルMC1及びスレーブチャネルSC1のうちいずれか一方しか駆動することができず、例えばマスターチャネルMC1を駆動させているときは、スレーブチャネルSC1を駆動できず、この場合、スレーブチャネルSC1を監視していないことになる。
ここで図6はI2Cバスの状態を示し、このうち図6(a)はマスターチャネルMC1のI2CバスBUS1の状態を示し、図6(b)はスレーブチャネルSC1のI2CバスBUS2の状態を示す。
この図6に示すように、マイクロコントローラ1は、マスターチャネルMC1を駆動させ、当該マスターチャネルMC1が動作(BUSY)状態にあるときは(図6(a))、例えばスレーブチャネルSC1のI2CバスBUS2に接続されたマイクロコントローラ(図示せず)が、バス使用権を取得しデータ転送を開始するためのスタート条件SA1(図6(b))を発生させても、当該発生したスタート条件SA1を検出することができない。
従って、この場合、マイクロコントローラ1は、データ転送を終了するためのストップ条件SO1を発生させ、マスターチャネルMC1をアイドル(IDLE)状態に遷移させるまで、スレーブチャネルSC1を駆動することができない。
その際、マイクロコントローラ1では、上述したスタート条件SA1(図6(b))を優先して処理しなければならない場合であっても、マスターチャネルMC1の駆動中はスレーブチャネルSC1を監視していないため、当該スタート条件SA1を検出することができず、当該スタート条件SA1を優先して処理することはできないという問題が生じる。
なお、マスターチャネルMC1及びスレーブチャネルSC1の両方を同時に駆動させる方法も考えられるが、この場合、バス制御部3が2つ必要になり、回路規模が大きくなるという問題が生じる。
本発明は以上の点を考慮してなされたもので、単一のバス制御部によって複数のチャネルを制御することができる半導体装置及びその通信制御方法を提供することを目的とする。
本発明の一態様による半導体装置は、
複数のチャネルを有し、前記複数のチャネルを介してそれぞれ所望のデバイスと接続され、前記複数のチャネルのうちいずれか1つのチャネルのみ動作状態に遷移させると共に他のチャネルについてはアイドル状態に維持することにより、当該動作状態に遷移したチャネルのみ制御する制御部と、
前記アイドル状態にあるチャネルにおいて発生する、前記アイドル状態から前記動作状態に遷移させるための動作開始要求を検出する検出部と
を備え、前記制御部は、
前記検出部によって前記動作開始要求が検出されると、前記動作状態にある前記チャネルを前記アイドル状態に遷移させると共に、前記動作開始要求が検出された前記チャネルを前記アイドル状態から前記動作状態に遷移させる
ことを特徴とする。
複数のチャネルを有し、前記複数のチャネルを介してそれぞれ所望のデバイスと接続され、前記複数のチャネルのうちいずれか1つのチャネルのみ動作状態に遷移させると共に他のチャネルについてはアイドル状態に維持することにより、当該動作状態に遷移したチャネルのみ制御する制御部と、
前記アイドル状態にあるチャネルにおいて発生する、前記アイドル状態から前記動作状態に遷移させるための動作開始要求を検出する検出部と
を備え、前記制御部は、
前記検出部によって前記動作開始要求が検出されると、前記動作状態にある前記チャネルを前記アイドル状態に遷移させると共に、前記動作開始要求が検出された前記チャネルを前記アイドル状態から前記動作状態に遷移させる
ことを特徴とする。
また本発明の一態様による半導体装置の通信制御方法は、
複数のチャネルを有し、当該複数のチャネルを介してそれぞれ所望のデバイスと接続された制御部が、前記複数のチャネルのうちいずれか1つのチャネルのみ動作状態に遷移させると共に他のチャネルについてはアイドル状態に維持することにより、当該動作状態に遷移したチャネルのみ制御する制御ステップと、
前記アイドル状態にあるチャネルにおいて発生する、前記アイドル状態から前記動作状態に遷移させるための動作開始要求を検出する検出ステップと、
前記制御部は、前記検出ステップにおいて前記動作開始要求が検出されると、前記動作状態にある前記チャネルを前記アイドル状態に遷移させると共に、前記動作開始要求が検出された前記チャネルを前記アイドル状態から前記動作状態に遷移させる切替えステップと
を備えることを特徴とする。
複数のチャネルを有し、当該複数のチャネルを介してそれぞれ所望のデバイスと接続された制御部が、前記複数のチャネルのうちいずれか1つのチャネルのみ動作状態に遷移させると共に他のチャネルについてはアイドル状態に維持することにより、当該動作状態に遷移したチャネルのみ制御する制御ステップと、
前記アイドル状態にあるチャネルにおいて発生する、前記アイドル状態から前記動作状態に遷移させるための動作開始要求を検出する検出ステップと、
前記制御部は、前記検出ステップにおいて前記動作開始要求が検出されると、前記動作状態にある前記チャネルを前記アイドル状態に遷移させると共に、前記動作開始要求が検出された前記チャネルを前記アイドル状態から前記動作状態に遷移させる切替えステップと
を備えることを特徴とする。
本発明の半導体装置及びその通信制御方法によれば、動作開始要求を検出すると、動作状態にあるチャネルをアイドル状態に遷移させると共に、動作開始要求が検出されたチャネルをアイドル状態から動作状態に遷移させるようにしたことにより、制御部の数を増やすことなく、単一の制御部によって複数のチャネルを制御することができる。
以下、本発明の実施の形態について図面を参照して説明する。
図1に、本発明の実施の形態によるI2Cバスシステム10の構成を示す。このI2Cバスシステム10は、I2CバスBUS3又はBUS4をコントロールするマイクロコントローラ11と、I2CバスBUS4をコントロールするマイクロコントローラ12とを有する。
マイクロコントローラ11は、マスターチャネルMC2及びスレーブチャネルSC2を有し、マスターチャネルMC2に接続されたI2CバスBUS3を介して外部のデバイス13及び14と接続されると共に、スレーブチャネルSC2に接続されたI2CバスBUS4を介して外部のマイクロコントローラ12及びデバイス15と接続されている。
また、I2CバスBUS3は、シリアルデータラインSDA3とシリアルクロックラインSCL3の2本のバスラインを有し、同様に、I2CバスBUS4は、シリアルデータラインSDA4とシリアルクロックラインSCL4の2本のバスラインを有する。
スタート条件検出回路16は、I2CバスBUS3及びBUS4にそれぞれ接続され、マスターチャネルMC2又はスレーブチャネルSC2において、バス使用権を取得しデータ転送を開始するためのスタート条件が発生した場合には、当該発生したスタート条件を検出し、スタート条件が発生したことを表す通知信号S1を生成してこれをマイクロコントローラ11に出力するようになされている。
マイクロコントローラ11は、図2に示すように、CPU20と、当該マイクロコントローラ11に接続されたI2CバスBUS3及びBUS4のアービトレーションを行うバス制御部21とを有し、これらを内部バスBUSによって接続することにより構築されている。
このマイクロコントローラ11のバス制御部21は、マスターチャネルMC2及びスレーブチャネルSC2を有し、マスターチャネルMC2にはI2CバスBUS3が接続されると共に、スレーブチャネルSC2にはI2CバスBUS4が接続されている。
ここで図3にI2Cバスの状態を示し、このうち図3(a)はマスターチャネルMC2に接続されたI2CバスBUS3の状態を示し、図3(b)はスレーブチャネルSC2に接続されたI2CバスBUS4の状態を示す。
この図3に示すように、スタート条件検出回路16は、マスターチャネルMC2が駆動し動作(BUSY)状態にあるときに(図3(a))、例えばスレーブチャネルSC2のI2CバスBUS4に接続されたマイクロコントローラ12が、スタート条件SA2(図3(b))を発生させると、当該発生したスタート条件SA2を検出し、スタート条件が発生したことを表す通知信号S1を生成しこれをマイクロコントローラ11のCPU20を介してバス制御部21に出力する。
バス制御部21は、この通知信号S1に基づくタイミングで、マスターチャネルMC2のシリアルクロックSCLとスレーブチャネルSC2のシリアルクロックSCLとを「0」に設定しクロック同期を行った上で、マスターチャネルMC2のシリアルクロックSCLのみ「0」に固定することにより、当該マスターチャネルMC2の通信を一時停止する一方、スレーブチャネルSC2の動作を開始する。
そして、このバス使用権を獲得したマイクロコントローラ12は、通信相手として所望するデバイスであるスレーブのアドレスを指定し、これをスレーブアドレスとしてスレーブチャネルSC2のI2CバスBUS4に送信する。
ここで図4に本実施の形態による通信制御処理手順RT1を示す。すなわちこの図4においてマイクロコントローラ11は、通信制御処理手順RT1に入ると、ステップSP1において、マスターチャネルMC2を駆動し、当該マスターチャネルMC2における通信を実行する。
そしてステップSP2において、割込み要求が例えばマイクロコントローラ12において発生すると、続くステップSP3において、スタート条件検出回路16は、スタート条件SA2の検出を試みる。
このステップSP3において肯定結果が得られると、このことはマイクロコントローラ12がスタート条件SA2を発生させ、スタート条件検出回路16が当該スタート条件SA2を検出したことを表しており、このときスタート条件検出回路16は、マイクロコントローラ11に通知信号S1を出力してステップSP4に移る。
これに対して、ステップSP3において否定結果が得られると、このことはスタート条件SA2が発生しておらず、スタート条件検出回路16がスタート条件SA2を検出できなかったことを表しており、このときマイクロコントローラ11はステップSP5に移る。
そしてステップSP4において、マイクロコントローラ11は、マスターチャネルMC2の通信を停止する。続くステップSP6に移って、マイクロコントローラ12がスレーブアドレスを指定しこれをスレーブチャネルSC2のI2CバスBUS4に送信すると、デバイス15は、このスレーブアドレスを取得する。
ステップSP7において、デバイス15は、取得したスレーブアドレスと、当該デバイス15に割り当てられているアドレスとを比較する。
このステップSP7において肯定結果が得られると、このことはスレーブアドレスが自分宛てに送信されてきたことを表しており、このときデバイス15は、ステップSP8に移って、アクノリッジ(ACK)をマイクロコントローラ12に送信することにより、スレーブチャネルSC2の通信を実行した後、マスターチャネルMC2の通信を再開させる。
これに対して、ステップSP7において否定結果が得られると、このことはスレーブアドレスが自分宛てに送信されてきたものではないことを表しており、このときデバイス15は、ノットアクノリッジ(NACK)をマイクロコントローラ12に送信することにより、マスターチャネルMC2を起動させ、マスターチャネルMC2における通信を再開させる。
そしてステップSP5において、マイクロコントローラ11は、マスターチャネルMC2の通信が終了したか否かを判断し、当該通信が終了したと判断した場合にはステップSP9に移って通信制御処理手順RT1を終了し、当該通信が終了していないと判断した場合にはステップSP1に戻って上述の動作を繰り返す。
以上の構成を備えたことにより、マスターチャネルMC2とスレーブチャネルSC2を有し、当該マスターチャネルMC2とスレーブチャネルSC2のうちいずれか一方しか駆動することができないバス制御部21が、マスターチャネルMC2を駆動しているときに、スレーブチャネルSC2においてスタート条件SA2が発生したことを、スタート条件検出回路16から通知されると、マスターチャネルMC2の駆動を一時停止すると共にスレーブチャネルSC2を駆動することにより、駆動するチャネルを切り替える。
よって、本実施の形態によれば、バス制御部21の数を増やすことなく、単一のバス制御部21によって2つのマスターチャネルMC2及びスレーブチャネルSC2を制御することができる。
なお上述の実施の形態においては、マスターチャネルMC2を駆動しているときに、スレーブチャネルSC2において発生するスタート条件SA2を検出し、駆動するチャンネルをマスターチャネルMC2からスレーブチャネルSC2に切り替える場合について述べたが、本発明はこれに限らず、例えばスレーブチャネルSC2を駆動しているときに、マスターチャネルMC2において発生するスタート条件SA2を検出し、駆動するチャンネルをスレーブチャネルSC2からマスターチャネルMC2に切り替える場合など、バス制御部21によって制御されていないチャネルに制御を移すことが可能である。
また上述の実施の形態においては、駆動するチャネルを、スレーブチャネルSC2から元のマスターチャネルMC2に戻すタイミングとして、ストップ条件SO2を検出したタイミングを用いた場合について述べたが、本発明はこれに限らず、駆動するチャネルを、所望のデータ単位毎に切り替えるようにしても良く、この場合、1つのチャネルが長時間にわたってバス制御部21を占有することを防止することができ、また駆動するチャネルを切り替えるデータ単位を小さくすることにより、マスターチャネルMC2及びスレーブチャネルSC2を仮想的に同時に制御することも可能である。
また上述の実施の形態においては、マスターチャネルMC2及びスレーブチャネルSC2を制御する場合について述べたが、本発明はこれに限らず、単一のバス制御部21によって複数のチャネルを制御し得るものであれば良い。
1、11、12 マイクロコントローラ
2、20 CPU
3、21 バス制御部
10 I2Cバスシステム
13,14,15 デバイス
16 スタート条件検出回路
2、20 CPU
3、21 バス制御部
10 I2Cバスシステム
13,14,15 デバイス
16 スタート条件検出回路
Claims (5)
- 複数のチャネルを有し、前記複数のチャネルを介してそれぞれ所望のデバイスと接続され、前記複数のチャネルのうちいずれか1つのチャネルのみ動作状態に遷移させると共に他のチャネルについてはアイドル状態に維持することにより、当該動作状態に遷移したチャネルのみ制御する制御部と、
前記アイドル状態にあるチャネルにおいて発生する、前記アイドル状態から前記動作状態に遷移させるための動作開始要求を検出する検出部と
を備え、前記制御部は、
前記検出部によって前記動作開始要求が検出されると、前記動作状態にある前記チャネルを前記アイドル状態に遷移させると共に、前記動作開始要求が検出された前記チャネルを前記アイドル状態から前記動作状態に遷移させる
ことを特徴とする半導体装置。 - 前記制御部は、
前記検出部によって前記動作開始要求が検出されると、前記動作状態にある前記チャネルと前記動作開始要求が検出された前記チャネルとに対してクロック同期を行った上で、前記動作状態にある前記チャネルに出力するクロックを所定レベルに固定することにより、前記動作状態にある前記チャネルを前記アイドル状態に遷移させると共に、前記動作開始要求が検出された前記チャネルを前記アイドル状態から前記動作状態に遷移させることを特徴とする請求項1記載の半導体装置。 - 前記制御部は、
前記各チャネルにそれぞれ接続されたバスを介して前記デバイスとそれぞれ接続されていることを特徴とする請求項1記載の半導体装置。 - 前記バスは、
シリアルデータラインとシリアルクロックラインを有するシリアルバスであることを特徴とする請求項3記載の半導体装置。 - 複数のチャネルを有し、当該複数のチャネルを介してそれぞれ所望のデバイスと接続された制御部が、前記複数のチャネルのうちいずれか1つのチャネルのみ動作状態に遷移させると共に他のチャネルについてはアイドル状態に維持することにより、当該動作状態に遷移したチャネルのみ制御する制御ステップと、
前記アイドル状態にあるチャネルにおいて発生する、前記アイドル状態から前記動作状態に遷移させるための動作開始要求を検出する検出ステップと、
前記制御部は、前記検出ステップにおいて前記動作開始要求が検出されると、前記動作状態にある前記チャネルを前記アイドル状態に遷移させると共に、前記動作開始要求が検出された前記チャネルを前記アイドル状態から前記動作状態に遷移させる切替えステップと
を備えることを特徴とする半導体装置の通信制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004036395A JP2005228068A (ja) | 2004-02-13 | 2004-02-13 | 半導体装置及びその通信制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004036395A JP2005228068A (ja) | 2004-02-13 | 2004-02-13 | 半導体装置及びその通信制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005228068A true JP2005228068A (ja) | 2005-08-25 |
Family
ID=35002736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004036395A Pending JP2005228068A (ja) | 2004-02-13 | 2004-02-13 | 半導体装置及びその通信制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005228068A (ja) |
-
2004
- 2004-02-13 JP JP2004036395A patent/JP2005228068A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4558519B2 (ja) | 情報処理装置およびシステムバス制御方法 | |
JP4855451B2 (ja) | 記憶装置のアクセス方法及び装置 | |
US8531893B2 (en) | Semiconductor device and data processor | |
JP2010140361A (ja) | コンピュータシステム及び異常検出回路 | |
JP2013097659A (ja) | 半導体データ処理装置、タイムトリガ通信システム及び通信システム | |
JP2008009817A (ja) | 半導体装置及びデータ転送方法 | |
JP4711410B2 (ja) | 半導体集積回路 | |
JP7146650B2 (ja) | 通信装置、通信方法、プログラム、および、通信システム | |
US8239600B2 (en) | Data processing system with selectable interrupt control | |
JP5058890B2 (ja) | バス制御装置 | |
JP2005228068A (ja) | 半導体装置及びその通信制御方法 | |
JP2009025896A (ja) | データ処理装置及びデータ処理方法 | |
JP2007272554A (ja) | データ処理装置 | |
US8645602B2 (en) | Microcomputer | |
JPH08171528A (ja) | データ処理装置 | |
JP5148236B2 (ja) | 半導体集積回路及び半導体集積回路の制御方法 | |
JP2007052685A (ja) | マイクロコントローラ | |
JP2007172430A (ja) | 半導体集積回路 | |
JP2007249667A (ja) | データ転送装置およびデータ転送システム | |
JP4887044B2 (ja) | 半導体集積回路装置 | |
JP2008165463A (ja) | バス制御装置 | |
JP2006092077A (ja) | バスシステム | |
JP2005352559A (ja) | マルチプロセッサシステムにおけるデータ転送方法 | |
JP2000010909A (ja) | データ転送制御装置 | |
JP2006119982A (ja) | コンピュータシステム |