(57)【要約】      （修正有）【課題】複数の装置を同一の通信経路に接続する場合において、各装置の駆動制御を効率化する。【解決手段】複数のデバイス２００ａと接続されて情報伝送を制御するＳＰＩコントローラ１１０であって、情報伝送を行うデバイスを選択する信号及び情報伝送の種類を識別する信号を出力し、情報伝送の種類に応じた伝送周波数を示すレジスタ値をデバイス２００ａから取得し、レジスタ値に応じた伝送周波数を決定し、決定された伝送周波数のクロック信号を出力する。【選択図】図１
2012134841.tif 000002
【特許請求の範囲】
【請求項１】
複数のデバイスと接続されて前記デバイスとの間での情報伝送を制御する伝送制御回路であって、
前記複数のデバイスのうち情報伝送を行うデバイスを選択する信号及び情報伝送の種類を識別する信号を出力する信号出力部と、
前記情報伝送の種類に応じた伝送周波数を示すレジスタ値を、前記情報伝送を行うデバイスから取得するレジスタ値取得部と、
前記取得されたレジスタ値に応じた伝送周波数を決定する周波数決定部と、
前記決定された伝送周波数のクロック信号を出力するクロック生成部とを含むことを特徴とする伝送制御回路。
【請求項２】
前記周波数決定部は、異なる複数のレジスタ値毎に予め記憶された伝送周波数を参照し、前記取得されたレジスタ値に応じた伝送周波数を決定することを特徴とする請求項１に記載の伝送制御回路。
【請求項３】
前記レジスタ値のビット数では表現不可能な伝送周波数を設定するべきことを示すフラグ信号を前記デバイスから取得するフラグ信号取得部を含み、
前記レジスタ値取得部は、前記レジスタ値を取得した際に前記フラグ信号が取得された場合、前記デバイスから続けてレジスタ値を取得し、
前記周波数決定部は、前記フラグ信号に応じて複数回にわたって取得された前記レジスタ値に基づき、前記伝送周波数を決定することを特徴とする請求項２に記載の伝送制御回路。
【請求項４】
前記周波数決定部は、前記レジスタ値が取得される毎に、前記取得されたレジスタ値に応じた伝送周波数を判断し、前記フラグ信号に応じて複数回にわたって取得された前記レジスタ値に応じた伝送周波数を合計することにより、伝送周波数を決定することを特徴とする請求項３に記載の伝送制御回路。
【請求項５】
前記異なる複数のレジスタ値毎に予め記憶された伝送周波数よりも詳細な伝送周波数を設定するべきことを判断する分解能設定部と、
前記レジスタ値取得部は、詳細な伝送周波数を設定する場合、前記レジスタ値を取得した際に、前記デバイスから続けてレジスタ値を取得し、
前記周波数決定部は、前記続けて取得された前記レジスタ値に応じて、前記伝送周波数のより小さい値を判断することにより、詳細な伝送周波数を決定することを特徴とする請求項１乃至４いずれか１項に記載の伝送制御回路。
【請求項６】
複数のシリアル伝送デバイスを１つのシリアルデバイスに接続するシリアル・ペリフェラル・インタフェースであることを特徴とする請求項１乃至５いずれか１項に記載の伝送制御回路。
【請求項７】
前記レジスタ値取得部は、前記伝送周波数を示すレジスタ値として、前記デバイスのステータスレジスタの値を取得することを特徴とする請求項１乃至６いずれか１項に記載の伝送制御回路。
【請求項８】
複数のデバイスと接続されて前記デバイスとの間での情報伝送を制御する伝送制御方法であって、
前記複数のデバイスのうち情報伝送を行うデバイスを選択する信号及び情報伝送の種類を識別する信号を出力し、
前記情報伝送の種類に応じた伝送周波数を示すレジスタ値を、前記情報伝送を行うデバイスから取得し、
前記取得されたレジスタ値に応じた伝送周波数を決定し、
前記決定された伝送周波数のクロック信号を出力することを特徴とする伝送制御方法。
【請求項９】
制御回路に複数接続されて前記制御回路との間で情報伝送を行う伝送装置であって、
情報伝送を行う伝送装置を選択する信号及び情報伝送の種類を識別する信号を前記制御回路から取得する信号取得部と、
前記取得された情報伝送の種類を識別する信号に応じて、対応可能な伝送周波数を示すレジスタ値を設定して出力するレジスタ設定部とを含むことを特徴とする伝送装置。
【請求項１０】
請求項１乃至７いずれか１項に記載の伝送制御回路と、請求項９に記載の伝送装置とを含むことを特徴とする伝送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、伝送制御回路、伝送制御方法、伝送装置及び伝送システムに関し、特に、複数の装置を同一の通信経路に接続する場合の各装置の駆動制御に関する。
【背景技術】
【０００２】
複数のシリアルデバイスを１つのシリアルバスに接続するＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）が一般的に用いられている。図１８は、一般的なＳＰＩのシステムの形態を示す図である。図１８に示すように、一般的なＳＰＩのシステムにおいては、複数のデバイスをＳＰＩコントローラ１に直接接続し、ＣＳ（Ｃｈｉｐ  Ｓｅｌｅｃｔ）信号で選択されたデバイス２ａ〜２ｄとの間で、ＳＰＩＤＯＵＴ信号及びＳＰＩＤＩＮ信号により通信を行う。ＳＰＩＤＯＵＴ信号とは、ＳＰＩコントローラ１からデバイス２ａ〜２ｄのいずれかへ情報を出力する信号であり、ＳＰＩＤＩＮ信号とは、デバイス２ａ〜２ｄのいずれかからＳＰＩコントローラ１へ情報を入力する信号である。
【０００３】
そして、ＳＰＩのクロック信号であるＳＰＩＣＬＫ信号は、接続されるデバイス２ａ〜２ｄ毎に駆動する最大周波数が仕様として定められている。またデバイスの種類によってはデバイスへのＲｅａｄコマンドを受け付ける場合とＷｒｉｔｅコマンドを受け付ける場合とで、駆動する最大周波数が大きく変わってくるものも存在する。
【０００４】
上述したように、ＳＰＩにおいては複数のデバイスがバスに直接接続されるため、接続されたデバイスの最大駆動周波数のうち、最も遅い周波数に合わせることで複数のデバイスの駆動を可能としていた。そのため、各デバイスの最大パフォーマンスを発揮できない効率の悪いシステムとなっていた。
【０００５】
これを改善するために、通信を行うＳＰＩデバイスごとに、最適となる周波数のＳＰＩクロックを出力するようにソフト制御する方法も提案されている。この場合ＳＰＩデバイスを切り替えるごとに毎回ソフト制御によって周波数設定を変える必要があるため、システムスピードに影響を及ぼす。これらの問題を解決するために複数のＳＰＩデバイスと通信するためのクロック生成回路をハード構成のみで組み立てる技術が既に知られている（例えば、特許文献１参照）。
【０００６】
図１９は、従来技術に係るＳＰＩのシステムの構成を示す図である。図１９のＳＰＩシステムは、ＳＰＩコントローラ１、ＳＰＩバッファ回路３、発振器４、最大駆動周波数が異なる複数のＳＰＩデバイス２ａ〜２ｃで構成されている。ＳＰＩコントローラ１はＣＳ信号によってＳＰＩデバイス２ａ〜２ｃの選択を行うと共に、ＳＰＩＣＬＫ信号を出力し、それに同期して送信データをＳＰＩバッファ回路３に出力する。
【０００７】
ＳＰＩバッファ回路３はＳＰＩコントローラ１からの送信データを保持し、所定のバイト入力に基づいて選択されたＳＰＩデバイス２ａ〜２ｃのいずれかに出力する。また発振器４はＳＰＩバッファ回路３から送信データをＳＰＩデバイス２ａ〜２ｃのいずれかに出力する際のクロック信号を出力する。
【０００８】
図２０は、図１９に示すＳＰＩバッファ回路３の構成を示す図である。図２０に示すように、ＳＰＩバッファ回路３は分周セレクタ３１、分周設定回路３２、パラレル・シリアル変換器３３、シリアル・パラレル変換器３４で構成されている。図２０に示すＳＰＩバッファ回路３は、ＬＳＩ（Ｌａｒｇ−Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）やマイコンに組み込むことにより、通常１つしかない分周設定用のラッチ（もしくはレジスタ）をＣＳ信号分用意し、選択されたＣＳ信号によって自動的にＳＰＩＣＬＫ信号の周波数を変更し、データを転送する回路である。
【０００９】
また分周設定回路３２は接続されているＳＰＩデバイスに対応するＳＰＩＣＬＫ信号を生成する構成であり、分周セレクタ３１によって分周する値をＳＰＩデバイスのＣＳ信号に応じて設定するための構成である。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、上述したような従来のＳＰＩのシステムの場合、分周セレクタ３１において、接続されるデバイスの個数分の分周比設定回路（レジスタ）と分周選択用ラッチを用意しなければならない。また、ＣＳ信号に応じて周波数を切り換えるため、ＳＰＩコントローラ１から受け取るコマンドによって最大駆動周波数が変わってくるデバイスに関しては、遅いコマンドに合わせて動作してしまい、デバイスの最大パフォーマンスを発揮できないという問題があった。
【００１１】
また、接続されるデバイスの最大駆動周波数を調べるためには、ＳＰＩコントローラを設計する前にデバイスのデータシートをそれぞれ目視確認しなければならず、さらにそれに合わせた専用の分周比設定回路を作ることになるため、設計前に想定していないデバイスを新たに接続する際には、追加のソフト制御を挿入しなければならず、システムスピードに影響を及ぼしてしまうという問題があり解決手段が求められた。
【００１２】
本発明は、上記実情を考慮してなされたものであり、複数の装置を同一の通信経路に接続する場合において、各装置の駆動制御を効率化することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明の一態様は、複数のデバイスと接続されて前記デバイスとの間での情報伝送を制御する伝送制御回路であって、前記複数のデバイスのうち情報伝送を行うデバイスを選択する信号及び情報伝送の種類を識別する信号を出力する信号出力部と、前記情報伝送の種類に応じた伝送周波数を示すレジスタ値を、前記情報伝送を行うデバイスから取得するレジスタ値取得部と、前記取得されたレジスタ値に応じた伝送周波数を決定する周波数決定部と、
前記決定された伝送周波数のクロック信号を出力するクロック生成部とを含むことを特徴とする。
【００１４】
また、前記周波数決定部は、異なる複数のレジスタ値毎に予め記憶された伝送周波数を参照し、前記取得されたレジスタ値に応じた伝送周波数を決定することが好ましい。
【００１５】
また、前記レジスタ値のビット数では表現不可能な伝送周波数を設定するべきことを示すフラグ信号を前記デバイスから取得するフラグ信号取得部を含み、前記レジスタ値取得部は、前記レジスタ値を取得した際に前記フラグ信号が取得された場合、前記デバイスから続けてレジスタ値を取得し、前記周波数決定部は、前記フラグ信号に応じて複数回にわたって取得された前記レジスタ値に基づき、前記伝送周波数を決定することが好ましい。
【００１６】
また、前記周波数決定部は、前記レジスタ値が取得される毎に、前記取得されたレジスタ値に応じた伝送周波数を判断し、前記フラグ信号に応じて複数回にわたって取得された前記レジスタ値に応じた伝送周波数を合計することにより、伝送周波数を決定することが好ましい。
【００１７】
また、前記異なる複数のレジスタ値毎に予め記憶された伝送周波数よりも詳細な伝送周波数を設定するべきことを判断する分解能設定部と、前記レジスタ値取得部は、詳細な伝送周波数を設定する場合、前記レジスタ値を取得した際に、前記デバイスから続けてレジスタ値を取得し、前記周波数決定部は、前記続けて取得された前記レジスタ値に応じて、前記伝送周波数のより小さい値を判断することにより、詳細な伝送周波数を決定することが好ましい。
【００１８】
また、複数のシリアル伝送デバイスを１つのシリアルデバイスに接続するシリアル・ペリフェラル・インタフェースであることが好ましい。
【００１９】
また、前記レジスタ値取得部は、前記伝送周波数を示すレジスタ値として、前記デバイスのステータスレジスタの値を取得することが好ましい。
【００２０】
他方、本発明の他の態様は、複数のデバイスと接続されて前記デバイスとの間での情報伝送を制御する伝送制御方法であって、前記複数のデバイスのうち情報伝送を行うデバイスを選択する信号及び情報伝送の種類を識別する信号を出力し、前記情報伝送の種類に応じた伝送周波数を示すレジスタ値を、前記情報伝送を行うデバイスから取得し、前記取得されたレジスタ値に応じた伝送周波数を決定し、前記決定された伝送周波数のクロック信号を出力することを特徴とする。
【００２１】
他方、本発明の更に他の態様は、制御回路に複数接続されて前記制御回路との間で情報伝送を行う伝送装置であって、情報伝送を行う伝送装置を選択する信号及び情報伝送の種類を識別する信号を前記制御回路から取得する信号取得部と、前記取得された情報伝送の種類を識別する信号に応じて、対応可能な伝送周波数を示すレジスタ値を設定して出力するレジスタ設定部とを含むことを特徴とする。
【００２２】
他方、本発明の更に他の態様は、伝送システムであって、上記伝送制御回路と、上記伝送装置とを含むことを特徴とする。
【発明の効果】
【００２３】
本発明によれば、複数の装置を同一の通信経路に接続する場合において、各装置の駆動制御を効率化することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態に係る伝送システム全体の構成を示すブロック図である。
【図２】一般的なＳＰＩのステータスレジスタの態様を示す図である。
【図３】本発明の実施形態に係るＳＰＩのステータスレジスタの態様を示す図である。
【図４】本発明の実施形態に係る周波数情報テーブルの例を示す図である。
【図５】本発明の実施形態に係るＳＰＩコントローラの構成を示す図である。
【図６】本発明の実施形態に係る伝送システムの動作を示すシーケンス図である。
【図７】本発明の他の実施形態に係るＳＰＩコントローラの構成を示す図である。
【図８】本発明の他の実施形態に係る仮想的な周波数情報テーブルの例を示す図である。
【図９】本発明の他の実施形態に係る伝送システムの動作を示すシーケンス図である。
【図１０】本発明の他の実施形態に係るデバイスの動作を示すフローチャートである。
【図１１】本発明の他の実施形態に係るレジスタ値の処理態様を示す図である。
【図１２】本発明の他の実施形態に係るＳＰＩコントローラの動作を示すフローチャートである。
【図１３】本発明の他の実施形態に係るデバイスのハードウェア構成を示す図である。
【図１４】本発明の他の実施形態に係るデバイスの動作を示すフローチャートである。
【図１５】本発明の他の実施形態に係るＳＰＩコントローラの構成を示す図である。
【図１６】本発明の他の実施形態に係る詳細設定テーブルの例を示す図である。
【図１７】本発明の他の実施形態に係る伝送システムの動作を示すシーケンス図である。
【図１８】従来技術に係る伝送システムの構成を示す図である。
【図１９】従来技術に係る伝送システムの構成を示す図である。
【図２０】従来技術に係るＳＰＩバッファ回路の構成を示す図である。
【発明を実施するための形態】
【００２５】
実施の形態１．
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、伝送制御回路の一例であるＳＰＩコントローラを含むＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）及びそれに接続されるデバイスによって構成される伝送システムについて説明する。
【００２６】
本実施形態に係る伝送システムは、ＳＰＩコントローラに接続されるデバイスの種類やＳＰＩコントローラからデバイスに投げられるコマンドの種類に関係なく、各デバイスのパフォーマンスが効率的に発揮される周波数が自動的に設定される。具体的には、ＳＰＩコントローラが、接続されているデバイスの最大設定周波数情報を取得できように構成することで、データ通信開始前に使用するデバイスに最適な分周比設定を行うものである。
【００２７】
図１は、本実施形態に係る伝送システムの構成を示す図である。図１に示すように本実施形態に係る伝送システムは、ＡＳＩＣ１００及びＡＳＩＣ１００に接続されるデバイス２００ａ、２００ｂ（以降、総じてデバイス２００とする）を含む。ＡＳＩＣ００は伝送制御回路として機能し、ＳＰＩコントローラ１１０を含む。そして、本実施形態に係るＳＰＩコントローラ１１０は、周波数解析・出力部１１１を含む。
【００２８】
ＳＰＩコントローラ１１０はＣＳ（Ｃｈｉｐ  Ｓｅｌｅｃｔ）信号によって情報の入出力を行うデバイス２００を選択する。ＳＰＩコントローラ１１０は、デバイス２００を選択すると、これから行うコマンド（Ｒｅａｄ／Ｗｒｉｔｅ）を対象のデバイス２００に入力する。
【００２９】
デバイス２００はコマンドに応じた最大動作周波数情報をＳＰＩコントローラ１１０に送る。ＳＰＩコントローラはその周波数情報を解析してＳＰＩＣＬＫを生成して出力することにより、デバイス２００とのデータの送受信を行う。
【００３０】
ＳＰＩコントローラ１１０と接続され、ＳＰＩ通信プロトコルに従って情報の伝送を行うデバイス２００は、図２に示すようにビットアサインされたステータスレジスタを含む。図２に示すＢｉｔ７のＳＲＷＤ（Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ  Ｗｒｉｔｅ  Ｄｉｓａｂｌｅ）は、Ｂｉｔ１のＷＥＬ（Ｗｒｉｔｅ  Ｅｎａｂｌｅ  Ｌａｔｃｈ）とＷｒｉｔｅ  Ｐｒｏｔｅｃｔｉｏｎ信号（ＷＰ）とともにハードウェア記憶ブロック保護を提供するのに用いられる。ビット２、３のＢＰ（Ｂｌｏｃｋ  Ｐｒｏｔｅｃｔ）０とＢＰ１は、Ｗｒｉｔｅ命令に対するソフトウェアプロテクトの領域サイズを定義するものである。
【００３１】
そして、図２に示すように、Ｂｉｔ０及びＢｉｔ４〜６はＢｉｔアサインされておらずＤｏｎ‘ｔ  ｃａｒｅとなっている。このようにビットアサインされていないビットに情報を持たせることにより、上述したような構成を実現することが、本実施形態に係る要旨の１つである。
【００３２】
図３は、本実施形態に係るＳＰＩ通信プロトコルにおけるステータスレジスタのビットアサインを示す図である。Ｂｉｔ０はフリーで使用できるビットであるが、本実施形態においては、Ｃｏｍｍａｎｄ  Ｓｔａｔｕｓとして、０ならＲｅａｄ、１ならＷｒｉｔｅのように、ＳＰＩコントローラ１１０からデバイス２００へＲｅａｄもしくはＷｒｉｔｅのどちらのコマンドを入力しようとするかの情報を受け取るビットをアサインする。
【００３３】
Ｂｉｔ４〜６には入力しようとするコマンドに対応した周波数情報がデバイス２００によって設定されるビットをアサインし、Ｂｉｔ０の状態の変化に応じて設定が行われる。デバイス２００は、図４に示すような周波数の標準テーブルに従ってＢｉｔ４〜６を設定する。この標準テーブルは、ＳＰＩコントローラ１１０及びデバイス２００の双方において記憶されているものである。
【００３４】
例えば、Ｒｅａｄコマンドが入力されたときは最大２５ＭＨｚで動作可能で、Ｗｒｉｔｅコマンドが入力されたときは最大５２ＭＨｚで動作可能なデバイス２００を例とする。このデバイス２００において、Ｒｅａｄコマンドが入力されたとき（Ｂｉｔ０が０のとき）、デバイス２００は、Ｂｉｔ４〜６を図４のＮｏ．３の状態に設定する。また、Ｗｒｉｔｅコマンドが入力されたとき（Ｂｉｔ０が１のとき）、デバイス２００は、Ｂｉｔ４〜６を図４のＮｏ．６の状態に設定する。
【００３５】
尚、デバイス２００においては、少なくとも設定するべき周波数に応じたビットが記憶されていれば良い。例えば、上記のデバイス２００であれば、Ｒｅａｄコマンドが入力された場合に設定するべきビットであるＮｏ．３の“０，１，１”というビットと、Ｗｒｉｔｅコマンドが入力された場合に設定するべきビットであるＮｏ．６の“１，０，１”というビットを記憶しておけば良い。また図４のテーブルに関しては、Ｎｏ．１は１００ＭＨｚ、Ｎｏ．２は２００ＭＨｚというように、よく使用される周波数の固定値として対応周波数を設定することも可能である。
【００３６】
図５は、本実施形態に係るＳＰＩコントローラ１１０の構成を示す図である。図５に示すように、本実施形態に係るＳＰＩコントローラ１１０は、ＣＬＫ生成部１１７、分周比レジスタ１１６に加えて、周波数解析・出力部１１１を含む。周波数解析・出力部１１１は、デバイス２００による周波数設定値を分周被レジスタに反映するための構成であり、周波数情報記憶部１１２、周波数情報入力部１１３、ＣＬＫ情報保持部１１４及び周波数情報決定部１１５を含む。
【００３７】
周波数情報記憶部１１２は、図４に示すテーブルを記憶している。周波数情報入力部１１３は、デバイス２００のステータスレジスタ１１０から周波数設定、即ちＢｉｔ４〜Ｂｉｔ６を取得する。ＣＬＫ情報保持部１１４は、ハードウェアで生成できるＣＬＫの周期情報を保持している。周波数情報決定部１１５は、入力された周波数情報に基づいて周波数テーブルを参照し、最適なクロックをＣＬＫ情報と比較して分周比レジスタ１１６に設定する。
【００３８】
このようなＳＰＩコントローラ１１０の動作について、図６を参照して説明する。図６は、ＳＰＩコントローラ１１０が、あるデバイス２００と通信を開始する際の、周波数解析動作を示すシーケンス図である。図６に示すように、まず、ＳＰＩコントローラ１１０は、使用するデバイス２００のＣＳ信号をディアサートし（Ｓ６０１）、通信相手となるデバイス２００を特定する。
【００３９】
そして、周波数解析・出力部１１１が、これから行う予定のＲｅａｄ／Ｗｒｉｔｅ等のコマンド情報をデバイス２００に送信する（Ｓ６０２）。Ｓ６０１、Ｓ６０２においては、ＳＰＩコントローラ１１０が、情報伝送を行うデバイス２００を選択する信号及び情報伝送の種類を識別する信号を出力する信号出力部として機能する。これにより、デバイス２００は、コマンドに応じた値を図３に示すステータスレジスタのＢｉｔ０へ反映する（Ｓ６０３）。即ち、デバイス２００内部の構成が、信号取得部として機能する。Ｂｉｔ０の値を設定したデバイス２００は、Ｂｉｔ４〜６に、最大動作周波数が含まれる範囲の設定を行う（Ｓ６０４）。即ち、デバイス２００内部の構成が、レジスタ設定部として機能する。
【００４０】
これにより、Ｂｉｔ４〜６の値が、ＳＰＩコントローラ１１０の周波数情報入力部１１３に入力される。即ち、周波数情報入力部１１３によってデバイス２００のステータスレジスタのＢｉｔ４〜６の値がリードされる（Ｓ６０５）。Ｓ６０５においては、周波数情報入力部１１３が、レジスタ値取得部として機能する。
【００４１】
周波数情報入力部１１３がＢｉｔ４〜６の値を周波数情報として取得すると、周波数情報決定部１１５は、ＣＬＫ生成部１１７にて生成可能なＣＬＫ情報をＣＬＫ情報保持部１１４から取得する（Ｓ６０６）。そして、ＣＬＫ情報、入力された周波数情報、周波数情報テーブルを参照し、分周レジスタ１１６の最適な設定値を決定して分周比レジスタ１１６に反映する（Ｓ６０７）。即ち、周波数情報決定部１１５が、周波数決定部として機能する。この分周比レジスタ１１６の設定値に基づいてＣＬＫ生成部１１７がＣＬＫの生成を行うことにより、ＳＰＩコントローラ１１０がデータ通信を開始する（Ｓ６０８）。
【００４２】
従来は、使用するデバイス２００のＣＳ信号がディアサートされると、ＣＬＫ生成部１１７が分周比レジスタ１１６に設定された値を元にクロック信号を生成しデータ通信が開始される仕組みとなっていた。これに対して、本実施形態に係るＳＰＩコントローラ１１０は、デバイス２００から取得される周波数情報であるステータスレジスタの設定値に基づいて周波数解析を行う。このような制御が、通信を行うデバイスが変わる（ＣＳ信号がアサート）もしくはコマンドが変更になるたびに実行されることにより、ダイナミックにＣＬＫ周波数を変更していくことが可能となる。
【００４３】
以上、説明したように、本実施形態に係る伝送システムにおいては、ＳＰＩに接続されるデバイスの種類やコマンドの種類に左右されることなく、デバイスの最大パフォーマンスに応じたパフォーマンスが出せるような周波数設定をデバイスのデータシートを見ることなくハードウェアで自動的に行うことが可能となる。
【００４４】
実施の形態２．
本実施形態においては、図４に示す周波数情報テーブルを前提とした場合において、対応周波数が１００ＭＨｚや２００ＭＨｚ等、図４において最大の周波数である７０ＭＨｚではパフォーマンスが発揮されないデバイス２００が用いられる場合について説明する。尚、実施の形態１と同様の符号を付す構成については、実施の形態１と同一または相当する構成を示すものとし、詳細な説明を省略する。
【００４５】
図７は、本実施形態に係るＳＰＩコントローラ１１０の構成を示す図である。図７に示すように、本実施形態に係るＳＰＩコントローラ１１０は、図５に示す実施の形態１の構成に、図４の周波数テーブルよりも高い周波数を設定するための周波数シフト情報入力部１１９と、実際に設定される周波数を計算するための周波数計算部１１８を追加した構成となっている。また、図３で示したステータスレジスタのＢｉｔ０は、シフトするかどうか、即ち、図４の周波数テーブルよりも高い周波数を設定するかどうかのフラグ情報が入るようにする。
【００４６】
図４に示す周波数テーブルにおいてＮｏ．１以外のナンバーの設定は、ナンバーの数に応じて対応周波数の範囲が１０ＭＨｚずつ大きくなり、夫々の対応周波数の範囲に応じた設定周波数は、その対応周波数の範囲の最低値となるルールに従っている。本実施形態に係るデバイス２００は、８０ＭＨｚ以上の周波数を設定する場合、図４に示すＮｏ．８以上の階層をこのルールに従って仮想的に設定する。図８は、本実施形態に係るデバイス２００が仮想的に設定するビットを示す図である。
【００４７】
図８に示すように、Ｎｏ．８よりも上の階層をルールに従って設定する場合、３ビットでは足りないため、“Ｂｉｔ４´”、“Ｂｉｔ５´”、“Ｂｉｔ６´”のように、補助的にビットを設定する。図８においては、合計で６ビットまで示しているが、このビット数に制限はなく、“Ｂｉｔ４´´”、“Ｂｉｔ５´´”、“Ｂｉｔ６´´”のように、更に補助的にビットを設定することが可能である。
【００４８】
図９は、本実施形態において、ＳＰＩコントローラ１１０が、あるデバイス２００と通信を開始する際の、周波数解析動作を示すシーケンス図である。Ｓ９０１〜Ｓ９０３までは、図６のＳ６０１〜Ｓ６０３と同様の処理が実行される。そして、デバイス２００は、Ｂｉｔ０に設定した値に基づき、最大周波数を確認する（Ｓ９０４）。Ｓ９０４において、８０ＭＨｚ以上の高い周波数が確認されることが、本実施形態の前提である。
【００４９】
その後デバイス２００は、Ｓ９０４において確認された周波数に基づき、ＳＰＩコントローラ１１０とやりとりを繰り返しながら周波数設定処理を行う（Ｓ９０５）。そして、ＳＰＩコントローラ１１０においては、デバイス２００とのやり取りにより、周波数計算部１１８が周波数を計算する（Ｓ９０６）。Ｓ９０５、Ｓ９０６の処理により、ＳＰＩコントローラ１１０において設定するべき周波数が算出される。尚、Ｓ９０５、Ｓ９０６の処理については後に詳述する。
【００５０】
Ｓ９０６の処理が完了すると、Ｓ６０６〜Ｓ６０８の処理と同様の処理により、通信が開始される（Ｓ９０７〜Ｓ９０９）。尚、Ｓ９０８においては、Ｂｉｔ４〜６に応じた値を分周レジスタ１１６に設定するのではなく、Ｓ９０６の算出結果に応じた値を分周レジスタ１１６に設定する。
【００５１】
図１０は、Ｓ９０５の処理の詳細を示すフローチャートである。デバイス２００は、Ｓ９０４の処理により最大周波数を確認することにより、図８に示すようなルールに従って対応周波数の範囲をビットで表現する（Ｓ１００１）。そして、デバイス２００は、対応周波数が３ビットで表現可能か否か判断する（Ｓ１００２）。
【００５２】
Ｓ１００２の判断の結果、３ビットで表現可能であった場合、デバイス２００は、ステータスレジスタのＢｉｔ０に“０”を設定する（Ｓ１００３）。他方、３ビットで表現不可能であった場合、デバイス２００は、ステータスレジスタのＢｉｔ０に“１”を設定する（Ｓ１００４）。
【００５３】
Ｓ１００３、Ｓ１００４の処理が完了すると、デバイス２００は、ステータスレジスタのＢｉｔ０の値を確認する（Ｓ１００５）。Ｂｉｔ０の値が“１”であった場合（Ｓ１００５／ＮＯ）、即ち、対応周波数が３ビット以上によって表現されている場合、デバイス２００は、対応周波数が表現されたビット列の下位３ビットをステータスレジスタのＢｉｔ４〜６に設定する（Ｓ１００８）。
【００５４】
例えば、図１１（ａ）に示す“１，０，１，０，０，１，１”というビット列がＳ１００１において生成されたとする。この場合、Ｓ１００８において、デバイス２００は、図１１（ｂ）に示すように、下位３ビットである“０，１，１”をＢｉｔ４〜６に設定する。
【００５５】
そして、デバイス２００は、Ｓ１００８において設定したレジスタ値及びビット列のシフトがあることを示すフラグ情報をＳＰＩコントローラ１１０に送信する（Ｓ１００９）。これにより、Ｂｉｔ４〜６のレジスタ値は周波数情報入力部１１３に入力され、ビット列のシフトがあることを示すフラグ情報は、周波数シフト情報入力部１１９に入力される。即ち、周波数シフト情報入力部１１９が、フラグ情報取得部として機能する。
【００５６】
レジスタ値を送信すると、デバイス２００は、図１１（ｃ）に示すように、対応周波数のビット列を３ビットシフトする（Ｓ１０１０）。換言すると、Ｓ１０１０において、デバイス２００は、対応周波数のビット列のうち下位３ビットを切り捨てる。そして、Ｓ１００２からの処理を繰り返す。
【００５７】
図１１（ｃ）の状態の場合、まだビット列は４ビットなので、Ｓ１００２の判断の結果Ｂｉｔ０には“１”がセットされ、Ｓ１００８〜Ｓ１０１０の処理が実行される。これにより、図１１（ｄ）に示すように、“０，１，０”がＢｉｔ４〜６にセットされ、ＳＰＩコントローラ１１０に送信される。また、Ｓ１０１０の処理により、図１１（ｅ）に示すように、対応周波数のビット列が“１”
のみの１ビットになる。
【００５８】
対応周波数のビット列が図１１（ｅ）の状態になってから再度Ｓ１００２の処理を繰り返すと、今度はＳ１００２の判断によりＢｉｔ０に“０”が設定される。そして、Ｂｉｔ０が“０”となった場合（Ｓ１００５／Ｙｅｓ）、デバイス２００は、その状態における対応周波数のビット列の下位３ビットを、図１１（ｆ）に示すように、ステータスレジスタのＢｉｔ４〜６に設定し（Ｓ１００６）、設定したレジスタ値とビット列のシフトが無いことを示すフラグ情報をＳＰＩコントローラ１１０に送信する（Ｓ１００７）。これにより、Ｓ９０５の処理が完了する。
【００５９】
図１２は、Ｓ９０６の処理の詳細を示すフローチャートである。図１２に示すように、周波数情報入力部１１３がデバイス２００からレジスタ値を取得すると（Ｓ１２０１）、周波数シフト情報入力部１１９が、レジスタ値と同時に入力されたフラグ情報が、シフトありフラグ及びシフト無しフラグのいずれであるかを判断する（Ｓ１２０２）。
【００６０】
Ｓ１２０２の判断の結果、シフトありフラグの場合（Ｓ１２０２／ＮＯ）、周波数シフト情報入力部１１９はその判断結果を示す信号を周波数計算部１１８に入力し、周波数計算部１１８が、周波数情報入力部１１３が受信したレジスタ値を取得して記憶する（Ｓ１２０４）。これにより、周波数計算部１１８にＢｉｔ４〜６の設定値が格納される。
【００６１】
ＳＰＩコントローラ１１０は、図１０のＳ１００９及びＳ１００７の処理に応じてレジスタ値が取得される度にＳ１２０１からの処理を繰り返す。そして、Ｓ１２０２の判断の結果、シフト無しフラグであった場合（Ｓ１２０２／ＹＥＳ）、そのタイミングで周波数情報入力部１１３が受信したレジスタ値と、既に周波数計算部１１８に格納されている設定値とに基づいて、周波数計算部１１８が対応周波数を計算し（Ｓ１２０３）、処理を終了する。
【００６２】
図１２の処理により、対応周波数が図１１（ａ）に示すような３ビットよりも長いビット列によって表現される場合であっても、３ビットずつに分割してＳＰＩコントローラ１１０に設定値を与えることができる。
【００６３】
尚、与えられた設定値に基づいて対応周波数を計算する図１２のＳ１２０３の処理においては、例えば、ＳＰＩコントローラ１１０側において図４に示すテーブルよりも、もっと多くのビット列に対応したテーブルを記憶しておき、そのテーブルを参照することにより対応周波数を求めることができる。
【００６４】
また、図８から明らかなように、各対応周波数のうちＮｏ．１以外の周波数は、対応するビット列を１０進数に直した数値に１０７を乗じた周波数（Ｈｚ）となっている。例えば、Ｎｏ．３の場合、対応するビット列を１０進数に直すと“２”であり、対応周波数は２０ＭＨｚである。従って、Ｓ１２０３において、周波数計算部１１８は、与えられたビット列を１０進数に直して１０７を乗ずることにより、対応周波数を算出しても良い。
【００６５】
以上説明したように、本実施形態に係る伝送システムにおいては、周波数情報テーブルで決められている最大の周波数よりも高い周波数の生成を行うための設定が可能となり、よりデバイスの最大パフォーマンスに近い周波数設定をデバイスのデータシートを見ることなくハードウェアで自動出力することが可能となる。
【００６６】
尚、図１０に示すようなデバイス２００の処理は、一般的にはソフトウェア処理によって実現される。以下、デバイス２００においてソフトウェア処理を実現するためのハードウェア構成について図１３を参照して説明する。図１３に示すように、本実施形態に係るデバイス２００は、一般的な情報処理端末と同様の構成を有する。即ち、本実施形態に係るデバイス２００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０３、ＮＶＲＡＭ（Ｎｏｎ  Ｖｏｌａｔｉｌｅ  ＲＡＭ）２０４がバス２０５を介して接続されている。
【００６７】
ＣＰＵ２０１は演算手段であり、デバイス２００全体の動作を制御する。ＲＡＭ２０２は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ２０１が情報を処理する際の作業領域として用いられる。ＲＯＭ２０３は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。ＮＶＲＡＭ２０４は、情報の読み書きが可能な不揮発性の記憶媒体であり、各種の制御プログラム等が格納されている。
【００６８】
このようなハードウェア構成において、ＲＯＭ２０３やＮＶＲＡＭ２０４等の記録媒体に格納されたプログラムがＲＡＭ２０２に読み出され、それらのプログラムに従ってＣＰＵ２０１が演算を行うことにより、ソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、図１０に示すような、デバイス２００の処理を実現する機能ブロック、即ち、上述したような信号取得部及びレジスタ設定部が構成される。
【００６９】
また、上記実施形態においては、図８に示すような仮想的なテーブルに従い、図４に示す周波数情報テーブルの上限値を超えている周波数に対応する場合を例として説明したが、３ビットずつ周波数情報を送信する方法を利用し、他の態様によって対応することも可能である。
【００７０】
例えば、１００ＭＨｚに対応する場合、デバイス２００は、３０ＭＨｚを示す設定値と７０ＭＨｚを示す設定値を送信し、ＳＰＩコントローラ１１０が、受信した設定値を足すことによって１００ＭＨｚという設定を認識することも可能である。そのような場合のデバイス２００の動作について、図１４を参照して説明する。
【００７１】
図１４に示すように、Ｓ１４０１〜Ｓ１４０５までは、図１０のＳ１１０１〜Ｓ１１０５までと同様に処理が実行される。そして、Ｂｉｔ０の値が“１”であった場合（Ｓ１４０５／ＮＯ）、即ち、図４に示すテーブルでは好適な周波数を表現できない場合、デバイス２００は、図４に示す周波数情報テーブルにおいて最大の周波数を示すビット、即ち、図４の例においては、７０ＭＨｚを示す“１，１，１”をステータスレジスタに設定する（Ｓ１４０８）。
【００７２】
そして、Ｓ１００９と同様にレジスタ値をＳＰＩコントローラ１１０に送信すると、デバイス２００は、Ｓ１４０１において確認された対応周波数から、周波数情報テーブルにおける最大の対応周波数を減ずる（Ｓ１４１０）。例えば、対応周波数が１００ＭＨｚであった場合、Ｓ１４０１の処理においては、７０ＭＨｚを減じて３０ＭＨｚという値が求められる。
【００７３】
その後、Ｓ１４０２からの処理を繰り返し、Ｓ１４０２の判断によりＢｉｔ０に“０”が設定されると、デバイス２００はその時点での対応周波数、即ち、Ｓ１４１０の処理において引き算が行われた結果の値を、ステータスレジスタに設定し（Ｓ１４０６）、ＳＰＩコントローラ１１０に送信する（Ｓ１４０７）。これにより、対応周波数が１００ＭＨｚである場合、“７０ＭＨｚ”という周波数と“３０ＭＨｚ”という周波数が送信される事となる。
【００７４】
図１４に示すようなデバイス２００の動作に応じて、ＳＰＩコントローラ１１０においては、周波数情報入力部１１３が３ビット毎にレジスタ値を取得し、周波数情報テーブルに基づいて対応周波数に変換して記憶する。そして、シフト無しのレジスタ値が入力されたら、そのレジスタ値に基づいて変換された対応周波数を含めて、記憶した全周波数を足し、最終的な対応周波数を求めて周波数情報決定部１１５に入力する。このような態様であっても、上記と同様に、周波数情報テーブルの上限値を超えている周波数に対応することが可能となる。
【００７５】
実施の形態３．
本実施形態においては、図４に示す周波数情報テーブルを前提とした場合において、１０ＭＨｚよりもより詳細な分解能での周波数設定を可能とする態様について説明する。尚、実施の形態１と同様の符号を付す構成については、実施の形態１と同一または相当する構成を示すものとし、詳細な説明を省略する。
【００７６】
図１５は図４に示す周波数テーブルで決められている分解能よりも細かいＣＬＫ周波数設定を行いたい場合のハードウェア構成図例を示したものであり、図５の構成に、細い分解能で周波数設定を行うための分解能情報設定部１２１と、実際に設定される周波数を計算するための設定周波数情報計算部１２０を追加した構成となっている。また周波数情報テーブルとして、図４に示すテーブルに加えて、図１６に示すテーブルを記憶している。図１６に示すテーブルは、図４に示す周波数情報テーブルの各周波数範囲の幅である１０ＭＨｚを、８等分した詳細な値とレジスタ値との関連付けを示す詳細設定テーブルである。これにより、より細かい周波数設定が可能となる。
【００７７】
このような構成によるＳＰＩコントローラ１１０の動作について、図１７を参照して説明する。図５の構成と同様にＳＰＩコントローラ１１０は、使用するデバイス２００のＣＳ信号をディアサートした上で（Ｓ１７０１）、これから行う予定のコマンド情報をデバイス２００に投げ（Ｓ１７０２）、コマンドに応じた値がデバイス２００のステータスレジスタのＢｉｔ０へ反映される（Ｓ１７０３）。そして、デバイス２００は、Ｂｉｔ０の値に応じた、デバイスの最大動作周波数が含まれる範囲をＢｉｔ４〜６に設定する（Ｓ１７０４）。
【００７８】
これにより、ＳＰＩコントローラ１１０において、周波数情報入力部１１３にＢｉｔ４〜６の値が入力され（Ｓ１７０５）、図４の周波数情報テーブルに基づいて対応周波数が認識される。尚、ＳＰＩコントローラ１１０においては、Ｆ１の値、即ち、対応周波数範囲の最低値を設定周波数情報計算部１２０に保持する（Ｓ１７０６）。また、デバイス２００は、Ｂｉｔ４〜６の値をＳＰＩコントローラ１１０側に入力すると、Ｂｉｔ０の値をリセットする。
【００７９】
ＳＰＩコントローラ１１０は、Ｆ１の値を保持すると、分解能情報設定部１２１が分解能設定を確認する。そして、分解能設定がｏｆｆであれば実施の形態１におけるＳ６０６と同様の動作を続けて行う。即ち、分解能情報設定部１２１が、分解能設定部として機能する。
【００８０】
分解能設定がＯＮの場合、ＳＰＩコントローラ１１０が分解能コマンドを送信することにより（Ｓ１７０７）、デバイス２００のステータスレジスタのＢｉｔ０に１が反映され（Ｓ１７０８）、再度、デバイス２００のステータスレジスタのＢｉｔ４〜６に最大動作周波数が含まれる範囲の設定が行われる。ただしこのときの設定は、図１６で示すように１度目の周波数設定で決められた範囲（Ｆ１＜Ｆ≦Ｆ２）を８等分した範囲の中から選択された設定、即ち分解能設定である。
【００８１】
これにより、ＳＰＩコントローラ１１０において、周波数情報入力部１１３にＢｉｔ４〜６の値が再度入力される（Ｓ１７１０）。その後、周波数情報決定部１１５は、ＣＬＫ情報を参照し（Ｓ１７１１）、ＣＬＫ生成部にて生成可能なＣＬＫ情報と、Ｓ１７１０で入力された周波数情報、設定周波数情報計算部１２０に保持されたＦ１の値に応じた値に基づいて分周比レジスタの最適な設定値を決定し、分周比レジスタに反映する（Ｓ１７１２）。これにより、データ通信が開始される（Ｓ１７１４）。
【００８２】
以上の仕組みを実現することによって図４の周波数情報テーブルで決められている分解能よりも細いＣＬＫ周波数設定が可能となり、よりデバイスの最大パフォーマンスに近い周波数設定をデバイスのデータシートを見ることなくハードウェアで自動出力することが可能となる。
【符号の説明】
【００８３】
２０１  テンポラリ領域
２０２  ドキュメントＢＯＸ領域
２０３  ログ領域
２０４  ファイルシステム領域
３０１  コピーアプリ
３０２  プリンタアプリ
３０３  記憶管理プログラム
３０４  ＮＡＮＤ制御プログラム
８０１  スキャナ部
８０２  レーザー記録部
８０３  後処理部
８０４  原稿台
８０５  ＲＡＤＦ
８０６  スキャナユニット
８０７  用紙搬送部
８０８  レーザー書込みユニット
８０９  電子写真プロセス部
９０１  両面ユニット
９０２  読み取りスキャナ部
９０３  プロセス部
９０４  ＣＰＵ
９０５  ＲＡＤＦ
９０６  給紙搬送部
９０７  マシンコントロールボード
９０８  後処理装置
９０９  ＣＰＵ
９１０  ＲＡＭ
９１１  ＣＰＵ
９１２  操作キー
９１３  ＬＣＤ
９１４  操作パネル
９１５  ＲＡＭ
９１６  ＣＰＵ
９１７  オペレーションパネルボード
９１８  アナログ回路
９１９  Ａ／Ｄ変換部
９２０  ＣＣＤ制御部
９２１  ＣＣＤ
９２３  レーザーコントロール部
９２４  レーザー書込部
９２５  ＩＰＵ  ＡＳＩＣ
９２６  画像処理ボード
９２７  ＤＲＡＭ
９２８  ＣＰＵ
９２９  ＮＡＮＤフラッシュメモリ
【先行技術文献】
【特許文献】
【００８４】
【特許文献１】特開２００７−５９０７２号公報
【図１】
2012134841.tif 000003
【図２】
2012134841.tif 000004
【図３】
2012134841.tif 000005
【図４】
2012134841.tif 000006
【図５】
2012134841.tif 000007
【図６】
2012134841.tif 000008
【図７】
2012134841.tif 000009
【図８】
2012134841.tif 000010
【図９】
2012134841.tif 000011
【図１０】
2012134841.tif 000012
【図１１】
2012134841.tif 000013
【図１２】
2012134841.tif 000014
【図１３】
2012134841.tif 000015
【図１４】
2012134841.tif 000016
【図１５】
2012134841.tif 000017
【図１６】
2012134841.tif 000018
【図１７】
2012134841.tif 000019
【図１８】
2012134841.tif 000020
【図１９】
2012134841.tif 000021
【図２０】
2012134841.tif 000022