以下、本開示をより詳細に説明するため、本開示を実施するための形態について、添付の図面に従って説明する。
実施の形態1.
図1は、実施の形態1に係るシリアル伝送システム1000の構成を示すブロック図である。シリアル伝送システム1000は、マスタースレーブ型の2線シリアルバスを用いる。図1が示すように、シリアル伝送システム1000は、マスター装置100、スレーブ装置200、スレーブ装置201、及びスレーブ装置202を含む。
マスター装置100は、シリアルクロック伝送路300を介して、スレーブ装置200、スレーブ装置201、及びスレーブ装置202とそれぞれ接続されている。また、マスター装置100は、シリアルデータ伝送路400を介して、スレーブ装置200、スレーブ装置201、及びスレーブ装置202とそれぞれ接続されている。なお、図1では、1つのマスター装置に3つのスレーブ装置が接続されている構成を示すが、シリアル伝送システム1000が含むマスター装置の数及びスレーブ装置の数は、それぞれ、特に限定されない。
図2は、実施の形態1に係るシリアル伝送システム1000の詳細な構成を示すブロック図である。なお、スレーブ装置200、スレーブ装置201、及びスレーブ装置202は、それぞれ、後述する内部回路250以外は同様の構成を有するため、以下では、主に、マスター装置100及びスレーブ装置200について説明し、スレーブ装置201及びスレーブ装置202の説明は省略する。
マスター装置100は、シリアルクロック生成回路110、ストローブ信号生成回路120、シリアルデータ送信回路130、シリアルデータ受信回路140、及び内部回路150を備えている。なお、内部回路150は、請求項におけるシリアルデータ生成回路に相当する。
スレーブ装置200は、ストローブ信号同期化回路210、ストローブ信号生成回路220、シリアルデータ受信回路230、シリアルデータ送信回路240、及び内部回路250を備えている。なお、内部回路250は、請求項におけるシリアルデータ生成回路に相当する。
まず、マスター装置100の構成について詳細に説明する。シリアルクロック生成回路110は、周期的なシリアルクロック10を生成する。シリアルクロック生成回路110は、生成したシリアルクロック10を、マスター装置100のストローブ信号生成回路120、シリアルデータ送信回路130、シリアルデータ受信回路140及び内部回路150、並びにスレーブ装置200のストローブ信号同期化回路210、ストローブ信号生成回路220、シリアルデータ受信回路230、シリアルデータ送信回路240及び内部回路250にそれぞれ出力する。実施の形態1では、シリアルクロック生成回路110が生成するシリアルクロック10は、上記の各回路に対する動作クロックとして機能する。例えば、上記の各回路におけるフリップフロップは、動作クロックであるシリアルクロック10の変化点(HighからLow、又はLowからHigh)を基準として動作する。
ストローブ信号生成回路120は、シリアルクロック生成回路110が生成したシリアルクロック10の周波数に基づいた周波数のストローブ信号を生成する。より詳細には、実施の形態1では、ストローブ信号生成回路120は、シリアルクロック10に同期して動作し、シリアルクロック生成回路110が生成したシリアルクロック10の周波数に基づいた周波数のストローブ信号を生成する。実施の形態1では、ストローブ信号生成回路120が生成するストローブ信号の周波数は、シリアルクロック生成回路110が生成したシリアルクロック10の周波数の2分周の周波数である。ストローブ信号生成回路120は、生成したストローブ信号を、シリアルデータ送信回路130及びシリアルデータ受信回路140にそれぞれ出力する。
シリアルデータ送信回路130は、後述する内部回路150が生成したシリアルデータ20を、シリアルクロック生成回路110が生成したシリアルクロック10に基づいたタイミングでスレーブ装置200のシリアルデータ受信回路230に送信する。より詳細には、実施の形態1では、シリアルデータ送信回路130は、後述する内部回路150が生成したシリアルデータ20を、シリアルクロック生成回路110が生成したシリアルクロック10の変化点でスレーブ装置200のシリアルデータ受信回路230に送信する。さらに詳細には、実施の形態1では、シリアルデータ送信回路130は、後述する内部回路150が生成したシリアルデータ20を、ストローブ信号生成回路120が生成したストローブ信号の状態に基づいて、シリアルクロック生成回路110が生成したシリアルクロック10の変化点でスレーブ装置200のシリアルデータ受信回路230に送信する。換言すれば、シリアルデータ送信回路130は、後述する内部回路150が生成したシリアルデータ20を、ストローブ信号生成回路120が生成したストローブ信号を基準にしてスレーブ装置200のシリアルデータ受信回路230に送信する。なお、本明細書において、「信号の状態」とは、Highの状態、又はLowの状態を意味する。また、本明細書において、「シリアルクロック10の変化点」とは、シリアルクロック10がHighからLowに変化した時点、又はシリアルクロック10がLowからHighに変化した時点を意味するものとする。
シリアルデータ受信回路140は、後述するスレーブ装置200のシリアルデータ送信回路240が送信したシリアルデータ21を、シリアルクロック生成回路110が生成したシリアルクロック10に基づいたタイミングで受信する。より詳細には、実施の形態1では、シリアルデータ受信回路140は、後述するスレーブ装置200のシリアルデータ送信回路240が送信したシリアルデータ21を、シリアルクロック生成回路110が生成したシリアルクロック10の変化点で受信する。さらに詳細には、実施の形態1では、シリアルデータ受信回路140は、スレーブ装置200のシリアルデータ送信回路240が送信したシリアルデータ21を、ストローブ信号生成回路120が生成したストローブ信号の状態に基づいて、シリアルクロック生成回路110が生成したシリアルクロック10の変化点で受信する。シリアルデータ受信回路140は、受信したシリアルデータ21を内部回路150に出力する。なお、ここにおける、シリアルデータ21を、ストローブ信号の状態に基づいてシリアルクロック10の変化点で受信するという用語は、例えば、シリアルデータ受信回路140においてシリアルデータ21及びストローブ信号のHigh又はLowの各信号が最初に入力されたフリップフロップが、シリアルクロック10の変化点でシリアルデータ21及びストローブ信号のHigh又はLowの各信号に基づいた信号を次の回路に出力することを意味する。
内部回路150は、シリアルデータ20を生成する。より詳細には、実施の形態1では、内部回路150が生成するシリアルデータ20は、ストローブ信号生成回路120が生成したストローブ信号と、後述するスレーブ装置200のストローブ信号生成回路220がシリアルクロック10に基づいて生成したストローブ信号との同期化をスレーブ装置200に指示するパターンを表すシンクロコンディションを含む。また、内部回路150が生成するシリアルデータ20は、データ伝送を開始するタイミングをスレーブ装置200に示すパターンを表すスタートコンディションをさらに含む。また、内部回路150が生成するシリアルデータ20は、データ伝送を終了するタイミングをスレーブ装置200に示すパターンを表すストップコンディションをさらに含む。シンクロコンディション、スタートコンディション及びストップコンディションの詳細については後述する。内部回路150は、生成したシリアルデータ20をシリアルデータ送信回路130に出力する。また、内部回路150は、シリアルデータ受信回路140から取得したシリアルデータ21を読み込む。
次に、スレーブ装置200の構成について詳細に説明する。ストローブ信号同期化回路210は、マスター装置100のシリアルデータ送信回路130が送信したシリアルデータ20を参照して、マスター装置100のストローブ信号生成回路120がシリアルクロック10に基づいて生成したストローブ信号と後述するストローブ信号生成回路220が生成したストローブ信号との同期化を指示するパターンを示すシンクロコンディションを検出した場合、同期化パルスをストローブ信号生成回路220に出力する。より詳細には、実施の形態1では、ストローブ信号同期化回路210は、シリアルクロック10に同期して動作し、シリアルデータ20を参照して、シンクロコンディションを検出した場合、同期化パルスをストローブ信号生成回路220に出力する。なお、シンクロコンディションの詳細については後述する。
ストローブ信号生成回路220は、マスター装置100のシリアルクロック生成回路110が生成したシリアルクロック10の周波数に基づいた周波数のストローブ信号を生成する。より詳細には、実施の形態1では、ストローブ信号生成回路220は、シリアルクロック10に同期して動作し、マスター装置100のシリアルクロック生成回路110が生成したシリアルクロック10の周波数に基づいた周波数のストローブ信号を生成する。実施の形態1では、ストローブ信号生成回路220が生成するストローブ信号の周波数は、マスター装置100のシリアルクロック生成回路110が生成したシリアルクロック10の周波数の2分周の周波数である。ストローブ信号生成回路220は、生成したストローブ信号をシリアルデータ受信回路230及びシリアルデータ送信回路240にそれぞれ出力する。
なお、マスター装置100及びスレーブ装置200の起動タイミング等に起因してストローブ信号生成回路120が生成したストローブ信号の位相と、ストローブ信号生成回路220が生成したストローブ信号の位相とが異なる場合がある。そこで、ストローブ信号生成回路220は、ストローブ信号同期化回路210から同期化パルスを受信した場合、生成するストローブ信号の位相を、マスター装置100のストローブ信号生成回路120がシリアルクロック10に基づいて生成したストローブ信号の位相と一致するように調整する。
シリアルデータ受信回路230は、マスター装置100のシリアルデータ送信回路130が送信したシリアルデータ20を、マスター装置100のシリアルクロック生成回路110が生成したシリアルクロック10に基づいたタイミングで受信する。より詳細には、実施の形態1では、シリアルデータ受信回路230は、マスター装置100のシリアルデータ送信回路130が送信したシリアルデータ20を、マスター装置100のシリアルクロック生成回路110が生成したシリアルクロック10の変化点で受信する。さらに詳細には、実施の形態1では、シリアルデータ受信回路230は、マスター装置100のシリアルデータ送信回路130が送信したシリアルデータ20を、ストローブ信号生成回路220が生成したストローブ信号の状態に基づいて、マスター装置100のシリアルクロック生成回路110が生成したシリアルクロック10の変化点で受信する。シリアルデータ受信回路230は、受信したシリアルデータ20を内部回路250に出力する。なお、ここにおける、シリアルデータ20を、ストローブ信号の状態に基づいてシリアルクロック10の変化点で受信するという用語は、例えば、シリアルデータ受信回路140においてシリアルデータ20及びストローブ信号のHigh又はLowの各信号が最初に入力されたフリップフロップが、シリアルクロック10の変化点でシリアルデータ20及びストローブ信号のHigh又はLowの各信号に基づいた信号を次の回路に出力することを意味する。
シリアルデータ送信回路240は、後述する内部回路250が生成したシリアルデータ21を、マスター装置100のシリアルクロック生成回路110が生成したシリアルクロック10に基づいたタイミングでマスター装置100のシリアルデータ受信回路140に送信する。より詳細には、実施の形態1では、シリアルデータ送信回路240は、後述する内部回路250が生成したシリアルデータ21を、マスター装置100のシリアルクロック生成回路110が生成したシリアルクロック10の変化点でマスター装置100のシリアルデータ受信回路140に送信する。さらに詳細には、実施の形態1では、シリアルデータ送信回路240は、後述する内部回路250が生成したシリアルデータ21を、ストローブ信号生成回路220が生成したストローブ信号の状態に基づいて、マスター装置100のシリアルクロック生成回路110が生成したシリアルクロック10の変化点でマスター装置100のシリアルデータ受信回路140に送信する。換言すれば、シリアルデータ送信回路240は、後述する内部回路250が生成したシリアルデータ21を、ストローブ信号生成回路220が生成したストローブ信号を基準にしてマスター装置100のシリアルデータ受信回路140に送信する。
内部回路250は、シリアルデータ21を生成する。より詳細には、実施の形態1では、内部回路250が生成するシリアルデータ21は、データ伝送を終了するタイミングをマスター装置100に示すパターンを表すストップコンディションを含む。内部回路250は、生成したシリアルデータ21をシリアルデータ送信回路240に出力する。また、内部回路250は、シリアルデータ受信回路230から取得したシリアルデータ20を読み込む。
次に、実施の形態1に係るマスター装置100のシリアルデータ受信回路140の具体的な構成について図面を参照して説明する。なお、以下で説明するシリアルデータ受信回路140の具体的な構成と同様の構成が、スレーブ装置200のシリアルデータ受信回路230の構成にも適用され得る。
図3Aは、第1の具体例に係るシリアルデータ受信回路140及び内部回路150の構成を示すブロック図であり、図3Bは、第2の具体例に係るシリアルデータ受信回路140及び内部回路150の構成を示すブロック図である。
上述のように、シリアルデータ受信回路140は、スレーブ装置200のシリアルデータ送信回路240が送信したシリアルデータ21を、ストローブ信号生成回路120が生成したストローブ信号の状態に基づいて、シリアルクロック生成回路110が生成したシリアルクロック10の変化点で受信する。
第1の具体例では、例えば、図3Aが示すように、シリアルデータ受信回路140は、マルチプレクサ140a及びフリップフロップ140bを備えている。内部回路150は、フリップフロップ150aを備えている。
マルチプレクサ140aは、スレーブ装置200のシリアルデータ送信回路240が送信したシリアルデータ21と、ストローブ信号生成回路120が生成したストローブ信号とを多重化し、多重化した多重化信号をフリップフロップ140bに出力する。より詳細には、例えば、マルチプレクサ140aは、ストローブ信号がLowである場合、シリアルデータ21のHigh又はLowの信号をフリップフロップ140bに出力し、ストローブ信号がHighである場合、シリアルデータ21のHigh又はLowの信号をフリップフロップ140bに出力せずに、前回の値が保持される。
フリップフロップ140bは、マルチプレクサ140aが多重化した多重化信号を、シリアルクロック生成回路110が生成したシリアルクロック10の変化点で内部回路150に出力する。より詳細には、例えば、フリップフロップ140bは、ストローブ信号がLowである場合にマルチプレクサ140aから出力されたシリアルデータ21のHigh又はLowの信号を、シリアルクロック生成回路110が生成したシリアルクロック10の変化点で内部回路150に出力する。フリップフロップ140bが内部回路150に出力したシリアルデータ21のHigh又はLowの信号は、マルチプレクサ140aにも入力され、保持される。
内部回路150のフリップフロップ150aは、フリップフロップ140bが出力した多重化信号を、シリアルクロック生成回路110が生成したシリアルクロック10の変化点で図示しない次の回路に出力する。
第2の具体例では、例えば、図3Bが示すように、シリアルデータ受信回路140は、フリップフロップ140cを備えている。
フリップフロップ140cは、スレーブ装置200のシリアルデータ送信回路240が送信したシリアルデータ21を、ストローブ信号生成回路120が生成したストローブ信号の状態に基づいて、シリアルクロック生成回路110が生成したシリアルクロック10の変化点で内部回路150に出力する。例えば、フリップフロップ140cは、ストローブ信号がLowである場合、シリアルデータ21のHigh又はLowの信号を、シリアルクロック10の変化点で内部回路150に出力し、ストローブ信号がHighである場合、シリアルデータ21のHigh又はLowの信号を出力せずに、前回の値が保持される。
内部回路150のフリップフロップ150aは、フリップフロップ140cが出力したシリアルデータ21を、シリアルクロック生成回路110が生成したシリアルクロック10の変化点で、図示しない次の回路に出力する。
図4A、図4B、図4C及び図4Dは、それぞれ、上記の第1の具体例に係るシリアルデータ受信回路140又は上記の第2の具体例に係るシリアルデータ受信回路140の真理値表を示す。なお、以下では、第2の具体例に基づいて説明する。
まず、図4Aを参照して説明する。図4Aの真理値表が示すように、フリップフロップ140cは、ストローブ信号がLowである場合、シリアルデータ21のHigh又はLowの信号を、シリアルクロック10がLowからHighに変化した変化点(立上り)で内部回路150に出力する。または、フリップフロップ140cは、ストローブ信号がHighである場合、シリアルデータ21のHigh又はLowの信号を内部回路150に出力せずに、前回の値が保持される。
次に、図4Bを参照して説明する。図4Bの真理値表が示すように、フリップフロップ140cは、ストローブ信号がHighである場合、シリアルデータ21のHigh又はLowの信号を、シリアルクロック10がLowからHighに変化した変化点(立上り)で内部回路150に出力する。または、フリップフロップ140cは、ストローブ信号がLowである場合、シリアルデータ21のHigh又はLowの信号を内部回路150に出力せずに、前回の値が保持される。
次に、図4Cを参照して説明する。図4Cの真理値表が示すように、フリップフロップ140cは、ストローブ信号がLowである場合、シリアルデータ21のHigh又はLowの信号を、シリアルクロック10がHighからLowに変化した変化点(立下り)で内部回路150に出力する。または、フリップフロップ140cは、ストローブ信号がHighである場合、シリアルデータ21のHigh又はLowの信号を内部回路150に出力せずに、前回の値が保持される。
次に、図4Dを参照して説明する。図4Dの真理値表が示すように、フリップフロップ140cは、ストローブ信号がHighである場合、シリアルデータ21のHigh又はLowの信号を、シリアルクロック10がHighからLowに変化した変化点(立下り)で内部回路150に出力する。または、フリップフロップ140cは、ストローブ信号がLowである場合、シリアルデータ21のHigh又はLowの信号を内部回路150に出力せずに、前回の値が保持される。
なお、上記では、シリアルデータ受信回路140がシリアルデータ21を受信する方法の具体例を説明したが、シリアルデータ送信回路130がシリアルデータ20を送信する方法の具体例、又はシリアルデータ送信回路240がシリアルデータ21を送信する方法の具体例についても同様の説明が可能である。例えば、シリアルデータ送信回路130が備えている図示しないフリップフロップは、ストローブ信号がLowである場合、シリアルデータ20のHigh又はLowの信号を、シリアルクロック10の変化点でスレーブ装置200に送信し、ストローブ信号がHighである場合、シリアルデータ20のHigh又はLowの信号を出力せずに、前回の値が保持される。例えば、シリアルデータ送信回路240が備えている図示しないフリップフロップは、ストローブ信号がLowである場合、シリアルデータ21のHigh又はLowの信号を、シリアルクロック10の変化点でマスター装置100に送信し、ストローブ信号がHighである場合、シリアルデータ21のHigh又はLowの信号を出力せずに、前回の値が保持される。
次に、実施の形態1に係るシリアル伝送システム1000の動作について図面を参照して説明する。図5は、マスター装置100とスレーブ装置200又はスレーブ装置201との間の伝送信号のタイミングチャートである。なお、図5では、スレーブ装置202のタイミングチャートについては省略されている。
まず、図5に示された各信号の詳細について説明する。Master: SCL10は、マスター装置100のシリアルクロック生成回路110が生成するシリアルクロック10を示す。Master: SCL10は、マスター装置100のデータ伝送回路の動作クロックである。そのため、図5が示すように、Master: SCL10は、一定の周期でHighとLowとを交互に繰り返すクロック信号である。マスター装置100のシリアルクロック生成回路110は、シリアルクロック伝送路300を介してスレーブ装置200及びスレーブ装置201にそれぞれ出力する。スレーブ装置200に入力されたMaster: SCL10は、スレーブ装置200のデータ伝送回路の動作クロックに用いられる。スレーブ装置201に入力されたMaster: SCL10は、スレーブ装置201のデータ伝送回路の動作クロックに用いられる。
Master: m_strb30は、マスター装置100のストローブ信号生成回路120が生成するストローブ信号を示す。ストローブ信号生成回路120は、シリアルクロック生成回路110が生成したMaster: SCL10の周波数を2分周することによりMaster: m_strb30を生成する。従って、図5が示すように、Master: m_strb30の周波数は、Master: SCL10の2分の1の周波数である。よって、例えば、Master: SCL10における隣り合ったHigh及びLowの区間は、Master: m_strb30における単一のHighの区間又は単一のLowの区間に対応する。
Master: SDA20は、マスター装置100の内部回路150が生成するシリアルデータ20を示す。マスター装置100がスレーブ装置200又はスレーブ装置201を制御しない場合、Master: SDA20は、Highに保持される。マスター装置100がスレーブ装置200又はスレーブ装置201を制御する場合、マスター装置100のシリアルデータ送信回路130は、内部回路150が生成したMaster: SDA20を、ストローブ信号生成回路120がMaster: SCL10に基づいて生成したMaster: m_strb30の状態に基づいて、シリアルクロック生成回路110が生成したMaster: SCL10の変化点でスレーブ装置200又はスレーブ装置201に送信する。従って、後述するシンクロコンディション1の区間では、Master: SDA20とMaster: m_strb30とは、周期が等しい同一の波形を示している。また、マスター装置100のシリアルデータ送信回路130は、スレーブ装置200又はスレーブ装置201がシリアルデータとしてAckまたは読み込み用データを出力する直前のタイミングで、Master: SDA20の出力を停止する。
Slave A: s_strb31は、スレーブ装置200のストローブ信号生成回路220が生成するストローブ信号を示す。ストローブ信号生成回路220は、シリアルクロック生成回路110が生成したMaster: SCL10を2分周することによりSlave A: s_strb31を生成する。従って、図5が示すように、Slave A: s_strb31の周波数は、Master: SCL10の2分の1の周波数である。例えば、Master: SCL10における隣り合ったHigh及びLowの区間は、Slave A: s_strb31における単一のHighの区間又は単一のLowの区間に対応する。しかし、後述するシンクロコンディション1の区間では、Slave A: s_strb31の波形は、Master: m_strb30の波形を反転した波形であり、Slave A: s_strb31の位相と、Master: m_strb30の位相とはずれているものとする。
Slave A: SDA21は、スレーブ装置200の内部回路250が生成するシリアルデータを示す。マスター装置100がスレーブ装置200を制御しない場合、スレーブ装置200のシリアルデータ送信回路240は、Slave A: SDA21の送信を停止する。マスター装置100がスレーブ装置200を制御する場合、スレーブ装置200のシリアルデータ送信回路240は、内部回路250が生成したSlave A: SDA21を、ストローブ信号生成回路220がMaster: SCL10に基づいて生成したSlave A: s_strb31の状態に基づいて、マスター装置100のシリアルクロック生成回路110が生成したMaster: SCL10の変化点でマスター装置100に送信する。従って、後述するストップコンディション3の区間では、Slave A: SDA21とSlave A: s_strb31とは、周期が等しい同一の波形を示している。
Slave A: syc_pls41は、スレーブ装置200のストローブ信号同期化回路210が生成する同期化パルスを示す。ストローブ信号同期化回路210は、マスター装置100のシリアルデータ送信回路130が送信したMaster: SDA20を参照して、マスター装置100のストローブ信号生成回路120がMaster: SCL10に基づいて生成したMaster: m_strb30とストローブ信号生成回路220がMaster: SCL10に基づいて生成したSlave A: s_strb31との同期化を指示するパターンを示すシンクロコンディション1を検出した場合、Slave A: syc_pls41としてHighのパルス信号をストローブ信号生成回路220に出力する。図5が示すように、スレーブ装置200のストローブ信号生成回路220は、ストローブ信号同期化回路210からSlave A: syc_pls41としてHighのパルス信号を受信した場合、生成するSlave A: s_strb31の位相を、マスター装置100のストローブ信号生成回路120が生成したMaster: m_strb30の位相と一致するように調整する。
Slave A: syc_flg51は、スレーブ装置200のストローブ信号同期化回路210が生成する同期化フラグを示す。ストローブ信号同期化回路210は、マスター装置100のシリアルデータ送信回路130が送信したMaster: SDA20を参照して、マスター装置100のストローブ信号生成回路120がMaster: SCL10に基づいて生成したMaster: m_strb30とストローブ信号生成回路220がMaster: SCL10に基づいて生成したSlave A: s_strb31との同期化を指示するパターンを示すシンクロコンディション1を検出した場合、Slave A: syc_flg51をHighにする。
Slave B: s_strb32は、スレーブ装置201の図示しないストローブ信号生成回路が生成するストローブ信号を示す。Slave B: s_strb32は、Slave A: s_strb31と同様の信号であるため、詳細な説明は省略する。Slave B: SDA22は、スレーブ装置201の図示しない内部回路が生成するシリアルデータを示す。Slave B: SDA22は、Slave A: SDA21と同様の信号であるため、詳細な説明は省略する。Slave B: syc_pls42は、スレーブ装置201の図示しないストローブ信号同期化回路が生成する同期化パルスを示す。Slave B: syc_pls42は、Slave A: syc_pls41と同様の信号であるため、詳細な説明は省略する。Slave B: syc_flg52は、スレーブ装置201の図示しないストローブ信号同期化回路が生成する同期化フラグを示す。Slave B: syc_flg52は、Slave A: syc_flg51と同様の信号であるため、詳細な説明は省略する。
シンクロコンディション1は、マスター装置100のストローブ信号生成回路120が生成したストローブ信号と、スレーブ装置200のストローブ信号生成回路220が生成したストローブ信号との同期化を指示するパターンを表す。より具体的には、実施の形態1では、シンクロコンディション1は、Master: SDA20のうち、アドレス等の送信データの周波数と比較して2倍の周波数でLow→High→Low→High→Low→Highの順に変化する信号である。換言すれば、シンクロコンディション1は、Master: SDA20のうち、アドレス等の送信データの周期と比較して2分の1の周期でLow→High→Low→High→Low→Highの順に変化する信号である。なお、マスター装置100とスレーブ装置200又はスレーブ装置201との間でデータ伝送が行われる前には、スレーブ装置200及びスレーブ装置201は、それぞれ、初めにシンクロコンディション1を受信する必要がある。スレーブ装置200及びスレーブ装置201は、それぞれ、シンクロコンディション1を受信することにより、後述するスタートコンディション2及びストップコンディション3をそれぞれ認識できるようになる。
スタートコンディション2は、データ伝送を開始するタイミングをスレーブ装置200又はスレーブ装置201に示すパターンを表す。より具体的には、実施の形態1では、スタートコンディション2は、Master: SDA20のうち、アドレス等の送信データの周波数と比較して2倍の周波数でHigh→Lowに変化する信号である。換言すれば、スタートコンディション2は、Master: SDA20のうち、アドレス等の送信データの周期と比較して2分の1の周期でHigh→Lowに変化する信号である。なお、スレーブ装置200及びスレーブ装置201は、それぞれ、シンクロコンディション1を検出した後にのみ、スタートコンディション2を検出することができる。マスター装置100は、スタートコンディション2に続いて、アドレス等の送信データをスレーブ装置200又はスレーブ装置201に出力する。
ストップコンディション3は、データ伝送を終了するタイミングをマスター装置100、スレーブ装置200又はスレーブ装置201に示すパターンを表す。より具体的には、実施の形態1では、ストップコンディション3は、Master: SDA20、Slave A: SDA21又はSlave B: SDA22のうち、アドレス等の送信データの周波数と比較して2倍の周波数でLow→High→Low→Highの順に変化する信号である。換言すれば、ストップコンディション3は、Master: SDA20、Slave A: SDA21又はSlave B: SDA22のうち、アドレス等の送信データの周期と比較して2分の1の周期でLow→High→Low→Highの順に変化する信号である。なお、スレーブ装置200及びスレーブ装置201は、それぞれ、シンクロコンディション1を検出した後にのみ、ストップコンディション3を検出することができる。マスター装置100がスレーブ装置200又はスレーブ装置201にデータを書き込む場合、マスター装置100は、書き込み用データ等の送信データの終了タイミングでストップコンディション3をスレーブ装置200又はスレーブ装置201に出力してデータ伝送を終了し、Master: SDA20をHighに保持する。一方、マスター装置100がスレーブ装置200又はスレーブ装置201からのデータを読み込む場合、スレーブ装置200又はスレーブ装置201は、読み込み用データ等の送信データの終了タイミングでストップコンディション3をマスター装置100に出力する。
次に、図5に示されたタイミングチャートの左側から順を追って説明する。まず、マスター装置100のシリアルデータ送信回路130は、内部回路150が生成したMaster: SDA20のシンクロコンディション1を、ストローブ信号生成回路120が生成したMaster: m_strb30の状態に基づいて、シリアルクロック生成回路110が生成したMaster: SCL10の変化点でスレーブ装置200に送信する。
次に、スレーブ装置200のストローブ信号同期化回路210は、Slave A: syc_pls41としてHighのパルス信号をストローブ信号生成回路220に出力する。次に、ストローブ信号生成回路220は、生成するSlave A: s_strb31の位相を、マスター装置100のストローブ信号生成回路120が生成したMaster: m_strb30の位相と一致するように調整する。
次に、マスター装置100のシリアルデータ送信回路130は、内部回路150が生成したMaster: SDA20のスタートコンディション2を、ストローブ信号生成回路120が生成したMaster: m_strb30の状態に基づいて、シリアルクロック生成回路110が生成したMaster: SCL10の変化点でスレーブ装置200のシリアルデータ受信回路230に送信する。続いて、マスター装置100のシリアルデータ送信回路130は、ストローブ信号生成回路120が生成したMaster: m_strb30の状態に基づいて、シリアルクロック生成回路110が生成したMaster: SCL10の変化点でスレーブ装置200のアドレスをスレーブ装置200のシリアルデータ受信回路230に送信する。スレーブ装置200のシリアルデータ受信回路230は、シリアルデータ送信回路130が送信したMaster: SDA20のスタートコンディション2及びスレーブ装置200のアドレスを、それぞれストローブ信号生成回路220が位相を調整したSlave A: s_strb31の状態に基づいて、マスター装置100のシリアルクロック生成回路110が生成したMaster: SCL10の変化点で受信する。
次に、スレーブ装置200のシリアルデータ送信回路240は、内部回路250が生成したSlave A: SDA21のAck及び読み込み用データを、ストローブ信号生成回路220が位相を調整したSlave A: s_strb31の状態に基づいて、マスター装置100のシリアルクロック生成回路110が生成したMaster: SCL10の変化点でマスター装置100のシリアルデータ受信回路140に送信する。続いて、スレーブ装置200のシリアルデータ送信回路240は、Slave A: s_strb31の状態に基づいて、マスター装置100のシリアルクロック生成回路110が生成したMaster: SCL10の変化点でストップコンディション3をマスター装置100のシリアルデータ受信回路140に送信する。マスター装置100のシリアルデータ受信回路140は、シリアルデータ送信回路240が送信したSlave A: SDA21のAck、読み込み用データ及びストップコンディション3を、それぞれストローブ信号生成回路120が生成したMaster: m_strb30の状態に基づいて、シリアルクロック生成回路110が生成したMaster: SCL10の変化点で受信する。内部回路150は、シリアルデータ受信回路140がストップコンディション3を受信する前に受信した読み込み用データを読み込む。
次に、マスター装置100のシリアルデータ送信回路130は、内部回路150が生成したMaster: SDA20のスタートコンディション2を、ストローブ信号生成回路120が生成したMaster: m_strb30の状態に基づいて、シリアルクロック生成回路110が生成したMaster: SCL10の変化点でスレーブ装置200のシリアルデータ受信回路230に送信する。続いて、シリアルデータ送信回路130は、Master: m_strb30の状態に基づいて、シリアルクロック生成回路110が生成したMaster: SCL10の変化点でスレーブ装置200のアドレス、及び書き込み用データをそれぞれスレーブ装置200のシリアルデータ受信回路230に送信する。スレーブ装置200のシリアルデータ受信回路230は、シリアルデータ送信回路130が送信したMaster: SDA20のスタートコンディション2及びスレーブ装置200のアドレス、及び書き込み用データを、それぞれ、ストローブ信号生成回路220が位相を調整したSlave A: s_strb31の状態に基づいて、マスター装置100のシリアルクロック生成回路110が生成したMaster: SCL10の変化点で受信する。
次に、マスター装置100のシリアルデータ送信回路130は、内部回路150が生成したMaster: SDA20のストップコンディション3を、ストローブ信号生成回路120が生成したMaster: m_strb30の状態に基づいて、シリアルクロック生成回路110が生成したMaster: SCL10の変化点でスレーブ装置200に送信する。スレーブ装置200のシリアルデータ受信回路230は、シリアルデータ送信回路130が送信したMaster: SDA20のストップコンディション3を、ストローブ信号生成回路220が位相を調整したSlave A: s_strb31の状態に基づいて、マスター装置100のシリアルクロック生成回路110が生成したMaster: SCL10の変化点で受信する。内部回路250には、シリアルデータ受信回路230がストップコンディション3を受信する前に受信した上述の書き込み用データが書き込まれる。
従来、例えば、I2Cに代表される、2線シリアルバスを用いたデータ伝送方式において、シリアルクロックのHigh区間でシリアルデータが変化することでスタートコンディション及びストップコンディションを検出する技術が知られている(例えば、特許文献1を参照)。従来のI2Cにおけるマスター装置がスレーブ装置のデータを読み込む制御において、スレーブ装置の出力データ長を規定長とすることでマスター装置はデータの終端を判断する。しかし、例えば、スレーブ装置が応答(Ack)を出力した後に伝送路が切断した場合、マスター装置は、マスター装置に入力されるデータが誤っていることを認識することができない。通常の場合、伝送データの誤りの有無は、伝送データ内にCRC符号を埋め込むことによって確認される。しかし、CRC演算回路を搭載することによる回路規模の増加が問題になる。
そこで、上記のように図5を参照して説明したシリアル伝送システム1000の動作では、スレーブ装置200がストップコンディション3をマスター装置100に送信する。このように、スレーブ装置200が転送データの終了タイミングを制御することにより、データの終端を正確にマスター装置100に通知することができ、正確なデータの転送を実現することができる。
以上のように、実施の形態1に係るマスター装置100は、周期的なシリアルクロック10を生成するシリアルクロック生成回路110と、シリアルデータ20を生成するシリアルデータ生成回路である内部回路150と、内部回路150が生成したシリアルデータ20を、シリアルクロック生成回路110が生成したシリアルクロック10に基づいたタイミングでスレーブ装置200に送信するシリアルデータ送信回路130と、を備えている。
上記の構成によれば、マスター装置100がシリアルデータ20をシリアルクロック10に基づいたタイミングで送信することにより、スレーブ装置200において、シリアルデータ20を処理するフリップフロップを、シリアルクロック10に基づいた同期回路とすることが可能となる。より具体的には、スレーブ装置200において、シリアルデータ20を、シリアルクロック10に基づいたタイミングで受信することが可能となる。よって、スレーブ装置200におけるタイミング制約を緩和することができる。従って、安全性の高い回路を設計可能となる。
また、実施の形態1に係るマスター装置100は、シリアルクロック生成回路110が生成したシリアルクロック10の周波数に基づいた周波数のストローブ信号を生成するストローブ信号生成回路120をさらに備え、シリアルデータ送信回路130は、内部回路150が生成したシリアルデータ20を、ストローブ信号生成回路120がシリアルクロック10に基づいて生成したストローブ信号の状態に基づいて、シリアルクロック生成回路110が生成したシリアルクロック10の変化点でスレーブ装置200に送信し、シリアルクロック生成回路110が生成するシリアルクロック10は、動作クロックとして機能する。
上記の構成によれば、マスター装置100がシリアルデータ20をストローブ信号の状態に基づいて、シリアルクロック10の変化点で送信する。ストローブ信号は、シリアルクロック10の周波数に基づいた周波数を有するため、シリアルデータ20を受信したスレーブ装置200において、シリアルデータ20を処理するフリップフロップを、シリアルクロック10に基づいた同期回路とすることが可能となる。より具体的には、スレーブ装置200において、シリアルデータ20を、ストローブ信号を基準にシリアルクロック10に基づいた安定したタイミングで受信することが可能となる。よって、スレーブ装置200におけるタイミング制約を緩和することができる。また、シリアルクロック10が動作クロックとして機能することにより、マスター装置100における回路を、シリアルクロック10に基づいた同期回路とすることが可能となる。
また、実施の形態1に係るマスター装置100におけるストローブ信号生成回路120が生成するストローブ信号の周波数は、シリアルクロック生成回路110が生成したシリアルクロック10の周波数の2分周の周波数である。
上記の構成によれば、マスター装置100が、シリアルデータ20を、シリアルクロック10の周波数の2分周の周波数を有するストローブ信号に基づいたタイミングで送信する。ストローブ信号は、シリアルクロック10の周波数の2分周の周波数を有するため、シリアルデータ20を受信したスレーブ装置200において、シリアルデータ20を処理するフリップフロップを、シリアルクロック10に基づいた同期回路とすることが可能となる。より具体的には、スレーブ装置200において、シリアルデータ20を、シリアルクロック10の周波数の2分周の周波数を有するストローブ信号に基づいたタイミングで受信することが可能となる。よって、スレーブ装置200におけるタイミング制約を緩和することができる。
また、実施の形態1に係るマスター装置100は、スレーブ装置200が送信したシリアルデータ21を、ストローブ信号生成回路120が生成したストローブ信号の状態に基づいて、シリアルクロック生成回路110が生成したシリアルクロック10の変化点で受信するシリアルデータ受信回路140をさらに備えている。
上記の構成によれば、スレーブ装置200がシリアルデータ21をストローブ信号の状態に基づいて、シリアルクロック10の変化点で送信することにより、マスター装置100において、シリアルデータ21を、ストローブ信号を基準にシリアルクロック10に基づいた安定したタイミングで受信することが可能となる。よって、マスター装置100におけるタイミング制約を緩和することができる。
また、実施の形態1に係るマスター装置100におけるシリアルデータ生成回路である内部回路150は、ストローブ信号生成回路120が生成したストローブ信号と、スレーブ装置200がシリアルクロック10に基づいて生成したストローブ信号との同期化を指示するパターンを表すシンクロコンディション1を含むシリアルデータ20を生成する。
例えば、スレーブ装置200において、シリアルクロック10を2分周することによりストローブ信号を生成した場合、当該ストローブ信号の位相が、リセット解除タイミングによってマスター装置100のストローブ信号生成回路120が生成したストローブ信号の位相と異なることがある。しかし、上記の構成によれば、マスター装置100が送信したシリアルデータ20を受信したスレーブ装置200において、シリアルデータ20に含まれるシンクロコンディション1を用いることにより同期化パルスを生成し、ストローブ信号の位相を調整することが可能となる。
また、実施の形態1に係るマスター装置100におけるシリアルデータ生成回路である内部回路150は、データ伝送を開始するタイミングをスレーブ装置200に示すパターンを表すスタートコンディション2を含むシリアルデータ20を生成する。
上記の構成によれば、マスター装置100が送信したシリアルデータ20を受信したスレーブ装置200において、シリアルデータ20に含まれるスタートコンディション2が示すデータ転送の開始タイミングに基づいて、アドレス又は書き込み用データ等の送信データを受信することが可能になる。また、シリアルデータ20のみでデータ転送の開始タイミングをスレーブ装置200に示すことができるため、スレーブ装置200におけるタイミング制約を緩和することができる。
また、実施の形態1に係るマスター装置100におけるシリアルデータ生成回路である内部回路150は、データ伝送を終了するタイミングをスレーブ装置200に示すパターンを表すストップコンディション3を含むシリアルデータ20を生成する。
上記の構成によれば、マスター装置100が送信したシリアルデータ20を受信したスレーブ装置200において、シリアルデータ20に含まれるストップコンディション3が示すデータ転送の終了タイミングに基づいて、アドレス又は書き込み用データ等の送信データの受信を終了することが可能になる。また、シリアルデータ20のみでデータ転送の終了タイミングをスレーブ装置200に示すことができるため、スレーブ装置200におけるタイミング制約を緩和することができる。
また、実施の形態1に係るスレーブ装置200は、シリアルデータ21を生成するシリアルデータ生成回路である内部回路250と、内部回路250が生成したシリアルデータ21を、マスター装置100が生成したシリアルクロック10に基づいたタイミングで当該マスター装置100に送信するシリアルデータ送信回路240と、を備えている。
上記の構成によれば、スレーブ装置200がシリアルデータ21をシリアルクロック10に基づいたタイミングで送信することにより、マスター装置100において、シリアルデータ21を処理するフリップフロップを、シリアルクロック10に基づいた同期回路とすることが可能となる。より具体的には、マスター装置100において、シリアルデータ21を、シリアルクロック10に基づいたタイミングで受信することが可能となる。よって、マスター装置100におけるタイミング制約を緩和することができる。従って、安全性の高い回路を設計可能となる。
また、実施の形態1に係るスレーブ装置200は、マスター装置100が生成したシリアルクロック10の周波数に基づいた周波数のストローブ信号を生成するストローブ信号生成回路220をさらに備え、シリアルデータ送信回路240は、シリアルデータ生成回路である内部回路250が生成したシリアルデータ21を、ストローブ信号生成回路220が生成したストローブ信号の状態に基づいて、マスター装置100が生成したシリアルクロック10の変化点でマスター装置100に送信し、マスター装置100が生成したシリアルクロック10は、動作クロックとして機能する。
上記の構成によれば、スレーブ装置200がシリアルデータ21をストローブ信号の状態に基づいて、シリアルクロック10の変化点で送信する。ストローブ信号は、シリアルクロック10の周波数に基づいた周波数を有するため、シリアルデータ21を受信したマスター装置100において、シリアルデータ21を処理するフリップフロップを、シリアルクロック10に基づいた同期回路とすることが可能となる。より具体的には、マスター装置100において、シリアルデータ21を、ストローブ信号を基準にシリアルクロック10に基づいた安定したタイミングで受信することが可能となる。よって、マスター装置100におけるタイミング制約を緩和することができる。また、シリアルクロック10が動作クロックとして機能することにより、スレーブ装置200における回路を、シリアルクロック10に基づいた同期回路とすることが可能となる。
また、実施の形態1に係るスレーブ装置200におけるストローブ信号生成回路220が生成するストローブ信号の周波数は、マスター装置100が生成したシリアルクロック10の周波数の2分周の周波数である。
上記の構成によれば、スレーブ装置200が、シリアルデータ21を、シリアルクロック10の周波数の2分周の周波数を有するストローブ信号に基づいたタイミングで送信する。ストローブ信号は、シリアルクロック10の周波数の2分周の周波数を有するため、シリアルデータ21を受信したマスター装置100において、シリアルデータ21を処理するフリップフロップを、シリアルクロック10に基づいた同期回路とすることが可能となる。より具体的には、マスター装置100において、シリアルデータ21を、シリアルクロック10の周波数の2分周の周波数を有するストローブ信号に基づいたタイミングで受信することが可能となる。よって、スレーブ装置200におけるタイミング制約を緩和することができる。
また、実施の形態1に係るスレーブ装置200は、マスター装置100が送信したシリアルデータ20を、ストローブ信号生成回路220が生成したストローブ信号の状態に基づいて、マスター装置100が生成したシリアルクロック10の変化点で受信するシリアルデータ受信回路230をさらに備えている。
上記の構成によれば、マスター装置100がシリアルデータ20をストローブ信号の状態に基づいて、シリアルクロック10の変化点で送信することにより、スレーブ装置200において、シリアルデータ20を、ストローブ信号を基準にシリアルクロック10に基づいた安定したタイミングで受信することが可能となる。よって、スレーブ装置200におけるタイミング制約を緩和することができる。
また、実施の形態1に係るスレーブ装置200は、マスター装置100が送信したシリアルデータ20を参照して、マスター装置100がシリアルクロック10に基づいて生成したストローブ信号とストローブ信号生成回路220が生成したストローブ信号との同期化を指示するパターンを示すシンクロコンディション1を検出した場合、同期化パルスをストローブ信号生成回路220に出力するストローブ信号同期化回路210をさらに備え、ストローブ信号生成回路220は、ストローブ信号同期化回路210から同期化パルスを受信した場合、生成するストローブ信号の位相を、マスター装置100がシリアルクロック10に基づいて生成したストローブ信号の位相と一致するように調整する。
例えば、ストローブ信号生成回路220が生成したストローブ信号の位相がリセット解除タイミングによってマスター装置100のストローブ信号生成回路120が生成したストローブ信号の位相と異なることがある。しかし、上記の構成によれば、スレーブ装置200において、シリアルデータ20に含まれるシンクロコンディション1を検出した場合、同期化パルスを生成することにより、マスター装置100が生成したストローブ信号の位相と、スレーブ装置200のストローブ信号生成回路220が生成したストローブ信号の位相とを一致させることができる。
また、実施の形態1に係るスレーブ装置200におけるシリアルデータ生成回路である内部回路250は、データ伝送を終了するタイミングをマスター装置100に示すパターンを表すストップコンディション3を含むシリアルデータ21を生成する。
上記の構成によれば、上記の構成によれば、スレーブ装置200が送信したシリアルデータ21を受信したマスター装置100において、シリアルデータ21に含まれるストップコンディション3が示すデータ転送の終了タイミングに基づいて、アドレス又は読み込み用データ等の送信データの受信を終了することが可能になる。また、シリアルデータ21のみでデータ転送の終了タイミングをマスター装置100に示すことができるため、マスター装置100におけるタイミング制約を緩和することができる。また、スレーブ装置200がデータ送信の終了タイミングを通知することにより終端までの送信データをスレーブ装置200が出力していることをマスター装置100が認識することが可能となる。また、マスター装置100が伝送路断とデータの終端とを区別して認識することが可能となる。
また、実施の形態1に係るシリアル伝送システム1000は、マスター装置100及びスレーブ装置200を含むシリアル伝送システム1000であって、マスター装置100は、周期的なシリアルクロック10を生成するシリアルクロック生成回路110と、マスター装置シリアルデータ20を生成するマスター装置シリアルデータ生成回路である内部回路150と、マスター装置シリアルデータ生成回路である内部回路150が生成したマスター装置シリアルデータ20を、シリアルクロック生成回路110が生成したシリアルクロック10に基づいたタイミングでスレーブ装置200に送信するマスター装置シリアルデータ送信回路であるシリアルデータ送信回路130と、スレーブ装置200が送信したスレーブ装置シリアルデータ21を、シリアルクロック生成回路110が生成したシリアルクロック10に基づいたタイミングで受信するスレーブ装置シリアルデータ受信回路であるシリアルデータ受信回路140と、を備え、スレーブ装置200は、スレーブ装置シリアルデータ21を生成するスレーブ装置シリアルデータ生成回路である内部回路250と、スレーブ装置シリアルデータ生成回路である内部回路250が生成したスレーブ装置シリアルデータ21を、マスター装置100のシリアルクロック生成回路110が生成したシリアルクロック10に基づいたタイミングでマスター装置100に送信するスレーブ装置シリアルデータ送信回路であるシリアルデータ送信回路240と、マスター装置シリアルデータ生成回路である内部回路150が生成したマスター装置シリアルデータ20を、マスター装置100のシリアルクロック生成回路110が生成したシリアルクロック10に基づいたタイミングで受信するマスター装置シリアルデータ受信回路であるシリアルデータ受信回路230と、を備えている。
上記の構成によれば、上述のマスター装置100及びスレーブ装置200が奏する各効果を、シリアル伝送システム1000において実現することができる。
実施の形態2.
実施の形態1では、シリアルデータ20又はシリアルデータ21をストローブ信号の状態に基づいて、シリアルクロック10の変化点で送受信し、シリアルクロック10が動作クロックとして機能する構成について説明した。実施の形態2では、シリアルデータ20又はシリアルデータ21を、シリアルクロック10の状態に基づいて、別のクロック信号の変化点で送受信し、当該別のクロック信号が動作クロックとして機能する構成について説明する。
以下で、実施の形態2について図面を参照して説明する。なお、実施の形態1で説明した構成と同様の機能を有する構成については同一の符号を付し、その説明を省略する。
図6は、実施の形態2に係るシリアル伝送システム1001の構成を示すブロック図である。図6が示すように、シリアル伝送システム1001は、マスター装置500、スレーブ装置600、スレーブ装置601及びスレーブ装置602を含む。なお、スレーブ装置600、スレーブ装置601、及びスレーブ装置602は、それぞれ、内部回路250以外は同様の構成を有するため、以下では、主に、マスター装置500及びスレーブ装置600について説明し、スレーブ装置601及びスレーブ装置602の説明は省略する。
マスター装置500は、実施の形態1に係るマスター装置100と比較して、ストローブ信号生成回路120の代わりに、位相同期回路160を備えている。なお、位相同期回路160は、PLL(phase locked loop)である。
スレーブ装置600は、実施の形態1に係るスレーブ装置200と比較して、ストローブ信号同期化回路210及びストローブ信号生成回路220の代わりに、位相同期回路260を備えている。なお、位相同期回路160は、PLL(phase locked loop)である。
マスター装置500の位相同期回路160は、シリアルクロック生成回路110が生成したシリアルクロック10の周波数に基づいた周波数のクロック信号を生成する。より詳細には、実施の形態2では、位相同期回路160が生成するクロック信号の周波数は、シリアルクロック生成回路110が生成したシリアルクロック10の周波数の2逓倍の周波数である。位相同期回路160は、生成したクロック信号を、マスター装置500のシリアルデータ送信回路130、シリアルデータ受信回路140及び内部回路150にそれぞれ出力する。実施の形態2では、位相同期回路160が生成するクロック信号は、上記の各回路に対する動作クロックとして機能する。
実施の形態2に係るシリアルデータ送信回路130は、実施の形態1で説明したストローブ信号を用いずに、内部回路150が生成したシリアルデータ20を、シリアルクロック生成回路110が生成したシリアルクロック10の状態に基づいて、位相同期回路160が生成したクロック信号の変化点でスレーブ装置200のシリアルデータ受信回路230に送信する。
実施の形態2に係るシリアルデータ受信回路140は、実施の形態1で説明したストローブ信号を用いずに、後述するスレーブ装置600のシリアルデータ送信回路240が送信したシリアルデータ21を、シリアルクロック生成回路110が生成したシリアルクロック10の状態に基づいて、位相同期回路160が生成したクロック信号の変化点で受信する。
スレーブ装置600の位相同期回路260は、マスター装置500のシリアルクロック生成回路110が生成したシリアルクロック10の周波数に基づいた周波数のクロック信号を生成する。より詳細には、実施の形態2では、位相同期回路260が生成するクロック信号の周波数は、シリアルクロック生成回路110が生成したシリアルクロック10の周波数の2逓倍の周波数である。位相同期回路260は、生成したクロック信号を、スレーブ装置600のシリアルデータ受信回路230、シリアルデータ送信回路240及び内部回路250にそれぞれ出力する。実施の形態2では、位相同期回路260が生成するクロック信号は、上記の各回路に対する動作クロックとして機能する。
実施の形態2に係るシリアルデータ受信回路230は、実施の形態1で説明したストローブ信号を用いずに、マスター装置500のシリアルデータ送信回路130が送信したシリアルデータ20を、シリアルクロック生成回路110が生成したシリアルクロック10の状態に基づいて、位相同期回路260が生成したクロック信号の変化点で受信する。
実施の形態2に係るシリアルデータ送信回路240は、実施の形態1で説明したストローブ信号を用いずに、内部回路250が生成したシリアルデータ21を、シリアルクロック生成回路110が生成したシリアルクロック10の状態に基づいて、位相同期回路260が生成したクロック信号の変化点でマスター装置500のシリアルデータ受信回路140に送信する。
次に、実施の形態2に係るシリアル伝送システム1001の動作について図面を参照して説明する。図7は、マスター装置500とスレーブ装置600又はスレーブ装置601との間の伝送信号のタイミングチャートである。なお、図7では、スレーブ装置602のタイミングチャートについては省略されている。
まず、図7に示された各信号の詳細について説明する。Master: SCL10は、マスター装置500のシリアルクロック生成回路110が生成するシリアルクロック10を示す。図7が示すように、Master: SCL10は、一定の周期でHighとLowとを交互に繰り返す。マスター装置100のシリアルクロック生成回路110は、シリアルクロック伝送路300を介してスレーブ装置200及びスレーブ装置201にそれぞれ出力する。
Master & Slave :pll_clk60は、マスター装置500の位相同期回路160が生成したクロック信号と、スレーブ装置600の位相同期回路260が生成したクロック信号とを示す。つまり、マスター装置500の位相同期回路160が生成したクロック信号と、スレーブ装置600の位相同期回路260が生成したクロック信号とは同期している。Master & Slave :pll_clk60は、マスター装置500のデータ伝送回路の動作クロックであり、スレーブ装置600のデータ伝送回路の動作クロックである。位相同期回路160及び位相同期回路260は、それぞれ、シリアルクロック生成回路110が生成したMaster: SCL10の周波数を2逓倍することによりMaster & Slave :pll_clk60を生成する。従って、図7が示すように、Master & Slave :pll_clk60の周波数は、Master: SCL10の2倍の周波数である。よって、例えば、Master: SCL10における単一のHighの区間又は単一のLowの区間は、Master & Slave :pll_clk60における隣り合ったHigh及びLowの区間に対応する。
実施の形態2に係るMaster: SDA20は、マスター装置500の内部回路150が生成するシリアルデータ20を示す。マスター装置500がスレーブ装置600又はスレーブ装置601を制御しない場合、Master: SDA20は、Highに保持される。マスター装置500がスレーブ装置600又はスレーブ装置601を制御する場合、マスター装置500のシリアルデータ送信回路130は、内部回路150が生成したMaster: SDA20を、シリアルクロック生成回路110が生成したMaster: SCL10の状態に基づいて、位相同期回路160が生成したMaster & Slave :pll_clk60の変化点でスレーブ装置600又はスレーブ装置601に送信する。また、マスター装置500のシリアルデータ送信回路130は、スレーブ装置600又はスレーブ装置601がシリアルデータとしてAckまたは読み込み用データを出力する直前のタイミングで、Master: SDA20の出力を停止する。
実施の形態2に係るSlave A: SDA21は、スレーブ装置600の内部回路250が生成するシリアルデータを示す。マスター装置500がスレーブ装置600を制御しない場合、スレーブ装置600のシリアルデータ送信回路240は、Slave A: SDA21の送信を停止する。マスター装置500がスレーブ装置600を制御する場合、スレーブ装置200のシリアルデータ送信回路240は、内部回路250が生成したSlave A: SDA21を、シリアルクロック生成回路110が生成したMaster: SCL10の状態に基づいて、位相同期回路260が生成したMaster & Slave :pll_clk60の変化点でマスター装置500に送信する。
実施の形態2に係るSlave B: SDA22は、スレーブ装置601の図示しない内部回路が生成するシリアルデータを示す。Slave B: SDA22は、Slave A: SDA21と同様の信号であるため、詳細な説明は省略する。
実施の形態2に係るスタートコンディション2は、データ伝送を開始するタイミングをスレーブ装置600又はスレーブ装置601に示すパターンを表す。より具体的には、スタートコンディション2は、Master: SDA20のうち、アドレス等の送信データの周波数と比較して2倍の周波数でHigh→Lowに変化する信号である。マスター装置500は、スタートコンディション2に続いて、アドレス等の送信データをスレーブ装置600又はスレーブ装置601に出力する。
実施の形態2に係るストップコンディション3は、データ伝送を終了するタイミングをマスター装置500、スレーブ装置600又はスレーブ装置601に示すパターンを表す。より具体的には、ストップコンディション3は、Master: SDA20、Slave A: SDA21又はSlave B: SDA22のうち、アドレス等の送信データの周波数と比較して2倍の周波数でLow→High→Low→Highの順に変化する信号である。なお、スレーブ装置600及びスレーブ装置601は、それぞれ、スタートコンディション2を検出した後にのみ、ストップコンディション3を検出することができる。マスター装置500がスレーブ装置600又はスレーブ装置601にデータを書き込む場合、マスター装置500は、書き込み用データ等の送信データの終了タイミングでストップコンディション3をスレーブ装置600又はスレーブ装置601に出力してデータ伝送を終了し、Master: SDA20をHighに保持する。一方、マスター装置500がスレーブ装置600又はスレーブ装置601からのデータを読み込む場合、スレーブ装置600又はスレーブ装置601は、読み込み用データ等の送信データの終了タイミングでストップコンディション3をマスター装置500に出力する。
次に、図7に示されたタイミングチャートの左側から順を追って説明する。まず、マスター装置500のシリアルデータ送信回路130は、内部回路150が生成したMaster: SDA20のスタートコンディション2を、シリアルクロック生成回路110が生成したMaster: SCL10の状態に基づいて、位相同期回路160が生成したMaster & Slave :pll_clk60の変化点でスレーブ装置600のシリアルデータ受信回路230に送信する。続いて、マスター装置500のシリアルデータ送信回路130は、Master: SCL10の状態に基づいて、Master & Slave :pll_clk60の変化点でスレーブ装置600のアドレスをスレーブ装置600のシリアルデータ受信回路230に送信する。スレーブ装置600のシリアルデータ受信回路230は、シリアルデータ送信回路130が送信したMaster: SDA20のスタートコンディション2及びスレーブ装置600のアドレスを、Master: SCL10の状態に基づいて、位相同期回路260が生成したMaster & Slave :pll_clk60の変化点で受信する。
次に、スレーブ装置600のシリアルデータ送信回路240は、内部回路250が生成したSlave A: SDA21のAck及び読み込み用データを、シリアルクロック生成回路110が生成したMaster: SCL10の状態に基づいて、位相同期回路260が生成したMaster & Slave :pll_clk60の変化点でマスター装置500のシリアルデータ受信回路140に送信する。続いて、スレーブ装置600のシリアルデータ送信回路240は、Master: SCL10の状態に基づいて、位相同期回路260が生成したMaster & Slave :pll_clk60の変化点で、ストップコンディション3をマスター装置500のシリアルデータ受信回路140に送信する。マスター装置500のシリアルデータ受信回路140は、シリアルデータ送信回路240が送信したSlave A: SDA21のAck、読み込み用データ及びストップコンディション3を、シリアルクロック生成回路110が生成したMaster: SCL10の状態に基づいて、位相同期回路160が生成したMaster & Slave :pll_clk60の変化点で受信する。内部回路150は、シリアルデータ受信回路140がストップコンディション3を受信する前に受信した読み込み用データを読み込む。
次に、マスター装置500のシリアルデータ送信回路130は、内部回路150が生成したMaster: SDA20のスタートコンディション2を、シリアルクロック生成回路110が生成したMaster: SCL10の状態に基づいて、位相同期回路160が生成したMaster & Slave :pll_clk60の変化点でスレーブ装置600のシリアルデータ受信回路230に送信する。続いて、シリアルデータ送信回路130は、Master: SCL10にの状態に基づいて、位相同期回路160が生成したMaster & Slave :pll_clk60の変化点で、スレーブ装置600のアドレス、及び書き込み用データをスレーブ装置600のシリアルデータ受信回路230に送信する。スレーブ装置600のシリアルデータ受信回路230は、シリアルデータ送信回路130が送信したMaster: SDA20のスタートコンディション2及びスレーブ装置200のアドレス、及び書き込み用データを、シリアルクロック生成回路110が生成したMaster: SCL10の状態に基づいて、位相同期回路260が生成したMaster & Slave :pll_clk60の変化点で受信する。
次に、マスター装置500のシリアルデータ送信回路130は、内部回路150が生成したMaster: SDA20のストップコンディション3を、シリアルクロック生成回路110が生成したMaster: SCL10の状態に基づいて、位相同期回路160が生成したMaster & Slave :pll_clk60の変化点でスレーブ装置600に送信する。スレーブ装置600のシリアルデータ受信回路230は、シリアルデータ送信回路130が送信したMaster: SDA20のストップコンディション3を、シリアルクロック生成回路110が生成したMaster: SCL10の状態に基づいて、位相同期回路260が生成したMaster & Slave :pll_clk60の変化点で受信する。内部回路250には、シリアルデータ受信回路230がストップコンディション3を受信する前に受信した上述の書き込み用データが書き込まれる。
上記のように、図7が示すシリアル伝送システム1000の動作では、実施の形態1で説明したシンクロコンディション1は用いられない。従って、実施の形態1に係るシリアルデータ送信回路130、シリアルデータ送信回路240、シリアルデータ受信回路140及びシリアルデータ受信回路230がそれぞれ有する、シンクロコンディション1を検出する回路が削減される。
以上のように、実施の形態2に係るマスター装置500は、シリアルクロック生成回路110が生成したシリアルクロック10の周波数に基づいた周波数のクロック信号を生成する位相同期回路160をさらに備え、シリアルデータ送信回路130は、シリアルデータ生成回路である内部回路150が生成したシリアルデータ20を、シリアルクロック生成回路110が生成したシリアルクロック10の状態に基づいて、位相同期回路160が生成したクロック信号の変化点でスレーブ装置600に送信し、位相同期回路160が生成したクロック信号は、動作クロックとして機能する。
上記の構成によれば、シリアルクロック10の周波数に基づいた周波数のクロック信号が動作クロックとして機能することにより、マスター装置500における回路を、クロック信号に基づいた同期回路とすることが可能となる。そして、シリアルデータ20を受信したスレーブ装置600において、シリアルデータ20を処理するフリップフロップを、クロック信号に基づいた同期回路とすることが可能となる。より具体的には、スレーブ装置600において、シリアルデータ20を、シリアルクロック10を基準にクロック信号に基づいた安定したタイミングで受信することが可能となる。よって、スレーブ装置600におけるタイミング制約を緩和することができる。また、PLLである位相同期回路160を用いるように構成したので、位相調整の回路が不要となり回路規模を削減することができる。
また、実施の形態2に係るマスター装置500における位相同期回路160が生成するクロック信号の周波数は、シリアルクロック生成回路110が生成したシリアルクロック10の周波数の2逓倍の周波数である。
上記の構成によれば、シリアルクロック10の周波数の2逓倍の周波数を有するクロック信号が動作クロックとして機能することにより、マスター装置500における回路を、クロック信号に基づいた同期回路とすることが可能となる。
また、実施の形態2に係るスレーブ装置600は、マスター装置500が生成したシリアルクロック10の周波数に基づいた周波数のクロック信号を生成する位相同期回路260をさらに備え、シリアルデータ送信回路240は、シリアルデータ生成回路である内部回路250が生成したシリアルデータを、マスター装置500が生成したシリアルクロック10の状態に基づいて、位相同期回路260が生成したクロック信号の変化点でマスター装置500に送信し、位相同期回路260が生成したクロック信号は、動作クロックとして機能する。
上記の構成によれば、シリアルクロック10の周波数に基づいた周波数のクロック信号が動作クロックとして機能することにより、スレーブ装置600における回路を、シリアルクロック10に基づいた同期回路とすることが可能となる。また、PLLである位相同期回路260を用いるように構成したので、位相調整の回路が不要となり回路規模を削減することができる。
また、実施の形態2に係るスレーブ装置600における位相同期回路260が生成するクロック信号の周波数は、マスター装置500が生成したシリアルクロック10の周波数の2逓倍の周波数である。
上記の構成によれば、シリアルクロック10の周波数の2逓倍の周波数を有するクロック信号が動作クロックとして機能することにより、スレーブ装置600における回路を、シリアルクロック10に基づいた同期回路とすることが可能となる。
なお、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。