(57)【要約】【課題】マスタデバイスとスレーブデバイス間で同期式シリアルデータ通信を行う場合において、スレーブデバイスのマスタデバイスに対するデータの転送の遅延に起因するエラーをマスタデバイスで回避すること。【解決手段】スレーブデバイスとの間でクロックに基づき同期式シリアルデータ通信を行うマスタデバイス２０４Ｄであって、前記スレーブデバイスが前記マスタデバイス２０４Ｄからのコマンドに対応したデータ送信のためのデータライン（ＳＩ）の準備ができているか否か判定する送信準備判定手段（ＳＰＩ制御部）２０４Ｄ（１）と、前記送信準備判定手段２０４Ｄ（１）が前記データライン（ＳＩ）の準備が未完了と判定したとき前記クロックを停止し、前記データラインの準備が完了と判定したとき前記クロックの供給を再開するクロック停止制御手段２０４Ｄ（６）と、を有する。【選択図】図１１
2016115154.tif 000002
【特許請求の範囲】
【請求項１】
スレーブデバイスとの間でクロックに基づきシリアルデータ通信を行うマスタデバイスであって、
前記スレーブデバイスが前記マスタデバイスからのコマンドに対応したデータ送信のためのデータラインの準備ができているか否か判定する送信準備判定手段と、
前記送信準備判定手段が前記データラインの準備が未完了と判定したとき前記クロックを停止し、前記データラインの準備が完了と判定したとき前記クロックの供給を再開するクロック停止制御手段と、
を有することを特徴とする同期式シリアルデータ通信を行うマスタデバイス。
【請求項２】
請求項１に記載されたマスタデバイスにおいて、
前記送信準備判定手段は、前記クロックの停止後、予め設定された期間が経過したか判定し、
前記クロック停止制御手段は、前記送信準備判定手段が前記設定された期間が経過したと判定したとき、前記クロックの供給を再開することを特徴とする同期式シリアルデータ通信を行うマスタデバイス。
【請求項３】
請求項１に記載されたマスタデバイスにおいて、
前記クロック停止制御手段は、マスタデバイスからスレーブデバイスへの前記コマンドを含むデータの転送が完了しかつ前記送信準備判定手段が前記スレーブデバイスのデータラインの準備が未完了と判定したことを条件に、クロック信号を停止し、前記スレーブデバイスのデータラインの準備が完了と判断したことを条件に、前記クロック停止を解除してクロック供給を再開することを特徴とする同期式シリアルデータ通信を行うマスタデバイス。
【請求項４】
請求項３に記載されたマスタデバイスにおいて、
前記送信準備判定手段は、前記データラインの準備の完了又は未完了を、前記スレーブデバイスから転送される前記データラインの準備の完了又は未完了を表す信号に基づき判定することを特徴とする同期式シリアルデータ通信を行うマスタデバイス。
【請求項５】
請求項４に記載されたマスタデバイスにおいて、
前記データラインの準備の完了又は未完了を表す信号は、前記データラインで転送される前記マスタデバイスのデータ入力信号であることを特徴とする同期式シリアルデータ通信を行うマスタデバイス。
【請求項６】
請求項３ないし５のいずれかに記載されたマスタデバイスにおいて、
前記送信準備判定手段は、前記マスタデバイスから前記スレーブデバイスへの複数ビットで構成される前記データ転送要求の最終ビットの転送タイミングで、前記スレーブデバイスからの前記データラインの準備の完了又は未完了を判定することを特徴とする同期式シリアルデータ通信を行うマスタデバイス。
【請求項７】
請求項１ないし６のいずれかに記載されたマスタデバイスにおいて、
クロック同期式シリアルデータ通信のコマンドは、スレーブデバイスからのデータをマスタデバイスが読み取るコマンドであることを特徴とする同期式シリアルデータ通信を行うマスタデバイス。
【請求項８】
請求項１ないし７のいずれかに記載された同期式シリアルデータ通信を行う前記マスタデバイスと前記スレーブデバイスとを備えた電気機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタデバイスとスレーブデバイス間でデータ転送を行う同期式シリアルデータ通信で用いるマスタデバイス、及び前記マスタデバイスと前記スレーブデバイスを備えた電気機器に関する。
【背景技術】
【０００２】
情報処理装置等の電気機器には、既に使用されていないプロセス（旧プロセスという）を用いて製造されたカスタム電子部品を実装したものがある。
これらのカスタム電子部品には、１０年以上も継続して使用されているものもある。
しかしながら、旧プロセスを用いたカスタム電子部品の製造は採算性が良くないことから、部品メーカーは旧プロセスを用いたカスタム電子部品の製造を中止（ディスコン）する場合がある。
【０００３】
部品メーカーがカスタム電子部品の製造を中止すると、電気機器のメーカーは、通常、カスタム電子部品の代替となる電子部品を調達することで対応するが、代替となる電子部品を調達できないことも想定される。
その場合、電気機器のメーカーは、マイクロコンピュータ（以下、マイコン）を活用することで対応している。
【０００４】
但し、カスタム電子部品をマイコンに置き換えるだけでは、電気機器の処理にエラーが生じる場合がある。
電気機器におけるスレーブデバイスをマイコンに置き換え、マスタデバイスとスレーブデバイス間の同期式シリアルデータ通信で使用される、例えばＳＰＩ（Serial Peripheral Interface）に接続すると、マスタデバイスがスレーブデバイスに対してリード要求する時に、マイコンの処理速度が間に合わない場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、前記従来の問題に鑑みてなされたものであって、その目的は、マスタデバイスとスレーブデバイス間で同期式シリアルデータ通信を行う場合において、スレーブデバイスのマスタデバイスに対するデータの転送の遅延に起因するエラーをマスタデバイスにおいて回避することである。
【課題を解決するための手段】
【０００６】
本発明は、スレーブデバイスとの間でクロックに基づきシリアルデータ通信を行うマスタデバイスであって、前記スレーブデバイスが前記マスタデバイスからのコマンドに対応したデータ送信のためのデータラインの準備ができているか否か判定する送信準備判定手段と、前記送信準備判定手段が前記データラインの準備が未完了と判定したとき前記クロックを停止し、前記データラインの準備が完了と判定したとき前記クロックの供給を再開するクロック停止制御手段と、を有することを特徴とする同期式シリアルデータ通信を行うマスタデバイスである。
【発明の効果】
【０００７】
本発明のマスタデバイスによれば、マスタデバイスとスレーブデバイス間で同期式シリアルデータ通信を行う場合において、スレーブデバイスのマスタデバイスに対するデータの転送の遅延に起因するエラーをマスタデバイスにおいて回避することができる。
【図面の簡単な説明】
【０００８】
【図１】ＳＰＩに接続する操作部の操作制御部をＡＳＩＣで構成した画像形成装置のブロック図である。
【図２】ＳＰＩに接続するコントローラの構造を概略的に示すブロック図である。
【図３】ＳＰＩに接続するスレーブデバイスである操作部のブロック図である。
【図４】ＳＰＩマスタデバイスのブロック図である。
【図５】ＳＰＩマスタデバイスにおける、ＳＰＩスレーブデバイスへのデータの書き込み時のタイミング図である。
【図６】ＳＰＩマスタデバイスにおける、ＳＰＩスレーブデバイスからのデータの読み込み時のタイミング図である。
【図７】図３に示す操作部の操作制御部をＡＳＩＣからマイコンに置換した場合の、ＳＰＩマスタデバイスにおける、データの読み込み時のタイミング図である。
【図８】本発明の実施形態に係るＳＰＩマスタデバイスを有する画像形成装置のブロック図である。
【図９】本発明の実施形態に係るＳＰＩマスタデバイスを備えたコントローラのブロック図である。
【図１０】操作部のブロック図である。
【図１１】コントローラのＳＰＩマスタデバイスのブロック図である。
【図１２】ＳＰＩマスタデバイスにおける、ＳＰＩスレーブデバイスから転送されるリードデータの読み込み時のタイミング図である。
【図１３】本発明の別の実施形態に係るＳＰＩマスタデバイスのブロック図である。
【図１４】本発明の別の実施形態に係るＳＰＩマスタデバイスにおける、データの読み込み時のタイミング図である。
【図１５】アドレス情報等の付加情報が転送されない場合の、データの読み込み時のタイミング図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について説明するが、ここでは、本発明の前提として、電気機器の制御部をマスタデバイスとしかつ操作部をスレーブデバイスとして、両デバイス間をＳＰＩで接続して同期式シリアルデータ通信を行う場合において、操作部の操作制御部をＡＳＩＣで構成した場合における、データの書き込み、また読み込みに関する処理について図１ないし図６を参照して説明する。続いて、ＡＳＩＣが旧プロセスによる場合に、それをマイコンに代えた場合の問題とその解決策に関する本発明の実施形態のマスタデバイスなどについて、図７以下の図面を参照して説明する。
【００１０】
本発明は、マスタデバイスとスレーブデバイス間のデータ転送に関わるものであるが、同期式シリアル通信を行うマスタデバイスとスレーブデバイスを備えた電気機器は、例えば、情報処理装置、画像形成装置等であり、ここでは画像形成装置を例に採って説明する。
図１は、ＳＰＩに接続する操作部の操作制御部をＡＳＩＣで構成した画像形成装置のブロック図である。
画像形成装置１００は、図示のようにスイッチ（ＳＷ）１０、ＰＳＵ（Power Supply Unit）１４、プロッタ部１２、スキャナ部１６、コントローラ２０、操作部３０を有する。
【００１１】
また、ここで、コントローラ２０と操作部３０はＳＰＩで接続している。
なお、ＳＰＩは、後述の図４に示すように、スレーブデバイスを選択するチップセレクト（CS；Chip Select）信号線、クロック（CLK；Clock）信号線、データ出力（SO；Signal Out）信号線、データ入力（SI；Signal Input）信号線の４本の信号線で構成されている。
【００１２】
スイッチ１０は電源のスイッチであり、スイッチ１０がＯＮになると、電源がＰＳＵ１４に供給される。
ＰＳＵ１４は画像形成装置１００の電源ユニットであり、プロッタ部１２、スキャナ部１６、コントローラ２０、及び操作部３０に電源を供給する。
プロッタ部１２は、画像形成装置１００内部において形成した画像を出力する。
スキャナ部１６は、例えば原稿画像をスキャンする。
コントローラ２０は、画像形成装置１００の制御部であり、操作部３０、ネットワーク、ＵＳＢ（Universal Serial Bus）からの命令（操作）を受信し、その命令に応じた制御を実行する。
操作部３０は、画像形成装置１００に対して各種操作を設定（命令）するための手段である。
【００１３】
図２は、ＳＰＩに接続するコントローラ２０の構造を概略的に示すブロック図である。
コントローラ２０は、クロック生成部２０１、ＣＰＵ（Central Processing Unit）２０２、ＲＯＭ（Read Only Memory）２０３、ＡＳＩＣ（Application Specific Integrated Circuit）２０４、ＤＤＲ ＳＤＲＡＭ（Double-Data-Rate Synchronous Dynamic Random Access Memory）２０５、ＰＨＹ２０６、ＰＨＹクロック生成部２０７を有する。
【００１４】
クロック生成部２０１は、コントローラ２０内部で用いるクロック信号を生成し、生成したクロック信号ＣＬＫをコントローラ２０の各部に供給する。
ＣＰＵ２０２は、コントローラ２０全体を制御する演算処理装置である。
ＲＯＭ２０３は、不揮発性のメモリであり、ＣＰＵ２０２により実行されるプログラム及び各種データを格納する。
【００１５】
ＡＳＩＣ２０４は、画像データ処理用の集積回路である。
ＡＳＩＣ２０４は、図２に示すように、ＣＰＵ Ｉ／Ｆ（インタフェース）２０４ａ、ＲＯＭ Ｉ／Ｆ２０４ｂ、ＵＳＢ Ｉ／Ｆ２０４ｃ、ＳＰＩデバイス２０４ｄ、ＰＣＩ（Peripheral Component Interconnect） Ｉ／Ｆ２０４ｅ、ＭＥＭ （Memory Module）Ｉ／Ｆ２０４ｆ、ＭＡＣ（Media Access Control）２０４ｇを有する。
【００１６】
ＣＰＵ Ｉ／Ｆ２０４ａは、ＣＰＵ２０２とのインタフェースである。
ＲＯＭ Ｉ／Ｆ２０４ｂは、ＲＯＭ２０３とのインタフェースである。
ＵＳＢ Ｉ／Ｆ２０４ｃは、ＰＣ（Personal Computer）等とデータ通信を実行するためのインタフェースである。
【００１７】
ＳＰＩデバイス２０４ｄは、操作部３０とのインタフェースであり、マスタデバイスとして機能する。以下、説明の便宜上、ＳＰＩデバイスをＳＰＩマスタデバイス２０４ｄと呼ぶ。
ＣＰＵ２０２は、ＳＰＩマスタデバイス２０４ｄからスレーブデバイスである操作部３０のＳＰＩスレーブデバイス３０１ａ（図３）に、操作部３０のキー３０２ａをスキャンするコマンドを定期的に転送するように制御する。ＣＰＵ２０２は、ＳＰＩスレーブデバイス３０１ａから転送されるリードデータを認識して、操作部３０において押下されたキー３０２ａの操作内容を判定する。
ＣＰＵ２０２は、操作部３０において押下されたキー３０２ａの操作内容（操作情報）に基づき、画像形成装置１００の制御を実行する。
【００１８】
例えば、操作部３０において「ＣＯＰＹ キー」がユーザにより押下された場合、ＣＰＵ２０２は、ＳＰＩスレーブデバイス３０１ａから転送されたデータより「ＣＯＰＹ キー」が押下されたことを認識する。ＣＰＵ２０２は、この認識に基づきスキャナ部１６において原稿画像をスキャンし、プロッタ部１２においてスキャナ部１６から転送された画像データに基づき画像を出力するように制御する。
【００１９】
ＰＣＩ Ｉ／Ｆ２０４ｅは、プロッタ部１２、スキャナ部１６とのインタフェースである。
ＭＥＭ Ｉ／Ｆ２０４ｆは、ＤＤＲ ＳＤＲＡＭ２０５とのメモリインタフェースである。
ＭＡＣ２０４ｇは、ネットワークにおけるデータリンク層として機能し、ＰＨＹ２０６に接続される。
【００２０】
ＤＤＲ ＳＤＲＡＭ２０５は、揮発性メモリであり、各種データを一時的に記憶する。
ＰＨＹ２０６は、ネットワークにおける物理層として機能する。
ＰＨＹクロック生成部２０７は、クロック信号を生成し、ＰＨＹ２０６にクロック信号を供給する。
【００２１】
図３は、ＳＰＩに接続するスレーブデバイスである操作部３０のブロック図である。
操作部３０は、操作制御部３０１、キー３０２ａ、キー制御部３０２、ＬＣＤ（Liquid Crystal Display）３０３ａ、ＬＣＤドライバ３０３ｂ、ＬＣＤ制御部３０３、ＬＥＤ（Light Emitting Diode）３０４ａ、ＬＥＤ制御部３０４を有する。
なお、図３では、前述のように、操作部３０の操作制御部３０１をＡＳＩＣで構成している。
【００２２】
操作制御部３０１は、ＳＰＩデバイス３０１ａ及びコマンド制御部３０１ｂにより構成されている。
ＳＰＩデバイス３０１ａは、コントローラ２０とのインタフェースであり、スレーブデバイスとして機能する。以下、説明の便宜上、ＳＰＩデバイスをＳＰＩスレーブデバイス３０１ａと云う。
コマンド制御部３０１ｂは、ＳＰＩマスタデバイス２０４ｄから転送されたコマンドを認識し、そのコマンドに基づき操作部３０における各種制御を実行する。
なお、コマンドには、ＬＥＤ ＯＮ／ＯＦＦコマンド（ライトコマンド）、ＬＣＤ制御コマンド（ライトコマンド）、キーセンスコマンド（リードコマンド）等がある。
【００２３】
キー３０２ａは、操作パネル上のキー入力を受け付けるキー入力受付手段である。
キー制御部３０２は、キーセンスコマンドを受け取り、キー入力の有無を検知し、キー３０２ａの状態（内容）を操作制御部３０１に送信する。
ＬＣＤ３０３ａは、第１の表示手段であり、バックライト等を備えた液晶ディスプレイである。
ＬＣＤドライバ３０３ｂは、ＬＣＤ３０３ａに電源を供給し、ＬＣＤ制御部３０３により指定されたデータをＬＣＤ３０３ａに表示させる。
ＬＣＤ制御部３０３は、表示対象として指定されたデータをＬＣＤ３０３ａに表示可能なデータに変換し、ＬＣＤ３０３ａを制御する。ＬＣＤ制御部３０３は、例えば、ＬＣＤ３０３ａのバックライト等を制御する。
ＬＥＤ３０４ａは、第２の表示手段であり、発光ダイオードである。
ＬＥＤ制御部３０４は、ＬＥＤ３０４ａに関するコマンド（ＬＥＤ ＯＮ／ＯＦＦ）を受け取り、コマンドで指定されたＬＥＤ３０４ａを点灯又は消灯する。
【００２４】
図４は、ＳＰＩマスタデバイス２０４ｄのブロック図である。
ＳＰＩマスタデバイス２０４ｄは、ＳＰＩ制御部２０４ｄ（１）、ＣＳ生成部２０４ｄ（２）、ＣＬＫ生成部２０４ｄ（３）、パラレル・シリアル変換部２０４ｄ（４）、シリアル・パラレル変換部２０４ｄ（５）を有する。
ＳＰＩ制御部２０４ｄ（１）は、ＳＰＩマスタデバイス２０４ｄを構成する各部（即ち、ＣＳ生成部２０４ｄ（２）、ＣＬＫ生成部２０４ｄ（３）、パラレル・シリアル変換部２０４ｄ（４）、シリアル・パラレル変換部２０４ｄ（５））を制御する。
【００２５】
ＣＳ生成部２０４ｄ（２）は、チップセレクト（ＣＳ）信号を生成し、出力する。
ＣＬＫ生成部２０４ｄ（３）は、内部クロック信号ｉＣＬＫからクロック信号ＣＬＫを生成する。なお、内部クロック信号ｉＣＬＫは、クロック生成部２０１で生成され、ＳＰＩマスタデバイス２０４ｄに供給される。
パラレル・シリアル変換部２０４ｄ（４）は、ＳＰＩマスタデバイス２０４ｄから転送されるパラレルデータをシリアルデータに変換し、データ出力（ＳＯ）信号として出力する。
シリアル・パラレル変換部２０４ｄ（５）は、ＳＩ（データ入力端子）から入力されるシリアルデータをパラレルデータに変換し、ＰＣＩバスに転送する。
【００２６】
図５は、ＳＰＩマスタデバイス２０４ｄにおける、ＳＰＩスレーブデバイス３０１ａへのデータの書き込み時のタイミング図である。
図５に示すタイミング図では、内部クロック信号ｉＣＬＫ、チップセレクト信号ＣＳ、クロック信号ＣＬＫ、データ出力信号ＳＯ、データ入力信号ＳＩを示している。
なお、クロック信号ＣＬＫは、ＳＰＩマスタデバイス２０４ｄ及びＳＰＩスレーブデバイス３０１ａの処理において共通の同期信号である。また、後述の図６、図７、図１２、図１４、図１５において、図示の信号も、図５と同様である。
【００２７】
コントローラ２０（マスタ）から操作部３０（スレーブ）にデータを書き込む場合、コントローラ２０のＣＰＵ２０２は、ＳＰＩマスタデバイス２０４ｄのパラレル・シリアル変換部２０４ｄ（４）にライトコマンド、アドレス、ライトデータを転送する。
パラレル・シリアル変換部２０４ｄ（４）は、ＣＰＵ２０２から転送開始命令を受けると、転送されたライトコマンド、アドレス、ライトデータを、パラレルデータからシリアルデータに変換する。
【００２８】
ＳＰＩマスタデバイス２０４ｄのＳＰＩ制御部２０４ｄ（１）は、変換したシリアルデータを出力するために、チップセレクト信号ＣＳをＨｉｇｈレベルからＬｏｗレベルに制御し、クロック信号ＣＬＫを出力する。
即ち、ＳＰＩ制御部２０４ｄ（１）は、クロック信号ＣＬＫの立ち下がり（negative edge）に同期させて、ライトコマンド信号（８bit）とアドレス信号（８bit）をデータ出力信号ＳＯとして、操作部３０のＳＰＩスレーブデバイス３０１ａに転送する。
【００２９】
ＳＰＩ制御部２０４ｄ（１）は、さらに、ＳＰＩスレーブデバイス３０１ａにデータを書き込む（ライトする）ため、図５に示すように、アドレス信号の転送に続いて１５番目のクロックの立ち下がりからＳＰＩスレーブデバイス３０１ａにライトデータを転送する。
ＳＰＩ制御部２０４ｄ（１）は、ライトデータを出力するまでクロック信号ＣＬＫを出力するようＣＬＫ生成部２０４ｄ（３）を制御し、ライトデータの出力が完了すると（２２番目のクロックの立ち下がりのタイミング）、クロック信号ＣＬＫをＨｉｇｈレベルに制御（即ち停止）する。
ＳＰＩ制御部２０４ｄ（１）は、クロック信号ＣＬＫをＨｉｇｈレベルに制御すると同時に、シリアルデータの出力が停止したのでチップセレクト信号ＣＳもＨｉｇｈレベルに制御する。
【００３０】
ＳＰＩスレーブデバイス３０１ａは、ライトコマンド信号よりコマンドの内容、またアドレス信号よりデータの書き込み指定箇所を認識し、さらにＳＰＩマスタデバイス２０４ｄから転送されるライトデータをその指定箇所に書き込む。
また、この場合、ＳＰＩマスタデバイス２０４ｄに入力されるデータ入力信号ＳＩは、Ｈｉｇｈの状態で変化しない。
【００３１】
図６は、ＳＰＩマスタデバイス２０４ｄにおける、ＳＰＩスレーブデバイス３０１ａからのデータの読み込み時のタイミング図である。
コントローラ２０（マスタ）が操作部３０（スレーブ）からデータを読み込む場合、コントローラ２０のＣＰＵ２０２は、ＳＰＩマスタデバイス２０４ｄのパラレル・シリアル変換部２０４ｄ（４）にリードコマンド、アドレスを転送する。
パラレル・シリアル変換部２０４ｄ（４）は、ＣＰＵ２０２から転送開始命令を受けると、転送されたリードコマンド、アドレスを、パラレルデータからシリアルデータに変換する。
【００３２】
ＳＰＩ制御部２０４ｄ（１）は、変換したシリアルデータを出力するために、データの書き込み時と同様に、チップセレクト信号ＣＳをＨｉｇｈレベルからＬｏｗレベルに制御し、さらにクロック信号ＣＬＫを出力するようにＣＬＫ生成部２０４ｄ（３）を制御する。
ＳＰＩ制御部２０４ｄ（１）は、次に、クロック信号の立ち下がりに同期させて、リードコマンド信号（８bit）とアドレス信号（８bit）をデータ出力信号として、ＳＰＩスレーブデバイス３０１ａに転送する。
【００３３】
この場合、ＳＰＩスレーブデバイス３０１ａは、リードコマンド信号よりコマンドの内容、またアドレス信号よりデータの読み込み指定箇所を認識し、その指定箇所からデータを読み込む。
ＳＰＩスレーブデバイス３０１ａは、図６におけるクロック信号ＣＬＫの１５番目のクロックの立ち下がりで、読み込んだデータをＳＰＩマスタデバイス２０４ｄに転送する。
【００３４】
ＳＰＩ制御部２０４ｄ（１）は、ＳＰＩスレーブデバイス３０１ａから転送され、入力される入力データ信号ＳＩ（リードデータ（８bit））を、シリアル・パラレル変換部２０４ｄ（５）により、クロック信号ＣＬＫのクロックの１６番目の立ち上がりから２３番目の各立ち上がりのタイミングでパラレルデータに変換するように制御する。
【００３５】
ＳＰＩ制御部２０４ｄ（１）は、シリアル・パラレル変換部２０４ｄ（５）に８bitのリードデータが入力されると、クロック信号ＣＬＫをＨｉｇｈレベル（停止）に制御する。
また、ＳＰＩ制御部２０４ｄ（１）は、クロック信号ＣＬＫをＨｉｇｈレベルに制御すると同時に、リードデータの入力が完了したのでチップセレクト信号ＣＳもＨｉｇｈレベルに制御する。
【００３６】
以上、ＳＰＩに接続する操作部３０の操作制御部３０１をＡＳＩＣで構成した場合における、ＳＰＩマスタデバイス２０４ｄとＳＰＩスレーブデバイス３０１ａ間におけるデータ転送について説明した。
次に、以上で説明した操作制御部３０１のＡＳＩＣが旧プロセスで製造したもので既に製造停止されていると仮定して、そのＡＳＩＣをマイコンに置き換えた場合に、ＳＰＩマスタデバイス２０４ｄとＳＰＩスレーブデバイス３０１ａ間のデータの転送処理において発生するエラーについて説明する。
【００３７】
ここで、マイコンは、一般に数千以上の命令を組み合わせて構成されるプログラム（即ち、ソフトウェア）で動作するコンピュータである。そのため、通常のマイコンでは、所定の周波数において、１クロック周期期間内に複数の命令の全てを判定することができない場合がある。
例えば、画像形成装置１００の処理において、マイコンは、ＳＰＩマスタデバイス２０４ｄから転送されるＬＣＤ３０３ａ、ＬＥＤ３０４ａ、キー３０２ａ関連のコマンドを１クロックで判定することができない場合がある。また、マイコンは、キー３０２ａの状態を検知する場合等、処理の内容によっては、数千ものクロックを必要とする場合もある。
したがって、電気機器、例えば画像形成装置におけるデータ処理部材の一部を、ＡＳＩＣからマイコンに置換しただけでは、マイコンの処理遅延が考慮されていないため、処理にエラーが生じることがある。
【００３８】
図７は、図３に示す操作部３０の操作制御部３０１をＡＳＩＣからマイコンに置換した場合の、ＳＰＩマスタデバイス２０４ｄにおける、データの読み込み時のタイミング図である。信号の転送処理、ここではＳＰＩマスタデバイス２０４ｄにおける読み込み処理にエラーが生じる場合を示している。
なお、図７は、マイコンがコマンドの内容を解釈する上で、１クロック周期を要する場合を示している。
【００３９】
コントローラ２０から操作部３０に対してデータの転送指示を行う場合、まず、コントローラ２０のＳＰＩ制御部２０４ｄ（１）は、ＳＰＩスレーブデバイス３０１ａに対して、パラレル・シリアル変換部２０４ｄ（４）において変換したシリアルデータを出力する。そのために、ＳＰＩ制御部２０４ｄ（１）は、図６で示したと同様に、ＣＳ生成部２０４ｄ（２）で生成したチップセレクト信号ＣＳをＨｉｇｈレベルからＬｏｗレベルに制御し、さらにＣＬＫ生成部２０４ｄ（３）でクロック信号ＣＬＫを出力するように制御する。
ＳＰＩ制御部２０４ｄ（１）は、次に、クロック信号ＣＬＫの立ち下がりに同期させて、リードコマンド信号（８bit）とアドレス信号（８bit）をデータ出力信号として、ＳＰＩスレーブデバイス３０１ａに転送する。
【００４０】
この場合、ＳＰＩスレーブデバイス３０１ａを構成するマイコンは、アドレスデータの最後のビット、即ち、クロック信号ＣＬＫの１５番目のクロックの立ち上がりの時点で、コマンドの内容に関する解釈を開始する。
マイコンは、コマンドの内容に関する解釈を開始してから１クロック周期期間経過後に、コマンドの内容がデータの読み込みであると解釈する。マイコンは、この解釈に基づきＳＰＩマスタデバイス２０４ｄから転送されたアドレス信号よりデータの読み込み指定箇所を認識し、その指定された箇所からデータを読み込む。
マイコンは、データを読み込むと、クロック信号ＣＬＫの１６番目のクロックの立ち下がりで、読み込んだデータ（リードデータ（８bit））をコントローラ２０（ＳＰＩマスタデバイス２０４ｄ）に転送する。
【００４１】
他方、ＳＰＩ制御部２０４ｄ（１）は、ＳＰＩスレーブデバイス３０１ａから転送され、データ入力端子に入力されるデータ入力信号ＳＩ（リードデータ（８bit））を、クロック信号ＣＬＫの１６番目のクロックの立ち上がりからパラレルデータに変換するようにシリアル・パラレル変換部２０４ｄ（５）を制御する。
そのため、ＳＰＩ制御部２０４ｄ（１）は、リードデータとして１クロックシフト（遅延）したデータを読み込むこととなり、正確なデータを読み込むことができない。即ち、リードデータの読み込み処理において、エラーが生じることとなる。
【００４２】
このように、操作制御部３０１をマイコンで構成させると処理上の遅延が生じる。
そこで、本発明の実施形態に係るＳＰＩマスタデバイスは、ＳＰＩスレーブデバイスをマイコンで構成することに起因して生じる処理上の遅延に応じて、ＳＰＩマスタデバイス２０４ｄの同期制御に用いるクロック信号ＣＬＫを制御することでこの問題を解決する。
以下、本発明の実施形態に係るＳＰＩマスタデバイスを図８ないし図１５を参照して説明する。
【００４３】
図８は、本発明の実施形態に係るＳＰＩマスタデバイスを有する画像形成装置のブロック図である。
画像形成装置１００は、操作部３０の操作制御部３０１（図３）をマイコンで構成したこと以外は、図１に示したものと同様である。
即ち、画像形成装置１００は、スイッチ１０、ＰＳＵ１４、プロッタ部１２、スキャナ部１６、コントローラ２０、操作部３０を有する。
また、コントローラ２０と操作部３０がＳＰＩで接続され、さらにＳＰＩを構成する信号線が４本の信号線（チップセレクト信号ＣＳ、クロック信号ＣＬＫ、データ出力信号ＳＯ、データ入力信号ＳＩの各信号線）で構成されている。
【００４４】
図９は、本発明の実施形態に係るＳＰＩマスタデバイスを備えたコントローラ２０のブロック図である。
コントローラ２０は、図２に示したものと同様に、クロック生成部２０１、ＣＰＵ２０２、ＲＯＭ２０３、ＡＳＩＣ２０４、ＤＤＲ ＳＤＲＡＭ２０５、ＰＨＹ２０６、ＰＨＹクロック生成部２０７を有する。
コントローラ２０を構成する各部に関して、ＡＳＩＣ２０４のＳＰＩマスタデバイス２０４Ｄ以外は、図２に示したものと同様の機能となる。
なお、ここでもＳＰＩデバイスをＳＰＩマスタデバイス２０４Ｄとして説明する。また、ＳＰＩマスタデバイス２０４Ｄについては、図１１、図１３を参照して後述する。
【００４５】
図１０は、操作部３０Ａのブロック図である。
操作部３０Ａは、図１０に示すように、操作制御部３０１Ａ、キー３０２ａ、ＬＣＤドライバ３０３ｂ、ＬＣＤ３０３ａ、ＬＥＤ３０４ａを有する。
ここで、操作制御部３０１Ａは、前述のようにマイコンで構成している。
なお、ＳＰＩデバイス３０１Ａ（１）、コマンド制御部３０１Ａ（２）だけではなく、キー制御部３０１Ａ（３）、ＬＣＤ制御部３０１Ａ（４）、ＬＥＤ制御部３０１Ａ（５）もマイコンで構成する。
また、ここでも図３に示したものと同様に、ＳＰＩデバイスをＳＰＩスレーブデバイス３０１Ａ（１）として説明する。
【００４６】
図１１は、コントローラ２０のＳＰＩマスタデバイス２０４Ｄのブロック図である。
ＳＰＩマスタデバイス２０４Ｄは、ＳＰＩ制御部２０４Ｄ（１）、ＣＳ生成部２０４Ｄ（２）、ＣＬＫ生成部２０４Ｄ（３）、パラレル・シリアル変換部２０４Ｄ（４）、シリアル・パラレル変換部２０４Ｄ（５）、ＣＬＫ停止制御部２０４Ｄ（６）を有する。
なお、ＣＬＫ停止制御部２０４Ｄ（６）以外のＳＰＩマスタデバイス２０４Ｄを構成する各ブロックは、図４に示したものと同様の機能となる。
【００４７】
ＣＬＫ停止制御部２０４Ｄ（６）は、マイコンにおける処理の遅延量を記憶（設定）する遅延レジスタを有する。
ＣＬＫ停止制御部２０４Ｄ（６）は、データの読み込み動作における所定のタイミングで、遅延レジスタに記憶した遅延量（本発明における予め設定された期間に対応する）に従って、クロックＣＬＫを停止（無効）するように制御する。
【００４８】
図１２は、ＳＰＩマスタデバイス２０４Ｄにおける、ＳＰＩスレーブデバイス３０１ａから転送されるリードデータの読み込み時のタイミング図である。
なお、図１２では、ＳＰＩスレーブデバイス２０４Ｄからのリードデータの転送が、操作制御部３０１ＡをＡＳＩＣ２０４で構成した場合に比して、２クロック周期期間分の遅延が生じる場合を示している。
即ち、図１２は、ＳＰＩスレーブデバイス３０１ａからのデータ転送に関する遅延量が既知の場合を示している。
【００４９】
ＳＰＩスレーブデバイス３０１ａとの交信を開始するに当たり、まず、ＳＰＩマスタデバイス２０４ＤのＳＰＩ制御部２０４Ｄ（１）は、チップセレクト信号ＣＳをＨｉｇｈレベルからＬｏｗレベルに制御し、次に、ＣＬＫ生成部２０４Ｄ（３）がクロック信号ＣＬＫを出力するよう制御する。
ＳＰＩ制御部２０４Ｄ（１）は、クロック信号の立ち下がりに同期させて、リードコマンド信号（８bit）とアドレス信号（８bit）をデータ出力信号ＳＯとして、ＳＰＩスレーブデバイス３０１ａに転送する。
【００５０】
ＳＰＩ制御部２０４Ｄ（１）は、ＣＰＵ２０２から送信されたコマンドがリードコマンドと解釈すると、予め設定された期間つまり遅延量（２クロック周期期間分の遅延量）を、７番目のクロックの立ち下がりのタイミングでＣＬＫ停止制御部２０４Ｄ（６）の遅延レジスタに設定する。
ＳＰＩ制御部２０４Ｄ（１）は、データ出力信号ＳＯとしてアドレス信号の出力を完了すると、この場合は、本発明の送信準備判定手段に対応するＣＬＫ停止制御部２０４Ｄ（６）は、遅延レジスタに遅延量が設定されていることから、ＳＰＩスレーブデバイス３０１Ａ（１）からシリアル・パラレル変換部２０４Ｄ（５）に接続されたデータライン（ＳＩ信号転送用ライン）の準備が完了しないと判定する。ＣＬＫ停止制御部２０４Ｄ（６）がデータラインの準備が完了していない、つまり未完了と判定すると、図１２のＡの時点よりクロック信号を停止（Ｈｉｇｈに固定）するように制御する。また、その時点（図１２のＡ）より、ＣＬＫ停止制御部２０４Ｄ（６）の遅延レジスタの遅延量（２クロック周期期間分）のカウントダウンを開始させる。
【００５１】
遅延レジスタのカウントダウンが終了した時点、即ち、２クロックが経過した時点（図１２のＢ）で、ＣＬＫ停止制御部２０４Ｄ（６）はデータラインの準備が完了したと判定して、クロック信号ＣＬＫの停止を解除する。
クロック信号ＣＬＫの停止を解除すると、クロック信号ＣＬＫは図１２に示すようにＨｉｇｈからＬｏｗに遷移し、ＳＰＩスレーブデバイス３０１Ａ（１）はＳＰＩマスタデバイス２０４Ｄにリードデータを転送する。
【００５２】
ＳＰＩ制御部２０４Ｄ（１）は、クロック信号ＣＬＫの停止解除に伴いクロック生成部２０１よりクロック信号ＣＬＫが供給されると、シリアル・パラレル変換部２０４Ｄ（５）を制御してクロック信号ＣＬＫの１６番目のクロックの立ち上がりからシリアルデータをパラレルデータに変換する。
ＳＰＩ制御部２０４Ｄ（１）は、クロック信号ＣＬＫの２３番目のクロックの立ち上がりで最後のデータを認識すると、パラレルデータに変換したリードデータを、ＳＰＩバスを経由させて、ＣＰＵ２０２に転送する。
【００５３】
ＳＰＩ制御部２０４Ｄ（１）は、図１２に示すように、クロック信号ＣＬＫの２３番目のクロックの立ち上がり後において、クロック信号ＣＬＫをＨｉｇｈレベルに制御する。
また、ＳＰＩ制御部２０４Ｄ（１）は、クロック信号をＨｉｇｈレベルに制御すると、チップセレクト信号ＣＳもＨｉｇｈレベルに制御する。
【００５４】
以上説明したように、マイコンにおける処理の遅延量が既知である場合は、その遅延量をレジスタに設定し、その遅延量に応じてクロック信号ＣＬＫを停止制御することで、ＳＰＩマスタデバイス２０４Ｄでのデータの読み込み時のエラーを回避することができる。
このように、遅延量をクロックの周期に換算してＳＰＩマスタデバイス２０４Ｄの遅延レジスタに設定しておけば、ＳＰＩマスタデバイス２０４Ｄでのデータの読み込み時のエラーを回避することができる。
また、図１２では、データの読み込みに関する処理を説明したが、データの書き込みに関する処理は図５に示したものと同様であり、データの書き込み時には、ＣＬＫ停止制御部２０４Ｄ（６）はクロック動作の停止制御を実行しない。
【００５５】
次に、図１３及び図１４を参照して、マイコンにおける処理の遅延量が既知でない場合（不明の場合、また変動する場合）のエラー回避のためのクロックの制御について説明する。
図１３は、本発明の別の実施形態に係るＳＰＩマスタデバイス２０４Ｄのブロック図である。
ＳＰＩマスタデバイス２０４Ｄは、ＳＰＩ制御部２０４Ｄ（１）、ＣＳ生成部２０４Ｄ（２）、ＣＬＫ生成部２０４Ｄ（３）、パラレル・シリアル変換部２０４Ｄ（４）、シリアル・パラレル変換部２０４Ｄ（５）、ＣＬＫ停止制御部２０４Ｄ（６ａ）を有する。
なお、ＣＬＫ停止制御部２０４Ｄ（６ａ）以外のＳＰＩマスタデバイス２０４Ｄを構成する各ブロックは、図４に示したものと同様の機能となる。
【００５６】
また、データ入力信号ＳＩは、図１３に示すように、シリアル・パラレル変換部２０４Ｄ（５）だけではなく、ＣＬＫ停止制御部２０４Ｄ（６ａ）にも入力される。
即ち、ＣＬＫ停止制御部２０４Ｄ（６ａ）は、データ入力信号ＳＩを、ＳＰＩスレーブデバイス３０１Ａ（１）の転送準備が完了したか否かを判定するレディ信号として利用し、レディ信号のレベル（Ｈｉｇｈ又はＬｏｗ）に応じて、ＣＬＫを制御する。
以下、ＣＬＫ停止制御部２０４Ｄ（６ａ）における制御に関して、図１４のタイミング図を参照して説明する。
【００５７】
図１４は、本発明の別の実施形態に係るＳＰＩマスタデバイス２０４Ｄにおける、データの読み込み時のタイミング図である。
ＳＰＩ制御部２０４Ｄ（１）は、図６に示したものと同様に、ＳＰＩスレーブデバイス３０１Ａ（１）へリードコマンドデータ等を転送するため、チップセレクト信号ＣＳをＨｉｇｈレベルからＬｏｗレベルに制御し、さらにクロック信号ＣＬＫを出力する。
ＳＰＩ制御部２０４Ｄ（１）は、次に、クロック信号ＣＬＫの立ち下がりに同期させて、リードコマンド信号（８bit）をデータ出力信号ＳＯとして、ＳＰＩスレーブデバイス３０１Ａ（１）に転送する。
ＳＰＩスレーブデバイス３０１Ａ（１）は、リードコマンド信号を受信した時点で（即ち、図１４におけるクロック信号ＣＬＫの７番目のクロックの立ち上がりで）、リードデータを転送することができないと認識し、７番目のクロックの立ち下がりでＳＰＩマスタデバイス２０４Ｄに転送するデータ入力信号ＳＩをＬｏｗからＨｉｇｈに制御する。
【００５８】
ＳＰＩ制御部２０４Ｄ（１）は、リードコマンド信号（８bit）に続けて、アドレス信号（８bit）をデータ出力信号として、ＳＰＩスレーブデバイス３０１Ａ（１）に転送する。
ＣＬＫ停止制御部２０４Ｄ（６ａ）は、データ入力信号ＳＩのレベルを監視し、１５番目のクロックの立ち上がりでデータ入力信号ＳＩのレベルがＨｉｇｈであることを確認すると、クロック信号ＣＬＫをＨｉｇｈレベルにして停止制御する。
ＣＬＫ停止制御部２０４Ｄ（６ａ）は、クロック信号をＨｉｇｈに停止制御した後においても、内部クロック信号ｉＣＬＫでデータ入力信号ＳＩを監視する。
【００５９】
そして、ＳＰＩスレーブデバイス３０１Ａ（１）は、リードデータの転送準備が完了すると、ＳＰＩマスタデバイス２０４Ｄに入力されるデータ入力信号ＳＩをＨｉｇｈからＬｏｗに制御する。
ＣＬＫ停止制御部２０４Ｄ（６ａ）は、データ入力信号がＨｉｇｈからＬｏｗに遷移したことを確認すると、クロック信号ＣＬＫの停止制御を解除する（即ち、クロックを有効にする）。
ＳＰＩスレーブデバイス３０１Ａ（１）は、１５番目のクロックの立ち下がりと同時に、リードデータをＳＰＩマスタデバイス２０４Ｄに転送する。
【００６０】
ＳＰＩ制御部２０４Ｄ（１）は、１６番目のクロックの立ち上がりから、ＳＰＩスレーブデバイス３０１Ａ（１）より転送されるリードデータを読み込む。
なお、１６番目のクロック以後の処理は、図６に示したものと同様の処理となる。
【００６１】
以上説明したように、本実施形態によれば、ＳＰＩ制御部２０４Ｄ（１）は、ＳＰＩスレーブデバイス３０１Ａ（１）において転送準備が完了するまで、ＣＬＫ停止制御部２０４Ｄ（６ａ）はクロック動作を停止するように制御する。そのため、ＳＰＩスレーブデバイス３０１Ａ（１）からのデータ転送に関する遅延量が不明の場合、また変動する場合であっても、ＳＰＩマスタデバイス２０４Ｄにおけるデータの読み込み時のエラーを回避することができる。
【００６２】
次に、データの読み込み処理時に、アドレス情報等の付加情報の転送準備ができず、ＳＰＩマスタデバイス２０４ＤからＳＰＩスレーブデバイス３０１Ａ（１）にデータが転送されない場合について、図１５を参照して説明する。
この場合、ＳＰＩ制御部２０４Ｄ（１）は、リードコマンド信号の最後のビットの転送時に（即ち、クロック信号ＣＬＫの７番目のクロックの立ち上がりで）、ＣＬＫ停止制御部２０４Ｄ（６ａ）によりデータ入力信号ＳＩを監視し、ＳＰＩスレーブデバイス３０１Ａ（１）において転送準備が完了したか否かを確認する（即ち、データ入力信号ＳＩがＬｏｗであるか否かを確認する）。
【００６３】
図１５に示す例では、７番目のクロックの立ち上がり以後もアドレス情報等の付加情報の転送準備ができないため、データ入力信号ＳＩがＨｉｇｈである。したがって、ＣＬＫ停止制御部２０４Ｄ（６ａ）は、クロック信号ＣＬＫをＨｉｇｈに停止制御する。
ＣＬＫ停止制御部２０４Ｄ（６ａ）は、その後において、内部クロック信号ｉＣＬＫにより、データの転送準備ができてデータ入力信号ＳＩがＨｉｇｈからＬｏｗに遷移したことを確認すると、クロック信号ＣＬＫの停止制御を解除する。
ＳＰＩ制御部２０４Ｄ（１）は、８番目のクロックの立ち上がりよりリードデータを読み込む。
【００６４】
なお、図５、図６、図７、図１２、図１４、図１５では、データ出力信号として転送する、コマンド信号、アドレス信号、データ信号（即ち、ライトデータ、リードデータ）をいずれも８ビット長で構成させているが、８ビット長以外の長さでも、同様に対応（処理）することができる。
【００６５】
以上、説明したように、本発明の実施形態に係るＳＰＩマスタデバイスとＳＰＩスレーブデバイス間においてデータ転送を行うＳＰＩ通信システムでは、ＳＰＩスレーブデバイスからのデータの転送が遅延する場合に、ＳＰＩマスタデバイス側で、ＳＰＩスレーブデバイスからのデータ転送準備完了を示す入力データを監視する簡易な構成により、データの転送が遅延することによる信号読み取りエラーを未然に防止することができる。
そのため、例えば、ＳＰＩスレーブデバイスが旧プロセスで製造されたＡＳＩＣで構成されている場合に、それをマイコンで代替した場合に予想されるＳＰＩスレーブデバイスからＳＰＩマスタデバイスへのデータ転送時おける遅延の問題を解消することができる。
【符号の説明】
【００６６】
２０４Ｄ…ＳＰＩマスタデバイス、２０４Ｄ（１）…ＳＰＩ制御部、２０４Ｄ（２）…ＣＳ生成部、２０４Ｄ（３）…ＣＬＫ生成部、２０４Ｄ（４）…パラレル・シリアル変換部、２０４Ｄ（５）…シリアル・パラレル変換部、２０４Ｄ（６）…ＣＬＫ停止制御部。
【図１】
2016115154.tif 000003
【図２】
2016115154.tif 000004
【図３】
2016115154.tif 000005
【図４】
2016115154.tif 000006
【図５】
2016115154.tif 000007
【図６】
2016115154.tif 000008
【図７】
2016115154.tif 000009
【図８】
2016115154.tif 000010
【図９】
2016115154.tif 000011
【図１０】
2016115154.tif 000012
【図１１】
2016115154.tif 000013
【図１２】
2016115154.tif 000014
【図１３】
2016115154.tif 000015
【図１４】
2016115154.tif 000016
【図１５】
2016115154.tif 000017