(57)【特許請求の範囲】
【請求項１】
１つ又は複数のモータをドライブするドライブ装置へ前記モータを制御するための制御データをシリアル伝送するモータ制御装置であって、
前記制御データの基となるデータを格納するためのデータバッファと、
ダイレクトメモリアクセスにより前記データバッファにデータを転送するＤＭＡ手段と、
前記データバッファに格納されたデータに基づき前記制御データを作成して前記ドライブ装置へシリアル伝送するためのデータ作成伝送処理を行なうハードウェア回路と、を備え、
前記ハードウェア回路は、所定のメモリアドレスがアドレスバスに出力された場合に当該メモリアドレスに対応したデータバッファに書込み有効信号を出力するデコーダ回路を含み、前記データバッファは、前記書込み有効信号が出力された場合に、その時点でデータバスに出力されているデータが書込まれ、
前記ハードウェア回路は、前記データバッファにデータが書込まれたことをトリガーとして前記データ作成伝送処理を開始するとともに、
前記データバッファは、前記制御データの構成要素となる複数種類のデータに夫々対応して設けられており、前記ハードウェア回路は何れか１つの前記データバッファにデータが書込まれた場合に前記データ作成伝送処理を開始することを特徴とするモータ制御装置。
【請求項２】
請求項１記載のモータ制御装置において、前記データバッファに格納されたデータの各ビットと、前記制御データの各ビットとの対応関係が予め定められており、前記ハードウェア回路は、当該対応関係に基づいて、前記データバッファの各ビットの値を前記制御データの対応するビットの値とすることにより前記制御データを作成することを特徴とする装置。
【請求項３】
請求項１または２記載のモータ制御装置において、前記ドライブ装置は複数のモータを駆動するものであり、各モータに対応して１または複数の前記データバッファが設けられていることを特徴とする装置。
【請求項４】
請求項３記載のモータ制御装置において、
前記ドライブ装置は、所定の選択信号で指定されたモータを、伝送されてきた前記制御データに基づいて駆動するように構成されており、
前記ハードウェア回路は、データが書込まれたデータバッファに対応するモータを指定した前記選択信号を前記ドライブ装置に送信する手段を含むことを特徴とするモータ制御装置。
【請求項５】
請求項１乃至４のうち何れか１項記載のモータ制御装置において、
何れか１つの前記データバッファにデータが書込まれた場合に、当該データバッファについて予約フラグを設定する手段を備え、
前記ハードウェア回路は、前記制御データのシリアル伝送が終了した時点で何れかの前記データバッファについて前記予約フラグが設定されている場合に、当該データバッファに格納されたデータに基づく前記データ合成伝送処理を開始することを特徴とする装置。
【請求項６】
請求項１乃至５のうち何れか１項記載のモータ制御装置において、前記ハードウェア回路は、前記データバッファに格納されたデータから前記制御データを作成するロジックが異なる複数の動作モードで動作可能であり、
前記ハードウェア回路の動作モードを設定する手段を備えることを特徴とする装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、モータをドライブするドライブ装置へ制御データをシリアル伝送するモータ制御装置および方法に関する。
【０００２】
【従来の技術】
従来、例えばプリンタ装置等におけるモータ制御は、ＣＰＵからモータのドライブ素子に対して制御データを伝送することにより行われる。その場合のデータ伝送路の方式としてパラレル伝送路方式とシリアル伝送路方式とがあるが、シリアル伝送路の方が伝送路の本数が少なくて済みコスト上有利であることから、シリアル伝送路方式を用いることが多くなっている。
【０００３】
ところで、一般に、ＣＰＵからドライブ素子へ送信すべき制御データは１または複数種類の要素データから構成される。例えば、ステップモータを制御する場合、制御データは、モータへの印加電圧の相パターンを表す相パターンデータや電流値を表す電流値データ等により構成される。モータのドライブ素子は、これらの要素データが所定のフォーマットで組み込まれた制御データを受け取って、それに従いモータを駆動する。したがって、ＣＰＵは、制御データをドライブ素子へ伝送するにあたり、相パターンデータや相電流データ等の要素データに基づき、対象となるドライブ素子に適合したフォーマットの制御データを作成したうえでシリアル伝送することが必要である。
【０００４】
【発明が解決しようとする課題】
従来は、上記のような制御データの作成は、ＣＰＵの演算処理によって行なわれている。すなわち、ＣＰＵは、制御データの各要素を格納するデータバッファにデータを書込んだ後、演算処理によって制御データを作成し、これをシリアル転送用の回路に引き渡す。このような演算処理は、データバッファのデータが更新される都度行なわなければならないため、ＣＰＵに大きな負荷がかかってしまう。また、データバッファのデータ更新（つまりデータの書込み）に応じて、制御データの作成処理を行なわなければならないため、ＣＰＵはデータの書込みタイミングを把握していなければならず、したがって、データバッファへのデータ書込みをＣＰＵが関与しないＤＭＡ（ダイレクトメモリアクセス）により行なうことができない。このため、データバッファへのデータ書込みもＣＰＵが行なわなければならず、この意味でもＣＰＵの処理負荷は一層大きくなる。
【０００５】
本発明は上記の点に鑑みてなされたものであり、モータをドライブするドライブ装置へ伝送すべき制御データの作成およびそのシリアル伝送をＣＰＵに負荷をかけることなく行なうことが可能なモータ制御装置および方法を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記の目的を達成するため、本発明は、１つ又は複数のモータをドライブするドライブ装置へ前記モータを制御するための制御データをシリアル伝送するモータ制御装置であって、
前記制御データの基となるデータを格納するためのデータバッファと、
ダイレクトメモリアクセスにより前記データバッファにデータを転送するＤＭＡ手段と、
前記データバッファに格納されたデータに基づき前記制御データを作成して前記ドライブ装置へシリアル伝送するためのデータ作成伝送処理を行なうハードウェア回路とを備えることを特徴とする。
【０００７】
本発明によれば、ダイレクトメモリアクセスによりデータバッファにデータを転送し、データバッファに格納されたデータに基づいて、ハードウェア回路による制御データを作成してシリアル伝送する。このため、ＣＰＵに負荷をかけることなく制御データの作成およびシリアル伝送を行うことが可能となる。
【０００８】
この場合、前記ハードウェア回路は、所定のメモリアドレスがアドレスバスに出力された場合に当該メモリアドレスに対応したデータバッファに書込み有効信号を出力するデコーダ回路を含み、前記データバッファは、前記書込み有効信号が出力された場合に、その時点でデータバスに出力されているデータが書込まれることとしてもよい。
【０００９】
制御データの作成およびシリアル伝送は、データバッファに新たなデータが書込まれた場合に行う必要がある。したがって、ハードウェア回路が、前記データバッファにデータが書込まれたことをトリガーとしてデータ作成伝送処理を開始することで、適切なタイミングで制御データの作成およびシリアル伝送を行うことができる。
【００１０】
また、前記データバッファは、前記制御データの構成要素となる複数種類のデータに夫々対応して設けられており、前記ハードウェア回路は何れか１つの前記データバッファにデータが書込まれた場合に前記データ作成伝送処理を開始することとしてもよい。このようにすれば、複数種類のデータから１つの制御データが構成される場合、何れか１種類のデータがデータバッファに書込まれた際に、この書込まれたデータを反映した新たに制御データを作成してシリアル伝送することができる。
【００１１】
また、前記データバッファに格納されたデータの各ビットと、前記制御データの各ビットとの対応関係が予め定められており、前記ハードウェア回路は、当該対応関係に基づいて、前記データバッファの各ビットの値を前記制御データの対応するビットの値とすることにより前記制御データを作成することとしてもよい。このようにすれば、データバッファの各ビットの値を制御データの対応するビットの値とするだけで制御データを作成できるので、ハードウェア回路の構成を簡単化することができる。
【００１２】
また、前記ドライブ装置は複数のモータを駆動するものであり、各モータに対応して１または複数の前記データバッファが設けられていることとしてもよい。
【００１３】
この場合、前記ドライブ装置は、所定の選択信号で指定されたモータを、伝送されてきた前記制御データに基づいて駆動するように構成されており、前記ハードウェア回路は、データが書込まれたデータバッファに対応するモータを指定した前記選択信号を前記ドライブ装置に送信する手段を含むこととしてもよい。
【００１４】
また、何れか１つの前記データバッファにデータが書込まれた場合に、当該データバッファについて予約フラグを設定する手段を備え、前記ハードウェア回路は、前記制御データのシリアル伝送が終了した時点で何れかの前記データバッファについて前記予約フラグが設定されている場合に、当該データバッファに格納されたデータに基づく前記データ合成伝送処理を開始することとしてもよい。このようにすれば、制御データのシリアル伝送中に、データバッファへのデータの書込みがあった場合にも、そのシリアル伝送が完了後に、書込まれたデータに基づいて制御データを作成してシリアル伝送を行うことができる。
【００１５】
また、前記複数のデータバッファの優先順位を指定する優先順位付け手段を備え、前記ハードウェア回路は、複数の前記データバッファについて前記予約フラグが設定されている場合に、それらデータバッファのうち前記優先順位付け手段で指定された優先順位が最高順位であるデータバッファに格納されたデータに基づいて前記データ作成伝送処理を開始することとしてもよい。このようにすれば、制御データのシリアル伝送中に複数のデータバッファへのデータの書込みがあった場合に、そのシリアル伝送が完了した後に制御データの作成およびシリアル伝送を行うべきデータバッファを、予め定めた優先順位に基づき指定することができる。
【００１６】
この場合、前記優先順位付け手段が指定する前記優先順位を設定する手段を備えることとしてもよい。このようにすれば、データバッファの優先順位を外部から設定することが可能となる。
【００１７】
また、前記ハードウェア回路は、前記データバッファに格納されたデータから前記制御データを作成するロジックが異なる複数の動作モードで動作可能であり、前記ハードウェア回路の動作モードを設定する手段を備えることとしてもよい。このようにすれば、制御データのデータ形式が異なる複数種類のドライブ装置に対して、動作モードを適宜設定することで対応することができる。
【００１８】
また、前記モータはステップモータであり、前記制御データの基となるデータは、前記ステップモータに印加する電圧の相パターンを表すデータを含むこととしてもよい。
【００１９】
【発明の実施の形態】
図１は本発明の第１の実施形態を表す全体構成図である。同図に示すように、本実施形態のシステムは、制御装置１０とモータドライブ素子１２とを備えている。制御装置１０はデータ合成転送回路１４および中央処理ユニット（ＣＰＵ）１６を備えている。なお、制御装置１０は、例えば、ＡＳＩＣにより１チップの素子として構成することができる。
【００２０】
データ合成転送回路１４は、シリアル伝送路２０および同期クロックライン２２を介してモータドライブ素子１２に接続されている。モータドライブ素子１２は、シリアル伝送路２０によりデータ合成転送回路１４からシリアル伝送されてきた制御データに基づいて、１つまたは複数のステップモータ２４を制御する。
【００２１】
制御装置１０の内部において、データ合成転送回路１４は、ＣＰＵ１６のアドレスバス３０、データバス３２、および書込み信号ライン３４に接続されている。書込み信号ライン３４には、メモリ３６への書込み動作が行なわれる際に所定の書込み信号が出力される。したがって、メモリ３６への書込み動作時には、書込みアドレスおよび書込みデータと共に、書込み信号がデータ合成転送回路１４に供給される。また、ＣＰＵ１６はＤＭＡ機能を有しており、ＤＭＡ部１６ａにより、ＣＰＵ１６の演算処理を介在することなく、メモリ間のデータ転送を行なうことができる。
【００２２】
図２は、制御装置１０が備えるデータ合成転送回路１４の詳細構成を示す。同図に示すように、データ合成転送回路１４は、データバッファ部４０、アドレスデコーダ４２、シーケンサ回路４４、および、シフトレジスタ４６を備えている。データバッファ部４０は、ｎ個のデータバッファＢＦ１〜ＢＦｎにより構成されている。データバッファＢＦ１〜ＢＦｎは、モータドライブ素子１２へ伝送すべき制御データの基となるデータ（以下、要素データという）を格納するためのバッファである。要素データとして、例えば、相パターンデータ（ステップモータ２４の各相に印加すべき電圧のパターンを表すデータ）および設定値データ（ステップモータ２４に供給すべき電流を表す相電流データや、モータドライブ素子１２の各種設定を行なうための設定データ等）がある。
【００２３】
ここで、ステップモータ２４の相パターンについて説明する。図３は、ステップモータ２４の相構成の一例を示し、また、図４は、ステップモータ２４の各相に加える電圧波形の一例を示す。
図３に示すように、ステップモータ２４は例えば、
【数１】
0003972724.tif 000002
の４つの相を有しており、図４に示すように、これらの相に印加する電圧を切り替えることで、ステップモータ２４を駆動する。相パターンデータは、ステップモータ２４の各相に印加する電圧の「１」（Ｈｉｇｈ）または「０」（Ｌｏｗ）のパターンを表すデータである。たとえば、図４の例では、時刻ｔ１以降の各切替タイミングで、「１，０，０，１」（時刻ｔ１）、「０，１、１，０」（時刻ｔ２）、「１，０，０，１」（時刻ｔ３）等の相パターンデータがステップモータ２４に供給される。
【００２４】
なお、ステップモータ２４の発生トルクは、各相に流す電流（相電流）に応じた大きさとなるが、相電流データはこの相電流の値を表すデータである。すなわち、ステップモータ２４の加減速パターンに応じたトルクが得られるように、相電流データによってステップモータ２４に供給する電流を制御する。
【００２５】
ＣＰＵ１６は、ステップモータ２４の運転パターン等に従って上述したような相パターンデータや設定値データ等の要素データを作成し、メモリ３６の所定アドレス領域に設けられたデータテーブル４８に格納する。このデータテーブル４８に格納された各要素データは、ＤＭＡ部１６ａにより、該当するデータバッファＢＦ１〜ＢＦｎへＤＭＡ転送される。より具体的には、データバッファＢＦ１〜ＢＦｎには夫々特定のメモリアドレスが割り当てられており、以下に説明するように、何れかのメモリアドレスへ要素データがＤＭＡ転送されると、その要素データが該当するデータバッファＢＦ１〜ＢＦｎに書込まれる。
【００２６】
図２に示す如く、アドレスデコーダ４２はＣＰＵ１６のアドレスバス３０に接続されている。また、各データバッファＢＦ１〜ＢＦｎは、ＣＰＵ１６のデータバス３２および書込み信号ライン３４に接続されている。上記のように、データバッファＢＦ１〜ＢＦｎは、夫々、特定のメモリアドレスに対応付けられており、アドレスデコーダ４２は、アドレスバス３０に出力された書込みアドレスをデコードして、そのアドレスに対応するデータバッファＢＦ１〜ＢＦｎに書込み有効信号を出力する。各データバッファＢＦ１〜ＢＦｎには、アドレスデコーダ４２から書込み有効信号が出力され、かつ、書込み信号ライン３４に書込み信号が出力された場合に、データバス３２に出力されたデータが書込まれる。したがって、データバッファＢＦ１〜ＢＦｎの何れかに割り当てられたメモリアドレスを転送先として要素データがＤＭＡ転送されると、その要素データが該当するデータバッファに格納されることとなる。
【００２７】
データバッファＢＦ１〜ＢＦｎへの書込み有効信号は、シーケンサ回路４４にも供給されている。シーケンサ回路４４は、何れかのデータバッファについて書込み有効信号が出力されると、それをトリガーとして、データバッファＢＦ１〜ＢＦｎに格納された要素データからステップモータ２４を制御するための制御データを合成してシフトレジスタ４６へセットする。具体的には、例えば、各要素データの各ビット位置と、制御データの各ビット位置との間には、モータドライブ素子１２の仕様に応じた所定の対応関係があり、シーケンサ回路４４は各要素データの各ビットの値をシフトレジスタ４６の対応するビット位置へ出力する。そして、シフトレジスタ４６へ制御データをセットした後、クロック信号に同期してシフトレジスタ４６にシフト命令を出力することで、制御データをモータドライブ素子１２へ１ビットずつシリアル伝送する。
【００２８】
図５は、シーケンサ回路４４の動作を表す状態遷移図である。シーケンサ回路４４は外部から機能の有効／無効を設定できるようになっており、停止状態Ｓ１において機能有効設定がなされると、待機状態Ｓ２に遷移する。この待機状態Ｓ２において、機能無効設定がなされると、再び停止状態Ｓ１に戻る。
【００２９】
待機状態Ｓ２において、データバッファＢＦ１〜ＢＦｎの何れかへ書込み有効信号が出力されたことが検出されると、データバッファＢＦ１〜ＢＦｎに格納された各要素データの値に基づいて制御データをシフトレジスタ４６にセットしたうえで、第１転送状態Ｓ３へ遷移する。
【００３０】
第１転送状態Ｓ３に遷移すると、同期クロックをＨレベルにして、第２転送状態Ｓ４へ遷移する。第２転送状態Ｓ４では、同期クロックをＬレベルにすると共に、シフトレジスタ４６にシフト命令を送る。これにより、同期クロックライン２２の同期クロックがＬレベルに遷移するのに同期して、シフトレジスタ４６にセットされた制御データが１ビット分だけシリアル伝送路２０へ送出される。この処理が終わると、再び第１転送状態Ｓ３へ遷移する。そして、シフトレジスタの全ビットのデータ転送が完了していれば待機状態Ｓ２へ遷移し、データ転送が完了していなければ、再び、同期クロックをＬレベルにして第２転送状態Ｓ４へ遷移する。
【００３１】
このように、本実施形態によれば、データバッファＢＦ１〜ＢＦｎの何れかに書込み有効信号が供給されると（つまり、データバッファＢＦ１〜ＢＦｎの何れかに新たな要素データが格納されると）、それをトリガーとしてシーケンサ回路４４が制御データをハードウェア的に合成してモータドライブ素子１２へシリアル伝送する。このため、制御データの合成およびシリアル伝送にあたってＣＰＵ１６による演算処理が必要とされないため、データバッファＢＦ１〜ＢＦｎへのデータ格納をＤＭＡ転送により行ないながら、新たな要素データに基づく制御データの合成およびシリアル転送を行なうことが可能となっている。
【００３２】
すなわち、制御データの合成・伝送処理をＣＰＵ１６の演算処理により行なう場合には、制御データの作成が必要となった時点（つまり、データバッファＢＦ１〜ＢＦｎの何れかにデータが書込まれた時点）を検知して、その時点で制御データの作成処理を行なう必要があるため、データバッファＢＦ１〜ＢＦ４へのデータ格納をＣＰＵ１６が関与しないＤＭＡによって行うことはできない。これに対して、本実施形態では、データバッファＢＦ１〜ＢＦｎへデータが書込まれたことをトリガーとしてシーケンサ回路４４がハードウェア的に制御データを合成するので、ＣＰＵ１６はデータバッファＢＦ１〜ＢＦｎの書込みタイミングに関知する必要はなく、これにより、ＤＭＡによりデータバッファＢＦ１〜ＢＦｎへのデータ書込みを行ないながら、要素データに基づいて合成した制御データのシリアル伝送を行なうことができるのである。
【００３３】
以下、本発明の他の実施形態について説明する。なお、以下に述べる各実施形態は、上記第１の実施形態を基本構成とするものであり、共通の構成部分には同一の符号を付して説明を省略または簡略化する。
【００３４】
本発明の第２実施形態は、上記第１実施形態において、２つのデータバッファＢＦ１，ＢＦ２を設けたものであり、データバッファＢＦ１には要素データとして制御データそのものを表すデータを、データバッファＢＦ２には要素データとして相パターンデータを、夫々格納する。
【００３５】
図６は、本実施形態においてデータバッファＢＦ１，ＢＦ２に格納されたデータと、これらのデータに基づきシーケンサ回路４４により合成されてシフトレジスタ４６に格納される制御データとの関係を表す図である。同図に示すように、本実施形態では、データバッファＢＦ１には、制御データと同一のデータ形式のデータが格納される。すなわち、相パターンデータを表すビットと設定値データを表すビットとが制御データのフォーマットに応じた所定のビット位置に配置される。同図の例では、制御データのうちビットｂ１，ｂ２，ｂ６，ｂ７，ｂ１０，ｂ１１が相パターンデータを、他のビットｂ０，ｂ３，ｂ４，ｂ５，ｂ８，ｂ９，ｂ１２，ｂ１３，ｂ１４が設定値データを、夫々表しており、かかる構成の制御データがデータバッファＢＦ１に格納される。このように、制御データは相パターンデータを表すビットの中に設定値データを表すビットが分散して配置された構成を有している。一方、データバッファＢＦ２には、データバッファＢＦ１に格納されたデータのうち、相パターンを表すビットからなるデータ（つまり相パターンデータ）が格納される。
【００３６】
したがって、シーケンサ回路４４は、データバッファＢＦ１にデータが書込まれると、そのデータをそのまま制御データとしてシフトレジスタ４６に出力する。一方、データバッファＢＦ２に相パターンデータが書込まれた場合には、この相パターンデータの各ビットの値をシフトレジスタ４４の該当するビットｂ１，ｂ２，ｂ６，ｂ７，ｂ１０，ｂ１１に上書きし、設定値データに対応する他のビットの値は変化させずに維持する。
【００３７】
このように、本実施形態では、制御データそのものを格納するデータバッファＢＦ１と、相パターンデータのみを格納するデータバッファＢＦ２を設け、データバッファＢＦ２に新たな相パターンデータが書込まれた場合には、シーケンサ回路４４が、制御データの相パターンデータに対応するビットを更新したうえで新たな制御データとしてシリアル伝送する。このため、上記第１実施形態と同様に、データバッファＢＦ１、ＢＦ２へのデータ書込みをＤＭＡ転送により行ないながら、制御データの合成およびシリアル伝送を行なうことができる。
【００３８】
また、上記第１実施形態で述べたように、メモリ３６には、データバッファＢＦ１，ＢＦ２へ各要素データを転送するためのデータテーブル４８を用意しておく必要がある。その場合、相パターンデータはステップモータ２４の運転に伴って短い間隔で切り替える必要があるため変化の頻度が大きいのに比べて、設定値データが変化する頻度はごく小さい。このため、データバッファＢＦ１に転送すべきデータを、相パターンデータが変化する度ごとのデータとしてデータテーブル４８に記憶しておくことにすると、変化しない設定値データについて同じ値のビットが繰り返し現れることとなり、メモリ領域が非効率的に占有されてしまう。これに対して、本実施形態では、変化の頻度の大きい相パターンデータのみを記憶するデータバッファＢＦ２に対応した少ないビット数（本例では６ビット）のデータテーブル４８を用意すればよく、データバッファＢＦ３に対応する大きなビット数（本例では１５ビット）のデータテーブル４８には、設定値データが変化する度ごとのデータのみを記憶すれば足りる。その結果、データテーブル４８に必要なメモリサイズを大幅に削減することが可能となる。
【００３９】
さらに、本実施形態では、シーケンサ回路４４は、データバッファＢＦ１，ＢＦ２の各ビットをシフトレジスタ４６の対応するビット位置に出力するだけで、制御データを合成できるので、シーケンサ回路４４の構成を簡素化することが可能であり、これにより、制御装置１０のコストダウンを図ることもできる。例えば、本実施形態のように、制御データの中に相パターンデータのビットが分散して配置される場合であっても、そのビット位置に応じた論理回路を設ければよいので、シーケンサ回路４４の構成は簡単となる。
【００４０】
次に、本発明の第３の実施形態について説明する。本実施形態では、モータドライブ素子１２によって２個のステップモータ２４Ａ，２４Ｂが駆動されるものとし、また、データバッファとして３つのデータバッファＢＦ１〜ＢＦ３が設けられる。
【００４１】
図７は、本実施形態において、データバッファＢＦ１〜ＢＦ３に格納されたデータと、これらのデータに基づきシーケンサ回路４４により合成されシフトレジスタ４６に格納される制御データとの関係を示す。同図に示すように、データバッファＢＦ１にはステップモータ２４Ａ，２４Ｂに共通の設定値データが格納され、また、データバッファＢＦ２およびＢＦ３には、夫々、ステップモータ２４Ａおよび２４Ｂの相パターンデータが格納される。そして、データバッファＢＦ１〜ＢＦ３の何れかにデータが書込まれると、シーケンサ回路４４はデータバッファＢＦ１〜ＢＦ３のデータの各ビットをシフトレジスタ４６の対応するビットに出力することで、制御データが作成される。図７の例では、シフトレジスタのビットｂ０にデータバッファＢＦ１の設定値データが、ビットｂ１〜ｂ６にデータバッファＢＦ２の相パターンデータが、ビットｂ７〜ｂ１２にデータバッファＢＦ３の相パターンデータが、夫々、出力される。
【００４２】
本実施形態において、モータドライブ素子１２に伝送される制御データは、ステップモータ２４Ａ，２４Ｂの両方についての相パターンデータを含んでいる。このため、ステップモータ２４Ａまたは２４Ｂの一方のモータについて相パターンデータが変更された場合には、データが変更されていない他方のステップモータを含めてデータバッファＢＦ１〜ＢＦ３の３つの要素データに基づいて制御データを合成することが必要である。
【００４３】
これに対して、本実施形態では、シーケンサ回路４４は、データバッファＢＦ１〜ＢＦ３の何れかにデータに書込まれると、これら３つのデータバッファＢＦ１〜ＢＦ３のデータに基づいて制御データを合成してシリアル伝送する。このため、２つのステップモータ２４Ａ，２４Ｂを制御する場合にも、ＣＰＵ１６は、各ステップモータ２４Ａ，２４Ｂについて相パターンが切り替わる度ごとの相パターンデータをデータテーブルに用意しておくだけでよく、後は、これらのデータがＤＭＡによりデータバッファへ転送され、シーケンサ回路４４により制御データが合成されてモータドライブ素子１２へシリアル伝送される。すなわち、ＣＰＵ１６は、ステップモータ２４Ａ，２４Ｂの相互の関係を考慮することなく、各モータについて独立して演算処理を行なって夫々の相パターンデータを作成すればよいので、ＣＰＵ１６の処理が簡素化される。
【００４４】
このように、本実施形態によれば、複数のステップモータ２４Ａ，２４Ｂを共通の制御データに基づいて駆動するモータドライブ素子１２に対して、ＣＰＵ１６に負担をかけることなく、適正に制御データを合成してシリアル伝送することができる。
【００４５】
次に、本発明の第４実施形態について説明する。図８は本実施形態の全体構成図である。同図に示すように、上記第３実施形態と同様に、モータドライブ素子１２により２個のステップモータ２４Ａおよび２４Ｂを駆動するが、本実施形態では、制御装置１０とモータドライブ素子１２との間には、シリアル伝送路２０および同期クロックライン２２のほか第１選択線２６および第２選択線２８が設けられている。そして、これら２本の選択線２６，２８により、データ伝送線２０で伝送される制御データがステップモータ２４Ａ，２４Ｂの何れの制御データであるかを指定するようになっている。すなわち、モータドライブ素子１２は、第１選択線２６がアクティブレベルであればシリアル伝送路２０で伝送されてくる制御データに基づきステップモータ２４Ａを駆動し、一方、第２選択線２８がアクティブレベルであればシリアル伝送路２０で伝送されてくる制御データに基づきステップモータ２４Ｂを駆動する。
【００４６】
図９は、本実施形態において、各データバッファに格納されたデータと、これらのデータに基づきシーケンサ回路４４により作成されシフトレジスタ４６に格納される制御データとの関係を示す。同図に示すように、本実施形態では、４つのデータバッファＢＦ１〜ＢＦ４が設けられている。ステップモータ２４Ａについて、上記図６に示す場合と同じく、制御データと同じデータ形式のデータがデータバッファＢＦ１に格納され、相パターンデータがデータバッファＢＦ２に格納される。同様に、ステップモータ２４Ｂについて、制御データと同じデータ形式のデータがデータバッファＢＦ３に格納され、相パターンデータがデータバッファＢＦ４に格納される。
【００４７】
図１０は、本実施形態におけるシーケンサ回路４４の動作を表すタイムチャートであり、（ａ）は第１選択線２６の信号を、（ｂ）は第２選択線２８の信号を、（ｃ）はシリアル伝送路２０の伝送データを、夫々示す。
【００４８】
同図に示すように、時刻ｔ１において、ステップモータ２４Ａに対応するデータバッファＢＦ１またはＢＦ２にデータが書込まれると、シーケンサ回路４４は第１選択線２６をアクティブレベル（同図の例ではローレベル）とする。そして、データバッファＢＦ１にデータが書込まれた場合は、そのデータをそのままシフトレジスタ４６に出力する。一方、データバッファＢＦ２にデータが書込まれた場合は、シーケンサ回路４４は、そのデータの各ビットをシフトレジスタ４６の対応するビット（ビットｂ１，ｂ２，ｂ６，ｂ７，ｂ１０，ｂ１１）に上書きする。こうしてシフトレジスタ４６に書込まれたデータが、ステップモータ２４Ａの制御データとしてモータドライブ素子１２へシリアル伝送される。そして、時刻ｔ２において、制御データの全ビットのシリアル伝送が完了すると、シーケンサ回路４４は第１選択線２６を非アクティブレベル（ハイレベル）とする。
【００４９】
このように、ステップモータ２４Ａに対応するデータバッファＢＦ１またはＢＦ２にデータが書込まれると、このステップモータ２４Ａの制御データがシリアル伝送路２０から伝送される。その際、第１選択線２６がアクティブレベルとなることで、モータドライブ素子１２はシリアル伝送されてきた制御データに基づいてステップモータ２４Ａを駆動する。
【００５０】
また、時刻ｔ３においてステップモータ２４Ｂに対応したデータバッファＢＦ３またはＢＦ４にデータが書込まれると、シーケンサ回路４４は第２選択線２８をアクティブレベルにすると共に、上記と同様にしてデータバッファＢＦ３およびＢＦ４のデータに基づいて制御データ合成してモータドライブ素子１２へシリアル伝送する。時刻ｔ４において制御データの全ビットが伝送されると、第２選択線２８を非アクティブレベルとする。モータドライブ素子１２は、データ伝送中に第２選択線２８がアクティブレベルとされるので、伝送されてきた制御データに基づいてステップモータ２４Ｂを駆動する。
【００５１】
以上説明したように、本実施形態において、シーケンサ回路４４はステップモータ２４Ａまたは２４Ｂの何れに対応するデータが変化したか（つまり、データバッファＢＦ１，ＢＦ２またはＢＦ３，ＢＦ４の何れにデータが書込まれたか）に応じて、対応する制御データをモータドライブ素子１２にシリアル伝送すると共に、第１選択線２６または第２選択線２８をアクティブレベルにする。このため、ＣＰＵ１６は、各モータについて相パターンデータおよび設定値データをデータテーブルに用意しておくだけでよく、後は、ＣＰＵ１６が介在することなく、これらのデータがデータバッファＢＦ１〜ＢＦ４へＤＭＡ転送される。そして、シーケンサ回路４４により制御データが合成されてモータドライブ素子１２へシリアル伝送されるとともに、第１選択線２６または第２選択線２８の制御も適切に行なわれる。したがって、本実施形態によれば、モータドライブ素子１２が選択線２６，２８により対象となるモータを指定する構成を有している場合に、ＣＰＵ１６に負荷をかけることなく、制御データの合成・シリアル伝送、および、各選択線２６，２８の制御を行なうことができる。
【００５２】
次に、本発明の第５実施形態について説明する。本実施形態は、制御データをシリアル伝送している最中に、何れかのデータバッファにデータが書込まれた場合にも、データ伝送漏れを起こすことなく適切に制御データをシリアル伝送することを可能としたものである。本実施形態でも上記第４実施形態と同様に、ステップモータ２４Ａに対応するデータバッファＢＦ１，ＢＦ２とステップモータ２４Ｂに対応するデータバッファＢＦ３，ＢＦ４が設けられ、第１選択線２６および第２選択線２８によって何れのモータに対応した制御データであるかを指定するものとして説明する。
【００５３】
図１１は、本実施形態における制御装置１０の構成を示す図である。同図に示すように、本実施形態では、データバッファＢＦ１〜ＢＦ４の夫々に対応した転送予約保持回路Ｒ１〜Ｒ４、および、優先順位付け回路６０が設けられている。
【００５４】
転送予約保持回路Ｒ１〜Ｒ４は、夫々、データバッファＢＦ１〜ＢＦ４に格納されたデータに基く制御データをシリアル伝送すべきか否かを示す転送フラグを保持する回路である。例えば、データバッファＢＦ１へのデータ書込みに応じてステップモータ２４Ａの制御データをシリアル伝送している最中に、データバッファＢＦ３にデータが書込まれた場合には、直ちに、ステップモータ２４Ｂの制御データをシリアル伝送することはできないから、転送予約保持回路Ｒ３に転送フラグをセットしておく。そして、ステップモータ２４Ａの制御データのシリアル伝送が完了した時点で、転送フラグがセットされたデータバッファＢＦ３に対応するステップモータ２４Ｂの制御データが合成されシリアル伝送される。
【００５５】
また、優先順位付け回路６０は、複数のデータバッファにデータが書込まれた場合に、何れのデータバッファについて優先して制御データの合成およびシリアル伝送処理を行なうかの優先順位を保持する回路である。例えば、ステップモータ２４Ａの制御データのシリアル伝送中に、データバッファＢＦ２およびＢＦ３にデータが書込まれた場合、データバッファＢＦ３の方がデータバッファＢＦ２よりも高い優先度が設定されていれば、ステップモータ２４Ａの制御データのシリアル伝送が完了すると、次に、データバッファＢＦ３を優先して、これに対応するステップモータ２４Ｂの制御データが合成されてシリアル伝送される。
【００５６】
図１２は、本実施形態におけるシーケンサ回路４４の動作を表すタイムチャートであり、（ａ）〜（ｄ）はデータバッファＢＦ１〜ＢＦ４へのデータ書込みに応じた転送予約保持回路Ｒ１〜Ｒ４の予約フラグの変化を、（ｅ），（ｆ）は第１選択線２６および第２選択線２８に出力される信号を、（ｇ）はシリアル伝送される制御データの内容を、夫々示す。なお、優先順位付け回路６０には、データバッファＢＦ１，ＢＦ２，ＢＦ３，ＢＦ４の順に高い優先度が設定されているものとする。
【００５７】
同図の例では、先ず、時刻ｔ１においてデータバッファＢＦ１にデータが書込まれ、これに応じて転送予約保持回路Ｒ１に予約フラグがセットされている。データバッファＢＦ１には最高の優先度が設定されており、また、現時点で伝送中のデータはないから、時刻ｔ２において、シーケンサ回路４４は第１選択線２６をアクティブレベルとする。これと同時に、転送予約保持回路Ｒ１の予約フラグをリセットすると共に、データバッファＢＦ１に格納されたデータに基づいて合成したステップモータ２４Ａ用の制御データのシリアル伝送を開始する。このシリアル伝送が完了すると、第１選択線２６を非アクティブレベルとする（時刻ｔ５）。
【００５８】
上記制御データのシリアル伝送中、時刻ｔ３においてデータバッファＢＦ３へデータが書込まれて転送予約保持回路Ｒ３に予約フラグがセットされ、さらに、時刻ｔ４においてデータバッファＢＦ２へデータが書込まれて転送予約保持回路Ｒ２に予約フラグがセットされている。したがって、実行中のシリアル伝送が終了した時点（時刻ｔ５）では、転送予約保持回路Ｒ２およびＲ３の両方に予約フラグがセットされていることになる。この場合、データバッファＢＦ２にデータバッファＢＦ３よりも高い優先順位が設定されているから、シーケンサ回路４４は、データバッファＢＦ２を優先する。すなわち、転送予約保持回路Ｒ２の予約フラグをリセットすると共に、データバッファＢＦ２に対応する第１選択線２６をアクティブレベルとし、これと同時に、データバッファＢＦ１，ＢＦ２のデータに基づいて合成したステップモータ２４Ａ用の制御データのシリアル伝送を開始する（時刻ｔ６）。
【００５９】
このシリアル転送が終了しないうちに、再びデータバッファＢＦ１にデータが書込まれ、転送予約保持回路Ｒ１に予約フラグがセットされている（時刻ｔ７）。したがって、実行中のシリアル伝送が完了した時点（時刻ｔ８）では、転送予約保持回路Ｒ１，Ｒ３の両方に予約フラグがセットされていることになるが、データバッファＢＦ１にデータバッファＢＦ３よりも優先順位が設定されているから、再び、データバッファＢＦ１，ＢＦ２のデータに基づいて合成されたステップモータ２４Ａ用の制御データのシリアル伝送が開始される（時刻ｔ９）。このシリアル伝送が終了するまでデータバッファへの新たな書込みが生じず、したがって、シリアル伝送終了時点（時刻ｔ１０）で転送予約保持回路Ｒ３のみに予約フラグがセットされている。このため、シーケンサ回路４４はデータバッファＢＦ３，ＢＦ４のデータに基づいて合成したステップモータ２４Ｂ用の制御データのシリアル伝送を開始し、時刻ｔ１２において伝送を完了している。
【００６０】
図１３は、本実施形態におけるシーケンサ回路４４の動作を表す状態遷移図である。なお、上記第１実施形態の図５に示す状態遷移図シーケンサ回路４４と重複する部分の説明は省略する。
【００６１】
待機状態Ｓ２において、転送予約保持回路Ｒ１〜Ｒ４の少なくとも１つに予約フラグがセットされている場合、最高優先順位の転送予約保持回路がＲ１またはＲ２であれば、データバッファＢＦ１，ＢＦ２に格納されたデータに基づいて制御データをシフトレジスタ４６にセットし、第１選択線２６をアクティブレベルとし、さらに、予約フラグをリセットしたうえで、第１転送状態Ｓ３Ａへ遷移する。また、最高優先順位の転送予約保持回路がＲ３またはＲ４である場合は、データバッファＢＦ３，ＢＦ４に格納されたデータに基づいて制御データをシフトレジスタ４６にセットし、第２選択線２８をアクティブレベルとし、さらに、予約フラグをリセットしたうえで、第１転送状態Ｓ３Ｂへ遷移する。
【００６２】
第１転送状態Ｓ３Ａ，Ｓ３Ｂでは、同期クロックをＨレベルにして、夫々、第２転送状態Ｓ４Ａ，Ｓ４Ｂへ遷移する。そして、第２転送状態Ｓ４Ａ，Ｓ４Ｂでは、同期クロックをＬレベルにすると共に、シフトレジスタ４６にシフト命令を送る。これにより、同期クロックライン２２の同期クロックがＬレベルに遷移するのに同期して、シフトレジスタ４６にセットされた制御データが１ビット分だけシリアル伝送路２０へ送出される。この処理が終わると、再び第１転送状態Ｓ３ＡまたはＳ３Ｂへ遷移する。第１転送状態Ｓ３Ａ，Ｓ３Ｂでは、シフトレジスタの全ビットのデータ送出が完了していれば、夫々、第１選択線２６および第２選択線２８を非アクティブレベルとしたうえで、待機状態Ｓ２へ遷移する。一方、データ送出が完了していなければ、再び、同期クロックをＬレベルにして第２転送状態Ｓ４ＡまたはＳ４Ｂへ遷移する。
【００６３】
このように、本実施形態では、制御データのシリアル伝送中にデータバッファＢＦ１〜ＢＦ４の何れかにデータが書込まれた場合には、該当する転送予約保持回路Ｒ１〜Ｒ４に予約フラグをセットして、実行中のシリアル伝送が終わった時点で、予約フラグがセットされたデータバッファに対応する制御データを自動的にシリアル伝送する。このため、シリアル伝送中にデータバッファＢＦ１〜ＢＦ４の何れかへデータが書込まれた場合にも、そのデータ書込みに応じた制御データのシリアル伝送を確実に行なうことができる。
【００６４】
また、データバッファＢＦ１〜ＢＦ４に優先順位付けをして、シリアル伝送中に複数のデータバッファにデータが書込まれた場合には、優先度の高い方のデータバッファを優先して制御データを伝送する。このため、例えば、ステップモータ２４Ａ、２４Ｂの重要性に差異があって何れかのモータを優先的に制御する必要がある場合等に、その優先度に応じて優先順位付け回路６０にデータバッファＢＦ１〜ＢＦ４の順位を設定しておくことで、ステップモータ２４Ａ，２４Ｂの優先度に適合した制御を実現することができる。そして、このような優先順位に基づくデータバッファＢＦ１〜ＢＦ４の選択はシーケンサ回路４４によりハードウェア的に行なわれる。したがって、本実施形態によれば、ＣＰＵ１６に処理負荷をかけることなく、優先度に応じたモータ制御を行なうことができる。
【００６５】
なお、上記実施形態では、データバッファＢＦ１，ＢＦ２のデータに基づいてステップモータ２４Ａ用の制御データを、データバッファＢＦ３，ＢＦ４のデータに基づいてステップモータ２４Ｂ用の制御データを、夫々合成してシリアル伝送する場合について説明した。しかしながら、これに限らず、例えば、データバッファＢＦ１〜ＢＦ４の夫々のデータに基づいて４種類の制御データをシリアル伝送する構成において、複数の予約フラグがセットされている場合に、優先順位の高いデータバッファのデータに基づいて合成した制御データをシリアル伝送することとすればよい。例えば、図１２のタイムチャートの例では、時刻ｔ２〜ｔ５ではデータバッファＢＦ１のデータに基づく制御データを伝送し、時刻ｔ６〜ｔ８ではデータバッファＢＦ２のデータに基づく制御データを伝送し、時刻ｔ９〜ｔ１０ではデータバッファＢＦ１のデータに基づく制御データを伝送し、時刻ｔ１１〜ｔ１２ではデータバッファＢＦ３のデータに基づく制御データを伝送することになる。
【００６６】
ところで、上記実施形態において、転送予約保持回路Ｒ１に保持されるデータバッファＢＦ１〜ＢＦ４の優先順位を、ＣＰＵ１６から設定できるようにしてもよい。この場合、システム全体の構成が変更になった場合等にも、それに応じて適宜優先順位を設定することで、そのようなシステム変更等に柔軟に対応することが可能となる。
【００６７】
図１４は、データバッファＢＦ１〜ＢＦ４の優先順位を、例えばＢＦ４，ＢＦ３，ＢＦ２，ＢＦ１の順に変更した場合の動作を示すタイムチャートであり、上記図１２と同じタイミングで各データバッファにデータが書込まれた場合を示している。同図に示すように、データバッファＢＦ１へのデータ書込みに応じた制御データのシリアル伝送中が終了した時点（時刻ｔ５）で、転送予約保持回路Ｒ２およびＲ３の両方に予約フラグがセットされているが、本例では、データバッファＢＦ３の方が優先順位が高いので、データバッファＢＦ３に基づくステップモータ２４Ｂ用の制御データがシリアル伝送されると共に、第２制御ライン２８がアクティブレベルとなる。そして、このデータ伝送が終了した時点（時刻ｔ８）で、転送予約保持回路Ｒ１，Ｒ２の両方に予約フラグがセットされているが、本例ではデータバッファＢＦ２の方がデータバッファＢＦ１よりも優先順位が高いので、時刻ｔ９において、転送予約保持回路Ｒ２の予約フラグがリセットされると共にデータバッファＢＦ２へのデータ書込みに応じたステップモータ２４Ａ用の制御データの伝送が開始される。そして、このデータ伝送が終了した後、時刻ｔ１１において転送予約保持回路Ｒ１の予約フラグがリセットされて、データバッファＢＦ１への書込みに応じたステップモータ２４Ａ用の制御データの伝送が開始される。
【００６８】
次に、本発明の第６実施形態について説明する。本実施形態では、シーケンサ回路４４は第１および第２の２つの動作モードで動作する。
【００６９】
図１５は、本実施形態において、データバッファＢＦ１〜ＢＦ４に格納されたデータと、これらのデータに基づいてシーケンサ回路４４により合成されシフトレジスタ４６に格納される制御データとの関係を示す。同図に示すように、本実施形態では、シーケンサ回路４４はモード設定回路７０を備えており、モード設定回路７０に設定された動作モードに応じて、第１または第２のモードで動作する。
【００７０】
第１のモードでは、例えば上記第３の実施形態（図７）と同様に、データバッファＢＦ１には設定値データが格納され、また、データバッファＢＦ２およびＢＦ３には、夫々、ステップモータ２４Ａおよび２４Ｂの相パターンデータが格納される。そして、データバッファＢＦ１〜ＢＦ３のデータに基づいて制御データが合成される。
【００７１】
また、第２のモードでは、例えば上記第４の実施形態（図９）と同様に、ステップモータ２４Ａについて、制御データと同じデータ形式のデータがデータバッファＢＦ１に、相パターンデータがデータバッファＢＦ２に夫々格納され、また、ステップモータ２４Ｂについて、制御データと同じデータ形式のデータがデータバッファＢＦ３に、相パターンデータがデータバッファＢＦ４に夫々格納される。そして、データバッファＢＦ１〜ＢＦ４のデータに基づいて制御データが合成される。
【００７２】
モード設定回路７０は、ＣＰＵ１６のアドレスバス３０およびデータバス３２に接続されており、ＣＰＵ１６からモード設定回路７０に動作モードを設定することができる。したがって、本実施形態によれば、制御データの構成が異なる２種類のモータドライブ素子１２に対応することが可能となり、システム変更によってモータドライブ素子１２の種類が変更になった場合にも、ＣＰＵ１６からのモード設定のみで柔軟に対応することができる。
【００７３】
なお、上記各実施形態では、ステップモータを制御する場合について説明したが、本発明はこれに限らず、ＤＣモータを制御する場合にも適用が可能である。すなわち、ＤＣモータがドライブ素子によって駆動され、このドライブ素子に所定フォーマットの制御データをシリアル伝送することによりＤＣモータの制御が行なわれる場合にも、本発明を適用することで、ＣＰＵに負荷をかけることなく、制御データの合成およびシリアル転送を行なうことが可能となる。
【００７４】
また、上記各実施形態では、モータドライブ素子１２が１つまたは２つのモータを駆動する場合について説明したが、本発明は、モータドライブ素子１２が３つ以上のモータを駆動できる場合にも適用が可能である。
【００７５】
さらに、上記第２〜第６実施形態では、各要素データおよび要素データから合成される制御データの構成を具体的に説明したが、それらの構成は一例であり、モータドライブ素子１２の仕様に応じてデータ構成を変更すればよい。
【００７６】
【発明の効果】
本発明によれば、モータをドライブするドライブ装置へ伝送すべき制御データの作成およびそのシリアル伝送をＣＰＵに負荷をかけることなく行なうことができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態を表す全体構成図である。
【図２】本実施形態の制御装置が備えるデータ合成転送回路の詳細構成を示す図である。
【図３】ステップモータの相構成の一例を示す図である。
【図４】ステップモータの各相に加える電圧波形の一例を示す図である。
【図５】本実施形態のシーケンサ回路の動作を表す状態遷移図である。
【図６】本発明の第２の実施形態においてデータバッファに格納されたデータと、これらのデータに基づきシーケンサ回路により合成されシフトレジスタに格納される制御データとの関係を表す図である。
【図７】本発明の第３の実施形態において、データバッファに格納されたデータと、これらのデータに基づきシーケンサ回路により合成されシフトレジスタに格納される制御データとの関係を示す図である。
【図８】本発明の第３の実施形態を表す全体構成図である。
【図９】本実施形態において、データバッファに格納されたデータと、これらのデータに基づきシーケンサ回路により合成されシフトレジスタに格納される制御データとの関係を示す図である。
【図１０】本実施形態におけるシーケンサ回路の動作を表すタイムチャートである。
【図１１】本発明の第５の実施形態における制御装置の構成を示す図である。
【図１２】本実施形態におけるシーケンサ回路の動作を表すタイムチャートである。
【図１３】本実施形態におけるシーケンサ回路の動作を表す状態遷移図である。
【図１４】図１２において、データバッファの優先順位を変更した場合のタイムチャートである。
【図１５】本発明の第６の実施形態において、データバッファＢＦ１〜ＢＦ４に格納されたデータと、これらのデータに基づいてシーケンサ回路により合成されシフトレジスタに格納される制御データとの関係を示す図である。
【符号の説明】
１０  制御装置
１２  モータドライブ素子（ドライブ装置）
１４  データ合成転送回路
１６  ＣＰＵ
１６ａ  ＤＭＡ部
２０  シリアル伝送路
２４，２４Ａ，２４Ｂ  ステップモータ
２６  第１選択線
２８  第２選択線
３０  アドレスバス
３２  データバス
３６  メモリ
４０  データバッファ部
４２  アドレスデコーダ
４４  シーケンサ回路（ハードウェア回路）
４６  シフトレジスタ
ＢＦ１〜ＢＦｎ  データバッファ
６０  優先順位付け回路
７０  モード設定回路
ＢＦ１〜ＢＦｎ  データバッファ
Ｒ１〜Ｒ４  転送予約保持回路
【図１】
0003972724.tif 000003
【図２】
0003972724.tif 000004
【図３】
0003972724.tif 000005
【図４】
0003972724.tif 000006
【図５】
0003972724.tif 000007
【図６】
0003972724.tif 000008
【図７】
0003972724.tif 000009
【図８】
0003972724.tif 000010
【図９】
0003972724.tif 000011
【図１０】
0003972724.tif 000012
【図１１】
0003972724.tif 000013
【図１２】
0003972724.tif 000014
【図１３】
0003972724.tif 000015
【図１４】
0003972724.tif 000016
【図１５】
0003972724.tif 000017