(57)【要約】【課題】予備の通信装置を用いずに、データバスに断線が生じた場合でも通信を継続する。【解決手段】半導体装置２０は、複数のデータ線ＤＬを含むデータバスＤＢを介してデータ信号の送受信を行う通信回路２７を備える。この通信回路２７は、いずれかのデータ線ＤＬで断線が生じた場合には、断線したデータ線ＤＬを除く少なくとも１つのデータ線ＤＬを用いてデータ信号の送受信を行う。【選択図】図２
2020027414.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ線を含むデータバスと接続され、前記複数のデータ線のうちの１つ以上のデータ線を用いてデータ信号を送受信する通信回路と、
各前記データ線が断線しているか否かを検出する断線検出回路とを備え、
前記通信回路は、前記断線検出回路によってデータ線の断線が検出された場合に、断線が検出されたデータ線を除く少なくとも１つのデータ線を用いて前記データ信号の送受信を行うように構成される、半導体装置。
【請求項２】
前記通信回路は、クロック線とさらに接続され、前記データ信号と同期したクロック信号を送信する、請求項１に記載の半導体装置。
【請求項３】
前記断線検出回路は、各前記データ線に加えて、前記クロック線が断線しているか否かを検出し、
前記通信回路は、前記断線検出回路によって前記クロック線の断線が検出された場合に、前記データバスを構成する前記複数のデータ線のうちのいずれか１つである第１のデータ線を用いて前記クロック信号の送信を行い、前記データバスのうち前記第１のデータ線を除く少なくとも１つのデータ線を用いて前記データ信号の送受信を行うように構成される、請求項２に記載の半導体装置。
【請求項４】
前記通信回路は、
前記複数のデータ線にそれぞれ対応する複数の入出力ノードを有し、前記複数の入出力ノードを介して前記データ信号の送受信を行う通信部と、
前記通信部と前記データバスとの間に設けられた切替え回路とを含み、
前記切替え回路は、前記断線検出回路によってデータ線の断線が検出された場合に、断線検出前に前記データ信号の送受信に使用していたのと同じ１つ以上の入出力ノードとの接続を切替えながら、前記１つ以上の入出力ノードを、断線が検出されたデータ線を除く前記少なくとも１つのデータ線に接続するように構成される、請求項１に記載の半導体装置。
【請求項５】
前記通信部は、前記断線検出回路によってデータ線の断線が検出された後、前記データ信号の送受信に使用するデータ線の本数に応じて通信速度を変更する、請求項４に記載の半導体装置。
【請求項６】
前記通信回路は、
前記複数のデータ線にそれぞれ対応する複数の入出力ノードを有し、前記複数の入出力ノードを介して前記データ信号の送受信を行う通信部と、
前記クロック線に対応する出力ノードを有し、前記出力ノードを介して前記クロック信号を送信するクロック生成回路と、
前記通信部および前記クロック生成回路と前記データバスおよび前記クロック線との間に設けられた切替え回路とを含み、
前記切替え回路は、前記断線検出回路によって前記クロック線の断線が検出された場合に、前記クロック生成回路の前記出力ノードを前記第１のデータ線に接続し、断線検出前に前記データ信号の送受信に使用していたのと同じ１つ以上の入出力ノードとの接続を切替えながら、前記１つ以上の入出力ノードを、前記第１のデータ線を除く前記少なくとも１つのデータ線に接続するように構成される、請求項３に記載の半導体装置。
【請求項７】
前記通信回路から送信される通信フレームは、前記断線検出回路による断線検出結果の情報を含む、請求項１に記載の半導体装置。
【請求項８】
複数のデータ線を含むデータバスと、
前記データバスを介して相互に接続され、前記複数のデータ線のうちの１つ以上のデータ線を用いて通信を行う第１の半導体装置および第２の半導体装置とを備え、
前記第１の半導体装置は、前記複数のデータ線のうちいずれか１つのデータ線が断線していると判定した場合に、前記複数のデータ線のうち断線と判定したデータ線を除く少なくとも１つのデータ線を用いて、前記第２の半導体装置との間でデータ信号の送受信を行うように構成され、
前記第２の半導体装置は、前記第１の半導体装置から通信に使用するデータ線に関する設定情報を受け、前記設定情報に基づいて、前記第１の半導体装置との間でデータ信号の送受信を行うように構成される、半導体システム。
【請求項９】
前記複数のデータ線は、第１の電源電位と個別の抵抗器を介して接続され、
前記第１の半導体装置は、各前記データ線と対応の抵抗器との接続点から前記第１の半導体装置までの第１の区間において各前記データ線の断線の有無を検出し、
前記第２の半導体装置は、各前記接続点から前記第２の半導体装置までの第２の区間において各前記データ線の断線の有無を検出し、
前記第１の半導体装置は、前記第１の区間における各前記データ線の断線の有無の情報と、前記第２の半導体装置から受信した前記第２の区間における各前記データ線の断線の有無の情報とから、各前記データ線が断線しているか否かを判定する、請求項８に記載の半導体システム。
【請求項１０】
前記第１の半導体装置と前記第２の半導体装置との間を接続するクロック線をさらに備え、
前記第１の半導体装置は、前記クロック線を介して前記データ信号と同期したクロック信号を前記第２の半導体装置に送信する、請求項８に記載の半導体システム。
【請求項１１】
前記第１の半導体装置は、前記クロック線が断線していると判定した場合に、前記複数のデータ線のうちのいずれか１つである第１のデータ線を用いて前記クロック信号の送信を行い、前記データバスのうち前記第１のデータ線を除く少なくとも１つのデータ線を用いて前記データ信号の送受信を行うように構成される、請求項１０に記載の半導体システム。
【請求項１２】
前記複数のデータ線および前記クロック線は、第１の電源電位と個別の抵抗器を介して接続され、
前記第１の半導体装置は、前記複数のデータ線および前記クロック線の各々と対応の抵抗器との接続点から前記第１の半導体装置までの第１の区間において各前記データ線および前記クロック線の断線の有無を検出し、
前記第２の半導体装置は、各前記接続点から前記第２の半導体装置までの第２の区間において各前記データ線および前記クロック線の断線の有無を検出し、
前記第１の半導体装置は、前記第１の区間における各前記データ線および前記クロック線の断線の有無の情報と、前記第２の半導体装置から受信した前記第２の区間における各前記データ線および前記クロック線の断線の有無の情報とから、各前記データ線および前記クロック線が断線しているか否かを判定する、請求項１１に記載の半導体システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、半導体装置および半導体システムに関し、たとえば、データバスを介して相互に通信を行う半導体装置を備えた半導体システムにおいて好適に用いられるものである。
【背景技術】
【０００２】
データバスを介して通信装置間で通信を行うシステムにおいて、データバスの断線を検知して検知結果を一方の通信装置から他方の通信装置に通知する構成、さらには断線検知後も通信装置間での通信を継続可能にする構成が提案されている。
【０００３】
たとえば、特開２０１５−８４１９８号公報（特許文献１）は、ＲＳ−４２２という通信規格に関して、断線の検知と相手方への通知とを行う方法を開示する。ここで、ＲＳ−４２２規格に従う通信装置は、差動シリアル信号を送信するための２個の送信端と、差動シリアル信号を受信するための２個の受信端とを備える。２個の受信端にはプルアップ抵抗がそれぞれ接続される。
【０００４】
具体的にこの文献に開示された通信装置は、通信中に２個の受信端が共にハイ（Ｈ）になるか、又は一方がハイ（Ｈ）とロー（Ｌ）を繰り返すときに他方がハイ（Ｈ）になったままになったときに断線が発生したことを検知する検知部を備える。さらに、通信装置は、検知部によって断線が検知されたときに、２個の送信端を共に一定期間ロー（Ｌ）として通信の相手方に断線が検知されたことを通知する通知部を備える。
【０００５】
また、特開２０１４−２１７５３号公報（特許文献２）は、断線検知後も通信を継続可能にする通信装置を開示する。具体的にこの文献の通信装置は、パラレルバスを介して通信を行うパラレル通信インタフェースと、シリアル通信インタフェースと、多数決回路とを備える。シリアル通信インタフェースは、多数決回路を介してパラレスバスに接続される。パラレルバスに異常が検出された場合には、送信側のシリアル通信インタフェースは、パラレルバスの全ビットに同じデータを出力する。受信側のシリアル通信インタフェースは、多数決回路の演算結果に従ってパラレルバスの全ビットの値において多く示された値に決定する。これにより、パラレル通信に代えてシリアル通信を継続することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１５−８４１９８号公報
【特許文献２】特開２０１４−２１７５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来の通信装置の場合、データバスに断線が生じた時点で、それまで行ってきた通信は中断される。通常は、断線箇所が復旧されてから、通信が再開される。
【０００８】
断線が生じた場合でも通信を継続可能とするためには、予備の通信装置をバックアップとして備える冗長化による方法が一般的である。しかしながら、冗長化は、コストがかかるので、一般的には重要なシステムでしか採用されない。
【０００９】
上記の特開２０１４−２１７５３号公報（特許文献２）は、パラレスバスに断線が生じた場合に、通信を継続できる通信装置を開示している。しかしながら、当該通信装置は、パラレル通信インタフェース以外に、通常時には使用されないシリアル通信インタフェースも備える必要があり、冗長なシステムとなっている。
【００１０】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
一実施形態による半導体装置は、複数のデータ線を含むデータバスを介してデータ信号の送受信を行う通信回路を備える。この通信回路は、いずれかのデータ線で断線が生じた場合には、断線したデータ線を除く少なくとも１つのデータ線を用いてデータ信号の送受信を行う。
【発明の効果】
【００１２】
上記の実施形態によれば、予備の通信装置を用いずに、データバスに断線が生じた場合でも通信を継続することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態の半導体システムにおいて、断線検出時の動作の概要を説明するための図である。
【図２】図１の半導体装置の具体的構成の一例を示すブロック図である。
【図３】図２の半導体システムにおいて、データバスの断線検出手順を示すフローチャートである。
【図４】図２の半導体システムにおいて、断線検出時のデータ線の接続切替え手順を示すフローチャートである。
【図５】クロック信号およびデータ信号の一例を示すタイミング図である。
【図６】第２の実施形態の半導体システムにおいて、クロック線の断線を検出したときの動作の概要を示す図である。
【図７】図６の半導体装置の具体的構成の一例を示すブロック図である。
【図８】図７の半導体システムにおいて、クロック線およびデータ線の断線検出手順を示すフローチャートである。
【図９】図７の半導体システムにおいて、断線検出時のクロック線およびデータ線の接続切替え手順を示すフローチャートである。
【図１０】第１および第２の実施形態の半導体システムで用いられる通信フレームの構成を示す模式図である。
【発明を実施するための形態】
【００１４】
以下、各実施形態について図面を参照して詳しく説明する。なお、同一または相当する部分には同一の参照符号を付して、その説明を繰り返さない場合がある。
【００１５】
＜第１の実施形態＞
［断線検出時の動作の概要］
図１は、第１の実施形態の半導体システムにおいて、断線検出時の動作の概要を説明するための図である。
【００１６】
図１（Ａ）を参照して、半導体システム１００は、クロック線ＣＬＫとデータバスＤＢとを介して相互に接続された半導体装置２０および半導体装置３０を備える。以下の説明では、主として半二重通信を想定し、半導体装置２０をマスタとし、半導体装置３０をスレーブとする。
【００１７】
図１の例では、データバスＤＢは、４本のデータ線ＤＬ＿０〜ＤＬ＿３を有する。データ線ＤＬ＿０〜ＤＬ＿３について、総称する場合またはいずれか１本を示す場合にデータ線ＤＬと記載する。なお、図１のデータバスＤＢの構成は一例であって、データ線ＤＬの総数は４本に限定されない。
【００１８】
半導体装置２０は、クロック線ＣＬＫを介してクロック信号を半導体装置３０に送信する。また、半導体装置２０は、データ線ＤＬ＿０〜ＤＬ＿３のうち１本以上を介して、クロック信号に同期したデータ信号を半導体装置３０に送信する。半導体装置３０は、半導体装置２０から受信したクロック信号に同期させたデータ信号を、データ線ＤＬ＿０〜ＤＬ＿３のうち１本以上を介して半導体装置２０に送信する。
【００１９】
図１（Ａ）の例では、半導体装置２０は、全てのデータ線ＤＬ＿０〜ＤＬ＿３を用いて１クロックに４ビットずつデータ信号を半導体装置３０に送信しているとする。ただし、必ずしもデータバスＤＢを構成する全てのデータ線ＤＬ＿０〜ＤＬ＿３を用いて、データ信号の送受信を行う必要はない。
【００２０】
次に、図１（Ｂ）を参照して、データ線ＤＬ＿３において断線が発生したとする。半導体装置２０は、内蔵の断線検出回路（不図示）でこの断線の発生を検出するか、または半導体装置３０からこの断線発生の情報を受信する。
【００２１】
その次に、図１（Ｃ）に示すように、半導体装置２０は、断線と判定されたデータ線ＤＬ＿３を除くデータ線ＤＬ＿０〜ＤＬ＿２のうち少なくとも１本を用いてデータ信号の送信を行う。図２（Ｃ）の例では、半導体装置２０は、２本のデータ線ＤＬ＿０，ＤＬ＿１を用いて１クロックに２ビットずつデータ信号を送信するように通信チャネルの切替えを行う。これによって、いずれかのデータ線ＤＬで断線が発生した後も、データ信号の通信を継続することができる。
【００２２】
上記のデータ通信の方式は、フラッシュメモリなどにアクセスするためのクワッドシリアル周辺機器インタフェース（ＱＳＰＩ：Quad  Serial  Peripheral  Interface）と同じように見えるかもしれない。具体的に、図１（Ａ）では、半導体システム１００はＱＳＰＩがサポートする通信モードのうち「Quad  SPIモード」を用いて半二重通信を行っており、図１（Ｃ）では、半導体システム１００は「Dual  SPIモード」を用いて半二重通信を行っているように見える。
【００２３】
しかしながら、従来のＱＳＰＩの「Dual  SPIモード」では、たとえば、上記のデータ線ＤＬ＿０，ＤＬ＿１のように使用するデータ線が予め決められており変更することができない。したがって、従来のＱＳＰＩの場合には、データ線ＤＬ＿０に断線が生じたことを検出した場合には、通信を継続することができない。
【００２４】
これに対して、本実施形態の場合には、どのデータ線を通信に使用するかと、同時に使用するデータ線の本数は予め限定されていない。たとえば、半導体装置２０は、データ線ＤＬ＿０に断線が生じた場合には、データ線ＤＬ＿２，ＤＬ＿３を用いて通信を継続することができる。また、半導体装置２０，３０は、４本のデータ線ＤＬ＿０〜ＤＬ＿３のうち断線と判定されたいずれかのデータ線を除く、３本のデータ線を用いて通信を行ってもよい。
【００２５】
［半導体装置の構成の詳細］
図２は、図１の半導体装置の具体的構成の一例を示すブロック図である。図２では、図１の場合と同様に、半導体装置２０はマスタとして用いられ、半導体装置３０はスレーブとして用いられる。
【００２６】
さらに、図２では、クロック線ＣＬＫおよび各データ線ＤＬにプルアップ抵抗が接続されている。具体的に、クロック線ＣＬＫは、プルアップ抵抗としての抵抗器Ｒ１を介して電源電位ＶＤＤと接続される。データ線ＤＬ＿０〜ＤＬ＿３は、プルアップ抵抗としての抵抗器Ｒ２〜Ｒ５をそれぞれ介して電源電位ＶＤＤと接続される。
【００２７】
以下では、まず、マスタとしての半導体装置２０の構成例について説明する。図２に示すように、半導体装置２０は、通信回路２７と、断線検出回路２４と、コントローラ２５と、メモリ２６とを含む。
【００２８】
通信回路２７は、クロック線ＣＬＫおよびデータ線ＤＬ＿０〜ＤＬ＿３と接続される。データ線ＤＬ＿０〜ＤＬ＿３はデータバスＤＢを構成する。
【００２９】
通信回路２７は、クロック線ＣＬＫを介してクロック信号をスレーブの半導体装置３０に送信する。さらに、通信回路２７は、データバスＤＢを介して、クロック信号に同期したデータ信号をスレーブの半導体装置３０に送信する。さらに、通信回路２７は、データバスＤＢを介して、クロック信号に同期したデータ信号を半導体装置３０から受信する。
【００３０】
ここで、通信回路２７は、データ線ＤＬ＿０〜ＤＬ＿３のうち１本以上のデータ線を用いて通信を行う。通信回路２７は、どのデータ線ＤＬをデータ信号の送受信に使用するかと、同時に使用するデータ線ＤＬの本数とを変更可能である。
【００３１】
より詳細には、通信回路２７は、シリアル周辺機器インタフェースの一種であるＱＳＰＩをベースに構成される。図２に示すように、通信回路２７は、ＱＳＰＩクロック生成回路２１と、ＱＳＰＩ通信部２２と、切替え回路２３とを含む。
【００３２】
ＱＳＰＩクロック生成回路２１は、ＱＳＰＩで用いるクロック信号を生成する。ＱＳＰＩクロック生成回路２１は、クロック出力ノードＣＯを含み、クロック出力ノードＣＯを介して、生成したクロック信号をクロック線ＣＬＫに出力する。
【００３３】
ＱＳＰＩ通信部２２は、クロック信号に同期したデータ信号を生成し、生成したデータ信号を、切替え回路２３を介してデータバスＤＢに出力する。さらに、ＱＳＰＩ通信部２２は、スレーブの半導体装置３０から出力されたクロック信号に同期したデータ信号を、切替え回路２３を介して受信する。ここで、ＱＳＰＩ通信部２２は、入出力ノードＩＯ０〜ＩＯ３を含み、入出力ノードＩＯ０〜ＩＯ３を介してデータ信号の送受信を行う。
【００３４】
ＱＳＰＩがサポートする通信モードは、「Single  SPIモード」、「Dual  SPIモード」、「Quad  SPIモード」の３つである。「Single  SPIモード」は全二重３線式の通常のＳＰＩ通信であり、入出力ノードＩＯ０がデータ出力用であり、入出力ノードＩＯ１がデータ入力用である。「Dual  SPIモード」は１クロックにつき２ビットのデータが送信される半二重方式であり、入出力ノードＩＯ０，ＩＯ１がデータの入出力に用いられる。「Quad  SPIモード」は１クロックについて４ビットのデータが送信される半二重方式であり、入出力ノードＩＯ０〜ＩＯ３がデータの入出力に用いられる。
【００３５】
切替え回路２３は、ＱＳＰＩ通信部２２とデータバスＤＢとの間に接続される。切替え回路２３は、コントローラ２５からの指令に基づいて、ＱＳＰＩ通信部２２の入出力ノードＩＯ０〜ＩＯ３とデータ線ＤＬ＿０〜ＤＬ＿３との間の接続を切り替える。
【００３６】
データ線ＤＬの断線が生じていない場合、入出力ノードＩＯ０〜ＩＯ３とデータ線ＤＬ＿０〜ＤＬ＿３とがそれぞれ対応しており、切替え回路２３は、基本的に互いに対応する入出力ノードＩＯとデータ線ＤＬとを接続する。たとえば、ＱＳＰＩ通信部２２が「Quad  SPIモード」で動作している場合、切替え回路２３は、入出力ノードＩＯ０〜ＩＯ３をデータ線ＤＬ＿０〜ＤＬ＿３にそれぞれ接続する。ＱＳＰＩ通信部２２が「Dual  SPIモード」で動作している場合、切替え回路２３は、入出力ノードＩＯ０，ＩＯ１をデータ線ＤＬ＿０，ＤＬ＿１にそれぞれ接続する。「Dual  SPIモード」の場合、入出力ノードＩＯ２，ＩＯ３はデータ信号の送受信に使用されていないので、入出力ノードＩＯ２，ＩＯ３をデータ線ＤＬ＿２，ＤＬ＿３に接続する必要はない。
【００３７】
一方、データ線ＤＬの断線が生じている場合、切替え回路２３は、断線発生前にデータ信号の送受信に使用していたのと同じ入出力ノードＩＯとの接続を順次切替えながら、当該入出力ノードＩＯを、断線したデータ線ＤＬを除いて通信に使用する少なくとも１本のデータ線ＤＬに接続する。
【００３８】
たとえば、ＱＳＰＩ通信部２２が「Quad  SPIモード」で動作しているとき、データ線ＤＬ＿３に断線が生じたとする。この場合、ＱＳＰＩ通信部２２の通信モードに変更はないが、断線したデータ線ＤＬ＿３を除く２本のデータ線ＤＬ＿０，ＤＬ＿１を用いるように接続が変更される。具体的に、切替え回路２３は、クロックの第１周期において、入出力ノードＩＯ２，ＩＯ３をデータ線ＤＬ＿０，ＤＬ＿１に接続し、次の第２周期において、入出力ノードＩＯ０，ＩＯ１をデータ線ＤＬ＿０，ＤＬ＿１に接続する。以降、上記の第１周期および第２周期の接続の切替えが繰り返される。
【００３９】
断線検出回路２４は、各データ線ＤＬの断線の有無を検出する。断線検出の方法は、各データ線ＤＬの断線の有無を検出可能なものであれば、公知のどのような方法を利用しても構わない。
【００４０】
本実施形態では一例として、各データ線ＤＬの電位検出に基づく方法を示している。具体的な断線検出手順については、図３を参照して後述するが、簡単に述べると次のとおりである。
【００４１】
まず、各データ線ＤＬを、電源電位ＶＤＤと異なる電位（たとえば、接地電位）となるようにプリチャージする。この状態で、各データ線ＤＬと半導体装置２０のＱＳＰＩ通信部２２との間を高インピーダンスにし、各データ線ＤＬと半導体装置３０のＱＳＰＩ通信部３２との間を高インピーダンスにする。もし、データ線ＤＬに断線がなければ、各データ線ＤＬの電位は、プルアップ抵抗を介して接続されている電源電位ＶＤＤまでチャージアップされるはずである。したがって、その電位変化を断線検出回路２４によって検出することによって、各データ線ＤＬが正常か否かを判定する。
【００４２】
ただし、上記の方法で断線検出可能な範囲は、各データ線ＤＬと抵抗器Ｒとの接続点から半導体装置２０までの範囲（図２で区間Ａとして示す）である。各データ線ＤＬの残りの部分、すなわち、上記の接続点から半導体装置３０までの範囲（図２で区間Ｂとして示す）における各データ線ＤＬの断線の有無については、図３を参照して後述するように、半導体装置３０が検出する。
【００４３】
コントローラ２５は、半導体装置２０全体を制御する。たとえば、コントローラ２５は、ＱＳＰＩクロック生成回路２１およびＱＳＰＩ通信部２２の動作設定を行う。さらに、コントローラ２５は、断線検出回路２４の検出結果に基づいて、切替え回路２３を制御する。メモリ２６は、たとえば、フラッシュメモリなどの不揮発性メモリである。
【００４４】
コントローラ２５は、ＣＰＵ（Central  Processing  Unit）、ＲＡＭ（Random  Access  Memory）、およびＲＯＭ（Read  Only  Memory）を含むマイクロコンピュータとして構成されていてもよい。この場合、コントローラ２５は、ＲＯＭおよびメモリ２６などに格納されたプログラムに従って動作する。もしくは、コントローラ２５は、ＦＰＧＡ（Field-Programmable  Gate  Array）またはＡＳＩＣ（Application  Specific  Integrated  Circuit）などの回路として構成されていてもよい。
【００４５】
次に、スレーブとしての半導体装置３０の構成例について説明する。図２を参照して、半導体装置３０は、通信回路３７と、コントローラ３５と、メモリ３６とを含む。
【００４６】
通信回路３７は、クロック線ＣＬＫおよびデータ線ＤＬ＿０〜ＤＬ＿３と接続される。通信回路３７は、クロック線ＣＬＫを介してマスタの半導体装置２０からクロック信号を受信する。さらに、通信回路３７は、データバスＤＢを介してクロック信号に同期したデータ信号をマスタの半導体装置２０から受信する。さらに、通信回路３７は、受信したクロック信号に同期したデータ信号をマスタの半導体装置２０に送信する。
【００４７】
ここで、通信回路３７の動作設定は、マスタの半導体装置２０の通信回路２７の動作設定に対応付けて決定される。たとえば、データ線ＤＬ＿０〜ＤＬ＿３のうちどのデータ線ＤＬをデータ信号の送受信に使用するかと、同時に使用するデータ線ＤＬの本数とは、通信回路２７の設定と同様に設定される。
【００４８】
より詳細には、通信回路３７は、マスタの半導体装置２０の通信回路２７の場合と同様に、ＱＳＰＩをベースに構成される。図２に示すように、通信回路３７は、ＱＳＰＩ通信部３２と、切替え回路３３とを含む。
【００４９】
ＱＳＰＩ通信部３２は、クロック線ＣＬＫを介して、マスタの半導体装置２０に設けられたＱＳＰＩクロック生成回路２１からクロック信号を受信する。さらに、ＱＳＰＩ通信部３２は、切替え回路３３を介してデータバスＤＢを構成するデータ線ＤＬ＿０〜ＤＬ＿３と接続され、マスタのＱＳＰＩ通信部２２から出力されたデータ信号を受信する。さらに、ＱＳＰＩ通信部３２は、受信したクロック信号に同期したデータ信号を生成し、生成したデータ信号を、切替え回路３３を介してデータバスＤＢに出力する。
【００５０】
ここで、ＱＳＰＩ通信部３２は、クロック入力ノードＣＩと、入出力ノードＩＯ０〜ＩＯ３とを含む。ＱＳＰＩ通信部３２は、クロック入力ノードＣＩを介してクロック信号を受信し、入出力ノードＩＯ０〜ＩＯ３を介してデータ信号の送受信を行う。
【００５１】
ＱＳＰＩ通信部３２によって使用される通信モードは、マスタのＱＳＰＩ通信部２２と同じに設定される。たとえば、マスタのＱＳＰＩ通信部２２において「Quad  SPIモード」が使用されている場合には、スレーブのＱＳＰＩ通信部３２においても「Quad  SPIモード」が使用される。
【００５２】
切替え回路３３は、ＱＳＰＩ通信部３２とデータバスＤＢとの間に接続される。切替え回路３３は、コントローラ３５からの指令に基づいて、ＱＳＰＩ通信部３２の入出力ノードＩＯ０〜ＩＯ３とデータ線ＤＬ＿０〜ＤＬ＿３との間の接続を切り替える。
【００５３】
ここで、切替え回路３３の接続動作は、マスタの半導体装置２０の切替え回路２３の接続動作に対応するように制御される。たとえば、ＱＳＰＩ通信部２２，３２が「Quad  SPIモード」で動作しているとき、マスタの半導体装置２０の切替え回路２３が、データ線ＤＬ＿０，ＤＬ＿１のみを使ってデータ信号を送信するように、ＱＳＰＩ通信部２２の４個の入出力ノードＩＯ０〜ＩＯ３とデータ線ＤＬ＿０，ＤＬ１との間の接続を切替えるように動作しているとする。この場合、スレーブの半導体装置３０の切替え回路３３は、データ線ＤＬ＿０，ＤＬ＿１のみを使ってデータ信号を受信するように、ＱＳＰＩ通信部３２の４個の入出力ノードＩＯ０〜ＩＯ３とデータ線ＤＬ＿０，ＤＬ１との間の接続を切替えるように動作する。
【００５４】
コントローラ３５は、半導体装置３０全体を制御する。たとえば、コントローラ３５は、ＱＳＰＩ通信部３２の動作設定を行う。さらに、コントローラ３５は、マスタの半導体装置２０から受信した切替え回路２３の設定情報に基づいて、切替え回路３３の接続の設定変更を行う。メモリ３６は、たとえば、フラッシュメモリなどの不揮発性メモリである。
【００５５】
コントローラ３５は、ＣＰＵ、ＲＡＭ、およびＲＯＭを含むマイクロコンピュータとして構成されていてもよい。この場合、コントローラ３５は、ＲＯＭおよびメモリ３６などに格納されたプログラムに従って動作する。もしくは、コントローラ３５は、ＦＰＧＡまたはＡＳＩＣなどの回路として構成されていてもよい。
【００５６】
［断線検出手順］
図３は、図２の半導体システムにおいて、データバスの断線検出手順を示すフローチャートである。以下、図２および図３を参照して、データバスＤＢを構成するデータ線ＤＬ＿３が断線しているか否かを検出する具体的手順の一例について説明する。他のデータ線ＤＬ＿０〜ＤＬ＿２についても同様の手順で断線検出を行うことができる。
【００５７】
まず、ステップＳ１０１において、マスタの半導体装置２０のコントローラ２５は、ＱＳＰＩ通信部２２を送信モードに設定する。スレーブの半導体装置３０のコントローラ３５は、ＱＳＰＩ通信部３２を受信モードに設定する。受信モードに設定されているＱＳＰＩ通信部３２の入力インピーダンスは比較的高い。
【００５８】
なお、切替え回路２３，３３は、コントローラ２５，３５の指令に基づいて、ＱＳＰＩ通信部２２，３２の入出力ノードＩＯ０〜ＩＯ３を、対応のデータ線ＤＬ＿０〜ＤＬ＿３にそれぞれ接続する。断線検出中には、切替え回路２３，３３の接続変更は行われない。
【００５９】
次のステップＳ１０２において、マスタのＱＳＰＩ通信部２２は、コントローラ２５の制御に基づいて、データ線ＤＬ＿３を介してローレベルの信号（“Ｌ”信号）を出力する。スレーブのＱＳＰＩ通信部３２は、データ線ＤＬ＿３を介して信号を受信する。
【００６０】
その次のステップＳ１０３において、マスタの半導体装置２０のコントローラ２５は、ＱＳＰＩ通信部２２を受信モードに設定する。これによって、受信モードに設定されたＱＳＰＩ通信部２２の入力インピーダンスは比較的高くなる。この結果、もし、区間Ａのデータ線ＤＬ＿３および抵抗器Ｒ５との接続に断線がなければ、データ線ＤＬ＿３の電位は、電源電位ＶＤＤにほぼ等しくなる。
【００６１】
その次のステップＳ１０４において、マスタの半導体装置２０の断線検出回路２４は、コントローラ２５の制御に基づいて、データ線ＤＬ＿３の電位を検出する。この結果、断線検出回路２４によってハイレベル（“Ｈ”レベル）の電位が検出された場合には（ステップＳ１０５でＹＥＳ）、コントローラ２５は、区間Ａのデータ線ＤＬ＿３は正常と判定する（ステップＳ１０６）。一方、断線検出回路２４によって“Ｈ”レベルの電位が検出されなかった場合には（ステップＳ１０５でＮＯ）、コントローラ２５は、区間Ａのデータ線ＤＬ＿３で断線が生じているか、もしくは、プルアップ用の抵抗器Ｒ５を接続する配線で断線が生じていると判定する（ステップＳ１０７）。
【００６２】
一方、スレーブの半導体装置３０のコントローラ３５は、ＱＳＰＩ通信部３２によってデータ線ＤＬ＿３を介して“Ｌ”信号が受信されたか否かを判定する（ステップＳ１０８）。この結果、ＱＳＰＩ通信部３２によって“Ｌ”信号が受信された場合には（ステップＳ１０８でＹＥＳ）、コントローラ３５は、区間Ｂのデータ線ＤＬ＿３で断線は生じていないと判定する（ステップＳ１０９）。ＱＳＰＩ通信部３２によって“Ｌ”信号が受信されていない場合には（ステップＳ１０８でＹＥＳ）、コントローラ３５は、区間Ｂのデータ線ＤＬ＿３で断線が生じていると判定する（ステップＳ１１０）。
【００６３】
［断線検出時のデータ線の接続切替え手順］
図４は、図２の半導体システムにおいて、断線検出時のデータ線の接続切替え手順を示すフローチャートである。
【００６４】
図２および図４を参照して、まず、ステップＳ２００において、図３で説明した手順に従って、各データ線ＤＬについて断線が生じているか否かが判定される。
【００６５】
断線判定の結果に基づいて、マスタのコントローラ２５は、区間Ａの各データ線ＤＬの断線の有無に関する情報（以下、「断線情報」とも称する）をメモリ２６などに保持する（ステップＳ２２１）。同様に、スレーブのコントローラ３５は、区間Ｂの各データ線ＤＬの断線情報をメモリ３６などに保持する（ステップＳ２３１）。
【００６６】
次に、ステップＳ２３２において、スレーブのコントローラ３５は、ＱＳＰＩ通信部ＱＳＰＩ通信部２２，３２間のハンドシェイク等を使用することによって、区間Ｂの断線情報を、データバスＤＢを介してマスタのコントローラ２５に送信する。なお、どのデータ線ＤＬで断線が生じていても確実に断線情報を送信できるように、送信データは、全てのデータ線ＤＬについて同一にする。
【００６７】
その次に、ステップＳ２２２において、マスタのコントローラ２５は、区間Ａの断線情報と、スレーブのコントローラ３５から受信した区間Ｂの断線情報とを統合することによって、各データ線ＤＬの全範囲について断線の有無に関する断線情報を生成する。
【００６８】
その次に、ステップＳ２２３において、マスタのコントローラ２５は、各データ線ＤＬの全範囲についての断線情報に基づいて、切替え回路２３の動作設定およびＱＳＰＩ通信部２２の通信速度の設定を行う。
【００６９】
具体的に、マスタのコントローラ２５は、データ線ＤＬ＿０〜ＤＬ＿３のいずれかについて断線が検出された場合に、断線が検出されたデータ線を除く他の少なくとも１つのデータ線ＤＬを用いて通信が継続できるように、切替え回路２３の動作を設定する。この場合、コントローラ２５は、ＱＳＰＩ通信部２２の通信部の通信モードの変更は行わないが、切替え回路２３による接続切替え後に使用されるデータ線ＤＬの本数に応じてＱＳＰＩ通信部２２の通信速度の設定を行う。
【００７０】
たとえば、ＱＳＰＩ通信部２２の通信モードが「Quad  SPIモード」の場合に、切替え回路２３の設定が、データ線ＤＬ＿０，データ線ＤＬ＿１の２本のデータ線ＤＬを使用して通信を行うように変更されたとする。この場合、ＱＳＰＩ通信部２２は、切替え回路２３の設定変更前に１クロックあたり４ビットのデータを送信していたとすると、切替え回路２３の設定変更後には２クロックごとに４ビットのデータを送信するように通信速度を変更する。
【００７１】
その次に、ステップＳ２２４において、マスタのコントローラ２５は、ＱＳＰＩ通信部２２，３２間のハンドシェイク等を使用することによって、切替え回路２３の動作設定の情報およびＱＳＰＩ通信部２２の通信速度の設定の情報を、スレーブのコントローラ３５に送信する。なお、どのデータ線ＤＬで断線が生じていても確実に動作設定などの情報を送信できるように、送信データは、全てのデータ線ＤＬについて同一にする。
【００７２】
その次に、ステップＳ２３３において、スレーブのコントローラ３５は、受信したマスタの切替え回路２３の動作設定に基づいて、同様の切替え動作になるようにスレーブの切替え回路３３の動作設定を行う。さらに、コントローラ３５は、受信したマスタのＱＳＰＩ通信部２２の通信速度と同じになるようにスレーブのＱＳＰＩ通信部３２の通信速度を設定する。この場合、ＱＳＰＩ通信部３２の通信モードの変更は行われない。
【００７３】
その後、切替え回路２３によってマスタのＱＳＰＩ通信部２２とデータバスＤＢとの間の接続を切替えながら、マスタＱＳＰＩ通信部２２は、設定された通信速度でデータ信号を送信する（ステップＳ２２５）。同様に、切替え回路３３によってスレーブのＱＳＰＩ通信部３２とデータバスＤＢとの間の接続を切替えながら、スレーブのＱＳＰＩ通信部３２は、設定された通信速度でデータ信号を受信する（ステップＳ２３４）。
【００７４】
［クロック信号およびデータ信号の波形例］
図５は、クロック信号およびデータ信号の一例を示すタイミング図である。図５では、図２のクロック線ＣＬＫを伝送するクロック信号、データ線ＤＬ＿０〜ＤＬ＿３を伝送するデータ信号の波形、および入出力ノードＩＯ０〜ＩＯ３から出力されるデータ信号の波形が模式的に示されている。
【００７５】
図５の時刻ｔ４においてデータ線ＤＬ＿２の断線が検知されたとする。断線が検知される前は、「Quad  SPIモード」に従って、１クロックあたり４ビットのデータが送信されている。したがって、１バイト（８ビット）のデータを送信するのに２クロックが必要である。
【００７６】
具体的に図５の例では、時刻ｔ２において、ビット０からビット３までのデータが送信され、時刻ｔ１および時刻ｔ３において、ビット４からビット７までのデータが送信されている。
【００７７】
時刻ｔ４において断線が検知されると、通信チャネルの切替えが行われ、データ線ＤＬ＿２，ＤＬ＿３は未使用となり、データ線ＤＬ＿０，ＤＬ＿１のみを用いて通信が継続される。このため、ＱＳＰＩ通信部２２は、入出力ノードＩＯ０〜ＩＯ３を全て用いてデータ信号を出力するが、その周期は２クロックに変更される。したがって、ＱＳＰＩ通信部２２の通信速度は１／２になる。具体的に、時刻ｔ５，ｔ６では、入出力ノードＩＯ０〜ＩＯ３からビット４〜７のデータが出力され、時刻ｔ７，ｔ８では、入出力ノードＩＯ０〜ＩＯ３からビット０〜３が出力される。
【００７８】
また、断線検知後の切替え回路２３の動作は次のように変更される。時刻ｔ５では、切替え回路２３は、ＱＳＰＩ通信部２２の入出力ノードＩＯ２，ＩＯ３をそれぞれデータ線ＤＬ＿０，ＤＬ＿１に接続することによって、ビット６，７のデータを出力する。時刻ｔ６では、切替え回路２３は、ＱＳＰＩ通信部２２の入出力ノードＩＯ０，ＩＯ１をそれぞれデータ線ＤＬ＿０，ＤＬ＿１に接続することによって、ビット４，５のデータを出力する。時刻ｔ７では、切替え回路２３は、ＱＳＰＩ通信部２２の入出力ノードＩＯ２，ＩＯ３をそれぞれデータ線ＤＬ＿０，ＤＬ＿１に接続することによって、ビット２，３のデータを出力する。時刻ｔ８では、ＱＳＰＩ通信部２２の入出力ノードＩＯ０，ＩＯ１をそれぞれデータ線ＤＬ＿０，ＤＬ＿１に接続することによって、ビット０，１のデータを出力する。上記の接続切替えによって、データバスＤＢを伝送するデータ信号は１クロックあたり２ビットのデータが送信される。
【００７９】
［第１の実施形態の効果］
以上のとおり、第１の実施形態の半導体装置では、通信回路２７，３７は、複数のデータ線ＤＬのうち断線と判定されたデータ線ＤＬを使用せずに、その他の少なくとも１つのデータ線ＤＬを利用して送受信を行うように構成される。したがって、データバスＤＢに断線が生じた場合でも通信を継続することができる。
【００８０】
［変形例］
上記の実施形態では、通信回路２７，３７は、ＱＳＰＩをベースに構成されていたが、たとえば、オクタルＳＰＩ（ＯＳＰＩ：Octal  SPI）をベースに構成してもよい。この場合、データバスＤＢは８本のデータ線ＤＬによって構成され、通信回路２７，３７は、１クロックあたり最大で８ビットのデータを送受信することができる。このように、ＳＱＰＩ，ＯＳＰＩなどをベースに構成することによって、回路設計を簡単化し、コストを削減することができる。
【００８１】
また、通信回路２７，３７は、上記した機能を有する回路構成であるならば、ＱＳＰＩまたはＯＳＰＩなどをベースに構成しなくてもよい。また、本実施形態の技術は、クロック信号を用いないシリアル通信にも適用することができる。
【００８２】
また、他の方法で断線検出が可能であるならば、特別な断線検出回路２４を設けなくてもよい。たとえば、マスタからスレーブにテスト信号を送信し、スレーブによって誤りなくテスト信号が受信できたかどうかを確認することによって各データ線ＤＬの断線の有無を検出してもよい。
【００８３】
＜第２の実施形態＞
第２の実施形態では、データ線ＤＬの断線検出に加えてクロック線ＣＬＫの断線検出も行い、クロック線ＣＬＫで断線が生じた場合でも、通信を継続可能な半導体装置の構成について説明する。
【００８４】
［断線検出時の動作の概要］
図６は、第２の実施形態の半導体システム１００Ａにおいて、クロック線の断線を検出したときの動作の概要を示す図である。
【００８５】
図６（Ａ）は、断線が生じていない正常時の動作を示すものであり、図１（Ａ）の場合と同じである。具体的に、マスタとしての半導体装置２０Ａは、全てのデータ線ＤＬ＿０〜ＤＬ＿３を用いて１クロックに４ビットずつデータ信号を、スレーブとしての半導体装置３０Ａに送信している。
【００８６】
図６（Ｂ）を参照して、クロック線ＣＬＫにおいて断線が発生したとする。このとき、半導体装置２０Ａは、内蔵の断線検出回路（不図示）でこの断線の発生を検出するか、または半導体装置３０Ａからこの断線発生の情報を受信する。
【００８７】
次に、図６（Ｃ）に示すように、半導体装置２０Ａは、データバスＤＢを構成するデータ線ＤＬ＿０〜ＤＬ＿３のうちの１つであるデータ線ＤＬ＿３をクロック線ＣＬＫとして使用してクロック信号を送信するようにする。さらに、半導体装置２０Ａは、残りのデータ線ＤＬ＿０〜ＤＬ＿２のうちデータ線ＤＬ＿０，ＤＬ＿１を使用するように通信チャネルを切り替える。これにより、クロック線ＣＬＫの断線後もデータ信号の送信を継続することができる。
【００８８】
［半導体装置の構成の詳細］
図７は、図６の半導体装置の具体的構成の一例を示すブロック図である。図７の半導体装置２０Ａ，３０Ａは、図２の半導体装置２０，３０をそれぞれ変形した構成となっている。
【００８９】
具体的に、図７のマスタの半導体装置２０Ａは、断線検出回路２４がクロック線ＣＬＫとさらに接続される点で図２の半導体装置２０と異なる。したがって、図７の断線検出回路２４は、区間Ａの各データ線ＤＬの断線に加えて、区間Ａのクロック線ＣＬＫの断線を検出可能である。断線検出の具体的方法は、図２の断線検出回路２４の場合と類似したものであり、詳細については図８を参照して後述する。
【００９０】
また、図７のマスタの半導体装置２０Ａは、切替え回路２３ＡがＱＳＰＩクロック生成回路２１およびクロック線ＣＬＫとさらに接続される点で、図２の半導体装置２０と異なる。したがって、図７の切替え回路２３Ａは、コントローラ２５の指令に従って、ＱＳＰＩクロック生成回路２１のクロック出力ノードＣＯおよびＱＳＰＩ通信部２２の入出力ノードＩＯ０〜ＩＯ３と、クロック線ＣＬＫおよびデータ線ＤＬ＿０〜ＤＬ＿３との間の接続を切替えることができる。
【００９１】
図７のスレーブの半導体装置３０Ａは、断線検出回路３４をさらに含む点で図２の半導体装置３０と異なる。断線検出回路３４は、区間Ｂの各データ線ＤＬの断線および区間Ｂのクロック線ＣＬＫの断線を検出可能である。断線検出の具体的方法は、図２の断線検出回路２４の場合と類似したものであり、詳細については図８を参照して後述する。
【００９２】
また、図７のスレーブの半導体装置３０Ａは、切替え回路３３Ａがクロック線ＣＬＫとさらに接続される点で、図２の半導体装置３０と異なる。したがって、図７の半導体装置３０Ａは、コントローラ３５の指令に従って、ＱＳＰＩ通信部３２のクロック入力ノードＣＩおよび入出力ノードＩＯ０〜ＩＯ３と、クロック線ＣＬＫおよびデータ線ＤＬ＿０〜ＤＬ＿３との間の接続を切替えることができる。
【００９３】
図７のその他の点は図２の場合と同様であるので、同一または対応する部分には同一の参照符号を付して説明を繰り返さない。
【００９４】
次に、クロック線ＣＬＫに断線が生じた場合において、マスタの半導体装置２０Ａを構成する通信回路２７Ａの動作、ならびにスレーブの半導体装置３０Ａを構成する通信回路３７Ａの動作を説明する。
【００９５】
まず、クロック線ＣＬＫおよびいずれのデータ線ＤＬにも断線が生じていない場合、マスタの切替え回路２３Ａは、コントローラ２５の指令に従って、ＱＳＰＩクロック生成回路２１のクロック出力ノードＣＯをクロック線ＣＬＫに接続する。さらに、切替え回路２３Ａは、入出力ノードＩＯ０〜ＩＯ３を対応するデータ線ＤＬ＿０〜ＤＬ＿３にそれぞれ接続する。同様に、スレーブの切替え回路３３Ａは、コントローラ３５の指令に従って、ＱＳＰＩ通信部３２のクロック入力ノードＣＩをクロック線ＣＬＫに接続する。さらに、切替え回路３３Ａは、ＱＳＰＩ通信部３２の入出力ノードＩＯ０〜ＩＯ３をデータ線ＤＬ＿０〜ＤＬ＿３にそれぞれ接続する。
【００９６】
以上の接続により、いずれの信号線にも断線が生じていない場合、ＱＳＰＩクロック生成回路２１は、クロック線ＣＬＫを介してクロック信号をスレーブのＱＳＰＩ通信部３２に送信する。さらに、マスタのＱＳＰＩ通信部２２は、データバスＤＢを介してクロック信号に同期したデータ信号をスレーブのＱＳＰＩ通信部３２に送信する。さらに、スレーブのＱＳＰＩ通信部３２は、受信したクロック信号に同期したデータ信号を、データバスＤＢを介してマスタのＱＳＰＩ通信部２２に出力する。
【００９７】
一方、クロック線ＣＬＫで断線が発生した場合、マスタの切替え回路２３Ａは、ＱＳＰＩクロック生成回路２１のクロック出力ノードＣＯをいずれかのデータ線ＤＬ（たとえば、データ線ＤＬ＿３）に接続する。さらに、切替え回路２３Ａは、断線発生前にデータ信号の送受信に使用していたのと同じ入出力ノードＩＯとの接続を順次切替えながら、当該入出力ノードＩＯを、クロック信号用に割り当てたデータ線ＤＬ＿３を除いて通信に使用する少なくとも１本のデータ線ＤＬに接続する。
【００９８】
たとえば、ＱＳＰＩ通信部２２，３２が「Quad  SPIモード」で動作しているとき、クロック線ＣＬＫに断線が生じたとする。この場合、ＱＳＰＩ通信部２２の通信モードに変更はないが、クロック信号用に割り当てたデータ線ＤＬ＿３を除いて、たとえば、データ線ＤＬ＿０，ＤＬ＿１をデータ信号の送受信に用いるように接続が変更される。具体的に、切替え回路２３Ａは、クロックの第１周期において、ＱＳＰＩ通信部２２の入出力ノードＩＯ２，ＩＯ３をデータ線ＤＬ＿０，ＤＬ＿１に接続する。切替え回路２３Ａは、次の第２周期において、入出力ノードＩＯ０，ＩＯ１をデータ線ＤＬ＿０，ＤＬ＿１に接続する。以降、上記の第１周期および第２周期の接続の切替えが繰り返される。
【００９９】
また、クロック線ＣＬＫで断線が発生したことを検知した場合、スレーブのコントローラ３５は、スレーブの切替え回路３３Ａの接続動作を、マスタの切替え回路２３Ａの接続動作と同じになるように制御する。したがって、上記の例の場合、切替え回路３３Ａは、ＱＳＰＩ通信部３２のクロック入力ノードＣＩに、クロック信号用に割り当てられたデータ線ＤＬ＿３を接続する。さらに、切替え回路３３Ａは、クロックの第１周期において、ＱＳＰＩ通信部３２の入出力ノードＩＯ２，ＩＯ３をデータ線ＤＬ＿０，ＤＬ＿１に接続する。切替え回路３３Ａは、次の第２周期において、ＱＳＰＩ通信部３２の入出力ノードＩＯ０，ＩＯ１をデータ線ＤＬ＿０，ＤＬ＿１に接続する。以降、上記の第１周期および第２周期の接続切替えが繰り返される。
【０１００】
［断線検出手順］
図８は、図７の半導体システムにおいて、クロック線およびデータ線の断線検出手順を示すフローチャートである。
【０１０１】
以下の断線検出手順において、図７の断線検出回路２４，３４は、クロック線ＣＬＫおよびデータ線ＤＬ＿０〜ＤＬ＿３を電源電位ＶＤＤと異なる電位（たとえば、接地電位）にプリチャージする機能を有するものとする。たとえば、断線検出回路２４，３４は、クロック線ＣＬＫおよびデータ線ＤＬ＿０〜ＤＬ＿３を接地電位と接続するためのスイッチを含む。
【０１０２】
また、図７のＱＳＰＩクロック生成回路２１は、出力ノードをハイ・インピーダンス（Ｈｉ−Ｚ）に設定可能であるとする。
【０１０３】
まず、ステップＳ３０１において、マスタの半導体装置２０Ａのコントローラ２５は、ＱＳＰＩ通信部２２を受信モードに設定する。スレーブの半導体装置３０Ａのコントローラ３５は、ＱＳＰＩ通信部３２を受信モードに設定する。受信モードに設定されているＱＳＰＩ通信部２２，３２の入力インピーダンスは比較的高い。さらに、半導体装置２０Ａのコントローラ２５は、ＱＳＰＩクロック生成回路２１の出力をハイ・インピーダンス（Ｈｉ−Ｚ）に設定する。
【０１０４】
なお、切替え回路２３Ａ，３３Ａは、コントローラ２５，３５の制御に従って、ＱＳＰＩ通信部２２，３２の入出力ノードＩＯ０〜ＩＯ３を、対応のデータ線ＤＬ＿０〜ＤＬ＿３にそれぞれ接続する。さらに、切替え回路２３Ａは、コントローラ２５の制御に従って、ＱＳＰＩクロック生成回路２１のクロック出力ノードＣＯをクロック線ＣＬＫに接続する。切替え回路３３Ａは、コントローラ３５の制御に従って、ＱＳＰＩ通信部３２のクロック入力ノードＣＩをクロック線ＣＬＫに接続する。断線検出中には、切替え回路２３Ａ，３３Ａの接続変更は行われない。
【０１０５】
次のステップＳ３０２において、マスタの断線検出回路２４は、コントローラ２５の制御に基づいて、クロック線ＣＬＫおよび各データ線ＤＬ（以下、信号線と総称する）を接地電位に一時的に接続し、その後、その接続を切断する。これによって、各信号線は、接地電位にプリチャージされる。しかし、これらの信号線は、プルアップ用の抵抗器Ｒ１〜Ｒ５を介して電源電位ＶＤＤに接続されているので、これらの信号線自身およびこれらの信号線と電源電位ＶＤＤとの接続に断線がなければ、接地電位との接続終了後に、これらの信号線は電源電位ＶＤＤを示すことになる。
【０１０６】
その次のステップＳ３０３において、断線検出回路２４は、マスタのコントローラ２５の制御に基づいて、クロック線ＣＬＫおよび各データ線ＤＬのうちの１つである測定対象の信号線の電位を検出する。この結果、断線検出回路２４によって“Ｈ”レベルの電位が検出されれば（ステップＳ３０４でＹＥＳ）、コントローラ２５は、測定対象の信号線は区間Ａの範囲で断線がないと判定する（ステップＳ３０５）。一方、断線検出回路２４によって“Ｈ”レベルの電位が検出されなければ（ステップＳ３０４でＮＯ）、コントローラ２５は、測定対象の信号線は区間Ａの範囲で断線しているか、プルアップ用の抵抗器を介した接続に断線があると判定する（ステップＳ３０６）。以上の測定および判定は、全ての信号線について完了するまで（ステップＳ３０７でＹＥＳとなるまで）繰り返される。
【０１０７】
次のステップＳ３０８において、スレーブの断線検出回路３４は、コントローラ３５の制御に基づいて、クロック線ＣＬＫおよび各データ線ＤＬを接地電位に一時的に接続し、その後、その接続を切断する。
【０１０８】
その次のステップＳ３０９において、スレーブの半導体装置３０Ａのコントローラ３５は、断線検出回路３４を用いて、クロック線ＣＬＫおよび各データ線ＤＬのうちの１つである測定対象の信号線の電位を検出する。この結果、断線検出回路３４によって“Ｈ”レベルの電位が検出されれば（ステップＳ３１０でＹＥＳ）、コントローラ３５は、測定対象の信号線は区間Ｂの範囲で断線がないと判定する（ステップＳ３１１）。一方、断線検出回路３４によって“Ｈ”レベルの電位が検出されなければ（ステップＳ３１０でＮＯ）、コントローラ３５は、測定対象の信号線は区間Ｂの範囲で断線しているか、プルアップ用の抵抗器を介した接続に断線があると判定する（ステップＳ３１２）。以上の測定および判定は、全てのクロック線ＣＬＫおよびデータ線ＤＬについて完了するまで（ステップＳ３１３でＹＥＳとなるまで）繰り返される。
【０１０９】
［断線検出時のデータ線の接続切替え手順］
図９は、図７の半導体システムにおいて、断線検出時のクロック線およびデータ線の接続切替え手順を示すフローチャートである。以下の手順は図４の場合と類似したものであるので、同一または相当するステップには同一の参照符号を付している。
【０１１０】
図７および図９を参照して、まず、ステップＳ２００において、図８で説明した手順に従って、クロック線ＣＬＫおよび各データ線ＤＬについて断線が生じているか否かが判定される。
【０１１１】
断線判定の結果に基づいて、マスタのコントローラ２５は、区間Ａのクロック線ＣＬＫおよび各データ線ＤＬの断線の有無に関する情報（断線情報）をメモリ２６などに保持する（ステップＳ２２１）。同様に、スレーブのコントローラ３５は、区間Ｂのクロック線ＣＬＫおよび各データ線ＤＬの断線情報をメモリ３６などに保持する（ステップＳ２３１）。
【０１１２】
次に、ステップＳ２３２において、スレーブのコントローラ３５は、ＱＳＰＩ通信部ＱＳＰＩ通信部２２，３２間のハンドシェイク等を使用することによって、区間Ｂの断線情報を、データバスＤＢを介してマスタのコントローラ２５に送信する。なお、どのデータ線ＤＬで断線が生じていても確実に断線情報を送信できるように、スレーブのＱＳＰＩ通信部３２は、全てのデータ線ＤＬを介して同一のデータをマスタのＱＳＰＩ通信部２２に送信する。
【０１１３】
その次に、ステップＳ２２２において、マスタのコントローラ２５は、区間Ａの断線情報と、スレーブのコントローラ３５から受信した区間Ｂの断線情報とを統合することによって、クロック線ＣＬＫおよび各データ線ＤＬの全範囲について断線の有無に関する断線情報を生成する。
【０１１４】
その次に、ステップＳ２２３において、マスタのコントローラ２５は、クロック線ＣＬＫおよび各データ線ＤＬの全範囲についての断線情報に基づいて、切替え回路２３Ａの動作設定およびＱＳＰＩ通信部２２の通信速度の設定を行う。
【０１１５】
具体的に、マスタのコントローラ２５は、データ線ＤＬ＿０〜ＤＬ＿３のいずれかについて断線が検出された場合に、断線が検出されたデータ線を除く他の少なくとも１つのデータ線ＤＬを用いて通信が継続できるように、切替え回路２３Ａの動作を設定する。
【０１１６】
また、マスタのコントローラ２５は、クロック線ＣＬＫについて断線が検出された場合には、ＱＳＰＩクロック生成回路２１のクロック出力ノードＣＯをデータ線ＤＬ＿０〜ＤＬ＿３のいずれか１つに接続し、さらに、クロック線ＣＬＫに代替されたデータ線ＤＬを除く少なくとも１本のデータ線ＤＬを用いてデータ信号の送受信が継続できるように、切替え回路２３Ａの動作を設定する。
【０１１７】
上記のいずれの場合も、コントローラ２５は、ＱＳＰＩ通信部２２の通信部の通信モードの変更は行わないが、切替え回路２３Ａによる接続切替え後に使用されるデータ線ＤＬの本数に応じてＱＳＰＩ通信部２２の通信速度の設定を行う。
【０１１８】
その次に、ステップＳ２２４において、マスタのコントローラ２５は、ＱＳＰＩ通信部ＱＳＰＩ通信部２２，３２間のハンドシェイク等を使用することによって、切替え回路２３Ａの動作設定の情報およびＱＳＰＩ通信部２２の通信速度の設定の情報を、スレーブのコントローラ３５に送信する。なお、どのデータ線ＤＬで断線が生じていても確実に動作設定などの情報を送信できるように、マスタのＱＳＰＩ通信部２２は、全てのデータ線ＤＬを介して同一のデータをスレーブのＱＳＰＩ通信部３２に送信する。
【０１１９】
その次に、ステップＳ２３３において、スレーブのコントローラ３５は、受信したマスタの切替え回路２３Ａの動作設定に基づいて、同様の切替え動作になるようにスレーブの切替え回路３３Ａの動作設定を行う。さらに、コントローラ３５は、受信したマスタのＱＳＰＩ通信部２２の通信速度と同じになるようにスレーブのＱＳＰＩ通信部３２の通信速度を設定する。この場合、ＱＳＰＩ通信部３２の通信モードの変更は行われない。
【０１２０】
その後、ステップＳ２２３で定めた動作設定に基づいて切替え回路２３Ａの接続を切替えながら、マスタのＱＳＰＩ通信部２２は、設定された通信速度でデータ信号を送信する（ステップＳ２２５）。同様に、ステップＳ２３３で定めた動作設定に基づいて切替え回路３３Ａの接続を切替えながら、スレーブのＱＳＰＩ通信部３２は、設定された通信速度でデータ信号を受信する（ステップＳ２３４）。
【０１２１】
［第２の実施形態の効果］
以上のとおり、第２の実施形態の半導体装置では、通信回路２７Ａ，３７Ａは、クロック線ＣＬＫが断線と判定された場合には、データバスＤＢを構成する複数のデータ線ＤＬのうちの１つをクロック線ＣＬＫとして用いる。そして、通信回路２７Ａ，３７Ａは、クロック線ＣＬＫに割り当てられたデータ線ＤＬを除いて少なくとも１本のデータ線ＤＬを用いてデータ信号の送受信を行う。したがって、第２の実施形態の半導体装置によれば、データ線ＤＬに断線が生じた場合だけでなく、クロック線ＣＬＫに断線が生じた場合にも通信を継続することができる。
【０１２２】
＜第３の実施形態＞
第３の実施形態では、第１および第２の実施形態で用いられる通信フレームの構成の一例について説明する。
【０１２３】
図１０は、第１および第２の実施形態の半導体システムで用いられる通信フレームの構成を示す模式図である。
【０１２４】
図１０に示すように、通信フレーム７０は、通常のＱＳＰＩで用いられる通信フレーム７２に断線情報７１が付加されることによって構成される。図１０では、断線情報７１は、通信フレーム７０の先頭に設けられているが、通信フレーム７０の末尾でもよく、あるいは、通信フレーム７０の途中の特定の位置に設けられていてもよい。また、図１０のように断線情報７１を含む通信フレームの構成は、通信セッションの初期だけで使用してもよいし、通信セッションの最初から最後まで使用してもよい。
【０１２５】
半導体システム１００を構成する半導体装置２０，３０は、図１０の通信フレーム７０の構成を用いて互いの断線情報をやり取りすることによって、互いに使用可能な信号線を知ることができるので、信号線に断線が発生した後の通信を確実に行うことができる。
【０１２６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１２７】
２０，２０Ａ，３０，３０Ａ  半導体装置、２１  クロック生成回路、２２，３２  ＱＳＰＩ通信部、２３，２３Ａ，３３，３３Ａ  切替え回路、２４，３４  断線検出回路、２５，３５  コントローラ、２６，３６  メモリ、２７，２７Ａ，３７，３７Ａ  通信回路、１００  半導体システム、ＣＬＫ  クロック線、ＤＢ  データバス、ＤＬ  データ線、Ｒ１〜Ｒ５  抵抗器、ＶＤＤ  電源電位。
【図１】
2020027414.tif 000003
【図２】
2020027414.tif 000004
【図３】
2020027414.tif 000005
【図４】
2020027414.tif 000006
【図５】
2020027414.tif 000007
【図６】
2020027414.tif 000008
【図７】
2020027414.tif 000009
【図８】
2020027414.tif 000010
【図９】
2020027414.tif 000011
【図１０】
2020027414.tif 000012