以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図9は、第1の比較例の駆動システム700の構成を示す。第1の比較例は、OISアルゴリズム765を有する機器(例えば、カメラ、スマートフォン、PC等)全体を制御するアプリケーションプロセッサ等の制御装置770に対して接続され、OISアルゴリズム765の駆動制御全体を司る駆動装置760を設けた駆動システム700を示す。第1の比較例の駆動システム700は、検出器780と、制御装置770と、X軸方向の第1センサ720と、Y軸方向の第2センサ740と、駆動装置760と、X軸方向の第1アクチュエータ710と、Y軸方向の第2アクチュエータ730とを備える。
駆動対象物750は、カメラレンズ、プリズム、ミラー、またはグレーティング等の光学部品であってよい。検出器780は、制御装置770に接続され、駆動対象物750または駆動対象物750が搭載される機器等の動きを検出して、SPI(Serial Peripheral Interface)通信で検出結果を制御装置770に送信する。検出器780は、例えば、ジャイロセンサ等を有し、駆動対象物750の角速度ωを検出し、角速度信号を送信する。
制御装置770は、I2C通信路を介して駆動装置760に接続される。制御装置770は、種々のコマンドを駆動装置760に送信する。
第1センサ720は、駆動装置760に接続され、駆動対象物750における第1軸方向(一例としてX軸方向)の位置情報を検出して、当該位置情報を示す信号を駆動装置760に出力する。第2センサ740は、駆動装置760に接続され、駆動対象物750における第2軸方向(一例としてY軸方向)の位置情報を検出して、当該位置情報を示す信号を駆動装置760に出力する。第1センサ720および第2センサ740は、一例として磁気センサであってよい。
駆動装置760は、第1アクチュエータ710と第2アクチュエータ730とに接続される。駆動装置760は、OISアルゴリズム765により、検出器780からの検出結果に応じて駆動対象物750の複数の軸方向での目標位置を算出する。駆動装置760は、当該目標位置と第1センサ720および第2センサ740からの位置情報とが一致するように、第1アクチュエータ710および第2アクチュエータ730をそれぞれ駆動して、駆動対象物750の移動を制御する。
第1アクチュエータ710は、駆動装置760からの信号に応じて駆動対象物750をX軸方向に移動させる。第2アクチュエータ730は、駆動装置760からの信号に応じて駆動対象物750をY軸方向に移動させる。第1アクチュエータ710および第2アクチュエータ730は、コイルであってよく、駆動装置760により流される電流に応じて磁場を発生して、駆動対象物750に接続された磁石との間で生じる引力または斥力によって、駆動対象物750の移動を制御する。
このような第1の比較例における駆動装置760は、目標位置のデータの送受信を制御装置770との間で行う必要が無いが、制御装置770とは別個のマイクロコントローラを含みうる駆動装置760を用いてOISアルゴリズム765を実行するので駆動装置760のチップサイズが大きくなり、また、部品点数が多く、コストが高くなる可能性がある。
図10は、第2の比較例の駆動システム810の構成を示す。第2の比較例の駆動システム810は、第1の比較例の駆動システム700とは異なり、制御装置840がOISアルゴリズム845を実行し、制御装置840のOISアルゴリズム845が算出した目標位置のデータを2つの駆動装置850a、850bに送信して、第1アクチュエータ860aと、第2アクチュエータ860bとをそれぞれ駆動する。これにより、駆動装置側でOISアルゴリズム845を実行する必要を無くし、駆動装置850a、850bを簡素化することができる。駆動システム810は、駆動対象物820または駆動対象物820が搭載される機器等の動きに応じて、当該駆動対象物820等の移動を制御する。駆動システム810は、検出器830と、制御装置840と、第1駆動装置850aと、第2駆動装置850bと、第1アクチュエータ860aと、第2アクチュエータ860bと、通信路880とを備える。
第2の比較例の駆動システム810の駆動対象物820、検出器830、第1アクチュエータ860a、および第2アクチュエータ860bは、それぞれ、第1の比較例の駆動システム700の駆動対象物750、検出器780、第1アクチュエータ710、第2アクチュエータ730と同様のものであってよい。
制御装置840は、第1駆動装置850aおよび第2駆動装置850bに通信路880を介して接続される。制御装置840は、OISアルゴリズム845により、検出器830の検出結果に基づき駆動対象物820の目標位置を複数の軸方向のそれぞれに対応して算出し、当該目標位置を示す目標位置データを、第1駆動装置850aおよび第2駆動装置850bに送信する。制御装置840は、OISアルゴリズム845を実行するアプリケーションプロセッサであってよく、駆動システム810および駆動対象物820を搭載する機器における駆動システム810以外の部分の制御および情報処理にも用いられてよい。
第1駆動装置850aは、第1アクチュエータ860aに接続され、受信した目標位置データに基づき第1アクチュエータ860aを駆動して、駆動対象物820の移動を制御する。第1駆動装置850aは、駆動対象物820がX軸方向での目標位置データが示す目標位置に移動するように、第1アクチュエータ860aを駆動する。
第2駆動装置850bは、第2アクチュエータ860bに接続され、受信した目標位置データに基づき第2アクチュエータ860bを駆動して、駆動対象物820の移動を制御する。第2駆動装置850bは、駆動対象物820がY軸方向での目標位置データが示す目標位置に移動するように、第2アクチュエータ860bを駆動する。
通信路880は、駆動装置850a、850bと制御装置840との間に接続され、駆動装置850a、850bと制御装置840との間での目標位置データ等の種々のデータの通信を可能にする。通信路880は、一例として、I2C通信路であり、制御装置840と駆動装置850aおよび850bとの間でバス接続されてよい。
図11および図12は、第2の比較例の駆動システム810において、2つの駆動装置850a、850bが目標位置データを受信して、駆動装置850a、850b内の目標位置レジスタに格納するタイミングチャートを示す。第2の比較例の駆動システム810は、第1駆動装置850aと第2駆動装置850bとが互いに異なるスレーブIDを有し、制御装置840は、各軸方向の目標位置データを個別のスレーブIDとともに送信する。
なお、図11および図12は、縦方向にI2C通信の「SCL」および「SDA」、I2C通信により伝送される受信内容、受信内容が示す動作指示、X軸IC、Y軸ICを示し、横方向にこれらの信号等の時間変化を示す。図11および図12において、「SCL」は、第1駆動装置850aおよび第2駆動装置850bの端子SCLに入力されるクロック信号を示し、「SDA」は、第1駆動装置850aおよび第2駆動装置850bの端子SDAに入力されるデータ信号を示す。「受信内容」は、データ信号の内容を示し、「受信内容が示す動作指示」は、当該データ信号の内容による動作指示を示す。「X軸IC」は、X軸方向が割り当てられた第1駆動装置850aにおける目標位置を記憶する目標位置レジスタの内容を示す。「Y軸IC」は、Y軸方向が割り当てられた第2駆動装置850bにおける目標位置を記憶する目標位置レジスタ内のデータの内容を示す。また、各データの内容は、16進法で表される。
制御装置840は、t0−t3の間で、スレーブID(18H)を有する第1駆動装置850aに対して、目標位置レジスタ(アドレス00H)にX軸方向の目標位置(1EH)を書き込む目標位置書込コマンドを送信する。
図11のt0−t1の間で、第1駆動装置850aおよび第2駆動装置850bはスレーブID(18H)を受信する。スレーブID(18H)は、第1駆動装置850aのスレーブIDと一致し、第1駆動装置850aはt1以降も自らを宛先とするものとしてデータを受信する。一方、第2駆動装置850bは、スレーブIDが一致せず、t1以降に受信するデータをレジスタに格納しない。
t1−t2の間で、第1駆動装置850aは、レジスタアドレス(00H)を受信する。t2−t3の間で、第1駆動装置850aは、目標位置データ(1EH)を受信し、目標位置レジスタのアドレス(00H)に格納する。
制御装置840は、t3−t6の間で、スレーブID(E8H)を有する第2駆動装置850bに対して、目標位置レジスタ(アドレス00H)にY軸方向の目標位置(47H)を書き込む目標位置書込コマンドを送信する。
図12のt3−t4の間で、第1駆動装置850aおよび第2駆動装置850bはスレーブID(E8H)を受信する。スレーブID(E8H)は、第2駆動装置850bのスレーブIDと一致し、第2駆動装置850bはt4以降も自らを宛先とするものとしてデータを受信する。一方、第1駆動装置850aは、スレーブIDが一致せず、t4以降に受信するデータをレジスタに格納しない。
t4−t5の間で、第2駆動装置850bは、レジスタアドレス(00H)を受信する。t5−t6の間で、第2駆動装置850bは、目標位置データ(47H)を受信し、レジスタアドレス(00H)に格納する。
以上のように、第2の比較例の駆動システム810は、第1の比較例の駆動システム700に対して、駆動装置850aおよび850bを簡素化できるが、各駆動装置850a、850bに個別のスレーブIDを用いるため、2つの駆動装置850a、850bのそれぞれに1つの目標位置を示す目標位置データを渡すために、6バイトの通信が必要となる。従って、第2の比較例では、制御装置840と駆動装置850との間の通信時間が長くなる。
図1は、本実施形態に係る駆動システムの構成例を示す。本実施形態においては、図9に示した第1の比較例に対して、制御装置40がOISアルゴリズム45を有し、制御装置40のOISアルゴリズム45が算出した目標位置データを2つの駆動装置50a、50bに送信して、第1アクチュエータ60aと、第2アクチュエータ60bとをそれぞれ駆動する点で相違する。さらに、駆動装置50aおよび50bを同一スレーブIDで動作させることにより、1つの目標位置書込コマンドを用いて複数の駆動装置50aおよび50bの目標位置レジスタ140を書込可能とし、通信路80を介した通信時間を削減する。駆動システム10は、駆動対象物20または駆動対象物20が搭載される機器(例えば、カメラ、スマートフォン、PC等)等の動きに応じて、当該駆動対象物20等の移動を制御する。駆動システム10は、検出器30と、制御装置40と、第1駆動装置50aと、第2駆動装置50bと、第1アクチュエータ60aと、第2アクチュエータ60bと、通信路80とを備える。
駆動対象物20は、カメラレンズ、プリズム、ミラー、またはグレーティング等の光学部品であってよい。また、本実施形態に係る駆動システム10の駆動対象は、光学部品に限定されることはなく、駆動対象物20は、駆動システム10による駆動対象となる各種の部品等であってよい。
検出器30は、制御装置40に接続され、駆動対象物20または駆動対象物20が搭載される機器等の動きを検出して、検出結果を制御装置40に送信する。検出器30は、例えばSPI通信で、検出結果を制御装置40に送信してよい。検出器30は、例えば、ジャイロセンサ等を有し、駆動対象物20等の角速度ωを検出し、角速度信号を送信する。
制御装置40は、第1駆動装置50aの受信部および第2駆動装置50bの受信部に通信路80を介して接続される。制御装置40は、検出器30の検出結果に基づき駆動対象物20の目標位置を算出し、当該目標位置を示す目標位置データを有する目標位置データ列を、第1駆動装置50aおよび第2駆動装置50bに送信する。例えば、制御装置40は、機器の移動、ぶれに伴うイメージの移動、ぶれを抑えるように、複数の軸方向のそれぞれに対応して目標位置を算出し、各軸方向についての目標位置を示す目標位置データを生成する。制御装置40は、例えばI2C通信で第1駆動装置50aおよび第2駆動装置50bに目標位置データ列を送信する。制御装置40は、例えばOISアルゴリズム45を実行するアプリケーションプロセッサであってよく、駆動システム10および駆動対象物20を搭載する機器における駆動システム10以外の部分の制御および情報処理にも用いられてよい。OISアルゴリズム45は、駆動対象物20の目標位置を算出して目標位置データを生成してよい。
なお、目標位置データは、駆動対象物20の目標位置(例えば座標等)、移動量、および移動方向のうちの少なくとも1つを示すデータであってよい。
第1駆動装置50aは、第1アクチュエータ60aに接続され、受信した目標位置データに基づき第1アクチュエータ60aを駆動して、駆動対象物20の移動を制御する。第1駆動装置50aは、複数の軸方向のうち第1軸方向(例えば、図1ではX軸方向)が割り当てられる。第1駆動装置50aは、駆動対象物20が第1軸方向での目標位置データが示す目標位置に移動するように、第1アクチュエータ60aを駆動する。第1駆動装置50aは、1チップドライバICであってよい。
第2駆動装置50bは、第2アクチュエータ60bに接続され、受信した目標位置データに基づき第2アクチュエータ60bを駆動して、駆動対象物20の移動を制御する。第2駆動装置50bは、複数の軸方向のうち第2軸方向(例えば、図1ではY軸方向)が割り当てられる。第2駆動装置50bは、駆動対象物20が第2軸方向での目標位置データが示す目標位置に移動するように、第2アクチュエータ60bを駆動する。第2駆動装置50bは、第1駆動装置50aとは別の1チップドライバICであってよい。
第1アクチュエータ60aは、第1駆動装置50aからの信号に応じて駆動対象物20を第1軸方向に移動させる。第1アクチュエータ60aは、コイルであってよい。第1アクチュエータ60aは、例えば、第1駆動装置50aにより流される電流により磁場を発生し、第1アクチュエータ60aと駆動対象物20に接続された磁石70aとの間で生じる引力または斥力によって、駆動対象物20の移動を制御する。
第2アクチュエータ60bは、第2駆動装置50bからの信号に応じて駆動対象物20を第2軸方向に移動させる。第2アクチュエータ60bは、コイルであってよい。第2アクチュエータ60bは、例えば、第2駆動装置50bにより流される電流により磁場を発生し、第2アクチュエータ60bと駆動対象物20に接続された磁石70bとの間で生じる引力または斥力によって、駆動対象物20の移動を制御する。
通信路80は、制御装置40と駆動装置50との間に接続され、制御装置40と駆動装置50との間での目標位置データ等の種々のデータの通信を可能にする。通信路80は、一例として、I2C通信路であり、制御装置40と駆動装置50aおよび50bとの間でバス接続されてよい。
図2は、本実施形態に係る駆動装置50の構成例を示す。なお、駆動システム10における第1駆動装置50aと第2駆動装置50bとは、図2の駆動装置50と同様の構成をそれぞれ有することができる。
駆動装置50は、不揮発性メモリ100と、取得部110と、動作モード設定部120と、受信部130と、目標位置レジスタ140と、センサ150と、増幅器160と、アナログデジタル変換器170と、アクチュエータ駆動部180とを備える。
不揮発性メモリ100は、当該駆動装置50に対して割り当てられた軸方向を示す割当情報と駆動装置50のスレーブIDとを記憶してよい。不揮発性メモリ100は、駆動システム10において別の軸方向が割り当てられた他の駆動装置とは異なる値を割当情報として記憶してよい。例えば、第1駆動装置50aの不揮発性メモリ100は割当情報として(第1軸方向を示す)0を記憶し、第2駆動装置50bの不揮発性メモリ100は割当情報として(第2軸方向を示す)1を記憶してよい。割当情報は、駆動装置50の製造時または駆動システム10の組み立て時等に、当該駆動装置50に割り当てられた軸方向毎に違う値がプログラミングされてよい。不揮発性メモリ100は、1つの駆動システム10における複数の駆動装置で共通のスレーブIDを記憶してよい。不揮発性メモリ100は、ROM(Read Only Memory)、ヒューズ、またはフラッシュメモリ等であってよい。
取得部110は、不揮発性メモリ100に接続され、複数の軸方向のうち当該駆動装置50に割り当てられた軸方向を示す割当情報を、不揮発性メモリ100から取得してよい。取得部110は、さらに、駆動装置50のスレーブIDを不揮発性メモリ100から取得してよい。取得部110は、受信部130およびアクチュエータ駆動部180に接続され、取得した割当情報またはスレーブIDを、受信部130またはアクチュエータ駆動部180に送信する。
動作モード設定部120は、受信部130とアクチュエータ駆動部180の制御部182とに接続される。動作モード設定部120は、動作モードレジスタ125を有し、当該動作モードレジスタ125に対するモード書込コマンドを受信部130が受信したことに応じて、駆動装置50の動作モードを設定する。動作モードレジスタ125は、動作モードを格納する。動作モードレジスタ125は、動作モードレジスタ125に対するモード書込コマンドを受信部130が受信したことに応じて、動作モードを示すビット(例えば0または1)が書き込まれる。動作モード設定部120は、設定された動作モードを示す信号を、受信部130または制御部182に送信する。なお、駆動装置50は、動作モード設定部120を有しない構成を取ってもよく、そのような構成における動作は、図3および図4に関連して後述する。
受信部130は、取得部110と、目標位置レジスタ140と、動作モード設定部120とに接続される。受信部130は、複数の軸方向のそれぞれに対応して目標位置を示す目標位置データを有する目標位置データ列を、制御装置40から受信する。受信部130は、I2C通信により、端子SCLおよび端子SDAでのシリアル入力を介して、目標位置レジスタ140のアドレスを指定する、複数の軸方向に共通の目標位置レジスタアドレスと、目標位置データ列とを含む目標位置書込コマンドを制御装置40から受信する。
受信部130は、駆動装置50に対応するスレーブIDを含む目標位置書込コマンドを受信すると、当該目標位置書込コマンド内の目標位置データを目標位置レジスタ140に送信して格納する。この際、受信部130は、目標位置書込コマンドに含まれる目標位置レジスタアドレスと、取得部110からの割当情報と、モード設定部が示す動作モードとのうち少なくとも1つに応じて、割り当てられた軸方向に対応する目標位置データを目標位置レジスタ140に格納してよい。
目標位置レジスタ140は、アクチュエータ駆動部180の制御部182に接続される。目標位置レジスタ140は、目標位置データ列に含まれる複数の目標位置データのうち、割当情報により指定される軸方向に対応する目標位置データを、受信部130から受信して格納する。
センサ150は、増幅器160に接続され、駆動対象物20の位置情報を検出して、当該位置情報を示す信号を増幅器160に出力する。センサ150は、ホール素子等の磁気センサであってよく、駆動対象物20に接続された磁石70の磁場を検知することで駆動対象物20の位置を検出してよい。
増幅器160は、アナログデジタル変換器170に接続され、センサ150から出力された信号を増幅してアナログデジタル変換器170に出力する。アナログデジタル変換器170は、アクチュエータ駆動部180の制御部182に接続され、増幅器160からのアナログ信号をデジタル信号に変換して制御部182に出力する。
アクチュエータ駆動部180は、目標位置データ列に含まれる複数の目標位置データのうち、割当情報により指定される軸方向に対応する目標位置データに応じてアクチュエータを駆動する。アクチュエータ駆動部180は、目標位置データと、センサ150からの位置情報とに応じてアクチュエータを駆動することで、クローズドループ制御を行ってよい。アクチュエータ駆動部180は、制御部182と、デジタルアナログ変換器184と、第1ドライバ186と、第2ドライバ188とを有する。
制御部182は、デジタルアナログ変換器184に接続される。制御部182は、目標位置レジスタ140から、割り当てられた軸方向に対応する目標位置データを受け取り、アナログデジタル変換器170から、駆動対象物20の位置情報を受け取る。そして制御部182は、当該目標位置データと位置情報とを比較して、目標位置とセンサ150で検出した位置とが一致するように、デジタル信号をデジタルアナログ変換器184に出力する。このように、制御部182は、複数の目標位置データのうち、割当情報により指定される軸方向に対応する目標位置データと、センサ150からの位置情報とに基づいて、アクチュエータの駆動量を制御する。制御部182は、例えばPID(Proportional Integral Differential)制御を行ってよい。
デジタルアナログ変換器184は、第1ドライバ186および第2ドライバ188に接続され、制御部182から出力されたデジタル信号をアナログ信号に変換して、第1ドライバ186および第2ドライバ188に出力する。第1ドライバ186および第2ドライバ188は、デジタルアナログ変換器184からの信号に応じた電流を、出力端子OUT1およびOUT2に接続されたアクチュエータ60に流すことで、当該アクチュエータ60を駆動する。
本実施形態の駆動システム10は、各駆動装置50が個別の割当情報を有するため、複数の駆動装置50に共通のスレーブIDを用いて目標位置データを送信して、各駆動装置50によりアクチュエータ60を駆動させることができる。従って、本実施形態の駆動システム10は、各駆動装置50に固有のスレーブIDを含む一連の目標位置書込コマンドを個別に送信する必要が無いため、駆動装置50と制御装置40との間の通信時間を低減できる。また、OISアルゴリズム45を制御装置40が有するため、当該OISアルゴリズム45のためのマイコンを駆動装置50に搭載する必要が無い。従って、本実施形態の駆動装置50は小型化が可能となる。駆動装置50の小型化に伴って、駆動装置50を、例えばアクチュエータ60の内側に実装すれば、カメラモジュール等の更なる小型化を実現できる。また、駆動装置50が搭載される機器の部品点数が、少なくなり、コスト削減も実現可能である。
図3および図4は、本実施形態の駆動システム10において、第1駆動装置50aおよび第2駆動装置50bが制御装置40からのデータを受信して、目標位置レジスタ140に格納するタイミングチャートの第1の例を示す。本実施形態においては、図10−12に示した第2の比較例に対して、駆動装置50が、複数の軸方向のうち当該駆動装置50に割り当てられた軸方向を示す割当情報を有するため、制御装置40は、複数の駆動装置に共通のスレーブIDで、第1駆動装置50aおよび第2駆動装置50bの両方に対するコマンドを送信可能となる点で相違する。図3および図4では、第1駆動装置50aおよび第2駆動装置50bは、動作モード設定部120を有しない構成であってよく、動作モードによらず同一の動作を行う。また、図3および図4において、第1駆動装置50aおよび第2駆動装置50bは、共通のスレーブIDとして18Hを有するものとする。
なお、図3および図4においても、受信内容等を図11および図12と同様に示す。ただし、図3および図4における「POSI_CTRL=L(X軸IC)」は、X軸方向が割り当てられ、割当情報POSI_CTRLとして値0を有する第1駆動装置50aにおける目標位置レジスタ140の内容を示す。「POSI_CTRL=H(Y軸IC)」は、Y軸方向が割り当てられ、割当情報POSI_CTRLとして値1を有する第2駆動装置50bにおける目標位置レジスタ140内のデータの内容を示す。
駆動装置50の受信部130は、割当情報に応じて、基準アドレスからオフセットさせたアドレスを、当該駆動装置50の目標位置レジスタ140のアドレスとして決定してよい。図3および図4では、第1駆動装置50aは、割当情報POSI_CTRL=0に応じて、目標位置レジスタ140のレジスタアドレスを、目標位置レジスタ140の基準アドレスである00Hとする。第2駆動装置50bは、割当情報POSI_CTRL=1に応じて、目標位置レジスタ140のレジスタアドレスを、目標位置レジスタ140の基準アドレス00Hに1を加えたアドレス01Hとする。
図3および図4において、制御装置40は、スレーブID(18H)の第1駆動装置50aおよび第2駆動装置50bに対し、アドレス00Hを開始アドレスとして4つのデータ(1EH,47H,2AH、E3H)を書き込む目標位置書込コマンドを送信する。
図3のt0から、第1駆動装置50aおよび第2駆動装置50bは、目標位置書込コマンドの受信を開始する。t0−t1の間で、第1駆動装置50aおよび第2駆動装置50bは、目標位置書込コマンドに含まれるスレーブID(18H)を受信する。スレーブID(18H)は、第1駆動装置50aおよび第2駆動装置50bの両方に対応するスレーブIDであるため、第1駆動装置50aおよび第2駆動装置50bは、t1以降も自らを宛先とするものとしてデータを受信する。
t1−t2の間で、第1駆動装置50aおよび第2駆動装置50bは、目標位置レジスタアドレス(00H)を受信する。t2−t3の間で、第1駆動装置50aは、目標位置データ(1EH)を受信し、目標位置レジスタ140のアドレス(00H)に格納する。
図4のt3−t4の間で、第2駆動装置50bは、目標位置データ(47H)を受信し、目標位置レジスタ140のアドレス(01H)に格納する。t4以降も、第1駆動装置50aおよび第2駆動装置50bは、受信したデータをレジスタに順次格納する。
図3および図4に示すように、目標位置データ列における複数の目標位置データのそれぞれは、互いに異なるタイミングで伝送される。従って、受信部130は、複数の目標位置データのうち、割当情報により指定される軸方向に対応するタイミングで伝送される目標位置データ(例えば、奇数番目または偶数番目の目標位置データ)を目標位置レジスタ140に格納してよい。例えば、第2駆動装置50bの受信部130は、連続する目標位置データを受信した順に、目標位置レジスタアドレスが示す位置からレジスタに格納する。これにより、X軸方向の目標位置データがレジスタのアドレス00Hに格納された後に、Y軸方向の目標位置データがアドレス01Hに格納される。従って、第2駆動装置50bは、対応する目標位置データを目標位置レジスタ140に格納できる。なお、第1駆動装置50aおよび第2駆動装置50bは、割り当てられた軸方向に対応する目標位置データのみを目標位置レジスタ140に格納して、対応しない目標位置データは破棄等して、レジスタに格納しなくてもよい。
目標位置データを格納した後、第1駆動装置50aのアクチュエータ駆動部180は、目標位置レジスタ140のレジスタアドレス00Hから目標位置データを受け取り、第1アクチュエータ60aを制御する。一方、第2駆動装置50bのアクチュエータ駆動部180は、目標位置レジスタ140のレジスタアドレス01Hから目標位置データを受け取り、第2アクチュエータ60bを制御する。
図5−8は、本実施形態の駆動システム10において、第1駆動装置50aおよび第2駆動装置50bが制御装置40からのデータを受信して、目標位置レジスタ140に格納するタイミングチャートの第2の例を示す。第1駆動装置50aおよび第2駆動装置50bが動作モード設定部120を有し、本実施形態の駆動システム10が第1動作モードおよび第2動作モードで動作する際の動作について図5−8を参照して説明する。図5−8において、第1駆動装置50aおよび第2駆動装置50bは、共通のスレーブIDとして18Hを有するものとする。図5−8において、受信内容等を図3および図4と同様に示す。
第2の例においては、第1駆動装置50aおよび第2駆動装置50bは、割当情報によらず、目標位置レジスタ140のレジスタアドレスを、目標位置レジスタ140の基準アドレスである00Hとする。
図5および図6では、第1駆動装置50aおよび第2駆動装置50bは、第1動作モード(例えば、第1駆動装置50aおよび第2駆動装置50bの動作モード設定部120の動作モードレジスタ125のビットが0)である。第1駆動装置50aおよび第2駆動装置50bの目標位置レジスタ140は、第1動作モードにおいて、複数の目標位置データのうち、割当情報によらず予め定められた軸方向に対応する目標位置データを格納する。
図5および図6において、制御装置40は、スレーブID(18H)の第1駆動装置50aおよび第2駆動装置50bに対し、アドレス00Hを開始アドレスとして4つのデータ(1EH,47H,2AH、E3H)を書き込む目標位置書込コマンドを送信する。
図5のt0から、第1駆動装置50aおよび第2駆動装置50bは、目標位置書込コマンドの受信を開始する。t0−t1の間で、第1駆動装置50aおよび第2駆動装置50bは、スレーブID(18H)を受信する。スレーブID(18H)は、第1駆動装置50aおよび第2駆動装置50bの両方に対応するスレーブIDであるため、第1駆動装置50aおよび第2駆動装置50bは、t1以降も自らを宛先とするものとしてデータを受信する。
t1−t2の間で、第1駆動装置50aおよび第2駆動装置50bは、目標位置レジスタアドレス(00H)を受信する。t2−t3の間で、第1駆動装置50aおよび第2駆動装置50bは、目標位置データ(1EH)をそれぞれ受信し、目標位置レジスタ140のアドレス(00H)にそれぞれ格納する。すなわち、第1駆動装置50aおよび第2駆動装置50bの両方が、例えばX軸用の目標位置データを目標位置レジスタ140に格納する。
図6のt3以降も、第1駆動装置50aおよび第2駆動装置50bは、受信したデータをレジスタに順次格納する。
図7および図8では、第1駆動装置50aおよび第2駆動装置50bは、第2動作モード(例えば、動作モード設定部120の動作モードレジスタ125のビットが1)である。第1駆動装置50aおよび第2駆動装置50bの目標位置レジスタ140は、第2動作モードにおいて、複数の目標位置データのうち、割当情報により指定される軸方向に対応する目標位置データを格納する。
図7および図8において、制御装置40は、スレーブID(18H)の第1駆動装置50aおよび第2駆動装置50bに対して、目標位置レジスタ140のアドレス00Hにそれぞれ書き込む4つのデータ(1EH,47H,2AH、E3H)を配列した目標位置書込コマンドを送信する。
図7のt0の前に、第1駆動装置50aおよび第2駆動装置50bは、制御装置40から、動作モードレジスタ125に対するモード書込コマンドを受信して、動作モード設定部120の動作モードレジスタ125のビットを1に設定する。
図7のt0から、第1駆動装置50aおよび第2駆動装置50bは、目標位置書込コマンドの受信を開始する。t0−t1の間で、第1駆動装置50aおよび第2駆動装置50bはスレーブアドレス(18H)を受信する。スレーブID(18H)は、第1駆動装置50aおよび第2駆動装置50bの両方に対応するスレーブIDであるため、第1駆動装置50aおよび第2駆動装置50bは、t1以降も自らを宛先とするものとしてデータを受信する。
t1−t2の間で、第1駆動装置50aおよび第2駆動装置50bは、目標位置レジスタアドレス(00H)を受信する。t2−t3の間で、第1駆動装置50aの受信部130は、アドレス00Hに対するX軸用のデータである目標位置データ(1EH)を受信し、取得部110が取得した割当情報POSI_CTRL=0に応じて、目標位置データ(1EH)を目標位置レジスタ140のアドレス(00H)に格納する。第2駆動装置50bの受信部130は、取得部110が取得した割当情報POSI_CTRL=1に応じて、目標位置データ(1EH)を目標位置レジスタ140に格納しない。
t3−t4の間で、第1駆動装置50aは、アドレス00Hに対するY軸用のデータである目標位置データ(47H)を受信し、取得部110が取得した割当情報POSI_CTRL=0に応じて、目標位置データ(47H)を目標位置レジスタ140に格納しない。第2駆動装置50bは、取得部110が取得した割当情報POSI_CTRL=1に応じて、目標位置データ(47H)を目標位置レジスタ140のアドレス(00H)に格納する。
t4以降で、第1駆動装置50aおよび第2駆動装置50bは、同様に目標位置レジスタ140のアドレス(00H)に、受信したデータを順次格納する。
目標位置データを格納した後、第1駆動装置50aのアクチュエータ駆動部180は、目標位置レジスタアドレス00Hに位置する目標位置データを受け取る。また、第2駆動装置50bのアクチュエータ駆動部180は、目標位置レジスタアドレス00Hに位置する目標位置データを受け取る。
このように、本実施形態の駆動システム10により、例えば4バイトの通信で、2つの駆動装置50a、50bのそれぞれに1つの目標位置を示す目標位置データを渡すことができ、制御装置40と駆動装置50a、50bとの間の通信時間を低減できる。
なお、本実施形態の駆動装置50において、割当情報は、不揮発性メモリ100に代えて、各駆動装置50の外部ピンに接続された電位によって設定されてもよい。例えば、第1駆動装置50aは低電位側電源に接続され、第2駆動装置50bは高電位側電源に接続されることで、各駆動装置50の取得部110は、当該接続された電源の電位によって割当情報を取得してよい。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。