(57)【特許請求の範囲】
【請求項１】
送信データを８ビットごとの複数のブロックに分割するコマンド生成部と、
前記コマンド生成部により分割した複数のブロックのうち、少なくとも２つのブロックの各々のデータに対し、１つのブロックを１シンボルとしたリード・ソロモン符号による符号化を実施する符号化部と、
前記符号化部により符号化したデータに対し８Ｂ／１０Ｂ変換を実施するデータ変換部と、を備え、
前記コマンド生成部は、前記複数のブロックのうち、少なくとも１つのブロックがＫ符号を示しているか否かを示すフラグを、当該ブロックとは別のブロックに含まれるビットに割り当てる処理を実行し、
前記符号化部は、前記少なくとも２つのブロックの各々のデータに対し、同一設定のリード・ソロモン符号による符号化処理を実施し同期を取って前記データ変換部に出力することを特徴とする通信装置。
【請求項２】
前記コマンド生成部は、前記Ｋ符号を用いて受信側と通信確立を実施し、受信側との通信確立を検出した場合、前記Ｋ符号を、通信確立後に送信する前記送信データに係る制御における制御コマンドに割り当てることを特徴とする請求項１に記載の通信装置。
【請求項３】
前記コマンド生成部は、前記複数のブロックの各々に割り当てた前記Ｋ符号を組み合わせたデータを、１つの前記制御コマンドに割り当てて処理することを特徴とする請求項２に記載の通信装置。
【請求項４】
前記コマンド生成部は、前記リード・ソロモン符号による符号化を実施するブロックの誤りを検出するためのパリティビットを、当該リード・ソロモン符号による符号化を実施するブロックとは別のブロックに含まれるビットに割り当てる処理を実行することを特徴とする請求項１乃至請求項３のいずれかに記載の通信装置。
【請求項５】
前記送信データを受信するコマンド認識部を備え、
前記コマンド認識部は、前記パリティビットに基づいて誤りを検出し、且つ誤りを検出した前記送信データが画素データである場合に、周辺画素の画素データに基づいて誤りを検出した画素データを補正することを特徴とする請求項４に記載の通信装置。
【請求項６】
前記符号化部は、前記コマンド生成部により分割した８ビットのブロックのうち、少なくとも１つのブロックに対し、ハミング符号による符号化を行い、
前記リード・ソロモン符号により符号化したブロックと、前記ハミング符号により符号化したブロックとを多重化して１つの伝送路で送信する多重化部を備えることを特徴とする請求項１乃至請求項５のいずれかに記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、伝送するデータの変換を行う通信装置に関するものである。
【背景技術】
【０００２】
例えば、通信装置のデータ処理において、ハイレベルとローレベルの２種類の電圧信号を伝送する場合に、一定のクロック周期の間にハイレベルの信号が連続すると、連続した後にローレベルに反転すると信号の反転レベルが所望のレベルまで到達しない場合がある。その結果、信号のレベルが反転のレベルに到達する前に各処理部においてデータの取り込みが行われてしまいビット値を誤って認識してしまうことによって、通信品質が低下する。そのため、従来、送受信される伝送データのＤＣバランスを取り、信号レベルのデューティ比を一定に保持することによって、通信品質を維持する通信システムがある（例えば、特許文献１など）。
【０００３】
特許文献１に開示される通信装置は、伝送データのＤＣバランスを保持するために符号化処理、例えば、８Ｂ／１０Ｂ変換を実行している。また、この通信装置では、伝送データの誤りの検出及び訂正のための誤り訂正符号として、例えば、リード・ソロモン符号を使用している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２５５０５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記した通信装置では、伝送データを８Ｂ／１０Ｂ変換した後に、変換後のデータに対してリード・ソロモン符号による符号化を実行している。このため、符号化後のデータは、ＤＣバランスが保持されていなかったり、受信側においてＣＤＲ（Clock Data Recovery）によるクロックの分離ができなくなるなどの問題がある。結果として、通信品質が低下する虞がある。
【０００６】
本発明は、上記の課題に鑑みてなされたものであり、８Ｂ／１０Ｂ変換とリード・ソロモン符号による符号化との両立が図れる通信装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を鑑みてなされた本願に開示される技術に係る通信装置は、送信データを８ビットごとの複数のブロックに分割するコマンド生成部と、コマンド生成部により分割した複数のブロックのうち、少なくとも２つのブロックの各々のデータに対し、１つのブロックを１シンボルとしたリード・ソロモン符号による符号化を実施する符号化部と、符号化部により符号化したデータに対し８Ｂ／１０Ｂ変換を実施するデータ変換部と、を備え、コマンド生成部は、複数のブロックのうち、少なくとも１つのブロックがＫ符号を示しているか否かを示すフラグを、当該ブロックとは別のブロックに含まれるビットに割り当てる処理を実行し、符号化部は、少なくとも２つのブロックの各々のデータに対し、同一設定のリード・ソロモン符号による符号化処理を実施し同期を取ってデータ変換部に出力することを特徴とする。
【発明の効果】
【０００８】
本発明では、８Ｂ／１０Ｂ変換とリード・ソロモン符号による符号化との両立が図れる通信装置を提供することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係る電子部品実装装置のブロック図である。
【図２】装置本体部及び可動部の通信に係わる部分の構成を示すブロック図である。
【図３】多重通信プロトコル（装置本体部から可動部への送信）を示す図である。
【図４】多重通信プロトコル（装置本体部から可動部への送信）を示す図である。
【図５】多重通信プロトコル（可動部から装置本体部への送信）を示す図である。
【図６】多重通信プロトコル（可動部から装置本体部への送信）を示す図である。
【図７】従来の多重通信プロトコル（装置本体部から可動部への送信）のブロックＢＬＯＣＫＣに係わる部分を示す図である。
【図８】従来の多重通信プロトコル（可動部から装置本体部への送信）のブロックＢＬＯＣＫＣに係わる部分を示す図である。
【図９】Ｋ符号によるコマンド一覧表（本発明及び従来方法の比較）を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面を参照して説明する。初めに、本願の通信装置を適用する装置の一例として電子部品実装装置（以下、「装着装置」と略する場合がある）について説明する。図１は、装着装置１０に適用される多重通信装置の構成を示す模式図である。図１に示すように、装着装置１０は、当該装着装置１０を設置する場所に固定的に設ける装置本体部１０Ａと、装置本体部１０Ａに対して相対的に移動する可動部１０Ｂとを備える。本実施例の装着装置１０は、図１に示す装置制御部２１の制御に基づいて、装着装置１０内に収容される搬送装置（図示略）にて搬送される回路基板に対して、可動部１０Ｂの装着ヘッド（図示略）により電子部品の装着作業を実施する装置である。
【００１１】
装置本体部１０Ａは、上記した装置制御部２１の他に、３つのサーボアンプ２３，２４，２５と、固定部側多重通信部２７とを有する。装置制御部２１は、位置決めコントローラボード３１と、画像入力ボード３３とを有する。位置決めコントローラボード３１は、ＣＰＵ、ＲＡＭ等を備えたコンピュータを主体として構成されている。位置決めコントローラボード３１は、産業用ネットワーク用ケーブル４１（例えば、ＬＡＮケーブル）を介して、サーボアンプ２３，２４，２５の各々と接続されている。なお、ここでいう「産業用ネットワーク」とは、例えば、ＭＥＣＨＡＴＲＯＬＩＮＫ（登録商標）−ＩＩＩ、ＥｔｈｅｒＣＡＴ（登録商標）等である。また、ＬＡＮケーブルの規格としては、例えば、１００ｂａｓｅ−ｔｘを採用できる。位置決めコントローラボード３１は、産業用ネットワーク経由で可動部１０Ｂが有するサーボモータ５５Ａ〜５５Ｃの位置、速度、又はトルクの指令をサーボアンプ２３，２４，２５の各々に行い、可動部１０Ｂの装着ヘッドの位置決め制御を行う。また、画像入力ボード３３は、後述する可動部１０Ｂが備えるカメラ５３のデータ（画像データなど）の送受信を制御するボードである。
【００１２】
サーボアンプ２３〜２５の各々は、可動部１０Ｂに設けられた複数（本実施形態では３個）のサーボモータ５５Ａ〜５５Ｃにより多軸に制御される装着ヘッド（図示略）に対し、各駆動軸に対応したサーボモータ５５Ａ〜５５ＣをＰＩＤ制御（ベクトル制御）するアンプである。サーボアンプ２３，２４，２５は、例えば、パワーＭＯＳＦＥＴ、ＦＰＧＡ（Field Programmable Gate Array）などのプログラム可能なロジックデバイス、ＦＰＧＡに内蔵されるＣＰＵなどで構成され、可動部１０Ｂに設けられサーボモータ５５Ａ〜５５Ｃの各々に対応するエンコーダ５７Ａ〜５７Ｃによる位置入力、電流センサの入力、ＰＷＭ出力等を行う。
【００１３】
サーボアンプ２３〜２５の各々は、エンコーダケーブル４３及びＤＩＯ用ケーブル４５を介して固定部側多重通信部２７と接続されている。固定部側多重通信部２７は、サーボアンプ２３〜２５と、可動部１０Ｂ側のエンコーダ５７Ａ〜５７Ｃとの間で送受信されるエンコーダ信号を多重化して通信を行う。固定部側多重通信部２７は、エンコーダケーブル４３を介してエンコーダ信号をサーボアンプ２３〜２５と送受信する。
【００１４】
可動部１０Ｂは、可動部側多重通信部５１と、カメラ５３と、３つのサーボモータ５５Ａ〜５５Ｃと、エンコーダ５７Ａ〜５７Ｃ、センサ類５９Ａ〜５９Ｃとを備える。可動部側多重通信部５１の光トランシーバ６４は、光ファイバーケーブル６１を介して固定部側多重通信部２７の光トランシーバ６３と接続されている。光トランシーバ６３，６４は、例えば、ＳＦＰ＋規格に準拠した光トランシーバである。また、光ファイバーケーブル６１は、例えば、装着装置１０の動作に対して安定的な通信を確保するために、耐屈曲性を有するケーブルであることが好ましい。
【００１５】
固定部側多重通信部２７は、装置制御部２１やサーボアンプ２３等から入力された各種データを、例えば、入力ポートに対して割り当てた一定時間（タイムスロット）に応じて多重化する。固定部側多重通信部２７により多重化されたデータは、光トランシーバ６３により光信号に変換されて光ファイバーケーブル６１に送出される。可動部１０Ｂ側の光トランシーバ６４は、光ファイバーケーブル６１を通じて受光される光信号を電気信号に変換する。光トランシーバ６４により変換された電気信号は、可動部側多重通信部５１により各データに分離される。同様に、可動部側多重通信部５１は、カメラ５３やエンコーダ５７Ａ等から入力された各種データを多重化して固定部側多重通信部２７へ送信する。
【００１６】
カメラ５３は、例えば、搬送される回路基板上のマークを撮影するマークカメラや装着ヘッドの吸着ノズルが保持する電子部品を撮影するパーツカメラである。カメラ５３は、例えば、装置制御部２１から受信したトリガ信号に応じて撮影を実行する。カメラ５３は、例えば、ＬＶＤＳ（Low Voltage Differential Signaling）技術を用いたCameraLink（登録商標）規格に準拠した画像伝送規格により画像データを、カメラリンクケーブル８１を介して可動部側多重通信部５１に出力する。可動部側多重通信部５１は、入力した画像データを他のデータと多重化し、光ファイバーケーブル６１を介して固定部側多重通信部２７へ向けて送信する。固定部側多重通信部２７は、可動部側多重通信部５１から光ファイバーケーブル６１を介して転送された多重化データからカメラ５３の画像データを分離し、カメラリンクケーブル４７を介して画像入力ボード３３へ出力する。装置制御部２１は、画像入力ボード３３が入力した画像データに基づいて、回路基板上のマークの認識や吸着ノズルに保持された電子部品の位置の誤差等を検出する。
【００１７】
サーボモータ５５Ａ〜５５Ｃは、例えば、可動部１０Ｂが有する装着ヘッドをＸ軸方向及びＹ軸方向に移動させるスライダの駆動源、あるいは装着ヘッドをＺ軸方向に移動させる駆動源として使用されるものである。サーボモータ５５Ａ〜５５Ｃは、例えば、Ｕ相，Ｖ相，Ｗ相の各相のコイルを有する三相交流で駆動するモータである。エンコーダ５７Ａ〜５７Ｃは、３つのサーボモータ５５Ａ〜５５Ｃの各々に対応して設けられ、位置情報等のエンコーダ信号を生成する。エンコーダ５７Ａ〜５７Ｃの各々は、エンコーダケーブル８３を介して可動部側多重通信部５１と接続されている。サーボアンプ２３，２４，２５は、例えば、この順に、サーボモータ５５Ａ〜５５Ｃ及びエンコーダ５７Ａ〜５７Ｃに対応している。例えば、サーボモータ５５Ａは、電源線（図示略）を介して各相のコイルがサーボアンプ２３に接続されている。サーボアンプ２３は、多重通信部２７，５１間の多重通信を介してエンコーダ５７Ａから受信したエンコーダ信号に基づいて、サーボモータ５５Ａに供給する駆動電圧の位相等を変更するＰＩＤ制御を実施する。
【００１８】
センサ類５９Ａ〜５９Ｃは、サーボモータ５５Ａ〜５５Ｃの各々に対応する。センサ類５９Ａ〜５９Ｃは、例えば、サーボモータ５５Ａ〜５５Ｃの各々の回転を停止させ、回転位置を固定してロック状態とするモータブレーキの動作を制御するためのリレーであり、例えば、リミットスイッチである。センサ類５９Ａ〜５９Ｃは、ＤＩＯ用ケーブル８５を介して可動部側多重通信部５１と接続されている。また、サーボアンプ２３〜２５は、センサ類５９Ａ〜５９Ｃの各々に対応し、ＤＩＯ用ケーブル４５を介して固定部側多重通信部２７に接続されている。サーボアンプ２３は、装置制御部２１の制御に基づいて、多重通信を介してセンサ類５９Ａ〜５９ＣにＤＩＯ信号を送信し、センサ類５９Ａ〜５９Ｃを制御してサーボモータ５５Ａ〜５５Ｃのオーバーランを防止する処理等を行う。
【００１９】
次に、固定部側多重通信部２７と可動部側多重通信部５１との間における多重通信について説明する。なお、以下の説明では、固定部側多重通信部２７から可動部側多重通信部５１に向けた多重通信を中心について説明する。可動部側多重通信部５１から固定部側多重通信部２７へ向けた通信は、固定部側多重通信部２７から可動部側多重通信部５１へ向けた通信と同様の処理がなされるため、その説明を適宜省略する。
【００２０】
図２に示すように、固定部側多重通信部２７は、コマンド生成部１０１と、符号化部１０３と、データ変換部１０５とを有している。同様に、可動部側多重通信部５１は、コマンド認識部１５１と、復号化部１５３と、データ変換部１５５とを有する。これらのコマンド生成部１０１、符号化部１０３及びデータ変換部１０５は、例えば、固定部側多重通信部２７が有するＦＰＧＡ（Field Programmable Gate Array）などのプログラム可能なロジックデバイス上で構成される論理回路として構築される。同様に、コマンド認識部１５１等は、可動部側多重通信部５１が有するＦＰＧＡ上の論理回路として構築される。
【００２１】
コマンド生成部１０１は、装置制御部２１やサーボアンプ２３〜２５から入力されるデータを多重化して符号化部１０３へ出力する。コマンド生成部１０１は、各装置から入力されたデータを、対応する８ビットごとのブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＤに割り当てて符号化部１０３へ出力する。図３及び図４は、ブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＤの各々のデータであり、後述するデータ変換部１０５による８Ｂ／１０Ｂ変換前のデータを示している。
【００２２】
図３及び図４は多重化データのビット割り当ての一例であり、固定部側多重通信部２７から可動部側多重通信部５１に送信されるデータの構成を示している。図５及び図６は、可動部側多重通信部５１から固定部側多重通信部２７に送信されるデータであり、１０Ｂ／８Ｂ変換後のデータを示している。例えば、図３のクロックカウンタ０の縦の１列は、多重化されて送信される１フレームのデータの構成を示している。本実施形態では、１フレームのデータは、後述する８Ｂ／１０Ｂ変換前において、各ブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＤを８ビットとする合計３２ビット（４ブロック×８ビット）で構成されている。８Ｂ／１０Ｂ変換後は、各ブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＤは、１０ビットに変換される。このため、光ファイバーケーブル６１で伝送されるデータは、１フレームあたり４０ビットで構成されている。光トランシーバ６３，６４間の通信は、例えば、１フレーム当りの周期が８ｎｓｅｃ（周波数が１２５ＭＨｚ）に設定され、５Ｇｂｐｓ（４０ビット×１２５ＭＨｚ）の通信回線を構築する。
【００２３】
図３及び４は、４０ビットのフレームデータを送信する１クロック（周波数が１２５ＭＨｚ、１クロック当たり８ｎｓｅｃ）ごとの各ビットに設定されるデータ（８Ｂ／１０Ｂ変換前）を示している。フレームデータは、１０クロック（ｃｌｏｃｋカウンタ０〜９）を１サイクル（１周期）として、１クロックごとの各ビット位置にデータが設定される。図３及び図４に示す例では、図４に示す９クロック目のデータ送信が終了すると、図３の０クロック目のデータから再度送信が行われる。
【００２４】
図３及び図４に示すように、４０ビットのフレームデータのうち、先頭ビットから２つのブロックＢＬＯＣＫＡ，ＢＬＯＣＫＤＢには、可動部側多重通信部５１のコマンド認識部１５１などが構築されるＦＰＧＡのバーションをアップするためのアップデータ等が設定される。また、ブロックＢＬＯＣＫＡ，ＢＬＯＣＫＢは、８Ｂ／１０Ｂ変換において使用されるＫ符号に対応する制御コマンドが設定される。コマンド生成部１０１は、通信確立時などＫ符号による制御が必要な場合には、ブロックＢＬＯＣＫＡ，ＢＬＯＣＫＢにＫ符号を設定する。
【００２５】
ブロックＢＬＯＣＫＢの次のブロックＢＬＯＣＫＣには、図３及び図４に示すように、先頭ビットのビットＢＩＴ０からビットＢＩＴ３までの４ビットに、CameraLink（登録商標）規格に準拠した制御信号ＣＣ１〜ＣＣ４が設定される。例えば、装置制御部２１は、制御信号ＣＣ１を使用して、カメラ５３に対し撮像を指示する。また、装置制御部２１は、例えば、複数のカメラ５３を可動部１０Ｂに設けた場合には、制御信号ＣＣ２〜ＣＣ４を使用して画像データを出力するカメラ５３を切り替える制御を実行する。なお、制御信号ＣＣ１〜ＣＣ４は、光ファイバーケーブル６１による多重通信の通信速度に比べて要求される通信速度が低速である。このため、コマンド生成部１０１は、例えば、２回に１回の送信において、制御信号ＣＣ１〜ＣＣ４に係わるデータを削除して（間引きして）他のデータの送信等に利用することで、伝送効率の向上を図ってもよい。
【００２６】
ブロックＢＬＯＣＫＣのビットＢＩＴ４には、後述するブロックＢＬＯＣＫＡに対するリード・ソロモン符号による符号化において、訂正能力を超えるバースト誤り等が発生したか否かを検出するためのパリティビットが設定されている。具体的には、例えば、リード・ソロモン符号による符号化の設定において、連続して２つのブロックＢＬＯＣＫＡの連続誤りを訂正可能な設定とする。この場合に、多重通信で３ブロック以上の連続誤りが発生すると受信側（可動部１０Ｂ）では、データを訂正できない。そこで、ブロックＢＬＯＣＫＣのビットＢＩＴ４には、例えば、ブロックＢＬＯＣＫＡの８ビットに対応する偶数パリティを設定しておき、受信側で３ブロック以上の連続誤りを検出した場合に、異常停止や後述する画素データの補正などを実行する。また、ブロックＢＬＯＣＫＣのビットＢＩＴ５には、ビットＢＩＴ４と同様に、ブロックＢＬＯＣＫＢに対応するパリティビットが設定されている。
【００２７】
ブロックＢＬＯＣＫＣのビットＢＩＴ６には、ビットＢＩＴ０〜ＢＩＴ３の制御信号ＣＣ１〜ＣＣ４のデータが設定されているか否かを示すビット値が設定される。また、ブロックＢＬＯＣＫＣのビットＢＩＴ７には、上記したブロックＢＬＯＣＫＡ，ＢＬＯＣＫＢにＫ符号を設定するか否かを示すビット値（ブロックＫ符号フラグ）が設定される。本実施形態では、Ｋ符号が設定されているか否かを示すビットＢＩＴ７は、ブロックＢＬＯＣＫＡ及びブロックＢＬＯＣＫＢの両方に対応しており、兼用する構成となっている。このため、ビットＢＩＴ７に例えば、１ビットが設定された場合には、ブロックＢＬＯＣＫＡ及びブロックＢＬＯＣＫＢの両方にＫ符号が設定されたことを示している。
【００２８】
次のブロックＢＬＯＣＫＤには、上記したブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＣに設定したデータに比べて低遅延の通信が要求されるデータが設定されている。具体的には、ブロックＢＬＯＣＫＤのビットＢＩＴ０〜ＢＩＴ２には、サーボアンプ２３〜２５からエンコーダ５７Ａ〜５７Ｃに向けたエンコーダ信号が設定されている。ビットＢＩＴ０〜ＢＩＴ２は、１サイクル（１０クロック）のうち、４クロック（図示例ではｃｌｏｃｋカウンタ０〜３）がエンコーダ信号及びエンコーダ信号のデータの有無を示す情報（図中の「Ｅ１有無」等）が設定されている。データの有無を示す情報は、例えば、多重通信の４０ビットのフレームデータのデータ転送レートに対して低速なエンコーダ信号が、ビットＢＩＴ０〜ＢＩＴ２に設定されているか否かを示すための情報である。エンコーダ信号及びデータの有無を示す情報は、各サイクルで交互に設定されている。また、ｃｌｏｃｋカウンタ４のビットＢＩＴ０〜ＢＩＴ２には、エンコーダケーブル４３等の断線を示すビット値が設定されている。ｃｌｏｃｋカウンタ５のビットＢＩＴ０〜ＢＩＴ２には、エンコーダ信号のＣＲＣ異常を示すビット値が設定されている。
【００２９】
また、ブロックＢＬＯＣＫＤのビットＢＩＴ３〜ＢＩＴ５には、センサ類５９Ａ〜５９Ｃを制御するＤＩＯ信号が設定されている。ｃｌｏｃｋカウンタ０〜３のビットＢＩＴ３〜ＢＩＴ５には、ＤＩＯ信号の内容を示すビット値が設定されている。ｃｌｏｃｋカウンタ４のビットＢＩＴ３〜ＢＩＴ５には、ＤＩＯ信号のパリティビットが設定されている。
【００３０】
また、ブロックＢＬＯＣＫＤのビットＢＩＴ６，ＢＩＴ７には、ＵＡＲＴ（Universal Asynchronous Receiver Transmitter）通信による制御信号が設定される。この制御信号は、例えば、装置制御部２１がカメラ５３のゲインを調整するのに使用される。
【００３１】
次に、図５及び図６を参照して、可動部側多重通信部５１から固定部側多重通信部２７へ送信するデータの構成について説明するが、主に上記した図３及び図４と異なる点を説明する。図５及び図６に示すように、可動部側多重通信部５１から固定部側多重通信部２７へ送信するデータでは、ブロックＢＬＯＣＫＡ，ＢＬＯＣＫＢには、カメラ５３で撮像した画素データ（画素１，画素２）が設定されている。
【００３２】
また、ブロックＢＬＯＣＫＣのビットＢＩＴ０〜ＢＩＴ３には、１画素を１０ビットとした場合の画素データが設定される。本実施形態の装置制御部２１は、カメラ５３を制御して画素値を８ビット又は１０ビットに切り替え可能に構成されている。このため、コマンド生成部１０１は、装置制御部２１によって画素値が１０ビットに変更されると、ブロックＢＬＯＣＫＣのビットＢＩＴ０〜ＢＩＴ３を、画素データ（画素１、画素２それぞれの２ビット分）の伝送に使用する。例えば、ブロックＢＬＯＣＫＣのビットＢＩＴ０，ＢＩＴ１は、１画素を１０ビットとした場合、ブロックＢＬＯＣＫＡの８ビットの画素データに対応する残りの２ビット分の画素データが設定される。ブロックＢＬＯＣＫＣのビットＢＩＴ４，ＢＩＴ５には、画素１（ブロックＢＬＯＣＫＡ）及び画素２（ブロックＢＬＯＣＫＢ）の各々に対応するパリティビットが設定されている。ブロックＢＬＯＣＫＣのビットＢＩＴ６には、ブロックＢＬＯＣＫＡ及びブロックＢＬＯＣＫＢに設定されるＫ符号に対応したパリティビットが設定されている。
【００３３】
図２に戻り、コマンド生成部１０１は、図３及び図４に示すデータ形式で各ビットにデータを割り当てた各ブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＤを、符号化部１０３に出力する。符号化部１０３は、ブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＣの各々に対応するＲＳ符号化部１１１〜１１３と、ブロックＢＬＯＣＫＤに対応するハミング符号化部１１４とを有する。また、データ変換部１０５は、ブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＤの各々に対応する８Ｂ１０Ｂ符号化部１２１〜１２４を有する。
【００３４】
ＲＳ符号化部１１１は、コマンド生成部１０１から入力される８ビットのブロックＢＬＯＣＫＡを１シンボルとしてリード・ソロモン符号による符号化を行う。ＲＳ符号化部１１１は、訂正用のシンボルを含めた符号化後のデータを、８ビットずつデータ変換部１０５の８Ｂ１０Ｂ符号化部１２１へ出力する。８Ｂ１０Ｂ符号化部１２１は、ＲＳ符号化部１１１から入力される符号化後の８ビットのデータに対して８Ｂ／１０Ｂ変換を実行する。８Ｂ／１０Ｂ変換によって、ブロックＢＬＯＣＫＡに対応するデータは１０ビットのＤＣバランスの取れたデータに変換される。
【００３５】
同様に、コマンド生成部１０１から出力されたブロックＢＬＯＣＫＢに対応するデータは、符号化部１０３のＲＳ符号化部１１２によってリード・ソロモン符号により符号化され、８Ｂ１０Ｂ符号化部１２２によって８Ｂ／１０Ｂ変換される。
【００３６】
同様に、コマンド生成部１０１から出力されたブロックＢＬＯＣＫＣに対応するデータは、符号化部１０３のＲＳ符号化部１１３によってリード・ソロモン符号により符号化され、８Ｂ１０Ｂ符号化部１２３によって８Ｂ／１０Ｂ変換される。また、コマンド生成部１０１は、ブロックＢＬＯＣＫＡ及びブロックＢＬＯＣＫＢのデータとしてＫ符号を設定する場合には、設定した旨を示すＫ符号フラグＫＡ（ブロックＢＬＯＣＫＢ兼用）を、ブロックＢＬＯＣＫＣのビットＢＩＴ７（図３及び図４参照）に設定する。なお、ＲＳ符号化部１１１〜１１３を、例えば論理検証がなされたＩＰコアにより構成し製造コストの低減を図ってもよい。
【００３７】
ＲＳ符号化部１１１〜１１３は、リード・ソロモン符号による符号化における条件（１シンボルを何ビットにするか、誤り検出可能なビット数はどれだけか、短縮化するシンボル数はどれだけかなど）が同一設定となっている。このため、ＲＳ符号化部１１１〜１１３は、８ビットのブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＣの各々に対して同様の符号化処理を実現でき、互いに同期を取りながらデータ変換部１０５へ出力することが可能となる。コマンド生成部１０１から同期を取って出力されたブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＣのデータは、同一のフレームデータ内に多重化され、可動部側多重通信部５１で受信されることとなる。
【００３８】
ブロックＢＬＯＣＫＤのデータは、上記したように低遅延の通信が要求されるため、符号化及び復号化の処理遅延の少ないハミング符号によって符号化を行う。符号化部１０３のハミング符号化部１１４は、コマンド生成部１０１から入力されるブロックＢＬＯＣＫＤに対応するデータに対し、例えば、ハミング符号の前方誤り訂正符号ＦＥＣ（１５，１１）を付与する。これにより、確実性を確保しつつ、高速な誤りの確認処理を行なうことができる。図４に示すように、本実施形態のブロックＢＬＯＣＫＤには、ｃｌｏｃｋカウンタ６〜９のビットに、短縮化符号の訂正符号ＦＥＣ（１５，１１）が設定されている。
【００３９】
ハミング符号化部１１４は、符号化後のデータを、データ変換部１０５の８Ｂ１０Ｂ符号化部１２４へ出力する。８Ｂ１０Ｂ符号化部１２４は、ハミング符号化部１１４から入力される符号化後の８ビットのデータに対して８Ｂ／１０Ｂ変換を実行する。
【００４０】
データ変換部１０５は、８Ｂ／１０Ｂ変換後のブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＤに対応する４０ビットのデータを、光トランシーバ６３を介して可動部側多重通信部５１へ送信する。
【００４１】
可動部側多重通信部５１のデータ変換部１５５は、ブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＤの各々の順番に対応して８Ｂ／１０Ｂ復号化部１６１，１６２，１６３，１６４を有する。８Ｂ／１０Ｂ復号化部１６１〜１６４の各々は、各ブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＤのデータを８ビットに変換して復号化部１５３へ出力する。
【００４２】
復号化部１５３は、送信側のＲＳ符号化部１１１〜１１３に対応してＲＳ復号化部１７１，１７２，１７３を有する。ＲＳ復号化部１７１〜１７３は、８Ｂ／１０Ｂ復号化部１６１〜１６３によって８ビットに変換されたデータに対し、リード・ソロモン符号による復号化を実行し、必要であれば誤り訂正を実行する。ＲＳ復号化部１７１〜１７３は、復号化後の各ブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＣのデータをコマンド認識部１５１へ出力する。
【００４３】
また、復号化部１５３は、送信側のハミング符号化部１１４に対応してハミング復号化部１７４を有する。ハミング復号化部１７４は、８Ｂ／１０Ｂ復号化部１６４によって８ビットに変換されたデータに対し、ハミング符号による復号化を実行し、必要であれば誤り訂正を実行する。ハミング復号化部１７４は、復号化後の各ブロックＢＬＯＣＫＤのデータをコマンド認識部１５１へ出力する。
【００４４】
コマンド認識部１５１は、復号化部１５３から入力された多重化されたデータを分離し、対応する各装置（カメラ５３など）に出力する。また、コマンド認識部１５１は、復号化部１５３から入力されるデータに基づいて、ブロックＢＬＯＣＫＡにＫ符号が設定されているか否か、受信したデータに誤りがあったか否か等を判定することが可能となる。また、コマンド認識部１５１は、例えば、後述するＫ符号の番号に対応する制御コマンドを実行する。
【００４５】
以上、詳細に説明した実施形態によれば以下の効果を奏する。
＜効果１＞コマンド生成部１０１は、サーボアンプ２３等から入力された各種データを多重化し、８ビットごとの４つのブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＤに分割して符号化部１０３に出力する。符号化部１０３は、分割された４つのブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＤのうち、３つのブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＣに対して、８ビットを１シンボルとしたリード・ソロモン符号による符号化を実行する。データ変換部１０５は、符号化されたブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＣのデータに対して、８Ｂ／１０Ｂ変換を実行する。また、コマンド生成部１０１は、ブロックＢＬＯＣＫＡ及びブロックＢＬＯＣＫＢにＫ符号を設定したか否かを示す「ブロックＫ符号フラグ」を、当該ブロックＢＬＯＣＫＡ，ＢＬＯＣＫＢとは別のブロックＢＬＯＣＫＣにビット割り当てする（図３参照）。そして、符号化部１０３が有するＲＳ符号化部１１１〜１１３は、３つのブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＣに対して、同一設定のリード・ソロモン符号による符号化処理を実行し、同期を取って符号化後のデータをデータ変換部１０５に出力する。
【００４６】
このような構成では、リード・ソロモン符号による符号化の後に８Ｂ／１０Ｂ変換を実行するため、多重通信におけるＤＣバランスの確保及びＣＤＲによるクロックの分離が可能となる。また、リード・ソロモン符号による誤り訂正や８Ｂ／１０Ｂ変換による高速シリアル通信が可能となるため、例えば、CameraLink（登録商標）規格のような再送制御を実行しないリアルタイム性の高い通信規格を、画像データを伝送する通信規格として採用することも可能となる。
【００４７】
ここで、従来方法による多重通信プロトコルについて説明する。図７及び図８は、従来方法による多重通信プロトコルを示している。なお、以下の説明では、上記実施形態と同様の構成については同一符号を付し、その説明を適宜省略する。また、図８に示す可動部１０Ｂから装置本体部１０Ａへの多重通信プロトコルは、図７に示す装置本体部１０Ａから可動部１０Ｂへの多重通信プロトコルと同様の構成となっているため、その説明を適宜省略する。
【００４８】
図７及び図８に示す従来方法では、上記実施形態の図３〜図６と比較してブロックＢＬＯＣＫＣのデータ形式のみが異なるため、ブロックＢＬＯＣＫＣのみを示している。従来方法では、例えば、図７に示す装置本体部１０Ａから可動部１０Ｂへの通信では、ブロックＢＬＯＣＫＡ，ＢＬＯＣＫＢにＫ符号を設定して使用せず、ブロックＢＬＯＣＫＣの８ビットのうち、ビットＢＩＴ０〜ＢＩＴ４の５ビットを制御コマンドの送信に使用している。
【００４９】
図７に示す従来方法のブロックＢＬＯＣＫＣのうち、ビットＢＩＴ０〜ＢＩＴ３には、制御コマンドの番号が設定されている。また、ビットＢＩＴ４には、その制御コマンドが異常を示すコマンドであるか否かを示すビット値（異常発生フラグ）が設定されている。この場合、例えば、制御コマンドの番号を示す４ビット（１６種類）と、異常を示す１ビットを組み合わせて、最大で３２種類（＝１６×２）の制御コマンドを設定することが可能となる。同様に、図８に示す従来方法の多重通信プロトコルでは、ブロックＢＬＯＣＫＣのうち、ビットＢＩＴ０〜ＢＩＴ３には、制御コマンドの番号が設定されている。
【００５０】
これに対し、図３〜図６に示す本実施形態の多重通信プロトコルでは、ブロックＢＬＯＣＫＣにＫ符号か否かの１ビット（ブロックＫ符号フラグ）を設定することで、ブロックＢＬＯＣＫＡのＫ符号（１２種類）と、ブロックＢＬＯＣＫＢのＫ符号（１２種類）とを組み合わせて、最大で１４４種類（＝１２×１２）の制御コマンドを設定することが可能となる。
【００５１】
また、制御コマンドのためだけに使用するビット数を比較すると、従来方法では、ブロックＢＬＯＣＫＣ内の５ビットが必要である。一方、図３〜図６に示す本実施形態の多重通信プロトコルでは、ブロックＢＬＯＣＫＡ，ＢＬＯＣＫＢは、他のデータ通信（画素データ等）と兼用して使用するため、実質的にはブロックＢＬＯＣＫＣの１ビット（ブロックＫ符号フラグ）のみが必要となる。このため、単純に比較すると、差分の４ビットを他の通信に使用することが可能となる。つまり、本願の多重通信プロトコルでは、伝送効率の向上を図ることが可能となる。
【００５２】
例えば、本実施形態では、従来方法で制御コマンドの番号として使用していたブロックＢＬＯＣＫＣの４ビット（ビットＢＩＴ０〜ＢＩＴ３）に、１画素の画素値を１０ビットとした場合の画素データが設定されている（図５参照）。このため、本実施形態の多重通信では、伝送効率を向上させて、１画素が１０ビットの画素データを伝送することが可能となる。従来方法では１６ビット（ブロックＢＬＯＣＫＡ，ＢＬＯＣＫＢ）のみで画素データを伝送していた。これに対し、本実施形態では、従来と同じ１クロック（８ｎｓｅｃ）の多重化データの伝送において、ブロックＢＬＯＣＫＡ，ＢＬＯＣＫＢの１６ビットにブロックＢＬＯＣＫＣの４ビットを追加した２０ビットの画素データの伝送が可能となる。このため、１．２５倍（２０÷１６）の伝送効率の改善を図ることが可能となっている。
【００５３】
図９は、Ｋ符号を用いて設定した制御コマンドの一覧（本発明及び従来方法の比較）を示している。例えば、従来方法では、図９の最も左側の２列で示すコマンド番号１〜９（異常番号が「０」）と、異常番号０〜１５を表現することが可能となる。図９の最も左側の２列で示すコマンド番号１〜９（異常番号が「０」）の制御コマンドは、図７に示すブロックＢＬＯＣＫＣのビットＢＩＴ４に設定される異常発生フラグを「０」とし、ビットＢＩＴ０〜ＢＩＴ３の各ビット値でコマンド番号を表した場合に対応している。また、図９に示す異常番号０〜１５は、図７に示すビットＢＩＴ４の異常発生フラグを「１」とし、ビットＢＩＴ０〜ビットＢＩＴ３の各ビット値でコマンド番号（異常番号）を表した場合に対応している。なお、図９の最も左側のコマンド番号が「０」の制御コマンドは、通信確立時に必要なコマンドであり、従来の方法では使用していなかったコマンドである。
【００５４】
一方、本願の多重通信プロトコルでは、図９の右から２列目の「Ｋ符号番号」で示すように、ブロックＢＬＯＣＫＡ及びブロックＢＬＯＣＫＢの各々に設定したＫ符号の番号を組み合わせることによって、従来方法で設定した制御コマンドの全てをサポートするだけでなく、それ以上の数の制御コマンドを設定することが可能となっている。
【００５５】
＜効果２＞さらに、本実施形態の多重通信では、多重通信の確立前と確立後において、Ｋ符号の番号を、異なる内容の制御コマンドに設定することが可能となる。例えば、コマンド生成部１０１は、Ｋ符号を用いて可動部１０Ｂ側のコマンド認識部１５１と多重通信の通信確立を実施する。そして、コマンド生成部１０１は、例えば、通信確立を検出した場合、通信確立時に使用していたＫ符号の番号を、通信確立後に送信する画像データ等の通信を制御する制御コマンドの番号として使用する。図９の左から５列目の「動作モード」の列には、通信確立前に使用するものか、確立後（図中では「運転モード」）に使用するものかが示されている。
【００５６】
光トランシーバ６３，６４は、例えば、１フレームが４０ビットの高速通信を実施するが、通信を確立する際には４０ビットの先頭ビットを検出する必要がある。このため、多重通信部２７，５１は、Ｋ符号を通信確立時のビットアライメントとして使用する。図９の左から３列目の本発明のＮＯ０〜８は、通信確立等に使用する制御コマンドに対応している。右から２列目のＫ符号番号に示すように、これらの通信確立等に使用する制御コマンドは、ブロックＢＬＯＣＫＡ，ＢＬＯＣＫＢの各々に設定したＫ符号の番号の組み合わせによって設定されている。
【００５７】
一方、図９の左から３列目の本発明のＮＯ９〜３３は、通信確率後に使用する各種の制御コマンドに対応している。例えば、ＮＯ１２は、１画素の画素値を８ビットに切り替える制御コマンドである。また、例えば、ＮＯ３の通信確立（確立ＯＫ）は、通信確立の確認や応答に使用する制御コマンドであり、一度、通信確立を検出すると、使用する必要がなくなる制御コマンドである。このため、このような通信確立時にのみ必要な制御コマンドに設定していたＫ符号の番号（例えば、「５」と「０」の組み合わせ）を、通信確立後に必要となる制御コマンド（例えば、画素値を８ＢＩＴモードへ切り替えの制御コマンド）に割り当てて使用することも可能である。これにより、通信の確立の前後において、より多くの制御コマンドを使用することが可能となる。
【００５８】
＜効果３＞上記したように本実施形態のコマンド生成部１０１は、ブロックＢＬＯＣＫＡ，ＢＬＯＣＫＢの各々に割り当てたＫ符号の番号を組み合わせることで、従来方法に比べて極めて多くの制御コマンドを使用することが可能となっている（図９の右から２列目の「Ｋ符号番号」参照）。
【００５９】
＜効果４＞コマンド生成部１０１は、ブロックＢＬＯＣＫＡ，ＢＬＯＣＫＢに対するリード・ソロモン符号による符号化において、訂正能力を超えるバースト誤りが発生したか否かを検出するためのパリティビットを、別のブロックＢＬＯＣＫＣのビットＢＩＴ４，ＢＩＴ５に設定している（図３参照）。これにより、受信側のコマンド認識部１５１は、例えば、設計段階において予め設定したリード・ソロモン符号による訂正能力を超えて連続した誤りを検出した場合に、異常停止等を実施することが可能となる。
【００６０】
＜効果５＞また、上記実施形態のコマンド認識部１５１は、ブロックＢＬＯＣＫＣのビットＢＩＴ４，ＢＩＴ５のパリティビットに基づいて誤りを検出した場合に、画素データの補正処理を実行することが可能となる。例えば、コマンド認識部１５１は、パリティビットに基づいて複数の画素データの誤りを検出した場合に、画像データの水平ラインにおいて、誤りを検出した画素に対して左右方向で隣り合う２つの画素の画素値の平均値を、誤りを検出した画素の画素値として補正する。これにより、受信側で適宜補正を実行することで、CameraLink（登録商標）規格のような再送制御をしないリアルタイム性の高い通信規格を、画像データを伝送する通信規格として採用することも可能となる。
【００６１】
＜効果６＞本実施形態の符号化部１０３は、３つのブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＣに対してはリード・ソロモン符号による符号化を実行し、残りのブロックＢＬＯＣＫＤに対しはハミング符号による符号化を実行している。本実施形態の電子部品実装装置１０のように産業用に使用される装置では、固定部と可動部との間で伝送するデータの中に、例えば、画素データのように伝送の遅延がある程度許容されるものと、エンコーダ信号のように低遅延が要求されるものとが混在する。これに対し、本実施形態の装着装置１０では、許容される遅延に応じて使用する誤り訂正符号を使い分けている。例えば、リード・ソロモン符号を画素データに使用し、復号化等における処理遅延の少ないハミング符号をエンコーダ信号に使用することで、データの種類に応じて適切な多重通信を実施することが可能となっている。
【００６２】
尚、本発明は上記実施形態に限定されるものでなく、その趣旨を逸脱しない範囲で様々な変更が可能である。
例えば、上記実施形態では、本願における通信装置として多重通信の通信装置を採用したが、本願は多重通信の通信装置に限らない。例えば、本願における通信装置として、上記したブロックＢＬＯＣＫＡ〜ＢＬＯＣＫＤの各データを、それぞれの通信ケーブルで伝送する通信装置を採用してもよい。
また、ＧｂＥＬＡＮケーブル１０Ｃは、例えば、光ファイバーケーブルやＵＳＢ（Universal Serial Bus）３．０の通信規格に準拠したＵＳＢケーブルでもよい。また、多重通信部２７と、可動部側多重通信部５１とは、有線に限らず、無線通信を行ってもよい。
【００６３】
また、上記実施形態では本願における通信装置を備える装置として装着装置１０を例について説明したが、本願はこれに限定されるものではなく、例えば、作業用ロボットや回路基板に半田を印刷するスクリーン印刷装置などの他の装置に適用することができる。
【符号の説明】
【００６４】
１０  電子部品実装装置、１０１  コマンド生成部、１０３  符号化部、１０５  データ変換部、１５１  コマンド認識部、ＢＬＯＣＫＡ〜ＢＬＯＣＫＤ  ブロック。
【図１】
0006596240.tif 000002
【図２】
0006596240.tif 000003
【図３】
0006596240.tif 000004
【図４】
0006596240.tif 000005
【図５】
0006596240.tif 000006
【図６】
0006596240.tif 000007
【図７】
0006596240.tif 000008
【図８】
0006596240.tif 000009
【図９】
0006596240.tif 000010