(57)【要約】【課題】クロックストレッチすることなく外部機器とＩ２Ｃ通信を行うことができる光データリンクを提供する。【解決手段】シリアルクロック線（ＳＣＬ）におけるシリアルクロック信号ＳＣＬのレベルがＨレベルの時に、シリアルデータ線（ＳＤＡ）におけるシリアルデータ信号ＳＤＡのレベルがＨレベルからＬレベルに変化したことを検知すると、内部機器１２’の動作クロック速度を上げ、高速な実行が必要な処理を完了した時点で内部機器１２’の動作クロック速度を元の状態に下げる動作クロック速度制御部１３を備えている。【選択図】図１
2010166309.tif 000002
【特許請求の範囲】
【請求項１】
シリアルクロック線とシリアルデータ線とから構成されるＩ２Ｃ通信バスを介して外部機器とデータ送受信を行う内部機器を備えた光データリンクであって、
前記シリアルクロック線におけるシリアルクロック信号のレベルがＨレベルの時に、前記シリアルデータ線におけるシリアルデータ信号のレベルがＨレベルからＬレベルに変化したことを検知すると、前記内部機器の動作クロック速度を上げ、高速な実行が必要な処理を完了した時点で前記内部機器の動作クロック速度を元の状態に下げる動作クロック速度制御部を備えたことを特徴とする光データリンク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｉ２Ｃ通信バスを介して外部機器とデータ送受信を行う内部機器を備えた光データリンクに関する。
【背景技術】
【０００２】
各種制御データを記憶するＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）等の内部機器と、外部機器とがＩ２Ｃ（Inter-Integrated Circuit）通信バスを介してデータ通信を行うことができる光データリンクが提案されている。この光データリンクは、外部との光通信を行う光信号送受信部の他に、外部機器との通信制御を実現するためのマイクロプロセッサを利用した内部機器を備えている。
【０００３】
図４は、Ｉ２Ｃ通信が可能な光データリンク１０と外部機器２とを接続した機能ブロック図である。光データリンクの光信号送受信部１１は、送信用小型光モジュール（TOSA:Transmitter Optical Sub-Assembly）、受信用小型光モジュール（ROSA:Receiver Optical Sub-Assembly）等から構成される。内部機器１２は、ＥＥＰＲＯＭや通信制御用ＩＣ等から構成され、外部機器２とＩ２Ｃ通信バスＢを介して通信するスレーブデバイスとして機能する。
外部機器２は、Ｉ２Ｃ通信バスＢを介して光データリンク１の内部機器１２を外部から制御するマスターデバイスとして機能する。
【０００４】
内部機器１２及び外部機器２は、例えば、非特許文献１に開示されているようにシリアルクロック線（ＳＣＬ）とシリアルデータ線（ＳＤＡ）との２本の信号線から構成されるＩ２Ｃ通信バスＢの接続ポート（図示省略）を備え、当該Ｉ２Ｃ通信バスＢを介して双方向のデータ通信が可能である。シリアルクロック線におけるシリアルクロック信号ＳＣＬ及びシリアルデータ線におけるシリアルデータ信号ＳＤＡの信号レベルは、各々プルアップ抵抗ＲによってプルアップされたＨレベルに維持される。
【０００５】
従って、シリアルクロック信号ＳＣＬのレベル状態は、原則、外部機器２が備えるオープンドレインバッファによって変化されるが、必要に応じて内部機器１２が備えるオープンドレインバッファによっても変化される。また、シリアルデータ信号ＳＤＡのレベル状態は、外部機器２又は内部機器１２が備えるオープンドレインバッファによって変化される。
【０００６】
次に、Ｉ２Ｃ通信処理について、図５、図６、図８に示すタイミングチャート、及び、図７に示すフロー図を用いて説明する。外部機器２と内部機器１２においてデータ送受信が実行されていない間（通信開始前）は、図５の符号Ｙ１で示すように、シリアルクロック信号ＳＣＬ及びシリアルデータ信号ＳＤＡのレベルは、共にプルアップ抵抗ＲによってＨレベルに維持されている。
【０００７】
このような状態において、外部機器２が、内部機器１２との通信を開始しようとすると、符号Ｙ２で示すように、シリアルクロック信号ＳＣＬのレベルをＨレベルに維持したまま、シリアルデータ信号ＳＤＡのレベルをＨレベルからＬレベルに変化させる処理、いわゆるスタートコンディションを実行する。一方、内部機器１２は、前記の外部機器２からのシリアルデータ信号ＳＤＡがＨレベルからＬレベルに変化したことを検出する。このようにすることで、外部機器２は、内部機器１２との通信を開始することができる。
【０００８】
続けて、外部機器２は、符号Ｙ３で示すように、シリアルデータ信号ＳＤＡのレベルを変化させて、スレーブアドレスと称する７ビットのスレーブアドレス識別情報（内部機器１２のアドレス情報Ａ７〜Ａ１）を送信する。前記情報の送信後、外部機器２は、符号Ｙ４で示すように、データ送信の方向を示す１ビットのリード（Ｒ）／ライト（Ｗ）情報を送信する。Ｒ情報は、内部機器１２から外部機器２へのデータ送信を示し、Ｗ情報は、外部機器２から内部機器１２へのデータ送信を示す。
【０００９】
内部機器１２側では、受信したスレーブアドレス識別情報とリード情報を解析し、外部機器２が送信したデータを、内部機器１２が応答（受信）する必要があるデータであると判定すると、符号Ｙ５で示すように、シリアルクロック信号ＳＣＬのレベルがＬレベルからＨレベルに変化する間に、シリアルデータ信号ＳＤＡのレベルをＬレベルにする（ＡＣＫ返信）。内部機器１２が、応答する必要がないと判定すると、図６の符号Ｙ６で示すように、シリアルクロック信号ＳＣＬのレベルがＬレベルからＨレベルに変化する間に、シリアルデータ信号ＳＤＡのレベルをＨレベルにする（ＮＡＫ返信）。
【００１０】
外部機器２は、続くシリアルクロック信号ＳＣＬが立ち上がってＨレベルに変化すると、シリアルデータ信号ＳＤＡのレベルを検知する。この場合、Ｌレベルを検知したら（ＡＣＫ受信）、シリアルデータ信号ＳＤＡのレベルを変化させることによって次のデータを内部機器１２に送信する。このデータ送信は１バイト単位で行われ、内部機器１２は、適切な受信データを受信すると、前述のようにＡＣＫを外部機器２に返信する。以後、これらの送信、受信、返信を繰り返し、所定のデータ通信が行われる。
【００１１】
前記シリアルデータ信号ＳＤＡのレベルの検知において、外部機器２が検知したレベルがＨレベルの場合には（ＮＡＫ受信）、内部機器１２が反応していないと判定し、通信中断処理やリトライ処理を実行する。上記のアドレス情報などの受信後に実行されるＡＣＫ／ＮＡＫ返信については、例えば、非特許文献２に開示されている。
【００１２】
ところで、図７に示すフロー図のように、内部機器１２は、外部機器２が送信したデータを受信するが（ステップＳ１１）、その後、内部機器１２が、受信したデータを上記のように解析し応答する必要があると判定しても（ステップＳ１２）、ＡＣＫを外部機器２に返信するまでには、当該受信データの解析処理などに時間が掛かり、シリアルクロック信号ＳＣＬのレベルがＬレベルからＨレベルに変化する間に、シリアルデータ信号ＳＤＡのレベルをＬレベルにする（ＡＣＫ返信）ことができない場合がある。このような場合、通常、内部機器１２は、外部機器２に対していわゆる「WAIT」をかけ、ＡＣＫ返信することが行われている（ステップＳ１３）。以後、前述のように、内部機器１２は、Ｉ２Ｃデータ受信を継続する（ステップＳ１４）。
【００１３】
「WAIT」の具体例を説明すると、図８の符号Ｙ７で示すように、内部機器１２が、シリアルクロック信号ＳＣＬのレベルをＬレベルにして、外部機器２に対してＡＣＫ（又はＮＡＫ）返信が遅れることを通知する（クロックストレッチといわれている）。その後、内部機器１２における解析処理などが終了すると、シリアルクロック信号ＳＣＬのレベルをＬレベルからＨレベルに変化させてＡＣＫ返信を行う。
【００１４】
内部機器１２との通信を終了する場合には、外部機器２は、シリアルクロック信号ＳＣＬのレベルをＨレベルに維持し、シリアルデータ信号ＳＤＡのレベルをＬレベルからＨレベルに変化させる処理、いわゆるストップコンディションを実行する。このようにすることで、外部機器２は、内部機器１２との通信を終了することができる。
【００１５】
なお、前述のＩ２Ｃ通信においては、スタートコンディションとストップコンディションを除き、外部機器２は、シリアルクロック信号ＳＣＬのレベルがＬレベルのときにのみ、シリアルデータ信号ＳＤＡのレベルを変化させる。
【先行技術文献】
【非特許文献】
【００１６】
【非特許文献１】UM10204 I2C-bus specification and user manual(THE I2C-BUS SPECIFICATION),P.7 Fig.2
【非特許文献２】C8051F41x(Silicon Laboratories),P.204 Figure 21.7
【発明の概要】
【発明が解決しようとする課題】
【００１７】
ところで、内部機器に用いられる代表的なスレーブデバイスであるシリアルメモリは、M24Cxxシリーズデータシート, STMicroelectronics P.22 Table 15に示されているようにクロックストレッチすることなくＡＣＫ返信を行うものもある。それ故、このような内部機器に対応するために、外部機器の中には、内部機器によるクロックストレッチが発生しないことを前提に機能設計されているものがある。このようにクロックストレッチ非対応の外部機器とＩ２Ｃ通信を行う場合、内部機器は、データを受信してからＡＣＫを返信するまでの処理時間を極力短縮し、クロックストレッチせずにＡＣＫ返信を行うことが必要になる。この場合、クロックストレッチせずにＡＣＫ返信を行うようにすればよいが、これにはクロック速度を上げる必要がある。
【００１８】
一方、光データリンクにおいては、省電力の要請から、プロセッサ等の内部機器の動作クロック速度を常時低速にしたり、プロセッサが実行する命令内容の中にＮＯＰ（No OPeration）命令がある場合には、動作クロックを停止させることが行われている。しかし、このようにすると、内部機器において、データを受信してからＡＣＫを返信するまでの処理時間が長くなり、クロックストレッチを行う必要が生じる。すなわち、省電力を図ることとクロックストレッチせずにＡＣＫ返信を行うことは、相容れないという問題がある。
【００１９】
本発明は、かかる実情に鑑みてなされたものであり、省電力を図りつつ、クロックストレッチすることなく外部機器とＩ２Ｃ通信を行うことができる光データリンクを提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明による光データリンクは、シリアルクロック線とシリアルデータ線とから構成されるＩ２Ｃ通信バスを介して外部機器とデータ送受信を行う内部機器を備えた光データリンクである。シリアルクロック線におけるシリアルクロック信号のレベルがＨレベルの時に、シリアルデータ線におけるシリアルデータ信号のレベルがＨレベルからＬレベルに変化したことを検知すると、内部機器の動作クロック速度を上げ、高速な実行が必要な処理を完了した時点で内部機器の動作クロック速度を元の状態に下げる動作クロック速度制御部を備えている。
【発明の効果】
【００２１】
本発明によれば、外部機器とＩ２Ｃ通信開始時に、内部機器の動作クロック速度を上げ、高速処理の不要時には通常の動作クロック速度に下げるので、省電化を図りながら、クロックストレッチすることなく外部機器とＩ２Ｃ通信を実行することが可能となる。
【図面の簡単な説明】
【００２２】
【図１】本発明に係わる光データリンク、及び、外部機器の機能ブロック図である。
【図２】内部機器の動作クロック速度制御を説明するためのタイミングチャートである。
【図３】内部機器の動作クロック速度制御を説明するためのフロー図である。
【図４】従来技術の光データリンク、及び、外部機器の機能ブロック図である。
【図５】Ｉ２Ｃ通信を説明するためのタイミングチャートの一例である。
【図６】Ｉ２Ｃ通信におけるＮＡＫ返信を説明するためのタイミングチャートの一例である。
【図７】Ｉ２Ｃ通信処理を説明するためのフロー図である。
【図８】Ｉ２Ｃ通信におけるクロックストレッチを説明するためのタイミングチャートの一例である。
【発明を実施するための形態】
【００２３】
本発明に詳細について、図１及び図２を参照しながら説明する。図１は、本発明に係る光データリンク１及び外部機器２の機能ブロック図である。図２は、光データリンク１の内部機器の動作クロック速度制御を説明するためのタイミングチャートである。なお、図４に示した機能ブロックと同一の機能を有する機能ブロックについては、同一の符号を付してその説明を省略する。
【００２４】
本発明による光データリンクは、図１に示すように、光信号送受信部１１の他に内部機器１２’と当該内部機器１２’のクロック速度を制御する動作クロック速度制御部１３を備えている。動作クロック速度制御部１３には、シリアルクロック線（ＳＣＬ）とシリアルデータ線（ＳＤＡ）が接続され、動作クロック速度制御部１３と内部機器１２’とは指示信号線（Ｓ）によって接続されている。
【００２５】
内部機器１２’は、図４で説明したのと同様に外部機器２との間で双方向のＩ２Ｃ通信を実行する。通信を実行するに際して、動作クロック速度制御部１３は、シリアルクロック信号ＳＣＬのレベルがＨレベルに維持されている状態の時に、シリアルデータ信号ＳＤＡのレベルがＨレベルからＬレベルに変化したこと（スタートコンディション）を検知すると、内部機器１２’の動作クロック速度を上げるように制御する。他方、動作クロック速度制御部１３は、上記のスタートコンディションから始まるＩ２Ｃ通信に係わる一連の処理が終了した時点で内部機器１２’の動作クロック速度を元の状態に下げるように、制御する。
【００２６】
動作クロック速度制御部１３は、様々な回路構成、例えば、Ｄフリップフロップ（Delay Flip-Flop）回路を採用することができる。この場合、Ｄフリップフロップ回路を、信号の立ち下がりエッジ動作型に構成する。また、シリアルクロック信号ＳＣＬを、前記回路のデータ入力端子に入力し、シリアルデータ信号ＳＤＡを前記回路のクロック入力端子に入力する。そして、前記回路の出力立ち上がりで、前記指示信号Ｓを出力する（割り込みを発生）。
【００２７】
上記した内部機器１２’における動作クロック速度の制御について、図２に示すタイミングチャートを参照しながら詳細に説明する。ここで、図５で説明したように、外部機器２からのシリアルクロック信号ＳＣＬのＹ１とシリアルデータ信号ＳＤＡのＹ２により、スタートコンディションが実行されたとする。
【００２８】
動作クロック速度制御部１３は、符号Ｘ１でスタートコンディションが実行されると同時に、このスタートコンディションを検知する。これにより、動作クロック速度制御部１３は、符号Ｘ２で示すように、内部機器１２’に、動作クロック速度を上げるように指示する指示信号（割り込み信号）を出力する。前記指示信号を受信した内部機器１２’は、符号Ｘ３で示すように、当該機器１２’の動作クロック速度を上げて（動作クロック速度：低速→高速）、通信および通信内容に伴う一連の処理を実行する。
【００２９】
その後、符号Ｘ４で示すように、外部機器２からのＩ２Ｃ通信はストップコンディションによって終了する。内部機器１２’は、通信終了後もその通信内容により、必要に応じて高速処理を実行し、高速処理が終了した時点で動作クロック速度制御部１３は、符号Ｘ５で示すように、内部機器１２’に、動作クロック速度を元の状態に下げるように指示する指示信号を出力する（前記動作クロック速度を上げるように指示する指示信号のレベルをＬレベルにする）。
前記指示信号を受信した内部機器１２’は、符号Ｘ６で示すように、当該機器１２’の動作クロック速度を元の状態に下げて（動作クロック速度：高速→低速）、省電力状態にする。
【００３０】
内部機器１２’における動作クロック速度の制御処理フローについて、図３に示すフロー図を参照しながら詳細に説明する。
動作クロック速度制御部１３が、スタートコンディションを検知すると（ステップＳ１）、内部機器１２’に、動作クロック速度を上げるように指示する指示信号を出力する。前記指示信号を受信した内部機器１２’は、当該機器１２’の動作クロック速度を上げる（ステップＳ２）。その後、スタートコンディションの実行が終了する（ステップＳ３）。
【００３１】
内部機器１２’は、外部機器２が送信したデータを受信し（ステップＳ４）、その後、内部機器１２’が、受信したデータを解析し応答する必要があると判定すると（ステップＳ５）、ＡＣＫを外部機器２に返信する（ステップＳ６）。以後、内部機器１２’は、Ｉ２Ｃデータ受信を継続する（ステップＳ７）。
【００３２】
その後、ストップコンディションによってＩ２Ｃ通信が終了すると（ステップＳ８）、内部機器１２’は高速処理を終了する場合もあるが、通信内容により必要に応じてさらに高速でデータ処理を行う必要がある場合もある。いずれにせよ、内部機器１２’が高速処理を終了した時点で自らの動作クロック速度を下げるか、または動作クロック速度制御部１３へ高速処理終了を知らせる出力をおこない、この出力を受けた動作クロック速度制御部１３が内部機器１２’へ動作クロック速度を下げるように指示する指示信号を出力する。前記指示信号を受信した内部機器１２’は、当該機器１２’の動作クロック速度を元の状態に下げる（ステップＳ９）。以上で、外部機器２と内部機器１２’との、Ｉ２Ｃデータ通信と通信内容に伴う内部機器１２’の一連の高速処理が完了する（ステップＳ１０）。
【００３３】
このようにすることで、外部機器２と内部機器１２’間においてＩ２Ｃ通信と通信内容にともなう一連に高速処理を行わない間は動作クロック速度を低くして省電力を図ることができる。他方、外部機器２と内部機器１２’との間で、Ｉ２Ｃ通信と通信内容にともなう一連の高速処理を実行する間は動作クロック速度を上げることができるので、クロックストレッチを発生することなく外部機器に対応させることができる。
【符号の説明】
【００３４】
１，１０…光データリンク、１１…光信号送受信部、１２，１２’…内部機器、１３…動作クロック速度制御部、２…外部機器。
【図１】
2010166309.tif 000003
【図２】
2010166309.tif 000004
【図３】
2010166309.tif 000005
【図４】
2010166309.tif 000006
【図５】
2010166309.tif 000007
【図６】
2010166309.tif 000008
【図７】
2010166309.tif 000009
【図８】
2010166309.tif 000010