JP2016004388A - 通信システム及び電子回路 - Google Patents

通信システム及び電子回路 Download PDF

Info

Publication number
JP2016004388A
JP2016004388A JP2014123725A JP2014123725A JP2016004388A JP 2016004388 A JP2016004388 A JP 2016004388A JP 2014123725 A JP2014123725 A JP 2014123725A JP 2014123725 A JP2014123725 A JP 2014123725A JP 2016004388 A JP2016004388 A JP 2016004388A
Authority
JP
Japan
Prior art keywords
signal
communication
terminal
spi
data
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.)
Withdrawn
Application number
JP2014123725A
Other languages
English (en)
Inventor
孝司 榎並
Koji Enami
孝司 榎並
川上 健太郎
Kentaro Kawakami
健太郎 川上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014123725A priority Critical patent/JP2016004388A/ja
Priority to US14/718,234 priority patent/US20150363353A1/en
Publication of JP2016004388A publication Critical patent/JP2016004388A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Abstract

【課題】I2C通信の信号とSPI通信の信号とが衝突するおそれがない通信システムを提供する。
【解決手段】通信システムは、I2Cデバイス11、12と、SPIデバイス10と、選択回路20と、電子回路30とを有する。選択回路20は、CS信号を受信していないときに、第1データ信号と第2データ信号とから第1データ信号を選択し、CS信号を受信しているときに、CS信号に対応する信号を生成し、停止信号としてSCL端子に送信すると共に、第1データ信号と第2データ信号とから第2データ信号を選択する。電子回路30は、CLK信号が遷移したときにSPI通信のスレーブとして機能する。また、電子回路30は、CLK信号が遷移せず且つSCL信号及びSDA信号がI2C通信を開始する条件を示すときにI2C通信のスレーブとして機能する。
【選択図】図1

Description

本発明は、通信システム及び電子回路に関する。
フィリップス・セミコンダクタ社により開発されたI2C(Inter-Integrated Circuit)通信、及びモトローラ・インコ社により開発された直列周辺インタフェース(Serial Peripheral Interface、SPI)通信が、シリアル通信方式として知られている。
I2C通信は、シリアル・データライン(SDA)端子とシリアル・クロックライン(SCL)端子の2つの端子を介して通信する方式である。SDA端子は、I2C通信のマスタとスレーブとの間のデータ信号、及びアクノリッジ(Acknowledge、ACK)信号等を送信又受信する端子である。SCL端子は、I2C通信のマスタからスレーブに、SDA端子が送信又受信する信号をラッチするクロック信号を送信又受信する端子である。
SPI通信は、MOSI(Master Output Slave Input)端子、MISO(Master Input Slave Output)端子、CLK端子及びCS(Chip Select)端子の4つの端子を介して通信する方式である。MOSI端子は、マスタとして機能するSPIデバイスがデータ信号を送信し且つスレーブとして機能するSPIデバイスがデータ信号を受信する端子である。MISO端子は、マスタとして機能するSPIデバイスがデータ信号を受信し且つスレーブとして機能するSPIデバイスがデータ信号を送信する端子である。CLK端子は、マスタとして機能するSPIデバイスがクロック信号を送信し且つスレーブとして機能するSPIデバイスがクロック信号を受信する端子である。CS端子は、マスタとして機能するSPIデバイスがマスタとして機能することを示すために、スレーブとして機能するSPIデバイスに対してLレベルの信号を出力する端子である。
I2C通信及びSPI通信の双方の通信に対応可能なI2C/SPI制御インターフェース回路構造が知られている。一例では、I2C/SPI制御インターフェース回路構造は、第1〜第3の伝送ラインを有する。第1の伝送ラインはI2CデバイスのSCL端子とSPIデバイスのCS端子とに接続され、第2の伝送ラインはI2CデバイスのSDA端子とSPIデバイスのMOSI端子及びMISO端子とに接続されている。第3の伝送ラインは、SPIデバイスのCLK端子に接続されている。
また、I2C通信及びSPI通信の2つの通信方式を自動的に切り換える機能を有する電子装置が知られている。一例では、電子装置は、SPIデバイスのCS信号がLレベルになると、最初の2クロックサイクルの間、電子装置内の状態機械はI2Cインタフェースを動作不能にし、SPIインタフェースを動作可能にする。
特開2011−138466号公報 特開2011−43904号公報 特開2002−232508号公報 特開平7−135517号公報 特開2013−546034号公報
MCU(Micro Controller Unit)等のマイクロプロセッサに多くのセンサを接続して、多様な情報を取得することが可能な通信システムを構築することが望まれている。このような通信システムを構築するときに、センサとマイクロプロセッサとの間の通信は、I2C通信のみならずSPI通信も可能なように構築されることが好ましい。また、加速度センサ等のイベントの検出に応じて検出データ信号を送信するセンサでは、マイクロプロセッサではなくセンサをマスタとして機能させることが好ましい。マイクロプロセッサをマスタとした場合、イベントを検出したことを示す信号をセンサから通知するための端子が配置されるため、マイクロプロセッサのピン数が増加するおそれがあるためである。
また、I2Cデバイス及びSPIデバイスの双方をマスタとした通信システムでは、I2C通信とSPI通信とが非同期で動作するため、I2C通信の信号とSPI通信の信号とが衝突するおそれがある。
実施形態によれば、I2C通信の信号とSPI通信の信号とが衝突するおそれがない通信システムを提供することを目的とする。
1つの態様の通信システムは、I2Cデバイスと、SPIデバイスと、選択回路と、電子回路とを有する。I2Cデバイスは、I2C通信のマスタとして機能するときに、第1データ信号を送信又は受信するSDA端子と、第1データ信号をラッチするクロック信号であるSCL信号を送信するSCL端子とを有する。I2Cデバイスは、SCL端子に停止信号が送信されるときに、I2C通信のマスタとしての機能を停止する。SPIデバイスは、SPI通信のマスタとして機能することを示すCS信号を送信するCS端子を有する。SPIデバイスは、SPI通信のマスタとして機能するときに、第2データ信号を送信又は受信するSPIデータ端子と、第2データ信号をラッチするクロック信号であるCLK信号を送信するCLK端子とを更に有する。選択回路は、CS信号を受信していないときに、第1データ信号と第2データ信号とから第1データ信号を選択する。選択回路は、CS信号を受信しているときに、CS信号に対応する信号を生成し、停止信号としてSCL端子に送信すると共に、第1データ信号と第2データ信号とから第2データ信号を選択する。電子回路は、CLK信号を受信するSPICK端子と、SCL信号又は選択回路が生成したCS信号に対応する信号の何れか一方の信号を受信するCS・SCL端子とを有する。電子回路は、選択回路が選択した第1データ信号又は第2データ信号の何れか一方の信号を送信又は受信するデータ端子を更に有する。電子回路は、CLK信号が遷移したときにSPI通信のスレーブとして機能する。また、電子回路は、CLK信号が遷移せず且つCS・SCL端子及びデータ端子にI2C通信を開始する条件を示す信号が送信されたときにI2C通信のスレーブとして機能する。
実施形態では、I2C通信の信号とSPI通信の信号とが衝突するおそれがない通信システムを提供することができる。
第1実施形態に係る通信システムの回路ブロック図である。 LレベルのCS信号が送信されるときの選択状態を示す図である。 HレベルのCS信号が送信されるときの選択状態を示す図である。 図1に示す通信システムにおける通信パターンを示す図である。 図1に示すMCUの処理フローを示すフローチャートである。 より所詳細なMCUの処理フローを示すフローチャートである。 (a)はMCUがSPI通信のスレーブとして機能するときのタイミングチャートを示す図であり、(b)は図6に示すフローチャートの(a)に関連する部分を示すフローチャートである。 (a)はMCUがI2C通信のスレーブとして機能しているときにSPI通信が割り込むときのタイミングチャートを示す図であり、(b)は図6に示すフローチャートの(a)に関連する部分を示すフローチャートである。 マスタがSCL信号の立ち上がりエッジを認識する一方、スレーブが信号SCL号の立ち上がりエッジを識別しないときのタイミングチャートを示す図である。 マスタがSCL信号の立ち上がりエッジを認識しない一方、スレーブSCL信号の立ち上がりエッジを識別するときの第1のタイミングチャートを示す図である。 マスタがSCL信号の立ち上がりエッジを認識しない一方、スレーブがSCL信号の立ち上がりエッジを識別するときの第2のタイミングチャートを示す図である。 MCUがACK信号を送信している間にSPI通信によりI2C通信が中断されたときのタイミングチャートを示す図である。 第2実施形態に係る通信システムの回路ブロック図である。 第3実施形態に係る通信システムの回路ブロック図である。 他の実施形態に係るMCUの処理フローを示すフローチャートである。
以下図面を参照して、通信システム及び電子回路について説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明との均等物に及ぶ点に留意されたい。
実施形態に係る通信システムは、マスタとして機能するI2Cデバイス及びSPIデバイスと、スレーブとして機能するMCUと、SPIデバイスのCS信号に応じてI2Cデバイス及びSPIデバイスとMCUとの接続関係を選択する選択回路とを有する。実施形態に係る通信システムでは、選択回路は、SPIデバイスのCS信号に応じて、MCUと接続されるマスタを切替えるので、I2Cデバイスからの信号とSPIデバイスからの信号とが衝突するおそれがない。
図1は、第1実施形態に係る通信システムの回路ブロック図である。
通信システム1は、SPIデバイス10と、第1I2Cデバイス11と、第2I2Cデバイス12と、選択回路20と、MCU30とを有する。通信システム1では、不図示のセンサ等を含むSPIデバイス10、第1I2Cデバイス11及び第2I2Cデバイス12のそれぞれはマスタとして機能し、MCU30はスレーブとして機能する。
SPIデバイス10は、MISO端子、MOSI端子、CLK端子及びCS端子を有し、SPI通信のマスタとして機能する。SPIデバイス10は、マスタとして機能するときにCS端子からLレベルのCS信号を送信する。SPIデバイス10は、マスタとして機能するときに、MOSI端子から選択回路20を介してMCU30のD0端子に信号を送信すると共に、MCU30のD0端子からMISO端子に信号を受信する。MOSI端子から送信される信号及びMISO端子が受信する信号をラッチするクロック信号であるCLK信号は、CLK端子からMCU30のSPICK端子に送信される。一例では、SPIデバイス10はモード3で動作する。
第1I2Cデバイス11は、SDA端子と、SCL端子とを有し、I2C通信のマスタとして機能する。第1I2Cデバイス11は、マスタとして機能するときに、SDA端子から選択回路20を介してMCU30のD1端子にデータ信号を送信又は受信する。第1I2Cデバイス11は、マスタとして機能するときに、SCL端子から選択回路20を介してMCU30のCS・SCL端子に、SDA端子から送信されるデータ信号をでラッチするクロック信号であるSCL信号を送信する。
第1I2Cデバイス11は、SCL端子からHレベルの信号を送信し且つSCL端子から送信する信号を立下り遷移させることにより、スタート・コンディションを発行して、マスタとしての機能を開始する。また、第1I2Cデバイス11は、SCL端子からHレベルの信号を送信し且つSCL端子から送信する信号を立上がり遷移させることにより、ストップ・コンディションを発行して、マスタとしての機能を停止する。また、第1I2Cデバイス11は、SCL端子にLレベルの信号を受信するとマスタとしての機能を停止する。
第1I2Cデバイス11は、データ信号を1バイト出力する毎に、MCU30のD1端子から選択回路20を介してACK信号を受信したか否かを判定する。第1I2Cデバイス11は、データ信号を1バイト出力した後に、ACK信号を受信したと判定したとき、次の1バイトのデータ信号の送信を開始する。第1I2Cデバイス11は、データ信号を1バイト出力した後に、ACK信号を受信していないと判定したとき、リピート・スタート・コンディションを発行した後に、先に送信した1バイトのデータ信号を再送する。
第1I2Cデバイス11は、マスタとして機能しているときに、SDA端子から送信したデータ信号が他の信号と衝突したと判定したとき、マスタとしての機能を失う。第1I2Cデバイス11は、マスタとしての機能を失った後、Hレベルが所定の期間に亘ってSDA端子に入力されたとき、スタート・コンディションを発行した後に、衝突したデータ信号を含む1バイトのデータ信号を再送する。
第1I2Cデバイス11は、マスタとして機能を終了するためにストップ・コンディションを発行するときに、SCL端子に送信される信号がHレベルであることを確認した後に、SDA端子から送信される信号を立上がり遷移させる。ストップ・コンディションを発行するときに、SCL端子の信号を確認することにより、第1I2Cデバイス11は、ストップ・コンディションを発行する処理の途中にSPI通信に割り込まれた場合でもストップ・コンディションを発行させることができる。
第2I2Cデバイス12は、第1I2Cデバイス11と同様な構成及び機能を有する。
選択回路20は、第1選択素子21と、第2選択素子22と、第3選択素子23とを有する。第1選択素子21及び第2選択素子22のそれぞれは、pMOS(Metal Oxide Semiconductor)トランジスタであり、第3選択素子23はnMOSトランジスタである。第1選択素子21〜第3選択素子23のゲートはSPIデバイス10のCS端子に接続される。第1選択素子21のドレインは第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子とMPU30のCS・SCL端子とに接続され、第1選択素子21のソースは接地される。第2選択素子22のソースは第3選択素子23のドレインとMPU30のD1端子とに接続され、第2選択素子22のドレインはSPIデバイス10のMOSI端子に接続される。第3選択素子23のソースは第1I2Cデバイス11及び第2I2Cデバイス12のSDA端子に接続され、第3選択素子23のドレインは第2選択素子22のソースとSPIデバイス10のD1端子とに接続される。第1選択素子21のドレインと第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子とMPU30のCS・SCL端子とを接続する配線には第1プルアップ抵抗41が接続される。第3選択素子23のソースと第1I2Cデバイス11及び第2I2Cデバイス12のSDA端子とを接続する配線には第2プルアップ抵抗42が接続される。
図2はSPIデバイス10のCS端子からLレベルのCS信号が送信されるときの選択回路20の選択状態を示す図であり、図3はSPIデバイス10のCS端子からHレベルのCS信号が送信されるときの選択回路20の選択状態を示す図である。図2及び3において、実線で示されるトランジスタはオン状態のトランジスタであり、破線で示されるトランジスタはオフ状態のトランジスタである。また、図2及び3において、矢印AはMCU40のD1端子に送信される信号の流れを示し、矢印BはMCU40のCS・SCL端子及び第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子に送信される信号の流れを示す。
SPIデバイス10のCS端子からLレベルのCS信号が送信されるとき、第1選択素子21及び第2選択素子22がオン状態になり、第3選択素子23がオフ状態になる。第1選択素子21がオン状態になるので、第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子及びMCU30のCS・SCL端子にはLレベルの信号が送信される。SPIデバイス10のCS端子からLレベルの信号が送信されるとき、第1I2Cデバイス11及び第2I2Cデバイス12は、SCL端子にLレベルの信号が入力されるので、マスタとしての機能を停止する。また、第2選択素子22がオン状態になり且つ第3選択素子23がオフ状態になるので、MCU30のD1端子は、SPIデバイス10のMOSI端子と接続され、第1I2Cデバイス11及び第2I2Cデバイス12のSDA端子との接続は切断される。
SPIデバイス10のCS端子からHレベルのCS信号が送信されるとき、第1選択素子21及び第2選択素子22がオフ状態になり、第3選択素子23がオン状態になる。第1選択素子21がオフ状態になり、MCU30のCS・SCL端子は、第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子に接続される。また、第2選択素子22がオフ状態になり且つ第3選択素子23がオン状態になるので、MCU30のD1端子は、SPIデバイス10のMOSI端子との接続は切断され、第1I2Cデバイス11及び第2I2Cデバイス12のSDA端子と接続される。
表1にSPIデバイス10のCS端子及び第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子から送信される信号の信号レベルと、MPU30のCS・SCL端子に送信される信号の信号レベルとの関係を示す真理値表を示す。また、表2にSPIデバイス10のCS端子から送信される信号の信号レベルと、MPU30のD1端子に接続される端子との関係を示す。
Figure 2016004388
Figure 2016004388
図2に示すように、SPIデバイス10がマスタとして機能するためにCS端子からLレベルのCS信号を送信しているとき、第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子にはLレベルの信号が送信されている。第1I2Cデバイス11及び第2I2Cデバイス12は、SCL端子にはLレベルの信号が送信されている間、マスタとして機能することが停止される。したがって、SPIデバイス10がマスタとして機能する間に、第1I2Cデバイス11及び第2I2Cデバイス12の何れかがマスタとして機能することはない。
図3に示すように、SPIデバイス10がマスタとして機能せずにCS端子からHレベルの信号を送信しているとき、第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子にはLレベルの信号が送信されていない。第1I2Cデバイス11及び第2I2Cデバイス12は、SCL端子にはLレベルの信号が送信されていないときにスタート・コンディションを発行すると、マスタとしての機能を開始する。第1I2Cデバイス11又は第2I2Cデバイス12は、マスタとして機能しているときにSPIデバイス10のCS端子からLレベルの信号が送信されると、SCL端子にLレベルの信号が送信されマスタとしての機能を停止する。
図4は、通信システム1における通信パターンを示す図である。
第1の通信パターンは、SPI通信が開始してSPI通信が終了するまで継続する通信パターンである。SPI通信が継続している間、SCL端子にはLレベルの信号が送信されているので、第1I2Cデバイス11及び第2I2Cデバイス12は、マスタとして機能することはなく、SPI通信がI2C通信により中断されることはない。
第2の通信パターンは、I2C通信が開始してI2C通信が終了するまで継続する通信パターンである。I2C通信が継続している間に、SPIデバイス10のCS端子から送信されるCS信号がHレベルの信号であり続ける場合、I2C通信はSPI通信により中断されない。
第3の通信パターンは、I2C通信が開始してI2C通信が終了するまでの間にSPI通信が割り込むためにI2C通信が中断され、割り込んだSPI通信が終了した後に中断されたI2C通信が再開する通信パターンである。I2C通信が継続している間に、SPIデバイス10のCS端子からLレベルのCS信号が送信されると、第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子にLレベルの信号が送信されマスタとしての機能を中断する。SPI通信が終了してSPIデバイス10からHレベルのCS信号が送信されると、SCL端子へのLレベルの信号の送信が停止され、マスタとしての機能を中断してI2CデバイスがI2C通信を再開する。
選択回路20では、SPIデバイス10のCS端子から送信される信号は第1選択素子21においてオープンドレイン出力に変換され、第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子とMPU30のCS・SCL端子とに接続される。一方、第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子は第1プルアップ抵抗41が接続されており、第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子から送信される信号もまたオープンドレイン出力である。すなわち、SPIデバイス10のCS端子から送信される信号と第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子とはWired−AND接続されている。CS端子から送信される信号とSCL端子とがWired−AND接続されているので、CS端子からHレベルの信号が送信されるとき、SPIデバイス10のCS端子は第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子から切断される。また、CS端子からLレベルの信号が送信されるとき、第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子及びMPU30のCS・SCL端子にはLレベルの信号が送信される。
選択回路20の第2選択素子22は、MPU30のD1端子とSPIデバイス10のMOSI端子とを接続する。また、選択回路20の第3選択素子23は、MPU30のD1端子と第1I2Cデバイス11及び第2I2Cデバイス12のSDA端子とを接続する。第2選択素子22と第3選択素子23は、SPIデバイス10のCS端子から送信されるCS信号の信号レベルに応じて相補的にオンオフ状態が変化する。すなわち、第2選択素子22がオン状態のとき第3選択素子23はオフ状態となり、第2選択素子22がオフ状態のとき第3選択素子23はオン状態となる。第2選択素子22及び第3選択素子23が相補的にオンオフ状態となるので、SPIデバイス10のMOSI端子から送信される信号と、第1I2Cデバイス11及び第2I2Cデバイス12のSDA端子から送信される信号とが衝突するおそれはない。
MCU30は、SPIデバイス10、第1I2Cデバイス11及び第2I2Cデバイス12のスレーブとして機能する電子回路である。すなわち、SPIデバイス10のCS端子からLレベルの信号が送信され且つSPIデバイス10のCLK端子からSPICK端子にクロック信号が送信されているときに、MCU30は、SPI通信のスレーブとして機能する。また、SPIデバイス10のCS端子からHレベルの信号が送信され且つ第1I2Cデバイス11又は第2I2Cデバイス12の何れかがスタート・コンディションを発行したとき、MCU30は、I2C通信のスレーブとしての機能を開始する。MCU30がI2C通信のスレーブとしての機能している間、SPI通信により中断された場合を含めてI2C通信時に1バイトのデータ信号を受信する毎に、D1端子からACK信号を送信する。MCU30は、第1I2Cデバイス11又は第2I2Cデバイス12の何れかがスタート・コンディションを発行したとき、I2C通信のスレーブとしての機能を終了する。
MCU30は、MCU30の内部に記憶されるコンピュータプログラム(本明細書では、プログラムとも称する)に基づいて、スレーブとして機能するための所定の処理を実行する。MCU30は、MCU30が実行する処理のためのプログラムを記憶することができるコンピュータ読み取り可能な記録媒体とも接続可能である。記録媒体として、CD−ROM、DVDディスク及びUSBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が使用される。
図5は、MCU30の処理フローを示すフローチャートである。
MCU30は、SPI通信が開始しているか否かを判定し(S101)、SPI処理が開始していると判定した場合、SPI通信が終了するまでSPI通信を実行する(S102)。MCU30は、SPI処理が開始していないと判定した場合、I2C通信が開始しているか否かを判定する(S103)。MCU30が、SPI処理が開始していないと判定した場合、処理はS101に戻る。スタート・コンディションが発行されてI2C処理が開始されたと判定した場合、MCU30は、I2C通信を開始するための処理を実行し(S104)、SPI通信が開始しているか否かを判定する(S105)。SPI処理が開始していると判定した場合、MCU30は、SPI通信が終了するまでSPI通信を実行した(S106)後に、1ビットのデータ信号についてI2C通信を実行する(S107)。SPI処理が開始していないと判定した場合、MCU30は、1ビットのデータ信号についてI2C通信を実行する(S107)。MCU30が、I2C通信が終了していないと判定する(S108)と、処理はS105に戻り、S105〜S108の処理を繰り返す。MCU30が、ストップ・コンディションが発行されてI2C通信が終了したと判定する(S108)と、処理はS101に戻る。
図6は、より所詳細なMCU30の処理フローを示すフローチャートである。
MCU30は、SPI通信が開始しているか否かを判定するためにSPIデバイス10のCLK端子からSPICK端子に送信される信号が遷移したか否かを判定する(S201)。SPIデバイス10のCLK端子から送信される信号が遷移したと判定した場合、SPI通信を実行し(S202)、CS・SCL端子に送信される信号が立上がり遷移したか否かを判定する(S203)。MCU30が、CS・SCL端子に送信される信号が立上がり遷移したと判定すると、処理はS201に戻る。MCU30が、CS・SCL端子に送信される信号が立上がり遷移していないと判定すると、SPIデバイス10のCLK端子から送信される信号が遷移するまで待機し(S204)、処理はS202に戻る。
MCU30は、SPIデバイス10のCLK端子から送信される信号が遷移していないと判定した場合、スタート・コンディションが発行されているか否かを判定する。すなわち、MCU30は、CS・SCL端子に送信される信号がHレベルであり且つD1端子に送信される信号が立下がり遷移しているか否かを判定する(S205)。S205の判定がNoである場合、処理はS201に戻る。S205の判定がYesである場合、I2C通信のスタート・コンディションが発行されたと判定してI2C通信を開始するための処理を実行する(S206)。次いで、MCU30は、SPIデバイス10のCLK端子から送信される信号が遷移したと判定した(S207)場合、SPI割り込み通信を実行し(S208)、処理はS207に戻る。MCU30は、SPIデバイス10のCLK端子から送信される信号が遷移していないと判定した(S207)場合、CS・SCL端子に送信される信号が立上がり遷移したか否かを判定する(S209)。MCU30が、CS・SCL端子に送信される信号が立上がり遷移していないと判定した場合、処理はS207に戻り、SCS・SCL端子に送信される信号が立上がり遷移していると判定した場合、処理はS210に進む。
次いで、MCU30は、1ビットのデータ信号についてI2C通信を実行する(S210)。ここで、MCU30は、SPI割り込み通信を実行していた場合にはSPI割り込み通信を終了する(S210)。MCU30は、CS・SCL端子に送信される信号がHレベルであり且つD1端子に送信される信号が立上がり遷移して、ストップ・コンディションが発行されてI2C通信が終了したと判定する(S211)まで、S207〜S211の処理を繰り返す。MCU30が、I2C通信が終了したと判定する(S211)と、処理はS201に戻る。
図7(a)はMCU30がSPI通信のスレーブとして機能するときのタイミングチャートを示す図であり、図7(b)は図6に示すフローチャートの図7(a)に関連する部分を示すフローチャートである。
図7(a)において双方向矢印SPIで示される期間で、SPIデバイス10は、マスタとして機能するため、CS端子からLレベルのCS信号を送信する。MCU30は、図7(a)で矢印Aで示されるSPIデバイス10のCLK端子からSPICK端子に送信される信号が立ち下がるときにSPI通信の開始を検出して、SPI通信のスレーブとしての機能を開始する(S201)。また、MCU30は、図7(b)で矢印Bで示されるSPIデバイス10のCS端子の信号の立ち上がり遷移によりCS・SCL端子の信号が立上がり遷移するときにSPI通信の終了を検出して、SPI通信のスレーブとしての機能を終了する(S203)。
図8(a)はMCU30がI2C通信のスレーブとして機能しているときにSPI通信が割り込むときのタイミングチャートを示す図であり、図8(b)は図6に示すフローチャートの図8(a)に関連する部分を示すフローチャートである。
図8(a)では、MCU30は、CS・SCL端子にHレベルの信号が送信され且つD1に送信される信号が立ち下がり遷移するときにI2C通信のスタート・コンディションが発行されたと判定してI2C通信のスレーブとしての機能を開始する(S205)。また、MCU30は、CS・SCL端子にHレベルの信号が送信され且つD1に送信される信号が立ち上がり遷移するときにI2C通信のストップ・コンディションが発行されたと判定してI2C通信のスレーブとしての機能を停止する(S211)。MCU30は、I2C通信のスレーブとして機能している間にSPIデバイス10のCLK端子からSPICK端子に送信される信号の遷移を検知するとI2C通信のスレーブとしての機能を中断してSPI通信のスレーブとして機能する(S207)。MCU30は、CS・SCL端子の信号が立上がり遷移するときにSPI通信の終了を検出して、SPI通信のスレーブとしての機能を終了して(S209)、I2C通信のスレーブとしての機能を再開する(S210)。
通信システム1では、I2C通信とSPI通信とは非同期であるため、I2C通信の全ての処理でSPI通信が割り込む可能性がある。I2C通信には、スタート・コンディションが発行される処理、ストップ・コンディションが発行される処理、データ信号を送受信する処理、及びACK信号を送受信する処理がある。
スタート・コンディションが発行される処理でSPI通信が割り込む場合、MCU30は、I2C通信を開始し、データ信号を受信する前にI2C通信を中断して、SPI通信を開始する。MCU30は、SPI通信を終了した後、マスタとして機能するI2Cデバイスからデータ信号を受信して、I2C通信のスレーブとしての機能を再開する。
ストップ・コンディションが発行される処理でSPI通信が割り込んだ場合、マスタとして機能するI2Cデバイスは、SCL端子に送信される信号がHレベルであることを確認してSDA端子から送信される信号を立上がり遷移させる。I2C通信のマスタがSCL端子に送信される信号がHレベルであることを確認することにより、ストップ・コンディションを発行する処理の途中にSPI通信に割り込まれた場合でもストップ・コンディションを発行させることができる。
データ信号を送受信する処理では、第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子並びにMCU30のCS・SCL端子に送受信される信号がクロック信号として検知されるか否かにより通信システム1に不具合が生じるおそれがある。具体的には、I2C通信のクロック信号としてMCU30のCS・SCL端子に送信されるSCL信号が立上がり遷移した直後に、SPIデバイス10がSPI通信を割り込むときに不具合が生じる可能性がある。すなわち、CS・SCL端子に送信される信号は、立ち上がり遷移の途中又は立上がり遷移の直後に立ち下がるため、マスタとして機能するI2Cデバイス及びスレーブとして機能するMCU30の双方で値が不定になる可能性がある。
表3は、データ信号を送受信する処理で生じるMCU30の症状と、その対策を示す表である。
Figure 2016004388
表3において、「○」は第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子並びにMCU30のCS・SCL端子に送受信されるSCL信号の立ち上がりエッジが認識される場合を示す。また、「×」は第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子並びにMCU30のCS・SCL端子に送受信されるSCL信号の立ち上がりエッジが認識されない場合を示す。
第1I2Cデバイス11及び第2I2Cデバイス12とMCU30との双方のSCL信号の立ち上がりエッジに対する認識が一致する場合、すなわち双方がSCL信号の立ち上がりエッジを認識し又は認識しない場合、問題は生じない。
第1I2Cデバイス11及び第2I2Cデバイス12でSCL信号の立ち上がりエッジが認識される一方、MCU30でSCL信号の立ち上がりエッジが認識されない場合、MCU30が受信するデータ信号が1ビット飛ばされる。すなわち、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12は、データ信号を送信したと認識し、スレーブとして機能するMCU30は送信されたデータ信号を受信したと認識しないため、送信されたデータ信号が1ビット飛ばされる。
図9は、マスタがSCL信号の立ち上がりエッジを認識する一方、スレーブがSCL信号の立ち上がりエッジを識別しないときのタイミングチャートを示す図である。
図9において、矢印Aで示すように、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12が「6」で示される7ビット目のデータ信号をスレーブとして機能するMCU30に送信中にSPIデバイス10により中断されている。このとき、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12は、「6」で示される7ビット目のデータ信号を送信したと認識している。一方、スレーブとして機能するMCU30は、SCL信号の立ち上がりエッジを認識せずに、「6」で示される7ビット目のデータ信号を受信しない。
SPIデバイス10とMCU30によるSPI通信が終了すると、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12は、「7」で示される8ビット目のデータ信号を送信する。次いで、第1I2Cデバイス11又は第2I2Cデバイス12は、図9において矢印Bで示すときにACK信号を受信するために待機する。しかしながら、スレーブとして機能するMCU30は、マスタが送信した7ビット目のデータ信号を受信していないため、「7」で示されるデータ信号は7ビット目の信号であり1バイトのデータ信号を受信していないと認識してACK信号を送信しない。
図9において、矢印Bで示すときに、スレーブとして機能するMCU30がACK信号を送信しないので、マスタとして機能するI2Cデバイスは、ノット・アクノリッジ(Not Acknowledge、NAK)を検知する。次いで、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12は、矢印Cで示すように、リピート・スタート・コンディションを発行して、SPI通信で中断されたI2C通信で最後に送信された1バイトのデータ信号を再送する。
MCU30は、SPI通信により中断されたI2C通信が再開された後にACK信号を送信する前に、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12がリピート・スタート・コンディションを発行したことを検知する。このとき、MCU30は、SPI通信により中断されたI2C通信で最後に受信した1バイトのデータ信号に対応するデータを破棄する。そして、MCU30は、第1I2Cデバイス11又は第2I2Cデバイス12が再送した1バイトのデータ信号を受信する。
MCU30は、最後に受信した1バイトのデータ信号に対応するデータを破棄し、再送された1バイトのデータ信号を受信するので、1ビット飛ばされたデータを有効なデータとして使用することはない。
第1I2Cデバイス11及び第2I2Cデバイス12でSCL信号の立ち上がりエッジが認識されない一方、MCU30でSCL信号の立ち上がりエッジが認識される場合、MCU30が受信する同一ビットのデータ信号が2回受信される。すなわち、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12は、I2C通信の中断の前にデータ信号を送信していないと認識して、I2C通信の中断の後に同一データを再送する。一方、スレーブとして機能するMCU30は、I2C通信の中断の前後に同一データを2回受信するため、同一ビットのデータ信号を2回受信する。
図10は、マスタがSCL信号の立ち上がりエッジを認識しない一方、スレーブがSCL信号の立ち上がりエッジを識別するときの第1のタイミングチャートを示す図である。図10に示すタイミングチャートでは、「7」で示される8ビット目のデータ信号はHレベルのデータ信号である。
図10において、矢印Aで示すように、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12が「6」で示される7ビット目のデータ信号をスレーブとして機能するMCU30に送信中にSPIデバイス10により中断されている。このとき、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12は、「6」で示される7ビット目のデータ信号を送信していないと認識している。一方、スレーブとして機能するMCU30は、SCL信号の立ち上がりエッジを認識して、「6」で示される7ビット目のデータ信号を受信する。
SPIデバイス10とMCU30によるSPI通信が終了すると、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12は、「6」で示される7ビット目のデータ信号を送信する。スレーブとして機能するMCU30は、I2C通信の再開後に7ビット目のデータ信号を受信すると、I2C通信の中断の前後で7ビット目を2回受信しているため、1バイトのデータ信号を受信したと認識する。
次いで、矢印Bで示すときに、第1I2Cデバイス11又は第2I2Cデバイス12は、「7」で示される8ビット目のHレベルのデータ信号を送信する。一方、MCU30は、1バイトのデータ信号を受信したと認識しているため、矢印Bで示すときに、Lレベルの信号であるACK信号を送信する。マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12がHレベルのデータ信号を送信し、スレーブとして機能するMCU30がLレベルのACK信号を送信することより、矢印Bで示すときにデータ信号が衝突する。データ信号が衝突すると、マスタとして機能するI2Cデバイスは、マスタとしての機能を手放してHレベルのデータ信号の送信を停止し、MCU30のD1端子はLレベルの信号が送信され、CS・SCL端子はHレベルの信号が受信された状態になる。
MCU30は、D1端子はLレベルの信号が送信され、CS・SCL端子はHレベルの信号が受信された状態が所定の時間継続したことを検知し、Lレベルの信号であるACK信号の送信を停止する。ACK信号の送信が停止すると、矢印Cで示すように、第2プルアップ抵抗42により、第1I2Cデバイス11及び第2I2Cデバイス12のSDA端子並びにMCU30のD1端子にHレベルの信号が送信される。次いで、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12は、矢印Dで示すように、スタート・コンディションを発行して、SPI通信で中断されたI2C通信で最後に送信された1バイトのデータ信号を再送する。
MCU30は、Lレベルの信号が送信され、CS・SCL端子はHレベルの信号が受信された状態が所定の時間継続したことを検知すると、ACK信号の送信を停止する。次いで、MCU30は、ACK信号を送信した後に次の1バイトのデータ信号を受信する前に、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12がスタート・コンディションを発行したことを検知する。このとき、MCU30は、SPI通信により中断されたI2C通信で最後に受信した1バイトのデータ信号に対応するデータを破棄する。そして、MCU30は、第1I2Cデバイス11又は第2I2Cデバイス12が再送した1バイトのデータ信号を受信する。
MCU30は、最後に受信した1バイトのデータ信号に対応するデータを破棄し、再送された1バイトのデータ信号を受信するので、同一ビットが2回受信されたデータを有効なデータとして使用することはない。
図11は、マスタがSCL信号の立ち上がりエッジを認識しない一方、スレーブがSCL信号の立ち上がりエッジを識別するときの第2のタイミングチャートを示す図である。図11に示すタイミングチャートでは、「7」で示される8ビット目のデータ信号はLレベルのデータ信号である。
図11において、図10の場合と同様に、矢印Aで示すときに、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12は、「6」で示される7ビット目のデータ信号を送信していないと認識している。一方、スレーブとして機能するMCU30は、SCL信号の立ち上がりエッジを認識して、「6」で示される7ビット目のデータ信号を受信する。
図10の場合と同様に、SPIデバイス10とMCU30によるSPI通信が終了すると、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12は、「6」で示される7ビット目のデータ信号を送信する。ここで、スレーブとして機能するMCU30は、I2C通信の中断の前後で7ビット目を2回受信しているため、1バイトのデータ信号を受信したと認識する。
次いで、矢印Bで示すときに、第1I2Cデバイス11又は第2I2Cデバイス12は、「7」で示される8ビット目のLレベルのデータ信号を送信する。一方、MCU30は、1バイトのデータ信号を受信したと認識しているため、矢印Bで示すときに、Lレベルの信号であるACK信号を送信する。矢印Bで示すときには、マスタ及びスレーブの双方がLレベルの信号を送信するためデータ信号の衝突は起きないため、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12は通信エラーを検知しない。
次いで、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12は、矢印Cに示されるときにNAKを検知する。スレーブとして機能するMCU30は、矢印Bで示されるときにACK信号を送信しており、矢印Cに示されるときにはACK信号を送信しないためである。次いで、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12は、矢印Dで示すように、リピート・スタート・コンディションを発行して、SPI通信で中断されたI2C通信で最後に送信された1バイトのデータ信号を再送する。
MCU30は、SPI通信により中断されたI2C通信が再開された後にACK信号を送信した後に次の1バイトのデータ信号を受信する前に、マスタがリピート・スタート・コンディションを発行したことを検知する。このとき、MCU30は、SPI通信により中断されたI2C通信で最後に受信した1バイトのデータ信号に対応するデータを破棄する。そして、MCU30は、第1I2Cデバイス11又は第2I2Cデバイス12が再送した1バイトのデータ信号を受信する。
MCU30は、最後に受信した1バイトのデータ信号に対応するデータを破棄し、再送された1バイトのデータ信号を受信するので、同一ビットが2回受信されたデータを有効なデータとして使用することはない。
ACK信号を送受信する処理でSPI通信が割り込む場合、MCU30は、I2C通信の再開後には、ACK信号を送信せずにD1端子に送信される信号をHレベルにする。
図12は、MCU30がACK信号を送信している間にSPI通信によりI2C通信が中断されたときのタイミングチャートを示す図である。
図12において、矢印Aで示すように、スレーブとして機能するMCU30がACK信号を送信中にSPIデバイス10により中断されている。また、矢印Bで示すように、I2C通信の再開後は、MCU30はACK信号を送信せずに、MCU30のD1端子に送信される信号は、第2プルアップ抵抗42によりHレベルに遷移される。
MCU30は、I2C通信の再開後にACK信号を送信しないので、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12がSPI通信による中断の前後に亘って2回ACK信号を受信することを防止できる。また、マスタとして機能する第1I2Cデバイス11又は第2I2Cデバイス12がSPI通信による中断前にACK信号を受信できなかった場合、矢印Cで示すように、リピート・スタート・コンディションを発行する。この場合、図9に示す場合と同様の処理によりMCU30が重複するデータを有することを防止できる。
通信システム1では、MCU30は、2本のバスで通信するI2C通信と4本のバスで通信するSPI通信とを4つの端子で動作可能であるので、MCU30にI2C通信及びSPI通信に使用される端子数を減らすことができる。また、通信システム1では、センサ等を含むSPIデバイス10、第1I2Cデバイス11及び第2I2Cデバイス12のそれぞれをマスタとするので、イベント通知用に端子を配置することなくイベントにより検出された情報を処理をすることができる。
また、通信システム1では、I2C通信とSPI通信とが非同期に動作するが、選択回路20を有することにより、I2Cデバイスの信号とSPIデバイスの信号とが衝突するおそれはない。具体的にはMCU30のD1端子に接続される選択回路20の第2選択素子22と第3選択素子23は、CS信号の信号レベルに応じて相補的にオンオフ状態が変化するので、I2C通信及びSPI通信のデータ信号は衝突しない。また、SPI通信のためにCS信号がLレベルになる間、選択回路20の第1選択素子21を介して、第1I2Cデバイス11及び第2I2Cデバイス12のSCL端子にLレベルの信号が入力されるので、SPI通信の間にI2C通信は開始されない。
通信システム1では、I2C通信のスレーブとして機能しているときに、CS信号の遷移に応じて、I2C通信のスレーブとしての機能を中断して、SPI通信のスレーブとしての機能を開始する。そして、SPI通信が終了した後にCS信号の遷移に応じて、中断したI2C通信のスレーブとしての機能を再開する。通信システム1では、SPI通信を優先的に処理することにより、SPI通信時にI2C通信が競合することを防止することができる。
また、通信システム1では、MCU30は、I2C通信時にデータ信号を1ビット受信する毎に、CLK信号が遷移しているか否かを判定しているので、SPI通信の開始を示すCS信号の立ち上がりを早急に検知することができる。
また、通信システム1では、第1I2Cデバイス11及び第2I2Cデバイス12は、ストップ・コンディションを発行するときに、SCL端子に送信される信号がHレベルであることを確認した後に、SDA端子から送信される信号を立上がり遷移させる。SCL端子に送信される信号がHレベルであることを確認した後に、SDA端子から送信される信号を立上がり遷移させることにより、ストップ・コンディションの発行中にSPI通信が割り込んだ場合でもI2C通信を終了できる。
また、通信システム1では、MCU30は、SPI通信により中断された場合を含めてI2C通信時に1バイトのデータ信号を受信する毎に、マスタとして機能するI2CデバイスにACK信号を送信する。SPI通信により中断された場合に、I2C通信が中断される前後に亘って1バイトのデータ信号を計数してACK信号を送信するので、マスタとスレーブとの間でACK信号の送受信のために係数したデータ信号の数が相違するおそれはない。
通信システム1では、選択回路20の第2選択素子22はpMOSで形成され、第3選択素子23はpMOSで形成される。しかしながら、実施形態に係る通信システムでは、素子を通過するデータの電圧の振れ幅を適当な値に維持したい場合などは、これらの素子はトランスミッションゲートで形成されてもよい。
図13は、第2実施形態に係る通信システムの回路ブロック図である。
通信システム2は、トランスミッションゲートで形成される第2選択素子25及び第3選択素子26を有する選択回路24が配置されることが第1実施形態に係る通信システム1と相違する。
また、通信システム1では、SPIデバイス10のMOSI端子が選択回路20に接続され、MISO端子がMCU30のD0端子に接続される。しかしながら、実施形態に係る通信システムでは、SPIデバイス10のMISO端子が選択回路に接続され、MOSI端子がMCU30のD0端子に接続されてもよい。
図14は、第3実施形態に係る通信システムの回路ブロック図である。
通信システム3は、SPIデバイス10のMISO端子が選択回路24に接続され、MOSI端子がMCU30のD0端子に接続されることが第2実施形態に係る通信システム2と相違する。
また、通信システム1では、I2C通信のマスタとして機能する2つのI2Cデバイスが配置されるが、1つ又は3つ以上のI2CデバイスをI2C通信のマスタとして配置してもよい。
また、通信システム1において、SPI通信及びI2C通信の開始及び終了の判定は、図6に示すフローチャートに示す信号の状態及び遷移を使用しているが、他の信号の状態及び遷移を使用してもよい。SPI通信及びI2C通信の開始及び終了の判定に使用可能な信号の状態及び遷移を表4に示す。
Figure 2016004388
また、通信システム1では、MCU30は、I2C通信のスレーブとして機能しているときに、データ信号を1ビット毎受信する毎にSPICK端子に送信されたCLK信号が遷移したか否かを判定する。しかしながら、実施形態に係る通信システムでは、I2C通信のスレーブは、2ビット以上の所定のビット毎に、送信されたCLK信号が遷移したか否かを判定するようにしてもよい。
通信システム1では、MCU30は、I2C通信中にSPI割り込み通信が発生したときに、I2C通信を再開するときに、中断前のI2C通信で送信されたデータ信号の次のデータ信号を送信するように動作する。しかしながら、実施形態に係る通信システムでは、I2C通信のスレーブとして機能するMPUは、I2C通信中にSPI割り込み通信が発生したときに、中断されたI2C通信で送信されていた一連のデータ信号を全て再送するように動作してもよい。
図15は、他の実施形態に係るMCUの処理フローを示すフローチャートである。
図15に示すフローチャートは、S210の代わりにS220〜S222の処理を有することが図6に示すフローチャートと相違する。図15の処理では、MCUはSPI割込み処理におけるデータ信号の送信が終了してCS・SCL端子に入力される信号が立上がり遷移したと判定した(S220)とき、SPI通信のスレーブとしての機能を終了する(S221)。次いで、MCUは、I2C通信のスレーブとして機能して、中断されたI2C通信で送信されていた一連のデータ信号を全て受信する(S221)。また、MCUはI2C通信の処理によってCS・SCL端子に入力される信号が立上がり遷移したと判定した(S220)とき、I2C通信の処理を実行する(S222)。
図15に示すフローチャートでは、I2C通信のマスタとして機能するI2Cデバイスは、SCL端子に送信される信号が一定時間以上Lレベルである場合に、SPI割り込み通信が発生したと判断する。そして、I2C通信のマスタとして機能するI2Cデバイスは、I2C通信が再開されたとき、一連のデータ信号を全て再送する。
また、通信システム1において、SPIデバイス10はモード3で動作するが、実施形態に係る通信システムでは、SPI通信のモードはモード3には限定される他のモードのSPI通信を採用してもよい。
1〜3 通信システム
10 SPIデバイス
11 第1I2Cデバイス
12 第2I2Cデバイス
20、24 選択回路
30 MCU

Claims (10)

  1. I2C通信のマスタとして機能するときに、第1データ信号を送信又は受信するSDA端子と、前記第1データ信号をラッチするクロック信号であるSCL信号を送信するSCL端子とを有し、前記SCL端子に停止信号が送信されるときに、I2C通信のマスタとしての機能を停止するI2Cデバイスと、
    SPI通信のマスタとして機能することを示すCS信号を送信するCS端子と、SPI通信のマスタとして機能するときに、第2データ信号を送信又は受信するSPIデータ端子と、前記第2データ信号をラッチするクロック信号であるCLK信号を送信するCLK端子とを有するSPIデバイスと、
    前記CS信号を受信していないときに、前記第1データ信号と前記第2データ信号とから前記第1データ信号を選択し、前記CS信号を受信しているときに、前記CS信号に対応する信号を生成し、前記停止信号として前記SCL端子に送信すると共に、前記第1データ信号と前記第2データ信号とから前記第2データ信号を選択する選択回路と、
    前記CLK信号を受信するSPICK端子と、前記SCL信号又は前記選択回路が生成した前記CS信号に対応する信号の何れか一方の信号を受信するCS・SCL端子と、前記選択回路が選択した前記第1データ信号又は前記第2データ信号の何れか一方の信号を送信又は受信するデータ端子とを有し、前記CLK信号が遷移したときにSPI通信のスレーブとして機能し、前記CLK信号が遷移せず且つ前記CS・SCL端子及び前記データ端子にI2C通信を開始する条件を示す信号が送信されたときにI2C通信のスレーブとして機能する電子回路と、
    を有する通信システム。
  2. 前記電子回路は、I2C通信のスレーブとして機能しているときに、前記CLK信号の遷移に応じて、I2C通信のスレーブとしての機能を中断して、SPI通信のスレーブとしての機能を開始し、
    SPI通信のスレーブとしての機能を終了した後に、前記CS・SCL端子に送信された信号の遷移に応じて、中断した前記I2C通信のスレーブとしての機能を再開する、請求項1に記載の通信システム。
  3. 前記電子回路は、I2C通信のスレーブとして機能しているときに、前記第1データ信号を所定ビット受信する毎に、前記CLK信号が遷移しているか否かを判定する、請求項2に記載の通信システム。
  4. 前記I2Cデバイスは、I2C通信のマスタとしての機能を終了するときに、前記SCL端子に送信された信号がHレベルであることを確認した後に、前記SDA端子から送信される信号を立上がり遷移させる、請求項2又は3に記載の通信システム。
  5. 前記電子回路は、SPI通信により中断された場合を含めてI2C通信時に1バイトのデータ信号を前記I2Cデバイスから受信する毎に、ACK信号を前記I2Cデバイスに送信し、
    前記I2Cデバイスは、前記ACK信号を受信した後に、次の1バイトのデータ信号を送信する、請求項2〜4の何れか一項に記載の通信システム。
  6. 前記電子回路は、SPI通信により中断されたI2C通信が再開された後に前記ACK信号を送信する前に、前記CS・SCL端子及び前記データ端子にI2C通信を開始する条件を示す信号が送信されたときは、SPI通信により中断されたI2C通信で最後に受信した1バイトのデータ信号に対応するデータを破棄する、請求項5に記載の通信システム。
  7. 前記電子回路は、SPI通信により中断されたI2C通信が再開された後に前記ACK信号を送信し且つ次の1バイトのデータ信号を受信する前に、前記CS・SCL端子及び前記データ端子にI2C通信を開始する条件を示す信号が送信されたときは、SPI通信により中断されたI2C通信で最後に受信した1バイトのデータ信号に対応するデータを破棄する、請求項5に記載の通信システム。
  8. 前記電子回路は、前記ACK信号を前記I2Cデバイスに送信しているときにSPI通信によりI2C通信が中断された場合、中断されたI2C通信が再開された後に前記ACK信号を再送しない、請求項2〜7の何れか一項に記載の通信システム。
  9. 前記電子回路は、I2C通信がSPI通信により中断された場合、中断されたI2C通信により送信されたデータ信号に対応するデータを破棄し、
    前記I2Cデバイスは、I2C通信がSPI通信により中断された場合、I2C通信が再開された後に、中断されたI2C通信により送信された一連のデータ信号を全て再送する、請求項2又は3に記載の通信システム。
  10. SPI通信のマスタとして機能するSPIデバイスから、前記SPIデバイスが送信する第2データ信号をラッチするクロック信号である前記CLK信号を受信するSPICK端子と、
    I2C通信のマスタとして機能するI2Cデバイスから送信される第1データ信号をラッチするクロック信号であるSCL信号、又は前記第1データ信号と前記第2データ信号とを選択する選択回路が、前記SPIデバイスがSPI通信のマスタとして機能することを示すCS信号を受信しているときに生成した前記CS信号に対応する信号の何れか一方の信号を受信するCS・SCL端子と、
    前記選択回路が選択した前記第1データ信号又は前記第2データ信号の何れか一方の信号を送信又は受信するデータ端子とを有し、
    前記CLK信号が遷移したときにSPI通信のスレーブとして機能し、前記CLK信号が遷移せず且つ前記CS・SCL端子及び前記データ端子にI2C通信を開始する条件を示す信号が送信されたときにI2C通信のスレーブとして機能する、電子回路。
JP2014123725A 2014-06-16 2014-06-16 通信システム及び電子回路 Withdrawn JP2016004388A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014123725A JP2016004388A (ja) 2014-06-16 2014-06-16 通信システム及び電子回路
US14/718,234 US20150363353A1 (en) 2014-06-16 2015-05-21 Communication system and electronic circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014123725A JP2016004388A (ja) 2014-06-16 2014-06-16 通信システム及び電子回路

Publications (1)

Publication Number Publication Date
JP2016004388A true JP2016004388A (ja) 2016-01-12

Family

ID=54836285

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014123725A Withdrawn JP2016004388A (ja) 2014-06-16 2014-06-16 通信システム及び電子回路

Country Status (2)

Country Link
US (1) US20150363353A1 (ja)
JP (1) JP2016004388A (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015126983A1 (en) * 2014-02-18 2015-08-27 Qualcomm Incorporated Technique to avoid metastability condition and avoid unintentional state changes of legacy i2c devices on a multi-mode bus
US9411772B2 (en) * 2014-06-30 2016-08-09 Echelon Corporation Multi-protocol serial nonvolatile memory interface
CN106598891B (zh) * 2015-10-15 2021-04-30 恩智浦美国有限公司 集成电路间i2c总线系统中的从设备报警信号
CN105280149B (zh) * 2015-11-11 2017-11-17 深圳市华星光电技术有限公司 一种Mura补偿数据写入装置及方法
TWI606394B (zh) * 2016-05-26 2017-11-21 鴻海精密工業股份有限公司 燒錄系統及燒錄方法
US10979044B2 (en) * 2019-03-14 2021-04-13 Infineon Technologies Ag Chip reset via communication interface terminals
FR3100349B1 (fr) * 2019-08-28 2022-07-08 Stmicroelectronics Grand Ouest Sas Communication sur bus I2C
CN112291126A (zh) * 2020-10-23 2021-01-29 成都天锐星通科技有限公司 总线通信系统、数据发送方法及数据接收方法
CN112860613B (zh) * 2021-04-06 2024-04-19 北京集创北方科技股份有限公司 通信系统
US11768785B2 (en) * 2022-02-23 2023-09-26 Prime World International Holdings Ltd. Serial peripheral interface circuit and calibration method of serial peripheral interface system
US20240078209A1 (en) * 2022-09-02 2024-03-07 Analog Devices International Unlimited Company Integrated circuit (ic) devices with efficient pin-sharing for multiprotocol communication interface

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020108011A1 (en) * 2000-12-11 2002-08-08 Reza Tanha Dual interface serial bus
US8310380B2 (en) * 2010-03-02 2012-11-13 Invensense Inc. Selectable communication interface configurations for motion sensing device
US8135881B1 (en) * 2010-09-27 2012-03-13 Skyworks Solutions, Inc. Dynamically configurable serial data communication interface
US8732366B2 (en) * 2012-04-30 2014-05-20 Freescale Semiconductor, Inc. Method to configure serial communications and device thereof
US9411772B2 (en) * 2014-06-30 2016-08-09 Echelon Corporation Multi-protocol serial nonvolatile memory interface

Also Published As

Publication number Publication date
US20150363353A1 (en) 2015-12-17

Similar Documents

Publication Publication Date Title
JP2016004388A (ja) 通信システム及び電子回路
EP1877916B1 (en) Dynamic 12c slave device address decoder
JP5160100B2 (ja) データ通信誤動作防止装置、電子機器、データ通信誤動作防止装置の制御方法、データ通信誤動作防止装置の制御プログラム、及び当該プログラムを記録した記録媒体
JP2007164765A (ja) Iicバス通信システム、スレーブ装置およびiicバス通信制御方法
US9645898B2 (en) Storage control device and control device for detecting abnormality of signal line
US11216049B2 (en) Bus system
US10721022B2 (en) Communication apparatus, communication method, program, and communication system
CN113906402B (zh) 集成电路间(i2c)装置
EP1877913B1 (en) Communications system and method having slave device with latched request for service
WO2012046634A1 (ja) 電子装置およびシリアルデータ通信方法
CN114365103A (zh) 菊花链模式进入序列
JP6696511B2 (ja) 通信装置、通信方法、プログラム、および通信システム
CN109154925B (zh) 通信设备、通信方法、程序和通信系统
US10031870B2 (en) Semiconductor device and control method thereof
KR102554978B1 (ko) 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템
CN109074343B (zh) 通信设备、通信方法、程序、以及通信系统
JP2018514873A (ja) 集積回路間の通信
JP5195075B2 (ja) 双方向バス制御回路
CN109155689B (zh) 通信设备、通信方法、程序和通信系统
CN112445744B (zh) I2c通信
JP2005338963A (ja) 電子機器
JP7092612B2 (ja) 電子制御装置
JP2024093457A (ja) 半導体装置、および通信システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170309

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20171225