(57)【要約】【課題】送信可能なデータのビット数を減少させずに、スレーブセレクト信号を送信する信号線を共通化することが可能な通信システムを提供すること。【解決手段】マイコン１０は、各ＩＣ１１〜１３に対して共通化されたスレーブセレクト信号ライン２３を介して送信するスレーブセレクト信号により、通信対象として選択すべきＩＣに対応したスレーブセレクトデータを出力する。このスレーブセレクトデータは、所定数のクロック信号Ｃｌｏｃｋが出力される間に、それぞれ異なるパターンで変化する２値データである。このスレーブセレクトデータにより、通信対象となるＩＣを確実に選択することが可能になる。【選択図】図１
2015170199.tif 000002
【特許請求の範囲】
【請求項１】
１つのホストデバイス（１０）と複数のスレーブデバイス（１１、１２、１３）とが、クロック同期式シリアル通信を行う通信システムであって、
前記ホストデバイスと前記複数のスレーブデバイスとの間には、
前記ホストデバイスから前記複数のスレーブデバイスへクロック信号を送信するための共通のクロック信号ライン（２０）と、
前記クロック信号に同期して、前記ホストデバイスから前記複数のスレーブデバイスへデータを送信するための共通の第１通信ライン（２１）と、
前記クロック信号に同期して、前記複数のスレーブデバイスから前記ホストデバイスへデータを送信するための共通の第２通信ライン（２２）と、
前記ホストデバイスが、通信相手となるスレーブデバイスを選択するスレーブセレクト信号を送信するためのスレーブセレクト信号ライン（２３）とが接続されており、
前記スレーブセレクト信号ラインは、前記複数のスレーブデバイスに対して共通化されており、
前記複数のスレーブデバイスには、所定数のクロック信号が出力される間に、それぞれ異なるパターンで変化する２値データが予め割り当てられており、
前記ホストデバイスは、前記スレーブセレクト信号により、選択すべきスレーブデバイスに対応した前記２値データを出力することを特徴とする通信システム。
【請求項２】
前記ホストデバイスは、前記２値データとして、すべて前記スレーブセレクト信号のアクティブレベルとなるパターン以外のパターンを使用することを特徴とする請求項１に記載の通信システム。
【請求項３】
前記複数のスレーブデバイスは、前記２値データとして、すべて前記アクティブレベルとなるパターンの２値データを受信した場合、通信動作を終了することを特徴とする請求項２に記載の通信システム。
【請求項４】
前記ホストデバイスと、前記スレーブデバイスとの間で、データの送受信が同時期に実行される場合、前記ホストデバイスは、前記スレーブデバイスからのデータを受信しないことに基づいて、故障が発生したことを検出することを特徴とする請求項２又は３に記載の通信システム。
【請求項５】
前記ホストデバイスは、前記複数のスレーブデバイスのいずれかと通信を行うとき、最初に、前記スレーブセレクト信号のレベルを、前記複数のスレーブデバイスが通信動作を開始するＨｉｇｈ又はＬｏｗのいずれかのアクティブレベルに変化させ、その後、前記スレーブセレクト信号として前記２値データを出力し、当該２値データの出力後、前記スレーブセレクト信号のレベルを前記アクティブレベルとすることを特徴とする請求項１乃至４のいずれか１項に記載の通信システム。
【請求項６】
前記複数のスレーブデバイスは、前記スレーブセレクト信号としての前記２値データにより選択されなかったことが判明した時点で、前記スレーブセレクト信号が前記アクティブレベルであっても、通信動作を停止することを特徴とする請求項５に記載の通信システム。
【請求項７】
前記２値データにより選択された前記スレーブデバイスは、通信すべき全データの通信が完了すると、通信動作を停止することを特徴とする請求項５に記載の通信システム。
【請求項８】
前記ホストデバイスは、前記２値データにより選択した前記スレーブデバイスとの通信が完了すると、前記スレーブセレクト信号のレベルを非アクティブレベルとすることを特徴とする請求項５乃至７のいずれか１項に記載の通信システム。
【請求項９】
前記ホストデバイスと前記複数のスレーブデバイスとは、前記クロック信号に同期して、同時期にデータの送受信を行うものであり、
前記複数のスレーブデバイスは、前記ホストデバイスから前記２値データの出力が終了するまで、前記第２通信ラインを介して、それぞれ同じデータを前記ホストデバイスに送信することを特徴とする請求項５乃至８のいずれか１項に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つのホストデバイスと複数のスレーブデバイスとの間で、クロック同期式シリアル通信を行う通信システムに関する。
【背景技術】
【０００２】
従来より、１つのホストデバイスと複数のスレーブデバイスとの間でシリアル通信を行う通信方式として、ＳＰＩ（Serial Peripheral Interface）などに代表されるクロック同期式シリアルデータ通信方式が知られている。この通信方式における、一般的な通信手順を説明すると、まず、ホストデバイスが、通信対象となるスレーブデバイスに、アクティブレベル（通常、Ｌｏｗレベル）のスレーブセレクト信号を出力して、通信対象として選択する。次いで、ホストデバイスが、クロック信号を送信しつつ、そのクロック信号の立上りエッジ又は立下りエッジに同期するタイミングで、選択したスレーブデバイスに送信すべき送信データを出力する。一方、選択されたスレーブデバイスも、クロック信号に同期するタイミングで、ホストデバイスにて受信されるべき受信データを出力する。このようにして、ホストデバイスとスレーブデバイス間で、クロックに同期してデータの送受信が実行される。そして、すべてのデータの送受信が終了すると、ホストデバイスがスレーブセレクト信号を非アクティブレベルにし、通信を終了させる。
【０００３】
上述したように、従来は、スレーブセレクト信号をアクティブレベルとすることにより、通信対象となるスレーブデバイスを選択していた。そのため、ホストデバイスと、複数のスレーブデバイスとを、それぞれ独立した信号線によって接続する必要があった。その結果、ホストデバイスは、多数のスレーブセレクト端子（ＳＳ端子）を持つ必要があり、ＳＳ端子数の増加が１つの課題となっていた。
【０００４】
さらに、多数のＳＳ端子を持つことに起因して、ＳＳ端子と各スレーブデバイスとの誤接続、ＳＳ端子同士のショート、あるいはアクティブレベルに相当する電位へのショートなどが発生する虞があった。万一、いずれかの事象が実際に発生してしまうと、通信対象ではないスレーブデバイスとの通信が成立してしまい、そのスレーブデバイスが意図しない振る舞いをしてしまう可能性が生じるという問題があった。
【０００５】
このような課題を解決可能な通信システムが、例えば特許文献１に開示されている。この特許文献１の通信システムでは、スレーブセレクト信号を送信する信号線を各スレーブデバイスで共通化するとともに、ホストデバイスからの送信データ中に、通信対象となるスレーブデバイスを示す情報を付加している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−３６２０６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の通信システムのように、ホストデバイスからの送信データ中に通信対象を示す情報を付加すると、その分、送信可能なデータのビット数が減少してしまうという問題が生じる。
【０００８】
さらに、特許文献１の通信システムでは、送信データ中の３ビットを利用して、通信対象を示す情報を付加している。しかし、そのビット数で区別可能な上限数以上のスレーブデバイスを接続する場合には、スレーブセレクト信号を送信する信号線の数を増やしている。この場合、上述したような、誤接続やショートなどにより、通信対象ではないスレーブデバイスとの通信が成立してしまう可能性が残る。
【０００９】
本発明は、上述した点に鑑みてなされたものであり、送信可能なデータのビット数を減少させずに、スレーブセレクト信号を送信する信号線を共通化することが可能な通信システムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明に係る通信システムは、１つのホストデバイス（１０）と複数のスレーブデバイス（１１、１２、１３）とが、クロック同期式シリアル通信を行うものであって、
ホストデバイスと複数のスレーブデバイスとの間には、
ホストデバイスから複数のスレーブデバイスへクロック信号を送信するための共通のクロック信号ライン（２０）と、
クロック信号に同期して、ホストデバイスから複数のスレーブデバイスへデータを送信するための共通の第１通信ライン（２１）と、
クロック信号に同期して、複数のスレーブデバイスからホストデバイスへデータを送信するための共通の第２通信ライン（２２）と、
ホストデバイスが、通信相手となるスレーブデバイスを選択するスレーブセレクト信号を送信するためのスレーブセレクト信号ライン（２３）とが接続されており、
スレーブセレクト信号ラインは、複数のスレーブデバイスに対して共通化されており、
複数のスレーブデバイスには、所定数のクロック信号が出力される間に、それぞれ異なるパターンで変化する２値データが予め割り当てられており、
ホストデバイスは、スレーブセレクト信号により、選択すべきスレーブデバイスに対応した２値データを出力することを特徴とする。
【００１１】
このように、本発明に係る通信システムでは、ホストデバイスは、送信データ中に、通信対象となるスレーブデバイスを示す情報を付加するのではなく、スレーブセレクト信号により、選択すべきスレーブデバイスに対応した２値データを出力する。このため、従来とは異なり、通信対象を示す情報の分だけ、送信可能なデータのビット数が減少してしまうことがない。さらに、複数のスレーブデバイスに対して、スレーブセレクト信号ラインを共通化しても、２値データにより、通信対象となるスレーブデバイスを確実に選択することが可能になる。
【００１２】
上述した構成において、ホストデバイスは、２値データとして、すべてスレーブセレクト信号のアクティブレベルとなるパターン以外のパターンを使用することが好ましい。このようにすると、例えばスレーブセレクト信号ラインが、アクティブレベルに相当する電位にショートしてしまった場合などに、容易にそのような異常の発生を検知し、必要な対応を取ることが可能となる。
【００１３】
例えば、複数のスレーブデバイスは、２値データとして、すべてアクティブレベルとなるパターンの２値データを受信した場合、通信動作を終了するようにしても良い。この場合、上述したような異常が発生しても、ホストデバイスが、通信対象ではないスレーブデバイスと誤って通信してしまうことを防止することができる。
【００１４】
さらに、ホストデバイスと、スレーブデバイスとの間で、データの送受信が同時に実行される場合、ホストデバイスは、スレーブデバイスからのデータを受信しないことに基づいて、故障が発生したことを検出するようにしても良い。これにより、ホストデバイスは、容易に、スレーブセレクト信号ラインが、アクティブレベルに相当する電位にショートした故障などが発生した場合に、その故障を検知することができるようになる。
【００１５】
上記括弧内の参照番号は、本発明の理解を容易にすべく、後述する実施形態における具体的な構成との対応関係の一例を示すものにすぎず、なんら本発明の範囲を制限することを意図したものではない。
【００１６】
また、上述した特徴以外の、特許請求の範囲の各請求項に記載した技術的特徴に関しては、後述する実施形態の説明及び添付図面から明らかになる。
【図面の簡単な説明】
【００１７】
【図１】実施形態に係る通信システムの一例の構成を示す構成図である。
【図２】マイコン１０が各ＩＣ１１〜１３とクロック同期式シリアル通信を行う場合の各種信号を示したタイミングチャートである。
【図３】各ＩＣへのスレーブセレクトデータの割り当ての一例を示す図である。
【図４】マイコン１０が、ＩＣ−Ａ１１を通信対象として選択する場合に、マイコン１０とＩＣ−Ａ間で通信される各種信号を示したタイミングチャートである。
【図５】マイコン１０において実行される通信処理を示すフローチャートである。
【図６】被選択ＩＣが決定されるまで、各ＩＣにおいて実行される全スレーブ通信処理を示すフローチャートである。
【図７】被選択ＩＣによって実行される被選択スレーブ通信処理を示すフローチャートである。
【図８】変形例１の内容を示すフローチャートである。
【図９】変形例２の内容を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態に係る通信システムについて、図面を参照しつつ説明する。図１は、本実施形態に係る通信システムの一例の構成を示す構成図である。
【００１９】
図１に示すように、本実施形態に係る通信システムは、ホストデバイスとしてのマイコン１０と、スレーブデバイスとしての複数のＩＣ（ＩＣ−Ａ１１、ＩＣ−Ｂ１２、ＩＣ−Ｃ１３など）とを有する。そして、マイコン１０と、複数のＩＣ（ＩＣ−Ａ１１、ＩＣ−Ｂ１２、ＩＣ−Ｃ１３など）との間で、クロック同期式シリアル通信が行われるようになっている。
【００２０】
マイコン１０は、クロック信号Ｃｌｏｃｋを出力するクロック出力端子、各ＩＣ１１〜１３に送信すべき送信データＴｘを出力する送信データ出力端子、各ＩＣ１１〜１３から出力され、マイコン１０にて受信される受信データＲｘを入力する受信データ入力端子、及び、通信相手となるＩＣを選択するためのスレーブセレクトデータを含むスレーブセレクト信号ＳＳを出力するスレーブセレクト信号出力端子とを有する。
【００２１】
マイコン１０のクロック出力端子は、クロック信号ライン２０に接続されている。このクロック信号ライン２０は、各ＩＣ１１〜１３のクロック信号入力端子に接続されている。すなわち、各ＩＣ１１〜１３に対して共通のクロック信号ライン２０が設けられており、マイコン１０からのクロック信号Ｃｌｏｃｋは、この共通のクロック信号ライン２０を介して、各ＩＣ１１〜１３に与えられる。
【００２２】
マイコン１０の送信データ出力端子は、第１通信ライン２１に接続されている。第１通信ライン２１は、各ＩＣ１１〜１３のデータ入力端子に接続されている。また、マイコン１０の受信データ入力端子は、第２通信ライン２２に接続されている。第２通信ライン２２は、各ＩＣ１１〜１３のデータ出力端子に接続されている。さらに、マイコン１０のスレーブセレクト信号出力端子は、スレーブセレクト信号ライン２３に接続されている。スレーブセレクト信号ライン２３は、各ＩＣ１１〜１３のスレーブセレクト信号入力端子に接続されている。これら第１通信ライン２１、第２通信ライン２２、及びスレーブセレクト信号ライン２３に関しても、図１に示されるように、クロック信号ライン２０と同様に、各ＩＣ１１〜１３に対して共通化されている。
【００２３】
本実施形態に係る通信システムにおいて行われるシリアル通信は、マイコン１０が常に通信の主導権を持つ。すなわち、マイコン１０が各ＩＣ１１〜１３とシリアル通信を行う際は、図２に示すように、まずスレーブセレクト信号ＳＳをアクティブレベル（本実施形態ではＬｏｗレベル）にして各ＩＣ１１〜１３をシリアル通信可能状態にする。なお、アクティブレベルは、Ｈｉｇｈレベルであっても良い。
【００２４】
次いで、マイコン１０は、図２に示すように、送信データＴｘの出力を開始する。この送信データＴｘは、各種コマンドやデータ、アドレス（通信対象ＩＣにおけるメモリやレジスタなどのアドレス）等を含む。例えば、マイコン１０は、コマンドとして、通信対象ＩＣが持つデータを読み出したい場合はリード命令を出力し、通信対象ＩＣへデータを書き込みたい場合はライト命令を出力する。また、マイコン１０は、コマンドとして、例えば通信対象ＩＣが備える機能を実行させるための命令などを出力したりもする。
【００２５】
上述した送信データＴｘの出力開始と同期して、マイコン１０は、スレーブセレクト信号出力端子から、通信相手として選択すべきＩＣ（ＩＣ−Ａ１１、ＩＣ−Ｂ１２、ＩＣ−Ｃ１３などの中のいずれか）に対応した２値データ（スレーブセレクトデータ）の出力を開始する。
【００２６】
そして、マイコン１０は、送信データＴｘ及びスレーブセレクトデータの出力後に、各ＩＣ１１〜１３に対してクロック信号Ｃｌｏｃｋを出力する。すると、各ＩＣ１１〜１３は、クロック信号Ｃｌｏｃｋが立ち下がったタイミングで、送信データＴｘ、スレーブセレクトデータの取り込みを行う。但し、各ＩＣ１１〜１３におけるデータの取り込みタイミングは、クロック信号Ｃｌｏｃｋが立ち上がったときであっても良い。以下に、スレーブセレクトデータについて、詳細に説明する。
【００２７】
本実施形態に係る通信システムでは、各ＩＣ１１〜１３に対して、所定数のクロック信号Ｃｌｏｃｋが出力される間に、それぞれ異なるパターンで変化するスレーブセレクトデータが予め割り当てられている。そして、各ＩＣは、所定数のクロック信号Ｃｌｏｃｋによって規定されるスレーブセレクトデータ送出期間において、自身に割り当てられたスレーブセレクトデータと同じデータを受信したとき、マイコン１０の通信対象として選択されたことを認識する。
【００２８】
このスレーブセレクトデータの割り当ての一例を図３に示す。なお、図３に示す例では、スレーブセレクトデータが割り当てられるＩＣの数が７であり、そのスレーブセレクトデータとして、３ビット分のデータを用いる例を示している。従って、図３に示す例では、スレーブセレクトデータの送出期間は、クロック信号Ｃｌｏｃｋの３個分に相当することになる。
【００２９】
図３に示す例では、ＩＣ−Ａ１１に対し、“００１”のスレーブセレクトデータが割り当てられている。従って、クロック信号Ｃｌｏｃｋが立ち下がる、連続した３回のデータ取り込みタイミングにおいて、スレーブセレクトデータを取り込んだ結果、その値が“００１”である場合、ＩＣ−Ａ１１が通信対象として選択されることになる。この場合、ＩＣ−Ａ１１は、スレーブセレクトデータの送出期間経過後も、通信動作を継続し、マイコン１０との間で、送信データＴｘ及び受信データＲｘのやり取りを行う。
【００３０】
同様に、図３に示す例では、ＩＣ−Ｂ１２に対して“０１０”のスレーブセレクトデータが割り当てられ、ＩＣ−Ｃ１３に対して“０１１”のスレーブセレクトデータが割り当てられ、ＩＣ−Ｄ１４に対して“１００”のスレーブセレクトデータが割り当てられ、ＩＣ−Ｅ１５に対して“１０１”のスレーブセレクトデータが割り当てられ、ＩＣ−Ｆ１６に対して“１１０”のスレーブセレクトデータが割り当てられ、ＩＣ−Ｇ１７に対して“１１１”のスレーブセレクトデータが割り当てられている。
【００３１】
このように、各ＩＣ１１〜１７に対して、固有のスレーブセレクトデータが割り当てられているので、マイコン１０は、スレーブセレクト信号ＳＳにより、所望のＩＣに対応するスレーブセレクトデータを送出することで、通信対象とすべきＩＣを任意に選択することができる。
【００３２】
ここで、本実施形態においては、全てのビットが、スレーブセレクト信号ＳＳのアクティブレベルとなる“０００”のデータは、スレーブセレクトデータとして用いていない。このため、万一、スレーブセレクト信号ラインが、アクティブレベルに相当するグランド電位にショートしてしまった場合、いずれのＩＣ１１〜１７とも通信が継続されなくなる。従って、少なくとも、通信対象ではないＩＣとの通信が成立してしまい、そのＩＣが意図しない振る舞いをしてしまうことを確実に防止することができる。
【００３３】
次に、図４に示すように、マイコン１０が、通信対象としてＩＣ−Ａ１１を選択する場合を例に取り、マイコン１０における処理、各ＩＣ１１〜１７における処理、及び通信対象として選択されたＩＣ−Ａ１１における処理について、図５〜図７のフローチャートを用いて説明する。
【００３４】
まず、図５のフローチャートに基づき、マイコン１０における処理について説明する。
マイコン１０は、ＩＣ−Ａ１１との通信を開始する場合、まず、ステップＳ１００において、スレーブセレクト信号ＳＳをアクティブレベルにする。これにより、ＩＣ−Ａ１１を含むすべてのＩＣ１１〜１７が通信可能状態となる。
【００３５】
次いで、マイコン１０は、ステップＳ１１０において、送信データＴｘの出力を開始するとともに、ＩＣ−Ａ１１を選択するためのスレーブセレクトデータの出力を開始する。ＩＣ−Ａ１１のスレーブセレクトデータは“００１”であるため、スレーブセレクトデータの出力開始直後は、図４に示すように、スレーブセレクト信号ＳＳはＬｏｗレベルに維持される。送信データＴｘ、及びスレーブセレクトデータの出力後、これらのデータのレベルが安定するのに必要な時間が経過した後、マイコン１０は、ステップＳ１２０において、クロック信号Ｃｌｏｃｋを立ち下げる。すると、ステップＳ１３０に示す全スレーブ通信処理が各ＩＣ１１〜１７にて実行されることで、送信データＴｘ、及びスレーブセレクトデータの取り込みが行われる。
【００３６】
この全スレーブ通信処理について、図６のフローチャートを参照して説明する。全スレーブ通信処理においては、まず、ステップＳ３００において、スレーブセレクト信号ＳＳがアクティブ化されているか否かを判定する。アクティブ化されていないと判定した場合には、ステップＳ３７０に進み、マイコン１０との通信処理を終了する。一方、スレーブセレクト信号ＳＳがアクティブ化されていると判定した場合には、ステップＳ３１０に進む。
【００３７】
ステップＳ３１０では、各ＩＣ１１〜１７は、それぞれのクロック信号入力端子に与えられているクロック信号Ｃｌｏｃｋが立ち下ったか否かを判定する。このとき、クロック信号Ｃｌｏｃｋが立ち下がっていないと判定した場合には、繰り返し、Ｓ３１０の処理を実行することで、クロック信号Ｃｌｏｃｋの立ち下がりを待機する。一方、クロック信号Ｃｌｏｃｋが立ち下がったと判定した場合には、ステップＳ３２０の処理に進む。ステップＳ３２０では、各ＩＣ１１〜１７において、送信データＴｘ及びスレーブセレクトデータの受信処理が行われる。この受信処理では、送信データＴｘ及びスレーブセレクトデータの１ビット分のデータの取り込みが行われる。
【００３８】
ステップＳ３３０では、マイコン１０にて受信すべき受信データＲｘを出力する。この受信データＲｘとして、各ＩＣ１１〜１７は、送信データＴｘに含まれていたコマンドに応答するデータを送信したり、送信すべき応答データがない場合にはダミーデータを送信したりする。
【００３９】
なお、スレーブセレクトデータの送出期間中は、全てのＩＣ１１〜１７にて通信処理動作が行われる。そのため、受信データＲｘは、全ＩＣ１１〜１７から出力されることになる。この場合、各ＩＣ１１〜１７が、異なる受信データＲｘを出力したとすると、マイコン１０にて受信する受信データＲｘが不安定となる虞がある。そのため、スレーブセレクトデータの送信期間中、すなわち、全ＩＣ１１〜１７が通信処理動作を行っている期間中は、各ＩＣ１１〜１７から同じ受信データＲｘが出力されるように構成されている。
【００４０】
続くステップＳ３４０では、各ＩＣ１１〜１７が、予め定められた所定数のクロック数分だけ、スレーブセレクトデータの取り込みを実施したか否かにより、スレーブセレクトデータの受信が完了したか否かを判定する。このとき、まだスレーブセレクトデータの受信が完了していないと判定すると、ステップＳ３１０からの処理を繰り返す。この場合、各ＩＣ１１〜１７は、まだ、いずれのＩＣが通信対象として選択されたかを判別することができないためである。ただし、すべてのスレーブセレクトデータの受信を待たずとも、１ビットずつスレーブセレクトデータを受信する過程で、自身が選択されないことが明らかとなった時点で、通信処理を停止するようにすることは可能である。一方、スレーブセレクトデータの受信が完了したと判定すると、ステップＳ３５０の処理に進む。
【００４１】
ステップＳ３５０では、各ＩＣ１１〜１７が、受信したスレーブセレクトデータが、各々のＩＣ１１〜１７に割り当てられたスレーブセレクトデータと一致するか否かに基づき、自身が通信対象として選択されたか否かを判定する。この際、自身が選択されたと判定した場合には、ステップＳ３６０に進み、マイコン１０との通信を継続するため、次のクロック信号Ｃｌｏｃｋの立ち下がりを待機する。一方、自身は選択されなかったと判定した場合には、ステップＳ３７０に進んで、マイコン１０との通信処理を終了させる。
【００４２】
なお、ステップＳ３７０にて、通信処理を終了したＩＣは、スレーブセレクトデータの送出期間終了後に、スレーブセレクト信号ＳＳがアクティブレベルとなっても、通信処理の再開が禁止されるようになっている。この通信処理の再開禁止は、マイコン１０が、選択したＩＣ−Ａ１１との通信を完了し、スレーブセレクト信号ＳＳを非アクティブ化したときに、解除される。従って、マイコン１０は、スレーブセレクトデータの送出期間経過後は、選択した通信対象であるＩＣ−Ａ１１とだけ通信を行うことができる。
【００４３】
再び、図５のフローチャートに戻り、説明を続ける。マイコン１０は、上述した全スレーブ通信処理のために所定の時間待機した後、ステップＳ１４０にて、クロック信号Ｃｌｏｃｋを立ち上げる。この時点では、各ＩＣ１１〜１７から出力された受信データＲｘは安定している。そのため、マイコン１０は、このクロック信号Ｃｌｏｃｋの立ち上げに伴い、ステップＳ１５０において、受信データＲｘの受信処理を行う。この受信処理では、受信データＲｘの１ビット分のデータの取り込みが行われる。
【００４４】
続くステップＳ１６０では、スレーブセレクトデータの送出が完了したか否かを判定する。この際、まだスレーブセレクトデータの送出が完了していないと判定すると、ステップＳ１１０からの処理を繰り返す。一方、スレーブセレクトデータの送出が完了したと判定すると、ステップＳ１７０の処理に進む。なお、この時点では、通信対象として、ＩＣ−Ａ１１が選択済みとなっている。また、ＩＣ−Ａ１１以外のＩＣ１２〜１７は、通史処理を停止した状態となっている。
【００４５】
ステップＳ１７０では、マイコン１０は、ＩＣ−Ａ１１との通信を継続するため、スレーブセレクト信号ＳＳをアクティブレベルに保持する。続くステップＳ１８０では、１ビット分の送信データＴｘを出力し、ステップＳ１９０において、クロック信号を立ち下げる。すると、ステップＳ２００に示す被選択スレーブ通信処理が、選択されたＩＣ−Ａ１１にて実行されることで、ＩＣ−Ａ１１にて送信データＴｘの受信処理が行われる。
【００４６】
この非選択スレーブ通信処理について、図７のフローチャートを参照して説明する。被選択スレーブ通信処理においては、まず、ステップＳ４００において、スレーブセレクト信号ＳＳがアクティブ化されているか否かを判定する。アクティブ化されていないと判定した場合には、ステップＳ４５０に進み、マイコン１０との通信処理を終了する。一方、スレーブセレクト信号ＳＳがアクティブ化されていると判定した場合には、ステップＳ４１０に進む。
【００４７】
ステップＳ４１０では、選択されたＩＣ−Ａ１１は、クロック信号入力端子に与えられているクロック信号Ｃｌｏｃｋが立ち下ったか否かを判定する。このとき、クロック信号Ｃｌｏｃｋが立ち下がっていないと判定した場合には、繰り返し、Ｓ４１０の処理を実行することで、クロック信号Ｃｌｏｃｋの立ち下がりを待機する。一方、クロック信号Ｃｌｏｃｋが立ち下がったと判定した場合には、ステップＳ４２０の処理に進む。ステップＳ４２０では、ＩＣ−Ａ１１において、送信データＴｘの受信処理が行われる。この受信処理により、送信データＴｘの１ビット分のデータの取り込みが行われる。
【００４８】
ステップＳ４３０では、ＩＣ−Ａ１１は、マイコン１０にて受信すべき受信データＲｘを出力する。続くステップＳ４４０では、ＩＣ−Ａ１１は、全ての受信データＲｘの送出が完了したか否かを判定する。この判定処理において、まだ、全ての受信データＲｘの送出が完了していないと判定すると、ステップＳ４１０からの処理を繰り返す。一方、全ての受信データＲｘの送出を完了したと判定すると、ステップＳ４５０に進み、マイコン１０との通信処理を終了する。
【００４９】
再び、図５のフローチャートに戻り、説明を続ける。マイコン１０は、上述した被選択スレーブ通信処理のために所定の時間待機した後、ステップＳ２１０にて、クロック信号Ｃｌｏｃｋを立ち上げる。この時点では、選択したＩＣ−Ａ１１から出力された受信データＲｘは安定している。そのため、マイコン１０は、このクロック信号Ｃｌｏｃｋの立ち上げに伴い、ステップＳ２２０において、受信データＲｘの受信処理を行う。この受信処理では、受信データＲｘの１ビット分のデータの取り込みが行われる。
【００５０】
続くステップＳ２３０では、全データの通信処理、すなわち、送信データＴｘの送出処理及び受信データＲｘの受信処理が完了したか否かを判定する。この際、まだ全データの通信処理が完了していないと判定すると、ステップＳ１８０からの処理を繰り返す。一方、全データの通信処理が完了したと判定すると、ステップＳ２４０の処理に進む。ステップＳ２４０では、スレーブセレクト信号ＳＳを非アクティブレベルにする。これにより、選択されなかった各ＩＣ１２〜１７の通信処理の再開禁止が解除される。
【００５１】
続くステップＳ２５０では、次に通信対象とすべきＩＣが有るか否かを判定し、通信対象とすべきＩＣが有ると判定した場合には、ステップＳ１００からの処理を繰り返す。一方、通信対象とすべきＩＣが無いと判定した場合には、マイコン１０は、図５のフローチャートに示す処理を終了する。
【００５２】
上述した本実施形態に係る通信システムによれば、マイコン１０は、送信データＴｘ中に、通信対象となるＩＣを示す情報を付加するのではなく、スレーブセレクト信号ＳＳにより、通信対象として選択すべきＩＣに対応したスレーブセレクトデータを出力する。このため、従来とは異なり、通信対象を示す情報の分だけ、送信可能なデータのビット数が減少してしまうことがない。さらに、複数のＩＣ１１〜１７に対して、スレーブセレクト信号ライン２３を共通化しても、スレーブセレクトデータにより、通信対象となるＩＣを確実に選択することが可能になる。
【００５３】
また上述した通信システムでは、スレーブセレクトデータとして、すべてアクティブレベルとなるパターン以外のパターンを用いている。このため、例えばスレーブセレクト信号ライン２３が、アクティブレベルに相当する電位にショートしてしまっても、いずれのＩＣ１１〜１７も通信対象として選択されないので、マイコン１０が通信対象ではないＩＣと誤って通信してしまうことを防止することができる。
【００５４】
以上、本発明の好ましい実施形態について説明したが、本発明は、なんら上述した実施形態に制限されることなく、本発明の主旨を逸脱しない範囲において、種々変形して実施することが可能である。
【００５５】
（変形例１）
例えば、図５のフローチャートに示した、マイコン１０の通信処理に関して、図８に示すように変形しても良い。つまり、図５のフローチャートにおけるステップＳ２２０の受信データＲｘの受信処理と、ステップＳ２３０の全データの通信完了判定処理との間に、受信データＲｘの受信ができない状態であるか否かを判定するステップＳ２２２を設けても良い。そして、このステップＳ２２２において、受信データＲｘが受信できない状態であると判定したときには、ステップＳ２２４に進み、故障が発生したことを検出するようにしても良い。
【００５６】
上述したように、本実施形態に係る通信システムでは、マイコン１０と、複数のＩＣ１１〜１７あるいは通信対象として選択されたＩＣとの間で、データの送受信が同時期に実行される。それにも係わらず、マイコン１０が、受信データＲｘを受信できないとすると、スレーブセレクト信号ライン２３が、アクティブレベルに相当する電位にショートする故障が発生し、いずれのＩＣ１１〜１７も通信対象として選択されないか、あるいは、通信対象として選択したＩＣになんらかの故障が発生して、受信データＲｘを出力できない状態である可能性が高い。このように、マイコン１０において、受信データＲｘを受信できないことに基づき、通信システムになんらかの故障が発生したことを検出することができる。
【００５７】
（変形例２）
また、図６のフローチャートに示した、全スレーブ通信処理に関して、図９に示すように変形しても良い。すなわち、図６のフローチャートにおけるステップＳ３４０のスレーブセレクトデータの受信完了判定処理と、ステップＳ３５０の被選択判定処理との間に、受信したスレーブセレクトデータに異常が有るか否かを判定するステップＳ３４２を追加しても良い。そして、このステップＳ３４２において、スレーブセレクトデータに異常有りと判定した場合、ステップＳ３７０に進んで、各ＩＣ１１〜１７における通信処理を終了させるようにする。
【００５８】
上述したように、本実施形態では、全てのビットが、スレーブセレクト信号ＳＳのアクティブレベルとなるデータは、スレーブセレクトデータとして用いていない。従って、各ＩＣ１１〜１７において、万一、全てのビットがアクティブレベルとなるスレーブセレクトデータを受信した場合、これは明らかに異常とみなすことができるので、各ＩＣ１１〜１７における通信処理を終了させる。
【００５９】
ただし、図６に示す全スレーブ通信処理においても、自身が通信対象として選択されなかった場合、ステップＳ３５０→ステップＳ３７０を経由して、通信処理が終了される。このため、図６の全スレーブ通信処理においても、全てのビットがアクティブレベルとなるスレーブセレクトデータを受信した場合には、各ＩＣ１１〜１７で通信処理が終了されることになる。図９に示す例は、スレーブセレクトデータが異常である場合に、より確実に、各ＩＣ１１〜１７の通信処理を終了させるためのものである。
【００６０】
（変形例３）
さらに、上述した実施形態では、各ＩＣ１１〜１７における受信処理を、クロック信号Ｃｌｏｃｋの立ち下がりのタイミングで実施し、マイコン１０における受信処理を、クロック信号Ｃｌｏｃｋの立ち上がりのタイミングで実施した。しかしながら、マイコン１０と各ＩＣ１１〜１７の受信処理は、クロック信号の立ち下がりもしくは立ち上がりに連動して、全く同じタイミングで実施することも可能である。
【符号の説明】
【００６１】
１０  マイコン（ホストデバイス）
１１  ＩＣ−Ａ（スレーブデバイス）
１２  ＩＣ−Ｂ（スレーブデバイス）
１３  ＩＣ−Ｃ（スレーブデバイス）
２０  クロック信号ライン
２１  第１通信ライン
２２  第２通信ライン
２３  スレーブセレクト信号ライン
【図１】
2015170199.tif 000003
【図２】
2015170199.tif 000004
【図３】
2015170199.tif 000005
【図４】
2015170199.tif 000006
【図５】
2015170199.tif 000007
【図６】
2015170199.tif 000008
【図７】
2015170199.tif 000009
【図８】
2015170199.tif 000010
【図９】
2015170199.tif 000011