(57)【要約】【課題】８の倍数でないビット数のデータを送受信するスレーブデバイスとの通信を可能とすること。【解決手段】シリアル通信回路１は、８ビット単位でＳＰＩ通信を行うＭＣＵ２と、ＭＣＵ２とＳＰＩ通信を行うＩＣ３，４と、ＭＣＵ２から受信した／ＣＳ信号をＩＣ３またはＩＣ４に出力するロジック回路１０と、を備え、ＭＣＵ２は、ＩＣ３またはＩＣ４が１回の通信において送受信するデータにパディングビットＰを追加して、ＭＣＵ２が１回の通信において送受信するデータの総ビット数が８の倍数となるように本体部Ｂを生成するとともに、パディング情報Ｈ２を含むオーバヘッド部Ｈを本体部Ｂの前に追加し、ロジック回路１０は、オーバヘッド部Ｈの総ビット数とオーバヘッド部Ｈのパディング情報Ｈ２によって示されるビット数との和だけ／ＣＳ信号を遅延させて、ＩＣ３またはＩＣ４に出力する。【選択図】図１
2016177426.tif 000002
【特許請求の範囲】
【請求項１】
８ビット単位でＳＰＩ通信を行うマスタデバイスと、
前記マスタデバイスとＳＰＩ通信を行うスレーブデバイスと、
前記スレーブデバイスを選択するためのチップセレクト信号を前記マスタデバイスから受信し、受信した前記チップセレクト信号を前記スレーブデバイスに出力するロジック回路と、
を備え、
前記マスタデバイスは、前記スレーブデバイスが１回の通信において送受信するデータに付加ビットを追加して、前記マスタデバイスが１回の通信において送受信するデータの総ビット数が８の倍数のビット数となるように本体部を生成するとともに、追加した前記付加ビットのビット数を示す遅延情報を含むヘッダを前記本体部の前に追加し、
前記ロジック回路は、前記マスタデバイスから受信した前記チップセレクト信号を前記ヘッダの総ビット数と前記遅延情報に対応するビット数との和だけ遅延させて、前記スレーブデバイスに出力する、シリアル通信回路。
【請求項２】
前記ヘッダは、前記スレーブデバイスのアドレスをさらに含み、
前記ロジック回路は、前記マスタデバイスから受信した前記チップセレクト信号を前記ヘッダの総ビット数と前記遅延情報に対応するビット数との和だけ遅延させて、前記アドレスによって指定される前記スレーブデバイスに出力する、請求項１に記載のシリアル通信回路。
【請求項３】
前記遅延情報は０から７の整数であり、
前記ロジック回路は、前記遅延情報が小さいほど短い遅延時間にて前記チップセレクト信号を遅延させて、前記スレーブデバイスに出力する、請求項１または請求項２に記載のシリアル通信回路。
【請求項４】
前記マスタデバイスは、前記ヘッダの総ビット数が８の倍数のビット数となるように前記ヘッダを生成する、請求項１〜請求項３のいずれか一項に記載のシリアル通信回路。
【請求項５】
請求項１〜請求項４のいずれか一項に記載のシリアル通信回路を備える電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアル通信回路及び電子機器に関する。
【背景技術】
【０００２】
シリアル通信の規格の一つであるＳＰＩ（Serial Peripheral Interface）通信では、一般に８ビット単位のデータが送受信される。このため、マスタデバイス及びスレーブデバイスは、一般のＳＰＩフォーマットに倣って、８ビット単位のデータを送受信している（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１２５３１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、８の倍数でないビット数のデータを送受信するスレーブデバイスが存在する。８ビット単位のデータを送受信するマスタデバイスは、８の倍数でないビット数のクロック信号を出力することができず、また８の倍数でないビット数の間だけチップセレクト信号を通信可能な状態にすることができない。このため、８ビット単位のデータを送受信するマスタデバイスは、８の倍数でないビット数のデータを送受信するスレーブデバイスと通信を行うことができない。
【０００５】
本発明の一態様は、８の倍数でないビット数のデータを送受信するスレーブデバイスとの通信を可能にするシリアル通信回路及び電子機器を提供する。
【課題を解決するための手段】
【０００６】
本発明の一態様に係るシリアル通信回路は、８ビット単位でＳＰＩ通信を行うマスタデバイスと、マスタデバイスとＳＰＩ通信を行うスレーブデバイスと、スレーブデバイスを選択するためのチップセレクト信号をマスタデバイスから受信し、受信したチップセレクト信号をスレーブデバイスに出力するロジック回路と、を備える。マスタデバイスは、スレーブデバイスが１回の通信において送受信するデータに付加ビットを追加して、マスタデバイスが１回の通信において送受信するデータの総ビット数が８の倍数のビット数となるように本体部を生成するとともに、追加した付加ビットのビット数を示す遅延情報を含むヘッダを本体部の前に追加し、ロジック回路は、マスタデバイスから受信したチップセレクト信号をヘッダの総ビット数と遅延情報に対応するビット数との和だけ遅延させて、スレーブデバイスに出力する。
【発明の効果】
【０００７】
本発明の一態様によれば、８の倍数でないビット数のデータを送受信するスレーブデバイスとの通信を可能とすることができる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係るシリアル通信回路を模式的に示す構成図である。
【図２】図１のシリアル通信回路において送受信されるＳＰＩ通信のデータフォーマットを示す図である。
【図３】図１のロジック回路の回路構成例を示す図である。
【図４】図３のデコーダの入出力信号に係る真理値表を示す図である。
【図５】図３の各入出力信号のタイミングチャートである。
【図６】（ａ）は電文のビット数が１６ビットである場合の動作を示す図、（ｂ）は電文のビット数が９ビットである場合の動作を示す図である。
【発明を実施するための形態】
【０００９】
［本願発明の実施形態の説明］
最初に本発明の実施形態の内容を列記して説明する。
【００１０】
本発明の一態様に係るシリアル通信回路は、８ビット単位でＳＰＩ通信を行うマスタデバイスと、マスタデバイスとＳＰＩ通信を行うスレーブデバイスと、スレーブデバイスを選択するためのチップセレクト信号をマスタデバイスから受信し、受信したチップセレクト信号をスレーブデバイスに出力するロジック回路と、を備える。マスタデバイスは、スレーブデバイスが１回の通信において送受信するデータに付加ビットを追加して、マスタデバイスが１回の通信において送受信するデータの総ビット数が８の倍数のビット数となるように本体部を生成するとともに、追加した付加ビットのビット数を示す遅延情報を含むヘッダを本体部の前に追加し、ロジック回路は、マスタデバイスから受信したチップセレクト信号をヘッダの総ビット数と遅延情報に対応するビット数との和だけ遅延させて、スレーブデバイスに出力する。
【００１１】
このシリアル通信回路によれば、マスタデバイスによって、スレーブデバイスが１回の通信において送受信するデータの総ビット数が８の倍数のビット数でなくてもマスタデバイスが１回の通信において送受信するデータの総ビット数が８の倍数のビット数となるように付加ビットが追加され、ロジック回路によって、ヘッダの総ビット数と付加ビットのビット数を示す遅延情報に対応するビット数との和だけチップセレクト信号が遅延され、遅延されたチップセレクト信号がスレーブデバイスに出力される。このため、スレーブデバイスが８ビット以外のビット数を単位としてＳＰＩ通信を行う場合でも、マスタデバイスがスレーブデバイスと通信するために送受信するデータの総ビット数が８の倍数のビット数となるので、マスタデバイスは８ビット以外のビット数単位でＳＰＩ通信を行うスレーブデバイスと通信可能となる。また、スレーブデバイスにおいては、ヘッダの総ビット数と付加ビットとを加えた和の分チップセレクト信号が遅延されることによって、スレーブデバイスが対応するビット数単位でデータが送受信されるので、スレーブデバイスは８ビット単位でＳＰＩ通信を行うマスタデバイスと通信可能となる。
【００１２】
ヘッダは、スレーブデバイスのアドレスをさらに含んでいてもよく、ロジック回路は、マスタデバイスから受信したチップセレクト信号をヘッダの総ビット数と遅延情報に対応するビット数との和だけ遅延させて、アドレスによって指定されるスレーブデバイスに出力してもよい。マスタデバイスとＳＰＩ通信可能な複数のスレーブデバイスが存在する場合、マスタデバイスは通信対象のスレーブデバイスを指定する必要がある。上述の構成によれば、マスタデバイスは、アドレスによって通信対象のスレーブデバイスを指定することができるので、１つのチップセレクト信号を出力すればよい。このため、マスタデバイスは、スレーブデバイスごとにチップセレクト信号を出力する必要がないので、マスタデバイスにおいて、ＳＰＩ通信のための端子数を削減することが可能となる。
【００１３】
遅延情報は０から７の整数であってもよく、ロジック回路は、遅延情報が小さいほど短い遅延時間にてチップセレクト信号を遅延させて、チップセレクト信号をスレーブデバイスに出力してもよい。この場合、遅延情報が小さいほど、チップセレクト信号の遅延時間が小さくなる。このため、付加ビットのビット数が小さいほど、チップセレクト信号の遅延時間を小さくすることができる。また、マスタデバイスは、ヘッダの総ビット数が８の倍数のビット数となるようにヘッダを生成してもよい。
【００１４】
本発明の別の態様に係る電子機器は、上述のシリアル通信回路を備える。この電子機器においても、８の倍数でないビット数のデータを送受信するスレーブデバイスとの通信が可能となる。
【００１５】
［本願発明の実施形態の詳細］
本発明の実施形態に係るシリアル通信回路及び電子機器の具体例を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００１６】
図１は、一実施形態に係るシリアル通信回路を模式的に示す構成図である。シリアル通信回路では、シリアル通信の規格の一つであるＳＰＩ通信が行われる。ＳＰＩ通信では、ＳＣＫ（Serial Clock）信号、ＭＯＳＩ（Master Out Slave In）信号、ＭＩＳＯ（Master In Slave Out）信号及び／ＣＳ（Chip Select）信号が、マスタデバイスとスレーブデバイスとの間で送受信される。ＳＣＫ信号は、マスタデバイスからスレーブデバイスに供給される信号であり、ＳＰＩ通信の同期クロック信号である。ＭＯＳＩ信号は、マスタデバイスからスレーブデバイスに送信されるデータ信号である。ＭＩＳＯ信号は、スレーブデバイスからマスタデバイスに送信されるデータ信号である。ＭＯＳＩ信号及びＭＩＳＯ信号は、それぞれＳＣＫ信号に同期してデータの送信が行われる。／ＣＳ信号は、マスタデバイスからスレーブデバイスに供給される信号であり、マスタデバイスと通信する通信対象のスレーブデバイスを選択するためのチップセレクト信号である。ここで、／ＣＳ信号と送受信するデータの総ビット数との関係を説明すると、マスタデバイスから出力される／ＣＳ信号が連続してローレベルとなっている間に含まれるＳＣＫ信号のサイクル数が、マスタデバイスが１回の通信で送受信する総ビット数に相当する。また、スレーブデバイスがロジック回路から受信する／ＣＳ信号が連続してローレベルとなっている間に含まれるＳＣＫ信号のサイクル数が、スレーブデバイスが１回の通信で送受信する総ビット数に相当する。後述するように、スレーブデバイスはマスタデバイスが出力するオーバヘッド部Ｈのデータを受信しないので、スレーブデバイスに入力される／ＣＳ信号が連続してローレベルとなっている時間は、マスタデバイスが出力する／ＣＳ信号が連続してローレベルとなっている時間よりも短くなる。
【００１７】
図１に示されるシリアル通信回路１は、例えば、光トランシーバ等の電子機器に備えられている。シリアル通信回路１は、ＭＣＵ２と、ＩＣ３と、ＩＣ４と、ロジック回路１０と、を備えている。ＭＣＵ２と、ＩＣ３及びＩＣ４とは、ＳＰＩ通信を行う。
【００１８】
ＩＣ３は、ＳＰＩ通信機能を有する集積回路（ＩＣ：Integrated Circuit）である。ＩＣ３は、ＳＰＩのスレーブデバイスであり、マスタデバイスであるＭＣＵ２とＳＰＩ通信を行う。ＩＣ３は、予め定められたビット数単位でＳＰＩ通信を行う。この例では、ＩＣ３は、ＳＰＩ通信機能を用いて、８ビット単位でデータを送受信する。８ビット単位のデータとは、８の倍数のビット数のデータを意味する。ＩＣ３のスレーブ識別番号（スレーブアドレス）は、例えば「０」である。ＩＣ３は、端子Ｔ３１、端子Ｔ３２、端子Ｔ３３及び端子Ｔ３４を有している。端子Ｔ３１には、信号線Ｌ１を介して、ＭＣＵ２から出力されたＳＣＫ信号が入力される。端子Ｔ３２には、信号線Ｌ２を介して、ＭＣＵ２から出力されたＭＯＳＩ信号が入力される。端子Ｔ３３からは、信号線Ｌ３を介して、ＭＣＵ２にＭＩＳＯ信号が出力される。端子Ｔ３４には、信号線Ｌ４１を介して、ロジック回路１０から出力された／ＣＳ１信号が入力される。／ＣＳ１信号は、ＩＣ３を選択するチップセレクト信号である。
【００１９】
ＩＣ４は、ＳＰＩ通信機能を有する集積回路である。ＩＣ４は、ＳＰＩのスレーブデバイスであり、マスタデバイスであるＭＣＵ２とＳＰＩ通信を行う。ＩＣ４は、予め定められたビット数単位でＳＰＩ通信を行う。この例では、ＩＣ４は、ＳＰＩ通信機能を用いて、９ビット単位でデータを送受信する。９ビット単位のデータとは、９の倍数のビット数のデータを意味する。ＩＣ４のスレーブ識別番号は、例えば「１」である。ＩＣ４は、端子Ｔ４１、端子Ｔ４２、端子Ｔ４３及び端子Ｔ４４を有している。端子Ｔ４１には、信号線Ｌ１を介して、ＭＣＵ２から出力されたＳＣＫ信号が入力される。端子Ｔ４２には、信号線Ｌ２を介して、ＭＣＵ２から出力されたＭＯＳＩ信号が入力される。端子Ｔ４３からは、信号線Ｌ３を介して、ＭＣＵ２にＭＩＳＯ信号が出力される。端子Ｔ４４には、信号線Ｌ４２を介して、ロジック回路１０から出力された／ＣＳ２信号が入力される。／ＣＳ２信号は、ＩＣ４を選択するチップセレクト信号である。
【００２０】
ＭＣＵ２は、ＳＰＩ通信機能を有するマイクロコンピュータ（ＭＣＵ：Micro Controller Unit）である。ＭＣＵ２は、ＳＰＩのマスタデバイスであり、ＳＰＩ通信の制御を行う。ＭＣＵ２は、８ビット単位でＳＰＩ通信を行う。つまり、ＭＣＵ２は、ＳＰＩ通信機能を用いて、８ビット単位でデータを送受信する。ＭＣＵ２は、ＳＰＩ通信を行う際に、／ＣＳ信号をローレベルにセットし、送受信するデータのビット数だけＳＣＫ信号のクロックパルスを発生させ、ＳＣＫ信号に同期してデータを送受信する。ＭＣＵ２は、端子Ｔ２１、端子Ｔ２２、端子Ｔ２３及び端子Ｔ２４を有している。
【００２１】
端子Ｔ２１は、ＳＣＫ信号を出力する。端子Ｔ２１は、信号線Ｌ１を介して、ＩＣ３の端子Ｔ３１、ＩＣ４の端子Ｔ４１及びロジック回路１０の端子Ｔ１０１に接続されており、端子Ｔ２１から出力されたＳＣＫ信号が、ＩＣ３の端子Ｔ３１、ＩＣ４の端子Ｔ４１及びロジック回路１０の端子Ｔ１０１に供給される。端子Ｔ２２は、ＭＯＳＩ信号を出力する。端子Ｔ２２は、信号線Ｌ２を介して、ＩＣ３の端子Ｔ３２、ＩＣ４の端子Ｔ４２及びロジック回路１０の端子Ｔ１０２に接続されており、端子Ｔ２２から出力されたＭＯＳＩ信号が、ＩＣ３の端子Ｔ３２、ＩＣ４の端子Ｔ４２及びロジック回路１０の端子Ｔ１０２に供給される。
【００２２】
端子Ｔ２３は、信号線Ｌ３を介して、ＩＣ３の端子Ｔ３３及びＩＣ４の端子Ｔ４３に接続されており、ＩＣ３の端子Ｔ３３またはＩＣ４の端子Ｔ４３から出力されたＭＩＳＯ信号が、端子Ｔ２３に供給される。端子Ｔ２４は、／ＣＳ信号を出力する。端子Ｔ２４は、信号線Ｌ４を介して、ロジック回路１０の端子Ｔ１０３に接続されており、端子Ｔ２４から出力された／ＣＳ信号がロジック回路１０の端子Ｔ１０３に供給される。
【００２３】
ここで、シリアル通信回路１において送受信されるＳＰＩ通信のデータフォーマットを説明する。図２は、シリアル通信回路１において送受信されるＳＰＩ通信のデータフォーマットを示す図である。図２に示されるように、データＤは、オーバヘッド部Ｈと、本体部Ｂと、を含む。本体部Ｂは、送受信すべき電文Ｍを含む部分である。本体部Ｂのデータ長は、Ｎバイトである（Ｎは１以上の整数。１バイトは８ビットを意味する。）。送受信すべき電文Ｍのデータ長（総ビット数）が８の倍数のビット数でない場合、８の倍数のビット数、となるように電文Ｍの前にパディングビットＰ（付加ビット）が付加される。パディングビットＰとしては、例えば「０」が用いられる。
【００２４】
例えば、送受信すべき電文Ｍのデータ長が９ビットである場合、電文Ｍの前に７ビットのパディングビットＰが付加される。つまり、本体部Ｂにおいて、１バイト目のビット７〜１がパディングビットＰとなり、１バイト目のビット０及び２バイト目が電文Ｍとなる。送受信すべき電文Ｍのデータ長が８の倍数のビット数である場合、電文Ｍの前にパディングビットＰが付加されることはなく、本体部Ｂの１バイト目の先頭ビット（ビット７）から電文Ｍとなる。
【００２５】
オーバヘッド部Ｈは、データＤの先頭に配置されたヘッダであり、本体部Ｂの前に位置する。オーバヘッド部Ｈのデータ長は、例えば１バイトである。オーバヘッド部Ｈは、アドレス情報Ｈ１と、パディング情報Ｈ２（遅延情報）と、を含む。アドレス情報Ｈ１は、オーバヘッド部Ｈのビット７〜３に格納されており、通信対象のスレーブデバイスを特定するためのスレーブ識別番号を示す。スレーブ識別番号には、５ビットが割り当てられているので、合計で３２個のスレーブデバイスが識別され得る。
【００２６】
パディング情報Ｈ２は、オーバヘッド部Ｈのビット２〜０に格納されており、本体部Ｂの先頭に付加したパディングビットＰのビット数を示す。例えば、送受信すべき電文Ｍのデータ長が９ビットである場合には、本体部Ｂの先頭に７ビットのパディングビットＰが付加されるので、パディング情報Ｈ２は１１１にセットされて「７」を示す。つまり、送受信すべき電文Ｍのデータ長が、（８の倍数＋α）ビットである場合、パディング情報Ｈ２は「８−α」を示す。送受信すべき電文Ｍのデータ長が８の倍数のビット数である場合、電文Ｍの前にパディングビットＰが付加されないので、パディング情報Ｈ２は「０」を示す。
【００２７】
ＭＣＵ２には、通信対象となり得るスレーブデバイスが行うＳＰＩ通信の単位となるビット数、または、通信対象のスレーブデバイスとの間で１回の通信で送受信する電文Ｍの総ビット数Ｎｍが予め定められる。ＭＣＵ２は、通信対象のスレーブデバイスのスレーブ識別番号をアドレス情報Ｈ１にセットし、式（１）を用いてパディングビットＰのビット数Ｎｐａｄを算出し、算出したパディングビットＰのビット数Ｎｐａｄをパディング情報Ｈ２にセットすることによって、オーバヘッド部Ｈを生成する。ここで、Ｎｍｍｏｄ ８は、正の整数Ｎｍについて整数８で除法を行った場合の剰余を表す。
Npad=8-(Nm mod 8)…(1)
【００２８】
ＭＣＵ２は、スレーブデバイスと通信するための１回の通信において送受信するデータの総ビット数が８ビット単位となるように、スレーブデバイスと送受信すべき電文Ｍにビット数ＮｐａｄのパディングビットＰを追加して、本体部Ｂを生成する。ＭＣＵ２は、例えば、送受信すべき電文Ｍの先頭（電文Ｍの前）にパディングビットＰを追加する。ＭＣＵ２は、アドレス情報Ｈ１及びパディング情報Ｈ２を含むオーバヘッド部Ｈを、本体部Ｂの前に追加し、データＤを生成する。
【００２９】
ロジック回路１０は、ＭＣＵ２とＩＣ３及びＩＣ４とのＳＰＩ通信を可能にするための回路である。ロジック回路１０は、例えば、ＣＰＬＤ（Complex Programmable Logic Device）、ＦＰＧＡ（FieldProgrammable Gate Array）等のプログラム可能なデバイスである。ロジック回路１０は、ＭＣＵ２とＩＣ３及びＩＣ４との間に設けられ、ＭＣＵ２からＳＣＫ信号、ＭＯＳＩ信号及び／ＣＳ信号を受信する。ロジック回路１０は、ＩＣ３に／ＣＳ１信号を送信し、ＩＣ４に／ＣＳ２信号を送信する。ロジック回路１０は、／ＣＳ信号の立ち下がりエッジを認識すると、ＭＯＳＩ信号をＳＣＫ信号に同期して取り込む。
【００３０】
ロジック回路１０は、ＭＣＵ２から受信したＭＯＳＩ信号に含まれるオーバヘッド部Ｈを受信すると、オーバヘッド部Ｈのアドレス情報Ｈ１によって示されるアドレスのスレーブデバイスを通信対象のスレーブデバイスとして特定する。ロジック回路１０は、ＭＣＵ２から受信したオーバヘッド部Ｈのパディング情報Ｈ２によって示されるパディングビットＰのビット数に応じて、オーバヘッド部Ｈの総ビット数とパディング情報Ｈ２に対応するビット数との和だけＭＣＵ２から受信した／ＣＳ信号を遅延させて、特定した通信対象のスレーブデバイスに／ＣＳｘ信号（ｘは、１以上、スレーブデバイスの総数以下の整数）を出力する。ここで、オーバヘッド部Ｈの総ビット数に相当する遅延はパディング情報Ｈ２によらず常に行われるので、まず、そのオーバヘッド部Ｈの総ビット数に相当する遅延だけを考えると、ロジック回路１０がＭＣＵ２から受信した／ＣＳ信号をスレーブデバイスに出力する際には、その出力される／ＣＳｘ信号は少なくとも本体部Ｂの先頭まで遅延されている。さらに、それに加えてパディング情報Ｈ２の示す遅延について考えると、ロジック回路１０は、本体部Ｂの先頭から、パディング情報Ｈ２によって示されるパディングビットＰのビット数分、／ＣＳ信号を遅延させて、／ＣＳｘ信号を出力する。つまり、ロジック回路１０は、パディング情報Ｈ２が小さいほど短い遅延時間にて／ＣＳｘ信号を遅延させて、通信対象のスレーブデバイスに出力する。ロジック回路１０は、例えば、アドレス情報Ｈ１が「０」を示している場合には、ＩＣ３を通信対象のスレーブデバイスとして特定し、ＩＣ３に／ＣＳ１信号を出力する。ロジック回路１０は、例えば、アドレス情報Ｈ１が「１」を示している場合には、ＩＣ４を通信対象のスレーブデバイスとして特定し、ＩＣ４に／ＣＳ２信号を出力する。ところで、オーバヘッド部Ｈの総ビット数は８ビットに限定される必要はなく、８の倍数のビット数となっていれば、上述の効果と同じ効果を得ることができる。従って、そのような場合にはオーバヘッド部Ｈと本体部Ｂのそれぞれの総ビット数はいずれも８の倍数のビット数となるので、オーバヘッド部Ｈと本体部Ｂとを合わせたＭＣＵ２が１回の通信において送受信するデータの総ビット数も８の倍数のビット数となる。
【００３１】
ロジック回路１０は、端子Ｔ１０１、端子Ｔ１０２、端子Ｔ１０３、端子Ｔ１０４及び端子Ｔ１０５を有している。端子Ｔ１０１には、信号線Ｌ１を介して、ＭＣＵ２の端子Ｔ２１から出力されたＳＣＫ信号が入力される。端子Ｔ１０２には、信号線Ｌ２を介して、ＭＣＵ２の端子Ｔ２２から出力されたＭＯＳＩ信号が入力される。端子Ｔ１０３には、信号線Ｌ４を介して、ＭＣＵ２の端子Ｔ２４から出力された／ＣＳ信号が入力される。端子Ｔ１０４は、信号線Ｌ４１を介して、ＩＣ３の端子Ｔ３４に／ＣＳ１信号を出力する。端子Ｔ１０５は、信号線Ｌ４２を介して、ＩＣ４の端子Ｔ４４に／ＣＳ２信号を出力する。
【００３２】
次に、図３〜図５を参照して、ロジック回路１０の詳細な構成を説明する。図３は、ロジック回路１０の回路構成例を示す図である。図４は、図３のデコーダ１６の入出力信号に係る真理値表を示す図である。図５は、図３の各入出力信号のタイミングチャートである。図３に示されるように、ロジック回路１０は、アップカウンタ１１と、ＲＳフリップフロップ１２と、ダウンカウンタ１３と、ＲＳフリップフロップ１４と、シフトレジスタ１５と、デコーダ１６と、ＡＮＤゲート１７と、ＡＮＤゲート１８−１〜１８−３２と、を備えている。なお、図３に示されるロジック回路１０は、３２個のスレーブデバイスを接続可能な構成となっているが、図１に示されるシリアル通信回路１に適用される場合には、ＡＮＤゲート１８−３〜１８−３２を備えている必要はない。
【００３３】
アップカウンタ１１は、ＳＣＫ信号のクロックパルスをカウントする３ビットのバイナリアップカウンタである。アップカウンタ１１は、クロック端子と、ＭＲ（Master Reset）端子と、／ＴＣＵ端子と、を有している。クロック端子は、端子Ｔ１０１に接続され、ＳＣＫ信号を受信する。ＭＲ端子は、端子Ｔ１０３に接続され、／ＣＳ信号を受信する。／ＴＣＵ端子は、ＲＳフリップフロップ１２のＳ端子及びダウンカウンタ１３のＰＬ端子に接続され、オーバーフロー信号である／ＴＣＵ信号を出力する。アップカウンタ１１は、／ＣＳ信号がローレベルになることによってマスタリセット（非同期リセット）が解除されると、カウンタ値が０からＳＣＫ信号のクロックパルスのカウントを開始する。すなわち、ＳＣＫ信号のクロックパルスが入力される毎に内部のカウンタ値が１ずつ増加する。それにより、アップカウンタ１１は、ＳＣＫ信号のクロックパルスが７回入力されることによって、／ＴＣＵ信号をローレベルにする。アップカウンタ１１は、さらにＳＣＫ信号のクロックパルスが１回入力されると、／ＴＣＵ信号をハイレベルにして、カウンタ値を０にクリアし、／ＣＳ信号がローレベルになっている間はこのカウント動作を繰り返す。
【００３４】
ＲＳ（Reset Set）フリップフロップ１２は、リセット端子であるＲ端子と、セット端子であるＳ端子と、出力端子であるＱ端子と、を有している。Ｒ端子は、端子Ｔ１０３に接続され、／ＣＳ信号を受信する。Ｓ端子は、アップカウンタ１１の／ＴＣＵ端子に接続され、／ＴＣＵ信号が反転入力される。Ｑ端子は、ＲＳフリップフロップ１４のＲ端子に接続され、Ｃ１信号を出力する。
【００３５】
ダウンカウンタ１３は、ＳＣＫ信号のクロックパルスをカウントする３ビットのバイナリダウンカウンタである。ダウンカウンタ１３は、クロック端子と、ＰＬ端子と、カウンタ値のセットするためのＰ０〜Ｐ２端子と、／ＴＣＤ端子と、を有している。クロック端子は、端子Ｔ１０１に接続され、ＳＣＫ信号を受信する。ＰＬ端子は、アップカウンタ１１の／ＴＣＵ端子に接続され、そこから出力される／ＴＣＵ信号を受信する。Ｐ０〜Ｐ２端子は、端子Ｔ１０２、シフトレジスタ１５のＱ０端子及びＱ１端子にそれぞれ接続される。／ＴＣＤ端子は、ＲＳフリップフロップ１４のＳ端子に接続され、アンダーフロー信号である／ＴＣＤ信号を出力する。
【００３６】
ダウンカウンタ１３は、ＰＬ端子に入力される／ＴＣＵ信号の立ち上がりエッジでカウンタ値のプリセットを行う。具体的には、ダウンカウンタ１３は、／ＴＣＵ信号の立ち上がりエッジでＰ０〜Ｐ２端子に入力されている信号を取り込み、取り込んだ信号のレベルに応じて、カウンタ値をセットする。ダウンカウンタ１３は、例えば、Ｐ２端子から取り込んだ信号のレベル、Ｐ１端子から取り込んだ信号のレベル、Ｐ０端子から取り込んだ信号のレベルの順にビット列を形成し、そのビット列が示す値をカウンタ値としてセットする。ダウンカウンタ１３は、ＳＣＫ信号のクロックパルスが入力される毎に内部のカウンタ値を１ずつ減少させる。それにより、ＳＣＫ信号のクロックパルスがＰ０〜Ｐ２端子によってセットされたカウンタ値の回数分だけ入力されることによって、カウンタ値がゼロになると、ダウンカウンタ１３は／ＴＣＤ信号をローレベルにする。ダウンカウンタ１３は、さらにＳＣＫ信号のクロックパルスが１回入力されると、／ＴＣＤ信号をハイレベルにして、カウント動作を停止する。
【００３７】
ＲＳフリップフロップ１４は、リセット端子であるＲ端子と、セット端子であるＳ端子と、出力端子であるＱ端子と、を有している。Ｒ端子には、ＲＳフリップフロップ１２のＱ端子が接続され、Ｃ１信号が反転入力される。Ｓ端子には、ダウンカウンタ１３の／ＴＣＤ端子が接続され、／ＴＣＤ信号が反転入力される。Ｑ端子は、ＡＮＤゲート１７の一方の入力端子に接続され、Ｃ２信号を出力する。
【００３８】
シフトレジスタ１５は、７ビットのバイナリシフトレジスタである。シフトレジスタ１５は、クロック端子と、入力端子であるＤＳ端子と、出力端子であるＱ０〜Ｑ６端子と、を有している。クロック端子は、端子Ｔ１０１に接続され、ＳＣＫ信号を受信する。ＤＳ端子は、端子Ｔ１０２に接続され、ＭＯＳＩ信号を受信する。Ｑ０〜Ｑ６端子は、ダウンカウンタ１３のＰ１〜Ｐ２端子、デコーダ１６のＤ０〜Ｄ４端子にそれぞれ接続され、各端子に対応するレジスタの値を示す信号を出力する。シフトレジスタ１５は、ＳＣＫ信号のクロックパルスに同期して、例えば、ＤＳ端子に入力された値がＱ０端子に出力された後にＱ１端子に出力されるように順々にシフト動作を行い、ＳＣＫ信号の７個のクロックパルスを入力した時点で、ラッチされ、Ｑ０〜Ｑ６端子からの出力が保持される。例えば、シフトレジスタ１５は、／ＴＣＵ信号の立ち下がりエッジ、または、Ｃ１信号の立ち上がりエッジでラッチされる。
【００３９】
デコーダ１６は、５ビットのバイナリデコーダである。デコーダ１６は、入力端子であるＤ０〜Ｄ４端子と、出力端子であるＱ０〜Ｑ３１端子と、を有している。Ｄ０〜Ｄ４端子は、シフトレジスタ１５のＱ２〜Ｑ６端子にそれぞれ接続される。Ｑ０〜Ｑ３１端子は、ＡＮＤゲート１８−１〜１８−３２の一方の入力端子にそれぞれ接続される。デコーダ１６は、図４に示される真理値表に従って、Ｄ０〜Ｄ４端子に入力された信号のレベルに応じて、Ｑ０〜Ｑ３１端子のいずれか一つのみからハイレベルの信号を出力し、残りの他の端子からローレベルの信号を出力する。つまり、Ｄ０〜Ｄ４端子に入力される信号のレベルを「０」または「１」で表し、Ｄ０端子からＤ４端子の順に各端子に入力される信号の値を並べたビット列は、十進法の０〜３１の値を取り得る。この値に応じたＱ０〜Ｑ３１端子にハイレベル「１」を出力し、他の端子にローレベル「０」を出力する。
【００４０】
ＡＮＤゲート１７は、２つの入力端子と、出力端子と、を有している。ＡＮＤゲート１７の一方の入力端子は、ＲＳフリップフロップ１４のＱ端子に接続され、Ｃ２信号を受信する。ＡＮＤゲート１７の他方の入力端子には、端子Ｔ１０３が接続され、／ＣＳ信号が反転入力される。ＡＮＤゲート１７の出力端子は、ＡＮＤゲート１８−１〜１８−３２の他方の入力端子に接続される。
【００４１】
ＡＮＤゲート１８−１〜１８−３２はそれぞれ、２つの入力端子と、出力端子と、を有している。ＡＮＤゲート１８−１〜１８−３２の一方の入力端子は、デコーダ１６のＱ０〜Ｑ３１端子にそれぞれ接続される。ＡＮＤゲート１８−１〜１８−３２の他方の入力端子は、ＡＮＤゲート１７の出力端子に接続される。ＡＮＤゲート１８−１〜１８−３２の出力端子は、入力端子に入力された２つの信号のそれぞれの論理値によるＡＮＤ演算の結果を反転出力する。
【００４２】
このように構成されたシリアル通信回路１では、図５に示されるように、ＳＰＩ通信が開始される前の初期状態では、ロジック回路１０には、ＳＣＫ信号が供給されておらず、／ＣＳ信号はハイレベルとされている。このとき、アップカウンタ１１は、ＭＲ端子にハイレベルの／ＣＳ信号が供給されていることから、マスタリセット状態となり、／ＴＣＵ端子からハイレベルの／ＴＣＵ信号を出力している。ＲＳフリップフロップ１２では、Ｒ端子にハイレベルの／ＣＳ信号が供給され、Ｓ端子にハイレベルの／ＴＣＵ信号の反転、つまりローレベルの信号が供給されているので、Ｑ端子はローレベルのＣ１信号を出力する。ダウンカウンタ１３は、ＳＣＫ信号が供給されていないので、カウント動作を行っておらず、ハイレベルの／ＴＣＤ信号を出力している。
【００４３】
ＲＳフリップフロップ１４では、Ｒ端子にローレベルのＣ１信号の反転、つまりハイレベルの信号が供給され、Ｓ端子にハイレベルの／ＴＣＤ信号の反転、つまりローレベルの信号が供給されているので、Ｑ端子はローレベルのＣ２信号を出力する。ＡＮＤゲート１７では、ハイレベルの／ＣＳ信号の反転と、ローレベルのＣ２信号が入力されているので、ローレベルの信号を出力する。ＡＮＤゲート１８−１〜１８−３２では、ＡＮＤゲート１７からローレベルの信号を供給されていることから、その反転出力である／ＣＳ１〜／ＣＳ３２信号はいずれもハイレベルとなる。なお、初期状態において、シフトレジスタ１５は、ＳＣＫ信号が供給されていないことから、シフト動作を行っておらず、Ｑ０〜Ｑ６端子から出力されるそれぞれの信号の論理値は不定となっている。
【００４４】
ＳＰＩ通信を開始する際に、ＭＣＵ２は、通信対象のスレーブデバイスとの間で１回の通信で送受信する電文Ｍの総ビット数Ｎｍを認識する。そして、ＭＣＵ２は、通信対象のスレーブデバイスのスレーブ識別番号をアドレス情報Ｈ１にセットし、上述の式（１）を用いてパディングビットＰのビット数Ｎｐａｄを算出し、算出したビット数Ｎｐａｄをパディング情報Ｈ２にセットすることによって、オーバヘッド部Ｈを生成する。ここでは、通信対象のスレーブデバイスとしてＩＣ４が選択され、１回の通信で送受信される電文Ｍの総ビット数Ｎｍは６３ビットであるとする。アドレス情報Ｈ１には、ＩＣ４のスレーブ識別番号である「００００１」がセットされ、パディング情報Ｈ２には１ビットを示す「００１」がセットされる。そして、ＭＣＵ２は、／ＣＳ信号をローレベルとし、ＳＣＫ信号に同期して、ＭＯＳＩ信号としてオーバヘッド部Ｈをアドレス情報Ｈ１、パディング情報Ｈ２の順に送信する。
【００４５】
／ＣＳ信号がローレベルとされることによって、アップカウンタ１１では、マスタリセットが解除され、アップカウンタ１１は、ＳＣＫ信号のクロックパルスによるカウント動作を開始する。ＲＳフリップフロップ１２のＲ端子に供給されている信号がローレベルになるが、Ｓ端子にもローレベルの信号が供給されているので、ＲＳフリップフロップ１２のＱ端子から出力されているＣ１信号はローレベルのままである。また、シフトレジスタ１５は、ＳＣＫ信号に同期して、ＭＯＳＩ信号、つまりオーバヘッド部Ｈを順にレジスタに取り込んでいく。また、ＡＮＤゲート１７では、／ＣＳ信号がローレベルに切り替わっても、ローレベルのＣ２信号が入力されているので、ローレベルの信号が出力される。このため、ＡＮＤゲート１８−１〜１８−３２から出力される／ＣＳ１〜／ＣＳ３２信号はハイレベルのままである。
【００４６】
そして、ＳＣＫ信号にて７個のクロックパルスが送信された時点で、アップカウンタ１１は／ＴＣＵ信号をローレベルにする。これによって、ＲＳフリップフロップ１２のＳ端子に供給されている信号がハイレベルとなり、ＲＳフリップフロップ１２のＱ端子から出力されているＣ１信号がハイレベルに切り替わる。このとき、ＲＳフリップフロップ１４のＲ端子に供給されている信号がローレベルになるが、Ｓ端子にもローレベルの信号が供給されているので、ＲＳフリップフロップ１４のＱ端子から出力されているＣ２信号はローレベルのままである。
【００４７】
また、シフトレジスタ１５は、ＳＣＫ信号にて７個のクロックパルスを受信した時点で、ラッチされ、Ｑ０〜Ｑ６端子からの出力が固定される。つまり、Ｑ６〜Ｑ２端子からは、アドレス情報Ｈ１の先頭ビットから最終ビットまでが順に出力され、Ｑ１端子及びＱ０端子からは、パディング情報Ｈ２のうちの先頭の２ビットが順に出力される。これにより、デコーダ１６のＤ４〜Ｄ０端子には、アドレス情報Ｈ１の先頭ビットから最終ビットまでが順に入力され、図４の真理値表に応じて、Ｑ０〜Ｑ３１端子のいずれかから出力される信号がハイレベルに切り替えられる。この例では、アドレス情報Ｈ１には、「００００１」がセットされているので、Ｑ１端子から出力されている信号がハイレベルに切り替えられる。
【００４８】
続いて、アップカウンタ１１は、ＳＣＫ信号にて８番目のクロックパルスが入力されることによって、／ＴＣＵ信号をハイレベルにして、カウンタ値を０にクリアする。これによって、ＲＳフリップフロップ１２のＳ端子に供給されている信号がローレベルとなるが、Ｒ端子にもローレベルの信号が供給されているので、ＲＳフリップフロップ１２のＱ端子から出力されているＣ１信号はハイレベルのままである。また、ダウンカウンタ１３では、ＰＬ端子に入力されている／ＴＣＵ信号がローレベルからハイレベルに切り替わることによって、カウンタ値のプリセットが行われる。つまり、ダウンカウンタ１３は、／ＴＣＵ信号の立ち上がりエッジでＰ０〜Ｐ２端子に入力されている信号を取り込み、取り込んだ信号のレベルに応じて、内部のカウンタ値をセットする。このとき、端子Ｔ１０２には、オーバヘッド部Ｈの８ビット目、つまり、パディング情報Ｈ２の最終ビットが供給されている。このため、Ｐ２〜Ｐ０端子には、パディング情報Ｈ２の先頭ビットから最終ビットまでが順に入力されているので、ダウンカウンタ１３のカウンタ値として「００１」がセットされる。
【００４９】
続いて、ＭＣＵ２は、送受信されるデータの総ビット数が８ビット単位となるように、電文Ｍの前に１ビットのパディングビットＰを追加し、ＳＣＫ信号に同期して本体部Ｂを送信する。つまり、ＳＣＫ信号の９番目のクロックパルスでパディングビットＰを送信する。このとき、ダウンカウンタ１３では、ＳＣＫ信号の９番目のクロックパルスが入力されることによって、ダウンカウント動作が行われ、カウンタ値が０になる。このため、ダウンカウンタ１３は、／ＴＣＤ信号をローレベルに切り替える。これによって、ＲＳフリップフロップ１４のＳ端子に供給されている信号がハイレベルとなり、ＲＳフリップフロップ１４のＱ端子から出力されているＣ２信号がハイレベルに切り替わる。
【００５０】
そして、ＡＮＤゲート１７に、ローレベルの／ＣＳ信号の反転信号と、ハイレベルのＣ２信号と、が入力され、ハイレベルの信号が出力される。このとき、デコーダ１６から、ＡＮＤゲート１８−２にハイレベルの信号が入力され、他のＡＮＤゲート１８−１，１８−３〜１８−３２にはローレベルの信号が入力されているので、ＡＮＤゲート１８−２の反転出力である／ＣＳ２信号だけがローレベルに切り替えられる。これによって、ＩＣ４に供給されている／ＣＳ２信号が、ＳＣＫ信号の９番目のクロックパルスが送信された後にローレベルとなる。
【００５１】
続いて、ＭＣＵ２からＳＣＫ信号の１０〜７２番目のクロックパルスが順に送信されるごとに、ＩＣ４は、ＳＣＫ信号に同期して、ＭＯＳＩ信号を取り込む。そして、この通信において送受信する全てのデータを送受信したことに応じて、ＭＣＵ２は／ＣＳ信号をハイレベルに切り替える。これによって、ＡＮＤゲート１７に、ハイレベルの／ＣＳ信号の反転信号が入力されるので、ローレベルの信号が出力される。そして、ＡＮＤゲート１８−１〜１８−３２にローレベルの信号が入力されるので、ＡＮＤゲート１８−１〜１８−３２の反転出力である／ＣＳ１〜／ＣＳ３２信号は全てハイレベルとなる。このようにして、ＳＰＩ通信が終了する。
【００５２】
なお、ＡＮＤゲート１７及びＡＮＤゲート１８−１〜１８−３２の遅延時間は約５ナノ秒、ＲＳフリップフロップ１２及びＲＳフリップフロップ１４の遅延時間は約７ナノ秒程度である。ＭＣＵ２から出力されるＳＣＫ信号の周波数は最大約２０ＭＨｚで、その周期は５０ナノ秒である。このため、ロジック回路１０における回路遅延時間は、ＳＣＫ信号の周期に対して十分小さい。
【００５３】
次に、図６を参照してシリアル通信回路１及びシリアル通信回路１を備える電子機器の作用効果を説明する。図６の（ａ）は電文Ｍのビット数が１６ビットである場合の動作を示す図、（ｂ）は電文Ｍのビット数が９ビットである場合の動作を示す図である。
【００５４】
図６の（ａ）に示されるように、ＭＣＵ２とＩＣ３とのＳＰＩ通信において、１回の通信で送受信される電文Ｍの総ビット数Ｎｍが１６ビットである場合、ＭＣＵ２は、アドレス情報Ｈ１にＩＣ３のスレーブ識別番号である「０００００」をセットし、パディング情報Ｈ２に「０００」をセットして、オーバヘッド部Ｈを生成する。また、ＩＣ３は８ビット単位でＳＰＩ通信を行うので、送受信すべき電文ＭにパディングビットＰを付加することなく２バイトの本体部Ｂを生成する。そして、ＭＣＵ２は、オーバヘッド部Ｈ及び本体部ＢをＭＯＳＩ信号としてＳＣＫ信号に同期して順に送信する。そして、ロジック回路１０は、オーバヘッド部Ｈを受信すると、／ＣＳ信号を遅延させる必要がないので、オーバヘッド部Ｈの最終ビットを受信した後に／ＣＳ１信号をローレベルとする。これにより、ＩＣ３は、本体部Ｂの先頭から受信することが可能となる。
【００５５】
一方、図６の（ｂ）に示されるように、ＭＣＵ２とＩＣ４とのＳＰＩ通信において、１回の通信で送受信される電文Ｍの総ビット数Ｎｍが９ビットである場合、ＭＣＵ２は、アドレス情報Ｈ１にＩＣ４のスレーブ識別番号である「００００１」をセットし、パディング情報Ｈ２に「１１１」をセットして、オーバヘッド部Ｈを生成する。また、送受信される電文Ｍの総ビット数Ｎｍが９ビットであるので、送受信すべき電文Ｍの前に７ビットのパディングビットＰを付加して２バイトの本体部Ｂを生成する。そして、ＭＣＵ２は、オーバヘッド部Ｈ及び本体部ＢをＭＯＳＩ信号としてＳＣＫ信号に同期して順に送信する。そして、ロジック回路１０は、オーバヘッド部Ｈを受信すると、オーバヘッド部Ｈの最終ビットを受信した後から７ビット分遅らせて、／ＣＳ２信号をローレベルとする。これにより、ＩＣ４は、本体部Ｂの８ビット目から最終ビットまでの９ビットの電文Ｍを受信することが可能となる。
【００５６】
このように、シリアル通信回路１では、／ＣＳ信号はＭＣＵ２からロジック回路１０を経由して各スレーブデバイスに送信される。ＳＣＫ信号及びＭＯＳＩ信号は、ＭＣＵ２から各スレーブデバイスに直接送信され、ロジック回路１０にも送信される。ＭＩＳＯ信号は各スレーブデバイスからＭＣＵ２に直接送信される。ＭＣＵ２は、／ＣＳ信号をローレベルにセットして、ＳＣＫ信号に同期してＭＯＳＩ信号としてオーバヘッド部Ｈ及び本体部Ｂを含むデータＤを順に送信する。オーバヘッド部Ｈが送信されている間、ロジック回路１０は／ＣＳｘ信号をハイレベルの状態に維持しているので、ＩＣ３及びＩＣ４はオーバヘッド部Ｈを受信しない。そして、ロジック回路１０がオーバヘッド部Ｈのアドレス情報Ｈ１及びパディング情報Ｈ２を読み取り、オーバヘッド部Ｈの受信終了後、本体部Ｂの先頭からパディング情報Ｈ２に示されるパディングビットＰのビット数分のＳＣＫ信号のクロックパルスを受信したことに応じて、アドレス情報Ｈ１に示されるスレーブデバイスの／ＣＳｘ信号をローレベルにセットする。すなわち、本体部Ｂのうち、パディングビットＰを除く実際の電文Ｍの先頭ビットから／ＣＳｘ信号がローレベルにセットされる。これによって、実際に送受信すべき電文Ｍを送受信している間だけスレーブデバイスへの／ＣＳｘ信号がローレベルにセットされ、電文Ｍのビット数によらずに電文Ｍが送受信される。
【００５７】
以上説明したように、シリアル通信回路１及びシリアル通信回路１を備える電子機器によれば、ＭＣＵ２によって、ＩＣ３またはＩＣ４との１回の通信において送受信されるデータの総ビット数が８ビット単位となるようにパディングビットＰが追加され、ロジック回路１０によって、追加されたパディングビットＰのビット数に応じて／ＣＳ信号が遅延され、遅延された／ＣＳｘ信号がＩＣ３またはＩＣ４に出力される。ＩＣ４は、９ビット単位でＳＰＩ通信を行うが、ＭＣＵ２とＩＣ４との間で送受信されるデータの総ビット数が８ビット単位となるので、ＭＣＵ２はＩＣ４と通信可能となる。また、ＩＣ４においては、パディングビットＰのビット数分だけ／ＣＳ２信号が遅延されることによって、ＩＣ４が対応するビット数単位でデータが送受信されるので、ＩＣ４はＭＣＵ２と通信可能となる。このように、８ビット単位でない電文Ｍを送受信するスレーブデバイスであっても、８ビット単位で電文Ｍを送受信するＭＣＵ２と通信可能となる。
【００５８】
ＭＣＵ２は、アドレス情報Ｈ１によって通信対象のスレーブデバイスを指定することができるので、１つの／ＣＳ信号を出力すればよい。このため、ＭＣＵ２は、ＩＣ３およびＩＣ４のそれぞれに／ＣＳ信号を出力する必要がないので、ＭＣＵ２において、ＳＰＩ通信のための端子数を削減することが可能となる。
【００５９】
なお、本発明に係るシリアル通信回路及び電子機器は上記実施形態に限定されない。例えば、上記実施形態では、ＭＣＵ２とＳＰＩ通信可能なスレーブデバイスはＩＣ３及びＩＣ４であるが、ＭＣＵ２とＳＰＩ通信可能なスレーブデバイスの数は、２つに限られず、１つであってもよく、３つ以上であってもよい。つまり、シリアル通信回路１には、アドレス情報Ｈ１で特定可能な数のスレーブデバイスが設けられ得る。上記実施形態では、アドレス情報Ｈ１に５ビットが割り当てられているので、最大３２個のスレーブデバイスが設けられ得るが、オーバヘッド部Ｈのデータ長を１バイトよりも大きくし、アドレス情報Ｈ１に割り当てられるビット数を５ビットよりも大きくすることによって、３２よりも多くのスレーブデバイスが設けられ得る。ロジック回路１０の端子（ＩＯポート）には各スレーブデバイス用の／ＣＳｘ信号が割り当てられ、ロジック回路１０は、各スレーブデバイスに／ＣＳｘ信号をそれぞれ出力する。
【００６０】
また、ＭＣＵ２は、スレーブデバイスのそれぞれに専用の／ＣＳ信号を出力してもよい。例えば、図３に示されるロジック回路１０において、デコーダ１６及びＡＮＤゲート１７に代えて、各／ＣＳ信号のＡＮＤ演算を行うＡＮＤゲートが設けられる。そして、当該ＡＮＤゲートの出力をアップカウンタ１１のＭＲ端子及びＲＳフリップフロップ１２のＲ端子に入力する。ＡＮＤゲート１８−１〜１８−３２の一方の入力端子には、各スレーブデバイスに対応する／ＣＳ信号が反転入力され、ＡＮＤゲート１８−１〜１８−３２の他方の入力端子には、Ｃ２信号が入力され、ＡＮＤゲート１８−１〜１８−３２の出力端子からは、演算結果が反転出力される。このような構成によれば、オーバヘッド部Ｈにアドレス情報Ｈ１を含める必要がなくなる。
【符号の説明】
【００６１】
１…シリアル通信回路、２…ＭＣＵ（マスタデバイス）、３，４…ＩＣ（スレーブデバイス）、１０…ロジック回路。
【図１】
2016177426.tif 000003
【図２】
2016177426.tif 000004
【図３】
2016177426.tif 000005
【図４】
2016177426.tif 000006
【図５】
2016177426.tif 000007
【図６】
2016177426.tif 000008