(57)【特許請求の範囲】
【請求項１】
第２の制御部を制御して前記第２の制御部と通信する第１の制御部と、
前記第１の制御部の制御に従って前記第１の制御部との間で、少なくとも１つのデータ線を用いて半二重通信を行う第２の制御部とを有し、
前記第２の制御部は、前記通信が中断される場合に、前記第１の制御部からの制御に応答して、前記データ線へのデータの送信を行うが受信を行わない出力モードで停止し、
前記第１の制御部は、前記通信を中断する場合に、前記第２の制御部を前記出力モードとした後、前記第２の制御部に供給される動作クロックを停止することにより、前記第２の制御部を停止させる、
情報処理装置。
【請求項２】
前記第２の制御部は、前記通信が再開される場合に、前記第１の制御部からの制御に応答して、前記データの受信を行うが送信を行わない待機モードに遷移する、
請求項１に記載の情報処理装置。
【請求項３】
前記第１の制御部は、前記通信を再開する場合に、前記第２の制御部への動作クロックの供給を再開すると共に、前記第２の制御部を前記待機モードに遷移させる、
請求項２に記載の情報処理装置。
【請求項４】
前記第２の制御部は、前記データ線によるデータの送受信が所定の時間中断した場合、前記待機モードに遷移するタイムアウト機能を有し、
前記第１の制御部は、一定時間毎に、前記第２の制御部を前記出力モードで停止させる処理を行う、
請求項２又は３いずれか１項に記載の情報処理装置。
【請求項５】
前記第１の制御部は、前記タイムアウトが発生する毎に、前記第２の制御部を前記出力モードで停止させる処理を行う、
請求項４に記載の情報処理装置。
【請求項６】
前記第１の制御部は、前記タイムアウトが発生する前に、前記第２の制御部を前記待機モードに遷移させる処理と、前記第２の制御部を前記出力モードで停止させる処理とを行う、
請求項４に記載の情報処理装置。
【請求項７】
通信元制御部が通信先制御部を制御して前記通信先制御部と通信し、前記通信先制御部は前記通信元制御部の制御に従って前記通信先制御部との間で通信する場合において、
前記通信先制御部との間で少なくとも１つのデータ線を用いて行われる半二重通信が中断される場合に、
前記データ線へのデータの送信を行うが受信を行わない出力モードで停止するよう前記通信先制御部を制御し、
前記通信先制御部を前記出力モードとした後、前記通信先制御部に供給される動作クロックを停止することにより、前記通信先制御部を停止するよう前記通信先制御部を制御する、
情報処理方法。
【請求項８】
前記通信が再開される場合に、前記データの受信を行うが送信を行わない待機モードに遷移するよう前記通信先制御部を制御する、
請求項７に記載の情報処理方法。
【請求項９】
前記通信を再開する場合に、前記通信先制御部への動作クロックの供給を再開すると共に、前記通信先制御部を前記待機モードに遷移させる、
請求項８に記載の情報処理方法。
【請求項１０】
所定の動作をコンピュータに実行させるためのプログラムであって、
通信元制御部が通信先制御部を制御して前記通信先制御部と通信し、前記通信先制御部は前記通信元制御部の制御に従って前記通信先制御部との間で通信する場合において、
前記通信先制御部との間で少なくとも１つのデータ線を用いて行われる半二重通信が中断される場合に、前記データ線へのデータの送信を行うが受信を行わない出力モードで停止するよう前記通信先制御部を制御し、
前記通信先制御部を前記出力モードとした後、前記通信先制御部に供給される動作クロックを停止することにより、前記通信先制御部を停止するよう前記通信先制御部を制御する、
処理をコンピュータに実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関し、特にデータ線に予期せぬ波形変動が発生してもデバイスが誤動作する可能性を抑制できる情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
情報処理装置に実装されている２つの電子回路（デバイス）間の通信方式として、少なくとも１本のデータ線を通信路とする半二重通信方式が多く利用されている。デバイス間通信は、例えば、マイクロプロセッサ等のコントローラが周辺デバイスを制御する際に利用される。例えば、Ｉ２Ｃは、Ｐｈｉｌｉｐｓ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒｓにより発明された、シリアルクロック線ＳＣＬ及びシリアルデータ線ＳＤＡからなる２線インタフェースによる半二重双方向通信方式である。Ｉ２Ｃにおいては、ＳＣＬ及びＳＤＡにより接続されたマスタデバイス及び１以上のスレーブデバイスが、ＳＤＡに対し交互にデータを出力することによって半二重双方向通信を実現している。すなわち、マスタデバイスがＳＤＡ上にデータを出力しているときはスレーブデバイスがその信号を入力として取込み、スレーブデバイスがＳＤＡ上にデータを出力しているときはマスタデバイスがその信号を入力として取込む。Ｉ２Ｃでは、常にマスタデバイスがデータ伝送を開始する。マスタデバイスは、スレーブデバイスに対し、ＳＣＬ及びＳＤＡを介して、Ｉ２Ｃのデータ伝送開始通知信号であるスタートコンディションを送出する。スレーブデバイスは、ＳＣＬ及びＳＤＡを介してスタートコンディションを受信すると、それに続いてマスタデバイスから送信される命令を受信し、その命令に応じた動作を行う。このように、ＩＣ２におけるスレーブデバイスは、動作を行う際にまずスタートコンディションを受信する必要がある。そこで、スレーブデバイスは、データ伝送を行っていない待機状態にあるときは、ＳＣＬ及びＳＤＡにより伝送されるスタートコンディションを受信できるよう、ＳＣＬ及びＳＤＡに流れる電気信号を常に内部に取込み監視している。
【０００３】
本件の発明者は、以下に述べるように、ＳＣＬ及びＳＤＡを伝搬する信号に対する予期せぬ波形変動が発生した場合の誤動作の防止について検討を行った。予期せぬ波形変動とは、例えば外来ノイズや部分的な電気故障によるＳＣＬ及びＳＤＡを伝搬する信号に対する電気的変動である。また、波形変動は、装置電源において瞬間的な停電（瞬停）を含む停電が発生し内部のデバイス電源電圧が低下した場合の過渡現象によるマスタデバイスの挙動、及び電源変動によっても生じ得る。
【０００４】
例えば、瞬停を含む停電などによりシステムの電源電圧が低下し、電源電圧がマスタデバイスの正常動作が保証される範囲を下回るレベルに至ると、マスタデバイスは予測不能な挙動を示すことがある。このような状況下では、マスタデバイスがＳＣＬ及びＳＤＡに予期せぬ波形変動を生じさせる可能性がある。具体例として、マイクロコンピュータをマスタデバイスとするシステムのシステム電源が停止した場合を想定する。電源電圧は時間と共に低下してゆき、やがてマスタデバイスの動作が保証される電源電圧レベルの下限Ａに到達する。その後さらに電源電圧が低下しつづけ、電圧レベルＢまで達すると、マスタデバイスの機能は完全に失われる。この電圧レベルＡと電圧レベルＢの間において、マスタデバイスは予測不能な挙動をとり得る。そのとき、マスタデバイスは、ＳＣＬ及びＳＤＡの電気信号に何らかの変動を発生させてしまう可能性がある。
【０００５】
一方、スレーブデバイスは、一般に高い汎用性が求められるため、マスタデバイスに比べて低い電源電圧でも動作するよう設計されているものが多い。そのため、上述のようにマスタデバイスが予測不能な挙動を示し得る電源電圧の範囲であっても、スレーブデバイスは正常に動作しつづけることが多い。スレーブデバイスは、通常、ＳＣＬ及びＳＤＡの電気的状態を常に内部へ取込み、これを監視している。そのため、ＳＣＬ及びＳＤＡに発生した波形変動が偶然にも、例えば上述のスタートコンディションのような、Ｉ２Ｃの制御信号のパターンと合致してしまった場合は、スレーブデバイスが誤動作する可能性がある。特に、スレーブデバイスがライト（書込み）を意味する制御信号を誤検出した場合には、そのスレーブデバイスはＳＤＡの波形変動をデータとして内部回路に取込み、その誤ったデータを内部に書込むため、システム上、深刻な問題が発生する可能性がある。一例として、スレーブデバイスとしてのＲＴＣが制御信号を誤検出する場面を示す。ＲＴＣとは、内部にカレンダ情報をもつスレーブデバイスである。典型的には、ＲＴＣは、マスタデバイスとしてのマイクロコンピュータがカレンダ情報の書込み及び読出しを行うために用いられる。ＲＴＣは一般に、幅広い電源電圧で動作できる。また、ＲＴＣは、専用のバックアップ電源を備えていれば、システム電源の停止後もカレンダ情報を保持したまま長時間稼働することができる。よって、たとえシステム電源電圧が低下しても、ＲＴＣは正常に動作し、ＳＣＬ及びＳＤＡを監視しつづけることが多い。このようなＲＴＣと上述のマイクロコンピュータとを含むシステムにおいて、システム電源電圧が低下した場合、マイクロコンピュータが上述のようにＳＣＬ及びＳＤＡ上に何らかの波形変動を発生させる可能性があり、ＲＴＣはその波形の入力信号をＩ２Ｃの制御信号と誤解釈し、ＲＴＣが誤動作する恐れがある。
【０００６】
ＳＣＬ及びＳＤＡに予期せぬ波形変動が発生する別の原因として、外部からのノイズがある。スレーブデバイスは、データ伝送を行わない状態すなわち待機状態では、ＳＣＬ及びＳＤＡからの信号が入力されている状態にある。このとき、デバイスのＳＣＬ、ＳＤＡピンは電気的には高インピーダンス状態にある。（一般に、デバイス外部回路において数キロΩの抵抗を介してシステム電源へ接続することにより、高電圧状態を保っている）。この状態においては、スレーブデバイスはＳＣＬ及びＳＤＡの外部からの微小な電流印加に影響を受けやすい。すなわち、Ｉ２Ｃインタフェースはノイズ耐力の低いデータ伝送インタフェースといえる。したがって、このシステムを含む装置の内部の電気部品から発生するノイズや、電源から装置内部へ伝播するノイズ、及び静電気や雷など外部からの高電気エネルギーの入力によるノイズなど、さまざまなノイズにより、ＳＣＬ及びＳＤＡの波形変動は容易に発生し得る。このようなノイズによるランダムな波形変動が、Ｉ２Ｃの制御信号に合致してしまう可能性がある。
【０００７】
かかる問題に対して、特開２００４−２５８８７９号公報では、ライトイプロテクト信号及びチップセレクト信号などの制御信号をデータ伝送インタフェースに追加することにより、誤書込みを保護する方法が提案されている。例えば、データ伝送インタフェース上はライトシーケンスを検出したとしても、チップセレクト信号や、ライトプロテクト信号がデータ書込み条件に合致する信号レベルでなければ、データ伝送インタフェースのライトシーケンスは誤検出とみなし、データ書き込みは行わないといった方法である。しかし、チップセレクト信号やライトプロテクト信号などのデバイス選択のための制御信号を追加すると、デバイスのピン数が増加し、デバイス形状及びそのデバイスを使用する装置の小型化を阻害する。またデバイス自体のコストもあがってしまう。さらに、このような方法を採用するには、マスタデバイス及びスレーブデバイスの双方に同様の機能を実装する必要がある。
【０００８】
また、特開２００３−３０８２５７号公報では、停電や瞬停を検出すると、マスタデバイスがスレーブデバイスに対してＳＴＯＰコンディションを送出することで、スレーブデバイスを確実に待機状態とし、電源異常復旧時にスレーブデバイスを安定動作できるようにした構成が提案されている。しかしながら、この場合もスレーブデバイスは待機状態であるため、この間にＩ２ＣのＳＣＬ及びＳＤＡに波形変動が発生した場合、スレーブデバイスはその波形変動をＳＣＬ及びＳＤＡの信号変化と解釈してしまう。したがって、波形変動がＩ２Ｃ制御信号に合致してしまった場合には、それに応じた誤動作を起こしてしまう可能性がある。例えば、Ｉ２Ｃのライトシーケンスを誤検出したならば、ＳＣＬ及びＳＤＡの状態がスレーブデバイスの内部へデータとして取込まれてしまい、誤書込みが発生する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−２５８８７９号公報
【特許文献２】特開２００３−３０８２５７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述のように、背景技術にかかる、マスタデバイス及びスレーブデバイスが半二重通信を用いる方法においては、これらデバイスを接続するデータ線に予期せぬ波形変動が発生した場合、デバイスが誤動作する可能性があるという問題点があった。
【００１１】
本発明は、このような問題点を解決するためになされたものであり、少なくとも１つのデータ線を用いて互いに半二重通信を行う２つのデバイスを含む情報処理装置において、当該データ線に予期せぬ波形変動が発生したとしても、デバイス選択のための制御信号線の追加を必要とすることなくデバイスが誤動作する可能性を抑制できる情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明にかかる情報処理装置は、第１の制御部と、前記第１の制御部との間で、少なくとも１つのデータ線を用いて半二重通信を行う第２の制御部とを有し、前記第２の制御部は、前記通信が中断される場合に、前記第１の制御部からの制御に応答して、前記データ線へのデータの送信を行うが受信を行わない出力モードで停止するものである。
【００１３】
本発明にかかる情報処理方法は、通信先制御部との間で少なくとも１つのデータ線を用いて行われる半二重通信が中断される場合に、前記データ線へのデータの送信を行うが受信を行わない出力モードで停止するよう前記通信先制御部を制御するものである。
【００１４】
また、本発明にかかる情報処理プログラムは、所定の動作をコンピュータに実行させるためのプログラムであって、通信先制御部との間で少なくとも１つのデータ線を用いて行われる半二重通信が中断される場合に、前記データ線へのデータの送信を行うが受信を行わない出力モードで停止するよう前記通信先制御部を制御する処理をコンピュータに実行させるものである。
【発明の効果】
【００１５】
本発明により、少なくとも１つのデータ線を用いて互いに半二重通信を行う２つのデバイスを含む情報処理装置において、当該データ線に予期せぬ波形変動が発生したとしても、デバイス選択のための制御信号線の追加を必要とすることなくデバイスが誤動作する可能性を抑制できる情報処理装置、情報処理方法及び情報処理プログラムを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態１にかかる情報処理装置の構成を示す図である。
【図２】本発明の実施の形態２にかかる情報処理装置の構成を示す図である。
【図３】本発明の実施の形態２にかかる情報処理装置の動作を示す図である。
【図４】本発明の実施の形態２にかかる情報処理装置の動作を示す図である。
【図５】本発明の実施の形態２にかかる情報処理装置の処理フローを示す図である。
【図６】本発明の実施の形態２にかかる情報処理装置の処理フローを示す図である。
【図７】本発明の実施の形態３にかかる情報処理装置の処理フローを示す図である。
【図８】本発明の実施の形態３にかかる情報処理装置の処理フローを示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００１８】
実施の形態１
まず、図１を用いて、本発明の実施の形態１にかかる情報処理装置１０００の基本的構成について説明する。
【００１９】
第１の制御部１０１及び第２の制御部２０１は、データ線３００を介して相互に接続されている。第１の制御部１０１及び第２の制御部２０１は、データ線３００を用いて半二重通信を行う。第１の制御部１０１は、データ線３００を用いた半二重通信を中断する場合に、第２の制御部２０１を制御する。第２の制御部２０１は、データ線３００を用いた半二重通信が第１の制御部１０１によって中断される場合に、第１の制御部１０１からの制御に応答して、データ線３０１へのデータの送信を行うが受信を行わない出力モードで停止する。データ線３０１へのデータの送信を行うが受信を行わない出力モードは、つまり、半二重通信における送信を行う動作モードである。
【００２０】
上述したように、本実施の形態は、第１の制御部１０１及び第２の制御部２０１の間の半二重通信が中断する場合に、第２の制御部２０１が出力モード（半二重通信における送信を行う動作モード）に維持される。これにより、半二重通信が中断されているときに、システム設計上意図しないデータ線３００の波形変動が生じた場合にも、第２の制御部２０１は送信モードであるから、第２の制御部２０１がデータ線３００から誤ってデータを取込むことがない。
【００２１】
また、本実施の形態においては、デバイス選択のための制御信号線（e.g. ライトイプロテクト信号及びチップセレクト信号など）を第１の制御部１０１と第２の制御部２０１の間に追加することを必要としない。従って、本実施の形態は、第２の制御部２０１に対しては特別の改造や機能変更を必要としない。
【００２２】
実施の形態２
本実施の形態では、上述した実施の形態１をＩ２Ｃインタフェースによって半二重通信を行う情報処理装置に適用する場合について詳細に説明する。図２を用いて、本発明の実施の形態２にかかる情報処理装置の具体的な構成例について説明する。
【００２３】
第１の制御部としてのマスタデバイス１００及び第２の制御部としてのスレーブデバイス２００は、いずれもＩ２Ｃインタフェースを備えた電子デバイスである。マスタデバイス１００及びスレーブデバイス２００は、データ線３００により相互に接続されている。データ線３００は、シリアルクロック線ＳＣＬ３０１及びシリアルデータ線ＳＤＡ３０２を含んでおり、Ｉ２Ｃによるデータ伝送を行うことができる。
【００２４】
Ｉ２Ｃとは、シリアルクロック線ＳＣＬ３０１及びシリアルデータ線ＳＤＡ３０２を用いる半二重双方向通信方式である。ＳＣＬ３０１はクロック信号を伝送するバスである。マスタデバイス１００及びスレーブデバイス２００は、このクロック信号が示すタイミングに従ってデータ通信を行う。ＳＤＡ３０２はデータ信号及び制御信号を伝送するためのバスである。マスタデバイス１００及びスレーブデバイス２００は、ＳＤＡ３０２に対し交互にデータを出力することによって半二重双方向通信を行う。
【００２５】
マスタデバイス１００は、Ｉ２Ｃ制御部１０１、メモリ部１０２及びＣＰＵ１０３を有している。典型的には、Ｉ２Ｃ制御部１０１、メモリ部１０２及びＣＰＵ１０３はいずれもハードウェアによって構成される。Ｉ２Ｃ制御部１０１は、ＳＣＬ３０１及びＳＤＡ３０２を制御することでＩ２Ｃによるデータ伝送を行う装置である。ＣＰＵ１０３は、制御プログラムに基づいて各種処理を実行する中央制御装置であり、Ｉ２Ｃ制御部１０１に対してＩ２Ｃ開始命令を送出することにより、Ｉ２Ｃ制御部１０１にＩ２Ｃによるデータ伝送を開始させることができる。メモリ部１０２は、Ｉ２Ｃによるデータ伝送で使用するデータを格納する記憶装置である。データ送信の際、Ｉ２Ｃ制御部１０１はメモリ部１０２より伝送データを取出しＳＤＡ３０２を用いて伝送する。データ受信の際は、Ｉ２Ｃ制御部１０１はスレーブデバイスからの伝送データをＳＤＡ３０２より受信しメモリ部１０３へ格納する。
【００２６】
スレーブデバイス２００は、Ｉ２Ｃ制御部２０１、メモリ部１０２及びデバイス機能部２０３を有している。Ｉ２Ｃ制御部２０１及びメモリ部１０２は、マスタデバイス１００と同様のものである。デバイス機能部２０３はＩ２Ｃとは独立して動作し、デバイス特有の機能を実現することができる装置である。なお、スレーブデバイス２００においては、Ｉ２Ｃ制御部２０１に対して命令を出す機能ブロック（マスタデバイス１００のＣＰＵ１０３に相当）は存在しない。したがって、Ｉ２Ｃ制御部２０１が能動的にＩ２Ｃによるデータ伝送を開始することはない。Ｉ２Ｃ制御部２０１は、マスタデバイス１００のＩ２Ｃ制御部１０１から、ＳＣＬ３０１及びＳＤＡ３０２を介してＩ２Ｃデータ伝送を開始すべき旨の制御信号を受信したときに、データ伝送を開始する。
【００２７】
ここで、Ｉ２Ｃ制御部１０１及び２０１間でデータ伝送を行う方法ついて説明する。
Ｉ２Ｃ制御部１０１及び２０１は、ＳＤＡ３０２を用いて半二重方式によるデータ伝送を行う。半二重方式とは、同時に双方からデータを送信することはできず、送信側と受信側とが所定の方法で送信順序を決定し、交互にデータを送信することにより半二重双方向通信を行う方式である。Ｉ２Ｃ制御部１０１及び２０１は、ＳＤＡ３０２へ交互にデータを出力することによって、半二重双方向通信を行う。ＳＤＡ３０２へデータ出力を行わないとき、Ｉ２Ｃ制御部１０１及び２０１は、ＳＤＡ３０２を監視して信号の入力に備える。一方、ＳＤＡ３０２へデータ出力を行っているとき、Ｉ２Ｃ制御部１０１及び２０１は、ＳＤＡ３０２の監視を行わない。すなわち、Ｉ２Ｃインタフェースを備えるデバイスは、データ出力中であれば、たとえＳＤＡ３０２に波形変動が生じたとしても、ＳＤＡ３０２上の信号を内部へデータとして取込むことはない。
【００２８】
また、Ｉ２Ｃ制御部１０１及び２０１は常に、ＳＣＬ３０１上を流れるクロック信号が示すタイミングに従ってデータ伝送を行う。マスタデバイス１００のＩ２Ｃ制御部１０１が、クロック信号を生成してＳＣＬ３０１に送出する。スレーブデバイス２００のＩ２Ｃ制御部２０１は、クロック信号を生成することはなく、ＳＣＬ３０１を介してマスタデバイス１００のクロック信号を受信するのみである。もしＩ２Ｃ制御部１０１がクロック信号の送出を停止した場合、データ通信は中断することになる。すなわち、Ｉ２Ｃ制御部１０１及び１０２は、ＳＤＡ３０２に対するデータの入出力制御を停止する。もしクロック信号が再開すれば、Ｉ２Ｃ制御部１０１及び１０２は、中断された個所からデータ伝送を再開する。一般に、Ｉ２Ｃにおいてデータ伝送が中断される事態は考えにくいが、本発明においては、ＣＰＵ１０３がＩ２Ｃ制御部１０１に中断命令を出すことにより、Ｉ２Ｃ制御部１０１がデータ伝送を中断することを可能としている。
【００２９】
つづいて、図３を用いて、Ｉ２Ｃ制御部１０１及び２０１が、Ｉ２Ｃの通信方式に従ってデータ伝送を行う手順について具体的に説明する。図３は、ＳＣＬ３０１及びＳＤＡ３０２上の信号の状態を示したチャートである。
【００３０】
Ｉ２Ｃ制御部１０１又は２０１は、ＳＣＬ３０１及びＳＤＡ３０２の電圧状態をＨｉｇｈ又はＬｏｗのいずれかの状態に変化させることにより、通信相手に１ビットの情報を伝送することができる。ＳＣＬ３０１及びＳＤＡ３０２は、どのデバイスからも制御されていないときは、Ｈｉｇｈ状態に保たれる（待機状態）。
【００３１】
マスタデバイス１００のＩ２Ｃ制御部１０１は、データ伝送を開始する際、ＳＴＡＲＴ  ＣＯＮＤＩＴＩＯＮ（ＳＴＡＴ）信号をＳＤＡ３０２に送出する。具体的には、Ｉ２Ｃ制御部１０１は、ＳＣＬ３０１にクロック信号が送出されている状態のもとで、ＳＤＡ３０２の電圧をＨｉｇｈからＬｏｗへ変化させる（ＳＴＡＴ）。続いて、Ｉ２Ｃ制御部１０１は、ＡＤＤＲＥＳＳ及びＣＯＭＭＡＮＤをＳＤＡ３０２に送出する。ここでＡＤＤＲＥＳＳとは、通信相手となるスレーブデバイス２００を識別するために使用されるビット列である。ＣＯＭＭＡＮＤとは、スレーブデバイス２００のＩ２Ｃ制御部２０１に対し、この通信がリードアクセス（読込み）又はライトアクセス（書込み）のいずれを要求するものであるかを通知するためのビットである。具体的には、Ｈｉｇｈの場合はリード、Ｌｏｗの場合はライトであることを示す。
【００３２】
スレーブデバイス２００のＩ２Ｃ制御部２０１は、ＳＣＬ３０１及びＳＤＡ３０２を監視し、ＳＴＡＴを検出すると、マスタデバイス１００のＩ２Ｃ制御部１０１がＩ２Ｃデータ伝送を開始したことを認識する。また、スレーブデバイス２００は、ＳＴＡＴに続けて伝送されてくるＡＤＤＲＥＳＳが自身のアドレスと一致するか判定し、一致した場合は、それ以降に伝送されてくるＣＯＭＭＡＮＤに従って動作する。スレーブデバイス２００のＩ２Ｃ制御部２０１は、ＣＯＭＭＡＮＤを受信したならば、所定のタイミングで、承認を示すＡＣＫ信号をマスタデバイス１００のＩ２Ｃ制御部１０１へ伝送する。具体的には、ＳＤＡ３０２をＬｏｗへ制御する。この後、ＣＯＭＭＡＮＤがライトであった場合には、マスタデバイス１００がスレーブデバイス２００に対して書込みデータを伝送する。ＣＯＭＭＡＮＤがリードであった場合は、スレーブデバイス２００がマスタデバイス１００に対して読出しデータを伝送する。データの伝送が終了すると、データを取込む側のデバイス（ライトの場合はスレーブデバイス２００、リードの場合はマスタデバイス１００）が、データ受信確認を意味するＡＣＫをＳＤＡ３０２に送出する。
【００３３】
マスタデバイス１００のＩ２Ｃ制御部１０１は、データの伝送が終了すると、ＳＴＯＰ  ＣＯＮＤＩＴＩＯＮ（ＳＴＯＰ）信号をＳＤＡ３０２に送出する。具体的には、Ｉ２Ｃ制御部１０１は、ＳＣＬ３０１をＨｉｇｈに設定したうえで、ＳＤＡ３０２をＬｏｗからＨｉｇｈへ変化させる（ＳＴＯＰ）。
【００３４】
スレーブデバイス２００のＩ２Ｃ制御部２０１は、ＳＴＯＰを検出すると、待機状態となり、マスタデバイス１００が次のＩ２Ｃデータ伝送を開始するのを待つ。
【００３５】
なお、図３においてスレーブデバイス出力期間Ａとして示した期間は、スレーブデバイス２００がＳＤＡ３０２にデータを出力している期間を示す。また、スレーブデバイス出力期間Ｂは、ＣＯＭＭＡＮＤがリードであった場合において、スレーブデバイス２００がＳＤＡ３０２にデータを出力している期間を示す。スレーブデバイス出力期間Ａ及びＢで示した期間以外は、すべてスレーブデバイス２００がＳＤＡ３０２のデータを内部に取込んでいる期間である。
【００３６】
また、Ｉ２Ｃによるデータ伝送においては、マスタデバイス１００が常にデータ伝送の開始及び終了を制御する。また、データ伝送は常にマスタデバイス１００が制御するクロックバスＳＣＬ３０１が示すタイミングにより行われる。このように、スレーブデバイス２００は、ＳＣＬ３０１及びＳＤＡ３０２からの入力信号に依存して動作している。
【００３７】
このように、スレーブデバイス２００は、ＳＣＬ３０１及びＳＤＡ３０２からの入力信号により挙動が影響されやすいという性質を持つ。そこで、本実施の形態では、ＳＣＬ３０１及びＳＤＡ３０２に予期しない波形変動が生じた場合であっても、それに影響されないスレーブデバイス２００の制御方法を提案する。
【００３８】
図４を用いて、本実施の形態にかかるスレーブデバイス２００の制御方法を説明する。図４は、一般的なライトシーケンス及びリードシーケンスと、本実施の形態にかかるリードシーケンスとを模式化し、比較したものである。（１）は、マスタデバイス１００がスレーブデバイス２００にデータを書込む、一般的なライトシーケンスである。（２）は、マスタデバイス１００がスレーブデバイス２００からデータを読出す、一般的なリードシーケンスである。そして（３）は、本実施の形態にかかるリードシーケンスである。各シーケンスとも、スレーブデバイス２００がＳＤＡ３０２にデータを出力している期間を、網掛けで示している。
【００３９】
（１）のライトシーケンスでは、スレーブデバイス２００は、ライトコマンド受付け後のＡＣＫ応答期間及びライトデータ受付け後のＡＣＫ応答期間に、ＳＤＡ３０２にデータを出力する。
【００４０】
また、（２）のリードシーケンスにおいては、スレーブデバイス２００は、リードコマンド受付け後のＡＣＫ応答期間及びその後のリードデータ伝送期間に、ＳＤＡ３０２にデータを出力する。
【００４１】
一方、（３）の本実施の形態にかかるリードシーケンスにおいては、Ｉ２Ｃ制御部１０１は、Ｉ２Ｃ制御部２０１がリードコマンドを受付けた後、ＳＣＬ３０１の制御を停止する。先に説明したように、Ｉ２Ｃでのデータ伝送は、すべてマスタデバイス１００がＳＣＬ３０１を制御することにより進行している。よって、ＳＣＬ３０１の制御が停止している期間、Ｉ２Ｃ制御部２０１によるリードデータ伝送は停止する。図中の破線部は、リードデータ伝送が進行せず停止状態であることを示している。このとき、Ｉ２Ｃ制御部２０１はリードデータ伝送中の状態、すなわち、ＳＤＡ３０２に対するデータ出力中の状態に保たれている。この状態のもとでは、Ｉ２Ｃ制御部２０１はＳＤＡ３０２を監視しない。すなわち、Ｉ２Ｃ制御部２０１は、ＳＤＡ３０２へデータ出力を行っている間は、たとえＳＤＡ３０２に波形変動が生じたとしても、ＳＤＡ３０２上の信号を内部へデータとして取込むことはない。また、ＳＣＬ３０１に波形変動が生じ、スレーブデバイス２００がそれをクロックとして誤検出した場合であっても、スレーブデバイス２００はそのクロックタイミングに合わせてＳＤＡ３０２上にデータを出力するだけであり、デバイス内部へ誤ってデータを取込むという事態は生じない。
【００４２】
ここで、本実施の形態にかかるリードシーケンス（３）が利用される場面について説明する。通常、データ伝送を行っていないマスタデバイス１００のＩ２Ｃ制御部１０１及びスレーブデバイス２００のＩ２Ｃ制御部２０１は、入力信号の待機状態にある。すなわち、Ｉ２Ｃ制御部２０１は、ＳＣＬ３０１及びＳＤＡ３０２の電気信号を内部に取込み監視しつづける。しかしながら、この状態ではＳＣＬ３０１及びＳＤＡ３０２の予期しない波形変動に対応できないことは、上述したとおりである。そこで、本実施の形態においては、データ伝送を行わない待機状態に入る際に、マスタデバイス１００のＩ２Ｃ制御部１０１が上述のリードシーケンス（３）を実行する。これにより、スレーブデバイス２００のＩ２Ｃ制御部２０１は、データ出力中の状態のまま停止する。Ｉ２Ｃ制御部２０１は、データ出力中は、ＳＤＡ３０２上の信号を内部へデータとして取込まない。したがって、たとえ待機中にＳＣＬ３０１及びＳＤＡ３０２に波形変動が生じたとしても、Ｉ２Ｃ制御部２０１は、誤ったデータを書込むなどの誤動作を行うことがない。
【００４３】
加えて、本実施の形態にかかるリードシーケンス（３）の効果が得られる期間について説明する。図４（２）によれば、スレーブデバイス２００はリードシーケンスにおいて、８ｂｉｔのデータを出力した後に、マスタデバイス１００からのＡＣＫ応答の待機状態に遷移する。例えばリードシーケンスの中断中、ＳＣＬ３０１に８ｂｉｔ分（クロック８サイクル分）の変動が生じると、この状態が発生し得る。このとき、スレーブデバイス２００のＩ２Ｃ制御部２０１は、ＳＤＡ３０２の信号を内部に取込み、入力信号を監視する。そのため、この時間において、スレーブデバイス２００は誤書込み防止の効果を失うようにみえる。しかし、このような場合であっても、本発明による効果は失われない。マスタデバイス１００が、ＡＣＫ応答として、リード継続を示す１（ＳＤＡ＝Ｈｉｇｈ）を伝送した場合には、スレーブデバイス２００は再度リードシーケンスを実行することになるからである。リードシーケンスを中断する際、マスタデバイスのＳＣＬ３０１及びＳＤＡ３０２は非制御状態となり、ＳＣＬ３０１及びＳＤＡ３０２はＨｉｇｈに保たれる。そのため、たとえリードシーケンスの中断中にＳＣＬ３０１に波形変動が発生してリードシーケンスが進行し、ＡＣＫ応答待ちの時間に至ったとしても、スレーブデバイス２００には、ＳＤＡ＝Ｈｉｇｈが入力される。すなわち、スレーブデバイス２００は、ＡＣＫ応答としてＳＤＡ＝Ｈｉｇｈが入力されたときと同じ状態となる。このため、スレーブデバイス２００は、リードシーケンスの継続命令がなされたものと認識し、再びリードシーケンスを実行する。したがって、ＳＣＬに波形変動が生じたケースでも、本発明による効果は継続して得られることとなる。
【００４４】
つづいて、図５のフローチャートを用い、本実施の形態にかかるリードシーケンスの動作についてさらに説明する。図５は、本実施の形態におけるマスタデバイス１００の動作を示すフローチャートである。
【００４５】
はじめに、マスタデバイス１００は待機状態にあるものとする（ステップＳ１０１）。マスタデバイス１００は、デバイス内部でＩ２Ｃ開始命令を生成し、Ｉ２Ｃデータ伝送を開始する（ステップＳ１０２）。具体的には、ＣＰＵ１０３が、Ｉ２Ｃ制御部１０１に対しＩ２Ｃ開始命令を出力する。Ｉ２Ｃ開始命令を受けたＩ２Ｃ制御部１０１は、ＳＣＬ３０１及びＳＤＡ３０２にＳＴＡＲＴ  ＣＯＮＤＩＴＩＯＮを出力する（ステップＳ１０３）。つづいて、Ｉ２Ｃ制御部１０１は、本発明の目的である誤書き込み防止を行いたい対象となるスレーブデバイス２００を指定したＡＤＤＲＥＳＳをＳＤＡ３０２に伝送する（ステップＳ１０４）。また、Ｉ２Ｃ制御部１０１は、ＣＯＭＭＡＮＤとしてリード（ＳＤＡ＝Ｈｉｇｈ）をＳＤＡ３０２に伝送する（ステップＳ１０５）。これにより、マスタデバイス１００はスレーブデバイス２００に対してリードシーケンスの実施を指示したこととなる。
【００４６】
スレーブデバイス２００のＩ２Ｃ制御部２０１は、リードコマンドを受付けた応答としてＡＣＫ（ＳＤＡ＝Ｌｏｗ）をＳＤＡ３０２に伝送する。マスタデバイス１００のＩ２Ｃ制御部１０１は、ＡＣＫ応答が正常に返送されたか否かを確認する（ステップＳ１０６）。スレーブデバイス２００からのＡＣＫ応答が確認できた場合には、マスタデバイス１００は内部でＩ２Ｃ中断命令を生成する（ステップＳ１０８）。具体的には、ＣＰＵ１０３が、Ｉ２Ｃ制御部１０１に対しＩ２Ｃ中断命令を出力する。Ｉ２Ｃ中断命令を受けたＩ２Ｃ制御部１０１は、ＳＣＬ３０１及びＳＤＡ３０２の制御を停止する（ステップＳ１０９）。
【００４７】
このとき、スレーブデバイス２００はマスタデバイス１００からのリードコマンドに応じデータ伝送を行っている最中であるから、スレーブデバイス２００のＩ２Ｃ制御部２０１は出力状態で停止する。この状態においては、外部要因によってＳＣＬ３０１及びＳＤＡ３０２に波形変動が生じたとしても、スレーブデバイス２００がそれを伝送データとして誤検出する可能性はない。例えば、ＳＣＬ３０１に波形変動が生じ、スレーブデバイス２００がそれをクロックとして誤検出した場合であっても、スレーブデバイス２００はそのクロックタイミングに合わせてＳＤＡ３０２上にデータを出力するだけであり、デバイス内部へ誤ってデータを取込むことはない。またＳＤＡ３０２に変動が生じた場合であっても、この状態のもとではＩ２Ｃ制御部２０１はＳＤＡ３０２を監視しないので、スレーブデバイス２００には影響がない。この結果、ＳＣＬ３０１及びＳＤＡ３０２のいずれに意図しない波形変動が生じたケースであっても、スレーブデバイスに対する誤書込みを防止することができる。
【００４８】
つぎに、図６のフローチャートを用いて、本実施の形態にかかるリードシーケンスの実施後に、再びスレーブデバイス２００を通常の待機状態（ＳＤＡ３０２を監視する状態）に戻す方法を説明する。図６は、マスタデバイス１００の動作を示すフローチャートである。
【００４９】
はじめに、ＳＣＬ３０１及びＳＤＡ３０２は停止した状態にあるとする（ステップＳ２０１）。ここで、マスタデバイス１００のＩ２Ｃ制御部１０１は、ＳＤＡ３０１をＬｏｗとし、かつＳＣＬ３０２において連続的にＨｉｇｈ、Ｌｏｗを切替えるトグル制御を行う。この制御により、Ｉ２Ｃ制御部１０１は、ＳＣＬ３０２に９回以上のクロックを供給する（ステップＳ２０２）。ここで、ＳＣＬ３０２に９回以上のクロックを供給するのは、本実施の形態では、スレーブデバイス２００が８ｂｉｔのリードデータをＳＤＡ３０２に出力した後、マスタデバイス１００が１ｂｉｔのＡＣＫ応答をＳＤＡ３０２に送出することにより、リードシーケンスが終了するからである（図４（２）参照）。マスタデバイス１００は、少なくとも９回のクロックを生成すれば、このＡＣＫ応答までリードシーケンスを進行させることができる。その後、マスタデバイス１００がＳＣＬ３０１及びＳＤＡ３０２によりＳＴＯＰ  ＣＯＮＤＩＴＩＯＮを伝送する（ステップＳ２０３）。これにより、スレーブデバイス２００及びマスタデバイス１００は共に待機状態へ戻る（ステップＳ２０４）。このように、マスタデバイス１００がＳＣＬ３０１の制御を再開することにより、スレーブデバイス２００のリードシーケンスを進行させ、スレーブデバイス２００のデータ伝送を終了させることが可能となる。
【００５０】
本実施の形態においては、マスタデバイス１００とスレーブデバイス２００の間の半二重通信が中断する場合に、スレーブデバイス２００のＩ２Ｃ制御部２０１が出力状態で状態維持される。これにより、システム設計上意図しないＳＣＬ３０１及びＳＤＡ３０２の波形変動を、スレーブデバイス２００が誤ってデータとして取込むこと、すなわち誤書き込みを防止できる。
【００５１】
また、本実施の形態においては、デバイス選択のための制御信号線（e.g. ライトイプロテクト信号及びチップセレクト信号など）をマスタデバイス１００とスレーブデバイス２００の間に追加することを必要としない。従って、本実施の形態は、スレーブデバイス２００に対しては特別の改造や機能変更を必要とせずに、既知のＩ２Ｃインタフェースを利用して、誤書込み防止という効果を与えることができる。
【００５２】
さらに、本実施の形態においては、データ出力状態で停止したスレーブデバイス２００に対する、通常状態（データ入力待ち状態）への復旧手段を備えたことにより、必要な期間だけ誤書込みを防止し、スレーブデバイス２００の他の機能への影響を最小限にすることができる。
【００５３】
実施の形態３
本発明の実施の形態では、上述した発明の実施の形態２の変形３について説明する。具体的には、本発明の実施の形態では、上述したスレーブデバイス２００がタイムアウト機能を有する場合に適応した改良について説明する。
【００５４】
実施の形態３の基本的構成は、実施の形態２と同様である。ただし、本実施の形態のスレーブデバイス２００は、タイムアウト機能を具備している。タイムアウト機能とは、典型的には、スレーブデバイス２００が、Ｉ２Ｃデータ伝送シーケンスが一定時間以上状態遷移がないことを検出し、自動的にＩ２Ｃ制御部を初期化し、待機状態へ戻る機能である。Ｉ２Ｃインタフェースを備えたスレーブデバイスには、このようなタイムアウト機能を備えるものが少なくない。
【００５５】
スレーブデバイス２００がこのようなタイムアウト機能を有している場合、マスタデバイス１００がリードシーケンスの途中でＳＣＬ３０１及びＳＤＡ３０２を停止し、スレーブデバイス２００のＩ２Ｃ制御部２０１を出力状態で維持したとしても、スレーブデバイス２００がタイムアウトを検出してしまい、Ｉ２Ｃ制御部２０１を自動的に入力待ち状態に戻してしまうことがあり得る。
【００５６】
このような場合には、マスタデバイス１００内に定周期タイマを備え、実施の形態２で説明したリードシーケンス（中断あり）（図５参照）を定周期的に実行することで、スレーブデバイス２００においてタイムアウトが発生しても、その後再びＩ２Ｃ制御部２０１を出力状態に維持することが可能である。
【００５７】
図７に、実施の形態３にかかるリードシーケンスを実行する場合のフローチャートを示す。図７は、マスタデバイス１００の動作を示すフローチャートである。
【００５８】
マスタデバイス１００は定周期タイマを監視し、タイマ満了を検出すると、実施の形態２に示したリードシーケンスを開始する（ステップＳ１１０）。以降、マスタデバイス１００は、図５に示した実施の形態２にかかるフローと同様の処理を行う。
【００５９】
このとき、マスタデバイス内の定周期タイマの満了時間は、スレーブデバイス２００のタイムアウト検出時間よりも長い時間で任意に決めてよい。ただし、スレーブデバイス２００のタイムアウト検出時間よりもわずかに長い時間とすることで、Ｉ２Ｃ制御部２０１を出力状態に保つ時間をより長くする効果を得ることができる。図８に、マスタデバイス１００の定周期タイマの満了時間と、スレーブデバイス２００が出力状態に保たれる時間との関係を示す。図８において、（１）は定周期タイマの満了時間がスレーブデバイス２００のタイムアウト時間よりも十分に長いケースを示している。この場合は、スレーブデバイス２００がタイムアウトにより入力待ち状態へ遷移してから、再び本実施の形態にかかる方法により出力状態が保たれるようになるまでの時間が長い。すなわち、スレーブデバイス２００が入力待ち状態にある時間が長くなる。一方、（２）は定周期タイマの満了時間とスレーブデバイス２００のタイムアウト時間とがほぼ等しいケースである。この場合、スレーブデバイス２００が出力状態に保たれる時間が長くなる。このため、本発明の目的である、外部からの波形変動による誤書込みの防止効果を、より効果的に享受することができる。
【００６０】
本実施の形態では、スレーブデバイス２００を通常状態へ復旧させるために、実施の形態２で説明した方法（図６参照）を取る必要はない。マスタデバイス１００が定周期タイマを停止し、本発明のリードシーケンス（中断あり）の実行を行わなければ、スレーブデバイス２００は自動的に通常状態に復旧する。
【００６１】
なお、マスタデバイス１００は、スレーブデバイス２００のタイムアウトを待たずに、自らスレーブデバイス２００のＩ２Ｃ制御部２０１を通常状態に復旧させた後、再度Ｉ２Ｃ制御部２０１を出力状態にして停止させることとしてもよい。具体的には、マスタデバイス１００は、定周期的に、実施の形態２で説明したスレーブデバイス２００を通常の待機状態（ＳＤＡ３０２を監視する状態）に戻す手順（図６参照）を実行し、つづけて、実施の形態２で説明したリードシーケンス（中断あり）（図５参照）を実行する。このとき、マスタデバイス１００は、定周期タイマの満了時間をスレーブデバイス２００のタイムアウト検出時間よりも短い時間に設定し、タイマ満了を検出して上述の処理を実行することが望ましい。
【００６２】
本実施の形態においては、定周期でのリードシーケンスを実施することで、スレーブデバイス２００がタイムアウト機能を有しているケースにおいても、誤書込みの防止という効果が得ることができる。
【００６３】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【００６４】
例えば、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００６５】
また、本発明にかかる情報処理装置は、必ずしも１つの筐体に実装されたものである必要はない。例えば、第１の制御部と第２の制御部とは離隔した装置に実装され、データバスやネットワーク回線等のデータ線を介して相互に接続されたものであってよい。
【００６６】
上記実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００６７】
（付記１）
第１の制御部と、
前記第１の制御部との間で、少なくとも１つのデータ線を用いて半二重通信を行う第２の制御部とを有し、
前記第２の制御部は、前記通信が中断される場合に、前記第１の制御部からの制御に応答して、前記データ線へのデータの送信を行うが受信を行わない出力モードで停止する
情報処理装置。
【００６８】
（付記２）
前記第１の制御部は、前記通信を中断する場合に、前記第２の制御部を前記出力モードとした後、前記第２の制御部に供給される動作クロックを停止することにより、前記第２の制御部を停止させる
付記１記載の情報処理装置。
【００６９】
（付記３）
前記第２の制御部は、前記通信が再開される場合に、前記第１の制御部からの制御に応答して、前記データの受信を行うが送信を行わない待機モードに遷移する
付記１乃至２いずれか１項記載の情報処理装置。
【００７０】
（付記４）
前記第１の制御部は、前記通信を再開する場合に、前記第２の制御部への動作クロックの供給を再開すると共に、前記第２の制御部を前記待機モードに遷移させる
付記１乃至３いずれか１項記載の情報処理装置。
【００７１】
（付記５）
前記第２の制御部は、前記データ線によるデータの送受信が所定の時間中断した場合、前記待機モードに遷移するタイムアウト機能を有し、
前記第１の制御部は、一定時間毎に、前記第２の制御部を前記出力モードで停止させる処理を行う
付記１乃至４いずれか一項記載の情報処理装置。
【００７２】
（付記６）
前記第１の制御部は、前記タイムアウトが発生する毎に、前記第２の制御部を前記出力モードで停止させる処理を行う
付記５記載の情報処理装置。
【００７３】
（付記７）
前記第１の制御部は、前記タイムアウトが発生する前に、前記第２の制御部を前記待機モードに遷移させる処理と、前記第２の制御部を前記出力モードで停止させる処理とを行う
付記５記載の情報処理装置。
【００７４】
（付記８）
通信先制御部との間で少なくとも１つのデータ線を用いて行われる半二重通信が中断される場合に、前記データ線へのデータの送信を行うが受信を行わない出力モードで停止するよう前記通信先制御部を制御する
情報処理方法。
【００７５】
（付記９）
前記通信を中断する場合に、前記通信先制御部を前記出力モードとした後、前記通信先制御部に供給される動作クロックを停止することにより、前記通信先制御部を停止させる
付記８記載の情報処理方法。
【００７６】
（付記１０）
前記通信が再開される場合に、前記データの受信を行うが送信を行わない待機モードに遷移するよう前記通信先制御部を制御する
付記８乃至９いずれか１項記載の情報処理方法。
【００７７】
（付記１１）
前記通信を再開する場合に、前記通信先制御部への動作クロックの供給を再開すると共に、前記通信先制御部を前記待機モードに遷移させる
付記８乃至１０いずれか１項記載の情報処理方法。
【００７８】
（付記１２）
前記通信先制御部が、前記データ線によるデータの送受信が所定の時間中断した場合、前記待機モードに遷移するタイムアウト機能を有する場合は、
前記前記通信先制御部を一定時間毎に前記出力モードで停止させる
付記８乃至１１いずれか一項記載の情報処理方法。
【００７９】
（付記１３）
前記タイムアウトが発生する毎に、前記通信先制御部を前記出力モードで停止させる
付記１２記載の情報処理方法。
【００８０】
（付記１４）
前記タイムアウトが発生する前に、前記通信先制御部を前記待機モードに遷移させ、前記通信先制御部を前記出力モードで停止させる
付記１２記載の情報処理方法。
【００８１】
（付記１５）
所定の動作をコンピュータに実行させるためのプログラムであって、
通信先制御部との間で少なくとも１つのデータ線を用いて行われる半二重通信が中断される場合に、前記データ線へのデータの送信を行うが受信を行わない出力モードで停止するよう前記通信先制御部を制御する処理をコンピュータに実行させる
情報処理プログラム。
【００８２】
（付記１６）
前記通信を中断する場合に、前記通信先制御部を前記出力モードとした後、前記通信先制御部に供給される動作クロックを停止することにより、前記通信先制御部を停止させる処理をコンピュータに実行させる
付記１５記載の情報処理プログラム。
【００８３】
（付記１７）
前記通信が再開される場合に、前記データの受信を行うが送信を行わない待機モードに遷移するよう前記通信先制御部を制御する処理をコンピュータに実行させる
付記１５乃至１６いずれか１項記載の情報処理プログラム。
【００８４】
（付記１８）
前記通信を再開する場合に、前記通信先制御部への動作クロックの供給を再開すると共に、前記通信先制御部を前記待機モードに遷移させる処理をコンピュータに実行させる
付記１５乃至１７いずれか１項記載の情報処理プログラム。
【００８５】
（付記１９）
前記通信先制御部が、前記データ線によるデータの送受信が所定の時間中断した場合、前記待機モードに遷移するタイムアウト機能を有する場合は、
前記前記通信先制御部を一定時間毎に前記出力モードで停止させる処理をコンピュータに実行させる
付記１５乃至１８いずれか一項記載の情報処理プログラム。
【００８６】
（付記２０）
前記タイムアウトが発生する毎に、前記通信先制御部を前記出力モードで停止させる処理をコンピュータに実行させる
付記１９記載の情報処理プログラム。
【００８７】
（付記２１）
前記タイムアウトが発生する前に、前記通信先制御部を前記待機モードに遷移させ、前記通信先制御部を前記出力モードで停止させる処理をコンピュータに実行させる
付記１９記載の情報処理プログラム。
【符号の説明】
【００８８】
１０００  情報処理装置
１００  マスタデバイス
１０１  Ｉ２Ｃ制御部
１０２  メモリ部
１０３  ＣＰＵ
２００  スレーブデバイス
２０１  Ｉ２Ｃ制御部
２０２  メモリ部
２０３  デバイス機能部
３００  データ線
３０１  ＳＣＬ
３０２  ＳＤＡ
【図１】
0005300098.tif 000002
【図２】
0005300098.tif 000003
【図３】
0005300098.tif 000004
【図４】
0005300098.tif 000005
【図５】
0005300098.tif 000006
【図６】
0005300098.tif 000007
【図７】
0005300098.tif 000008
【図８】
0005300098.tif 000009