以下、本発明の実施形態について図面を参照して説明する。初めに、本願の通信装置を適用する装置の一例として電子部品実装装置(以下、「装着装置」と略する場合がある)について説明する。図1は、装着装置10に適用される多重通信装置の構成を示す模式図である。図1に示すように、装着装置10は、当該装着装置10を設置する場所に固定的に設ける装置本体部10Aと、装置本体部10Aに対して相対的に移動する可動部10Bとを備える。本実施例の装着装置10は、図1に示す装置制御部21の制御に基づいて、装着装置10内に収容される搬送装置(図示略)にて搬送される回路基板に対して、可動部10Bの装着ヘッド(図示略)により電子部品の装着作業を実施する装置である。
装置本体部10Aは、上記した装置制御部21の他に、3つのサーボアンプ23,24,25と、固定部側多重通信部27とを有する。装置制御部21は、位置決めコントローラボード31と、画像入力ボード33とを有する。位置決めコントローラボード31は、CPU、RAM等を備えたコンピュータを主体として構成されている。位置決めコントローラボード31は、産業用ネットワーク用ケーブル41(例えば、LANケーブル)を介して、サーボアンプ23,24,25の各々と接続されている。なお、ここでいう「産業用ネットワーク」とは、例えば、MECHATROLINK(登録商標)−III、EtherCAT(登録商標)等である。また、LANケーブルの規格としては、例えば、100base−txを採用できる。位置決めコントローラボード31は、産業用ネットワーク経由で可動部10Bが有するサーボモータ55A〜55Cの位置、速度、又はトルクの指令をサーボアンプ23,24,25の各々に行い、可動部10Bの装着ヘッドの位置決め制御を行う。また、画像入力ボード33は、後述する可動部10Bが備えるカメラ53のデータ(画像データなど)の送受信を制御するボードである。
サーボアンプ23〜25の各々は、可動部10Bに設けられた複数(本実施形態では3個)のサーボモータ55A〜55Cにより多軸に制御される装着ヘッド(図示略)に対し、各駆動軸に対応したサーボモータ55A〜55CをPID制御(ベクトル制御)するアンプである。サーボアンプ23,24,25は、例えば、パワーMOSFET、FPGA(Field Programmable Gate Array)などのプログラム可能なロジックデバイス、FPGAに内蔵されるCPUなどで構成され、可動部10Bに設けられサーボモータ55A〜55Cの各々に対応するエンコーダ57A〜57Cによる位置入力、電流センサの入力、PWM出力等を行う。
サーボアンプ23〜25の各々は、エンコーダケーブル43及びDIO用ケーブル45を介して固定部側多重通信部27と接続されている。固定部側多重通信部27は、サーボアンプ23〜25と、可動部10B側のエンコーダ57A〜57Cとの間で送受信されるエンコーダ信号を多重化して通信を行う。固定部側多重通信部27は、エンコーダケーブル43を介してエンコーダ信号をサーボアンプ23〜25と送受信する。
可動部10Bは、可動部側多重通信部51と、カメラ53と、3つのサーボモータ55A〜55Cと、エンコーダ57A〜57C、センサ類59A〜59Cとを備える。可動部側多重通信部51の光トランシーバ64は、光ファイバーケーブル61を介して固定部側多重通信部27の光トランシーバ63と接続されている。光トランシーバ63,64は、例えば、SFP+規格に準拠した光トランシーバである。また、光ファイバーケーブル61は、例えば、装着装置10の動作に対して安定的な通信を確保するために、耐屈曲性を有するケーブルであることが好ましい。
固定部側多重通信部27は、装置制御部21やサーボアンプ23等から入力された各種データを、例えば、入力ポートに対して割り当てた一定時間(タイムスロット)に応じて多重化する。固定部側多重通信部27により多重化されたデータは、光トランシーバ63により光信号に変換されて光ファイバーケーブル61に送出される。可動部10B側の光トランシーバ64は、光ファイバーケーブル61を通じて受光される光信号を電気信号に変換する。光トランシーバ64により変換された電気信号は、可動部側多重通信部51により各データに分離される。同様に、可動部側多重通信部51は、カメラ53やエンコーダ57A等から入力された各種データを多重化して固定部側多重通信部27へ送信する。
カメラ53は、例えば、搬送される回路基板上のマークを撮影するマークカメラや装着ヘッドの吸着ノズルが保持する電子部品を撮影するパーツカメラである。カメラ53は、例えば、装置制御部21から受信したトリガ信号に応じて撮影を実行する。カメラ53は、例えば、LVDS(Low Voltage Differential Signaling)技術を用いたCameraLink(登録商標)規格に準拠した画像伝送規格により画像データを、カメラリンクケーブル81を介して可動部側多重通信部51に出力する。可動部側多重通信部51は、入力した画像データを他のデータと多重化し、光ファイバーケーブル61を介して固定部側多重通信部27へ向けて送信する。固定部側多重通信部27は、可動部側多重通信部51から光ファイバーケーブル61を介して転送された多重化データからカメラ53の画像データを分離し、カメラリンクケーブル47を介して画像入力ボード33へ出力する。装置制御部21は、画像入力ボード33が入力した画像データに基づいて、回路基板上のマークの認識や吸着ノズルに保持された電子部品の位置の誤差等を検出する。
サーボモータ55A〜55Cは、例えば、可動部10Bが有する装着ヘッドをX軸方向及びY軸方向に移動させるスライダの駆動源、あるいは装着ヘッドをZ軸方向に移動させる駆動源として使用されるものである。サーボモータ55A〜55Cは、例えば、U相,V相,W相の各相のコイルを有する三相交流で駆動するモータである。エンコーダ57A〜57Cは、3つのサーボモータ55A〜55Cの各々に対応して設けられ、位置情報等のエンコーダ信号を生成する。エンコーダ57A〜57Cの各々は、エンコーダケーブル83を介して可動部側多重通信部51と接続されている。サーボアンプ23,24,25は、例えば、この順に、サーボモータ55A〜55C及びエンコーダ57A〜57Cに対応している。例えば、サーボモータ55Aは、電源線(図示略)を介して各相のコイルがサーボアンプ23に接続されている。サーボアンプ23は、多重通信部27,51間の多重通信を介してエンコーダ57Aから受信したエンコーダ信号に基づいて、サーボモータ55Aに供給する駆動電圧の位相等を変更するPID制御を実施する。
センサ類59A〜59Cは、サーボモータ55A〜55Cの各々に対応する。センサ類59A〜59Cは、例えば、サーボモータ55A〜55Cの各々の回転を停止させ、回転位置を固定してロック状態とするモータブレーキの動作を制御するためのリレーであり、例えば、リミットスイッチである。センサ類59A〜59Cは、DIO用ケーブル85を介して可動部側多重通信部51と接続されている。また、サーボアンプ23〜25は、センサ類59A〜59Cの各々に対応し、DIO用ケーブル45を介して固定部側多重通信部27に接続されている。サーボアンプ23は、装置制御部21の制御に基づいて、多重通信を介してセンサ類59A〜59CにDIO信号を送信し、センサ類59A〜59Cを制御してサーボモータ55A〜55Cのオーバーランを防止する処理等を行う。
次に、固定部側多重通信部27と可動部側多重通信部51との間における多重通信について説明する。なお、以下の説明では、固定部側多重通信部27から可動部側多重通信部51に向けた多重通信を中心について説明する。可動部側多重通信部51から固定部側多重通信部27へ向けた通信は、固定部側多重通信部27から可動部側多重通信部51へ向けた通信と同様の処理がなされるため、その説明を適宜省略する。
図2に示すように、固定部側多重通信部27は、コマンド生成部101と、符号化部103と、データ変換部105とを有している。同様に、可動部側多重通信部51は、コマンド認識部151と、復号化部153と、データ変換部155とを有する。これらのコマンド生成部101、符号化部103及びデータ変換部105は、例えば、固定部側多重通信部27が有するFPGA(Field Programmable Gate Array)などのプログラム可能なロジックデバイス上で構成される論理回路として構築される。同様に、コマンド認識部151等は、可動部側多重通信部51が有するFPGA上の論理回路として構築される。
コマンド生成部101は、装置制御部21やサーボアンプ23〜25から入力されるデータを多重化して符号化部103へ出力する。コマンド生成部101は、各装置から入力されたデータを、対応する8ビットごとのブロックBLOCKA〜BLOCKDに割り当てて符号化部103へ出力する。図3及び図4は、ブロックBLOCKA〜BLOCKDの各々のデータであり、後述するデータ変換部105による8B/10B変換前のデータを示している。
図3及び図4は多重化データのビット割り当ての一例であり、固定部側多重通信部27から可動部側多重通信部51に送信されるデータの構成を示している。図5及び図6は、可動部側多重通信部51から固定部側多重通信部27に送信されるデータであり、10B/8B変換後のデータを示している。例えば、図3のクロックカウンタ0の縦の1列は、多重化されて送信される1フレームのデータの構成を示している。本実施形態では、1フレームのデータは、後述する8B/10B変換前において、各ブロックBLOCKA〜BLOCKDを8ビットとする合計32ビット(4ブロック×8ビット)で構成されている。8B/10B変換後は、各ブロックBLOCKA〜BLOCKDは、10ビットに変換される。このため、光ファイバーケーブル61で伝送されるデータは、1フレームあたり40ビットで構成されている。光トランシーバ63,64間の通信は、例えば、1フレーム当りの周期が8nsec(周波数が125MHz)に設定され、5Gbps(40ビット×125MHz)の通信回線を構築する。
図3及び4は、40ビットのフレームデータを送信する1クロック(周波数が125MHz、1クロック当たり8nsec)ごとの各ビットに設定されるデータ(8B/10B変換前)を示している。フレームデータは、10クロック(clockカウンタ0〜9)を1サイクル(1周期)として、1クロックごとの各ビット位置にデータが設定される。図3及び図4に示す例では、図4に示す9クロック目のデータ送信が終了すると、図3の0クロック目のデータから再度送信が行われる。
図3及び図4に示すように、40ビットのフレームデータのうち、先頭ビットから2つのブロックBLOCKA,BLOCKDBには、可動部側多重通信部51のコマンド認識部151などが構築されるFPGAのバーションをアップするためのアップデータ等が設定される。また、ブロックBLOCKA,BLOCKBは、8B/10B変換において使用されるK符号に対応する制御コマンドが設定される。コマンド生成部101は、通信確立時などK符号による制御が必要な場合には、ブロックBLOCKA,BLOCKBにK符号を設定する。
ブロックBLOCKBの次のブロックBLOCKCには、図3及び図4に示すように、先頭ビットのビットBIT0からビットBIT3までの4ビットに、CameraLink(登録商標)規格に準拠した制御信号CC1〜CC4が設定される。例えば、装置制御部21は、制御信号CC1を使用して、カメラ53に対し撮像を指示する。また、装置制御部21は、例えば、複数のカメラ53を可動部10Bに設けた場合には、制御信号CC2〜CC4を使用して画像データを出力するカメラ53を切り替える制御を実行する。なお、制御信号CC1〜CC4は、光ファイバーケーブル61による多重通信の通信速度に比べて要求される通信速度が低速である。このため、コマンド生成部101は、例えば、2回に1回の送信において、制御信号CC1〜CC4に係わるデータを削除して(間引きして)他のデータの送信等に利用することで、伝送効率の向上を図ってもよい。
ブロックBLOCKCのビットBIT4には、後述するブロックBLOCKAに対するリード・ソロモン符号による符号化において、訂正能力を超えるバースト誤り等が発生したか否かを検出するためのパリティビットが設定されている。具体的には、例えば、リード・ソロモン符号による符号化の設定において、連続して2つのブロックBLOCKAの連続誤りを訂正可能な設定とする。この場合に、多重通信で3ブロック以上の連続誤りが発生すると受信側(可動部10B)では、データを訂正できない。そこで、ブロックBLOCKCのビットBIT4には、例えば、ブロックBLOCKAの8ビットに対応する偶数パリティを設定しておき、受信側で3ブロック以上の連続誤りを検出した場合に、異常停止や後述する画素データの補正などを実行する。また、ブロックBLOCKCのビットBIT5には、ビットBIT4と同様に、ブロックBLOCKBに対応するパリティビットが設定されている。
ブロックBLOCKCのビットBIT6には、ビットBIT0〜BIT3の制御信号CC1〜CC4のデータが設定されているか否かを示すビット値が設定される。また、ブロックBLOCKCのビットBIT7には、上記したブロックBLOCKA,BLOCKBにK符号を設定するか否かを示すビット値(ブロックK符号フラグ)が設定される。本実施形態では、K符号が設定されているか否かを示すビットBIT7は、ブロックBLOCKA及びブロックBLOCKBの両方に対応しており、兼用する構成となっている。このため、ビットBIT7に例えば、1ビットが設定された場合には、ブロックBLOCKA及びブロックBLOCKBの両方にK符号が設定されたことを示している。
次のブロックBLOCKDには、上記したブロックBLOCKA〜BLOCKCに設定したデータに比べて低遅延の通信が要求されるデータが設定されている。具体的には、ブロックBLOCKDのビットBIT0〜BIT2には、サーボアンプ23〜25からエンコーダ57A〜57Cに向けたエンコーダ信号が設定されている。ビットBIT0〜BIT2は、1サイクル(10クロック)のうち、4クロック(図示例ではclockカウンタ0〜3)がエンコーダ信号及びエンコーダ信号のデータの有無を示す情報(図中の「E1有無」等)が設定されている。データの有無を示す情報は、例えば、多重通信の40ビットのフレームデータのデータ転送レートに対して低速なエンコーダ信号が、ビットBIT0〜BIT2に設定されているか否かを示すための情報である。エンコーダ信号及びデータの有無を示す情報は、各サイクルで交互に設定されている。また、clockカウンタ4のビットBIT0〜BIT2には、エンコーダケーブル43等の断線を示すビット値が設定されている。clockカウンタ5のビットBIT0〜BIT2には、エンコーダ信号のCRC異常を示すビット値が設定されている。
また、ブロックBLOCKDのビットBIT3〜BIT5には、センサ類59A〜59Cを制御するDIO信号が設定されている。clockカウンタ0〜3のビットBIT3〜BIT5には、DIO信号の内容を示すビット値が設定されている。clockカウンタ4のビットBIT3〜BIT5には、DIO信号のパリティビットが設定されている。
また、ブロックBLOCKDのビットBIT6,BIT7には、UART(Universal Asynchronous Receiver Transmitter)通信による制御信号が設定される。この制御信号は、例えば、装置制御部21がカメラ53のゲインを調整するのに使用される。
次に、図5及び図6を参照して、可動部側多重通信部51から固定部側多重通信部27へ送信するデータの構成について説明するが、主に上記した図3及び図4と異なる点を説明する。図5及び図6に示すように、可動部側多重通信部51から固定部側多重通信部27へ送信するデータでは、ブロックBLOCKA,BLOCKBには、カメラ53で撮像した画素データ(画素1,画素2)が設定されている。
また、ブロックBLOCKCのビットBIT0〜BIT3には、1画素を10ビットとした場合の画素データが設定される。本実施形態の装置制御部21は、カメラ53を制御して画素値を8ビット又は10ビットに切り替え可能に構成されている。このため、コマンド生成部101は、装置制御部21によって画素値が10ビットに変更されると、ブロックBLOCKCのビットBIT0〜BIT3を、画素データ(画素1、画素2それぞれの2ビット分)の伝送に使用する。例えば、ブロックBLOCKCのビットBIT0,BIT1は、1画素を10ビットとした場合、ブロックBLOCKAの8ビットの画素データに対応する残りの2ビット分の画素データが設定される。ブロックBLOCKCのビットBIT4,BIT5には、画素1(ブロックBLOCKA)及び画素2(ブロックBLOCKB)の各々に対応するパリティビットが設定されている。ブロックBLOCKCのビットBIT6には、ブロックBLOCKA及びブロックBLOCKBに設定されるK符号に対応したパリティビットが設定されている。
図2に戻り、コマンド生成部101は、図3及び図4に示すデータ形式で各ビットにデータを割り当てた各ブロックBLOCKA〜BLOCKDを、符号化部103に出力する。符号化部103は、ブロックBLOCKA〜BLOCKCの各々に対応するRS符号化部111〜113と、ブロックBLOCKDに対応するハミング符号化部114とを有する。また、データ変換部105は、ブロックBLOCKA〜BLOCKDの各々に対応する8B10B符号化部121〜124を有する。
RS符号化部111は、コマンド生成部101から入力される8ビットのブロックBLOCKAを1シンボルとしてリード・ソロモン符号による符号化を行う。RS符号化部111は、訂正用のシンボルを含めた符号化後のデータを、8ビットずつデータ変換部105の8B10B符号化部121へ出力する。8B10B符号化部121は、RS符号化部111から入力される符号化後の8ビットのデータに対して8B/10B変換を実行する。8B/10B変換によって、ブロックBLOCKAに対応するデータは10ビットのDCバランスの取れたデータに変換される。
同様に、コマンド生成部101から出力されたブロックBLOCKBに対応するデータは、符号化部103のRS符号化部112によってリード・ソロモン符号により符号化され、8B10B符号化部122によって8B/10B変換される。
同様に、コマンド生成部101から出力されたブロックBLOCKCに対応するデータは、符号化部103のRS符号化部113によってリード・ソロモン符号により符号化され、8B10B符号化部123によって8B/10B変換される。また、コマンド生成部101は、ブロックBLOCKA及びブロックBLOCKBのデータとしてK符号を設定する場合には、設定した旨を示すK符号フラグKA(ブロックBLOCKB兼用)を、ブロックBLOCKCのビットBIT7(図3及び図4参照)に設定する。なお、RS符号化部111〜113を、例えば論理検証がなされたIPコアにより構成し製造コストの低減を図ってもよい。
RS符号化部111〜113は、リード・ソロモン符号による符号化における条件(1シンボルを何ビットにするか、誤り検出可能なビット数はどれだけか、短縮化するシンボル数はどれだけかなど)が同一設定となっている。このため、RS符号化部111〜113は、8ビットのブロックBLOCKA〜BLOCKCの各々に対して同様の符号化処理を実現でき、互いに同期を取りながらデータ変換部105へ出力することが可能となる。コマンド生成部101から同期を取って出力されたブロックBLOCKA〜BLOCKCのデータは、同一のフレームデータ内に多重化され、可動部側多重通信部51で受信されることとなる。
ブロックBLOCKDのデータは、上記したように低遅延の通信が要求されるため、符号化及び復号化の処理遅延の少ないハミング符号によって符号化を行う。符号化部103のハミング符号化部114は、コマンド生成部101から入力されるブロックBLOCKDに対応するデータに対し、例えば、ハミング符号の前方誤り訂正符号FEC(15,11)を付与する。これにより、確実性を確保しつつ、高速な誤りの確認処理を行なうことができる。図4に示すように、本実施形態のブロックBLOCKDには、clockカウンタ6〜9のビットに、短縮化符号の訂正符号FEC(15,11)が設定されている。
ハミング符号化部114は、符号化後のデータを、データ変換部105の8B10B符号化部124へ出力する。8B10B符号化部124は、ハミング符号化部114から入力される符号化後の8ビットのデータに対して8B/10B変換を実行する。
データ変換部105は、8B/10B変換後のブロックBLOCKA〜BLOCKDに対応する40ビットのデータを、光トランシーバ63を介して可動部側多重通信部51へ送信する。
可動部側多重通信部51のデータ変換部155は、ブロックBLOCKA〜BLOCKDの各々の順番に対応して8B/10B復号化部161,162,163,164を有する。8B/10B復号化部161〜164の各々は、各ブロックBLOCKA〜BLOCKDのデータを8ビットに変換して復号化部153へ出力する。
復号化部153は、送信側のRS符号化部111〜113に対応してRS復号化部171,172,173を有する。RS復号化部171〜173は、8B/10B復号化部161〜163によって8ビットに変換されたデータに対し、リード・ソロモン符号による復号化を実行し、必要であれば誤り訂正を実行する。RS復号化部171〜173は、復号化後の各ブロックBLOCKA〜BLOCKCのデータをコマンド認識部151へ出力する。
また、復号化部153は、送信側のハミング符号化部114に対応してハミング復号化部174を有する。ハミング復号化部174は、8B/10B復号化部164によって8ビットに変換されたデータに対し、ハミング符号による復号化を実行し、必要であれば誤り訂正を実行する。ハミング復号化部174は、復号化後の各ブロックBLOCKDのデータをコマンド認識部151へ出力する。
コマンド認識部151は、復号化部153から入力された多重化されたデータを分離し、対応する各装置(カメラ53など)に出力する。また、コマンド認識部151は、復号化部153から入力されるデータに基づいて、ブロックBLOCKAにK符号が設定されているか否か、受信したデータに誤りがあったか否か等を判定することが可能となる。また、コマンド認識部151は、例えば、後述するK符号の番号に対応する制御コマンドを実行する。
以上、詳細に説明した実施形態によれば以下の効果を奏する。
<効果1>コマンド生成部101は、サーボアンプ23等から入力された各種データを多重化し、8ビットごとの4つのブロックBLOCKA〜BLOCKDに分割して符号化部103に出力する。符号化部103は、分割された4つのブロックBLOCKA〜BLOCKDのうち、3つのブロックBLOCKA〜BLOCKCに対して、8ビットを1シンボルとしたリード・ソロモン符号による符号化を実行する。データ変換部105は、符号化されたブロックBLOCKA〜BLOCKCのデータに対して、8B/10B変換を実行する。また、コマンド生成部101は、ブロックBLOCKA及びブロックBLOCKBにK符号を設定したか否かを示す「ブロックK符号フラグ」を、当該ブロックBLOCKA,BLOCKBとは別のブロックBLOCKCにビット割り当てする(図3参照)。そして、符号化部103が有するRS符号化部111〜113は、3つのブロックBLOCKA〜BLOCKCに対して、同一設定のリード・ソロモン符号による符号化処理を実行し、同期を取って符号化後のデータをデータ変換部105に出力する。
このような構成では、リード・ソロモン符号による符号化の後に8B/10B変換を実行するため、多重通信におけるDCバランスの確保及びCDRによるクロックの分離が可能となる。また、リード・ソロモン符号による誤り訂正や8B/10B変換による高速シリアル通信が可能となるため、例えば、CameraLink(登録商標)規格のような再送制御を実行しないリアルタイム性の高い通信規格を、画像データを伝送する通信規格として採用することも可能となる。
ここで、従来方法による多重通信プロトコルについて説明する。図7及び図8は、従来方法による多重通信プロトコルを示している。なお、以下の説明では、上記実施形態と同様の構成については同一符号を付し、その説明を適宜省略する。また、図8に示す可動部10Bから装置本体部10Aへの多重通信プロトコルは、図7に示す装置本体部10Aから可動部10Bへの多重通信プロトコルと同様の構成となっているため、その説明を適宜省略する。
図7及び図8に示す従来方法では、上記実施形態の図3〜図6と比較してブロックBLOCKCのデータ形式のみが異なるため、ブロックBLOCKCのみを示している。従来方法では、例えば、図7に示す装置本体部10Aから可動部10Bへの通信では、ブロックBLOCKA,BLOCKBにK符号を設定して使用せず、ブロックBLOCKCの8ビットのうち、ビットBIT0〜BIT4の5ビットを制御コマンドの送信に使用している。
図7に示す従来方法のブロックBLOCKCのうち、ビットBIT0〜BIT3には、制御コマンドの番号が設定されている。また、ビットBIT4には、その制御コマンドが異常を示すコマンドであるか否かを示すビット値(異常発生フラグ)が設定されている。この場合、例えば、制御コマンドの番号を示す4ビット(16種類)と、異常を示す1ビットを組み合わせて、最大で32種類(=16×2)の制御コマンドを設定することが可能となる。同様に、図8に示す従来方法の多重通信プロトコルでは、ブロックBLOCKCのうち、ビットBIT0〜BIT3には、制御コマンドの番号が設定されている。
これに対し、図3〜図6に示す本実施形態の多重通信プロトコルでは、ブロックBLOCKCにK符号か否かの1ビット(ブロックK符号フラグ)を設定することで、ブロックBLOCKAのK符号(12種類)と、ブロックBLOCKBのK符号(12種類)とを組み合わせて、最大で144種類(=12×12)の制御コマンドを設定することが可能となる。
また、制御コマンドのためだけに使用するビット数を比較すると、従来方法では、ブロックBLOCKC内の5ビットが必要である。一方、図3〜図6に示す本実施形態の多重通信プロトコルでは、ブロックBLOCKA,BLOCKBは、他のデータ通信(画素データ等)と兼用して使用するため、実質的にはブロックBLOCKCの1ビット(ブロックK符号フラグ)のみが必要となる。このため、単純に比較すると、差分の4ビットを他の通信に使用することが可能となる。つまり、本願の多重通信プロトコルでは、伝送効率の向上を図ることが可能となる。
例えば、本実施形態では、従来方法で制御コマンドの番号として使用していたブロックBLOCKCの4ビット(ビットBIT0〜BIT3)に、1画素の画素値を10ビットとした場合の画素データが設定されている(図5参照)。このため、本実施形態の多重通信では、伝送効率を向上させて、1画素が10ビットの画素データを伝送することが可能となる。従来方法では16ビット(ブロックBLOCKA,BLOCKB)のみで画素データを伝送していた。これに対し、本実施形態では、従来と同じ1クロック(8nsec)の多重化データの伝送において、ブロックBLOCKA,BLOCKBの16ビットにブロックBLOCKCの4ビットを追加した20ビットの画素データの伝送が可能となる。このため、1.25倍(20÷16)の伝送効率の改善を図ることが可能となっている。
図9は、K符号を用いて設定した制御コマンドの一覧(本発明及び従来方法の比較)を示している。例えば、従来方法では、図9の最も左側の2列で示すコマンド番号1〜9(異常番号が「0」)と、異常番号0〜15を表現することが可能となる。図9の最も左側の2列で示すコマンド番号1〜9(異常番号が「0」)の制御コマンドは、図7に示すブロックBLOCKCのビットBIT4に設定される異常発生フラグを「0」とし、ビットBIT0〜BIT3の各ビット値でコマンド番号を表した場合に対応している。また、図9に示す異常番号0〜15は、図7に示すビットBIT4の異常発生フラグを「1」とし、ビットBIT0〜ビットBIT3の各ビット値でコマンド番号(異常番号)を表した場合に対応している。なお、図9の最も左側のコマンド番号が「0」の制御コマンドは、通信確立時に必要なコマンドであり、従来の方法では使用していなかったコマンドである。
一方、本願の多重通信プロトコルでは、図9の右から2列目の「K符号番号」で示すように、ブロックBLOCKA及びブロックBLOCKBの各々に設定したK符号の番号を組み合わせることによって、従来方法で設定した制御コマンドの全てをサポートするだけでなく、それ以上の数の制御コマンドを設定することが可能となっている。
<効果2>さらに、本実施形態の多重通信では、多重通信の確立前と確立後において、K符号の番号を、異なる内容の制御コマンドに設定することが可能となる。例えば、コマンド生成部101は、K符号を用いて可動部10B側のコマンド認識部151と多重通信の通信確立を実施する。そして、コマンド生成部101は、例えば、通信確立を検出した場合、通信確立時に使用していたK符号の番号を、通信確立後に送信する画像データ等の通信を制御する制御コマンドの番号として使用する。図9の左から5列目の「動作モード」の列には、通信確立前に使用するものか、確立後(図中では「運転モード」)に使用するものかが示されている。
光トランシーバ63,64は、例えば、1フレームが40ビットの高速通信を実施するが、通信を確立する際には40ビットの先頭ビットを検出する必要がある。このため、多重通信部27,51は、K符号を通信確立時のビットアライメントとして使用する。図9の左から3列目の本発明のNO0〜8は、通信確立等に使用する制御コマンドに対応している。右から2列目のK符号番号に示すように、これらの通信確立等に使用する制御コマンドは、ブロックBLOCKA,BLOCKBの各々に設定したK符号の番号の組み合わせによって設定されている。
一方、図9の左から3列目の本発明のNO9〜33は、通信確率後に使用する各種の制御コマンドに対応している。例えば、NO12は、1画素の画素値を8ビットに切り替える制御コマンドである。また、例えば、NO3の通信確立(確立OK)は、通信確立の確認や応答に使用する制御コマンドであり、一度、通信確立を検出すると、使用する必要がなくなる制御コマンドである。このため、このような通信確立時にのみ必要な制御コマンドに設定していたK符号の番号(例えば、「5」と「0」の組み合わせ)を、通信確立後に必要となる制御コマンド(例えば、画素値を8BITモードへ切り替えの制御コマンド)に割り当てて使用することも可能である。これにより、通信の確立の前後において、より多くの制御コマンドを使用することが可能となる。
<効果3>上記したように本実施形態のコマンド生成部101は、ブロックBLOCKA,BLOCKBの各々に割り当てたK符号の番号を組み合わせることで、従来方法に比べて極めて多くの制御コマンドを使用することが可能となっている(図9の右から2列目の「K符号番号」参照)。
<効果4>コマンド生成部101は、ブロックBLOCKA,BLOCKBに対するリード・ソロモン符号による符号化において、訂正能力を超えるバースト誤りが発生したか否かを検出するためのパリティビットを、別のブロックBLOCKCのビットBIT4,BIT5に設定している(図3参照)。これにより、受信側のコマンド認識部151は、例えば、設計段階において予め設定したリード・ソロモン符号による訂正能力を超えて連続した誤りを検出した場合に、異常停止等を実施することが可能となる。
<効果5>また、上記実施形態のコマンド認識部151は、ブロックBLOCKCのビットBIT4,BIT5のパリティビットに基づいて誤りを検出した場合に、画素データの補正処理を実行することが可能となる。例えば、コマンド認識部151は、パリティビットに基づいて複数の画素データの誤りを検出した場合に、画像データの水平ラインにおいて、誤りを検出した画素に対して左右方向で隣り合う2つの画素の画素値の平均値を、誤りを検出した画素の画素値として補正する。これにより、受信側で適宜補正を実行することで、CameraLink(登録商標)規格のような再送制御をしないリアルタイム性の高い通信規格を、画像データを伝送する通信規格として採用することも可能となる。
<効果6>本実施形態の符号化部103は、3つのブロックBLOCKA〜BLOCKCに対してはリード・ソロモン符号による符号化を実行し、残りのブロックBLOCKDに対しはハミング符号による符号化を実行している。本実施形態の電子部品実装装置10のように産業用に使用される装置では、固定部と可動部との間で伝送するデータの中に、例えば、画素データのように伝送の遅延がある程度許容されるものと、エンコーダ信号のように低遅延が要求されるものとが混在する。これに対し、本実施形態の装着装置10では、許容される遅延に応じて使用する誤り訂正符号を使い分けている。例えば、リード・ソロモン符号を画素データに使用し、復号化等における処理遅延の少ないハミング符号をエンコーダ信号に使用することで、データの種類に応じて適切な多重通信を実施することが可能となっている。
尚、本発明は上記実施形態に限定されるものでなく、その趣旨を逸脱しない範囲で様々な変更が可能である。
例えば、上記実施形態では、本願における通信装置として多重通信の通信装置を採用したが、本願は多重通信の通信装置に限らない。例えば、本願における通信装置として、上記したブロックBLOCKA〜BLOCKDの各データを、それぞれの通信ケーブルで伝送する通信装置を採用してもよい。
また、GbELANケーブル10Cは、例えば、光ファイバーケーブルやUSB(Universal Serial Bus)3.0の通信規格に準拠したUSBケーブルでもよい。また、多重通信部27と、可動部側多重通信部51とは、有線に限らず、無線通信を行ってもよい。
また、上記実施形態では本願における通信装置を備える装置として装着装置10を例について説明したが、本願はこれに限定されるものではなく、例えば、作業用ロボットや回路基板に半田を印刷するスクリーン印刷装置などの他の装置に適用することができる。