(57)【要約】  本発明は、データサイズを変えることなくＣＲＣ方式による誤り検出が可能な通信装置、および通信装置を備える電子部品実装機を提供することを目的とする。  通信装置は、画像データのうち連続する複数の画素を単位データとし、前記単位データにおける各上位ビットにより構成される上位ビット群のＣＲＣ値を、予め設定されているＣＲＣ多項式を用いて算出するＣＲＣ値算出部と、複数の画素における各下位ビットにより構成される下位ビット群の総和とＣＲＣ値との差分を算出する差分算出部と、下位ビット群から差分だけ選出した１または複数の下位ビットを反転させて、反転後における下位ビットの総和をＣＲＣ値と等しくする下位ビット反転部とを備える。
2014049796.tif 000002
【特許請求の範囲】
【請求項１】
画像データを対象とした通信を行う通信装置であって、
前記画像データのうち連続する複数の画素を単位データとし、前記単位データにおける各上位ビットにより構成される上位ビット群のＣＲＣ値を、予め設定されているＣＲＣ多項式を用いて算出するＣＲＣ値算出部と、
前記単位データにおける各下位ビットにより構成される下位ビット群の総和と前記ＣＲＣ値との差分を算出する差分算出部と、
前記下位ビット群から前記差分だけ選出した１または複数の前記下位ビットを反転させて、反転後における前記下位ビットの総和を前記ＣＲＣ値と等しくする下位ビット反転部と、
を備える通信装置。
【請求項２】
請求項１において、
前記下位ビットは、前記画素における最下位ビットである通信装置。
【請求項３】
請求項１または２において、
前記単位データは、前記画像データにおける１ラインを構成する通信装置。
【請求項４】
請求項３において、
前記下位ビット反転部は、１ラインの両端側に位置する前記下位ビットを優先して選出して反転させる通信装置。
【請求項５】
請求項１〜３において、
前記下位ビット反転部は、複数の前記下位ビットから等間隔となるように複数の前記下位ビットを選出して反転する通信装置。
【請求項６】
請求項１〜５の何れか一項において、
前記差分算出部は、
二進法で示される前記ＣＲＣ値を複数のビット列に分割するとともに、前記下位ビット群を各前記ビット列に対応させて複数のブロックに分割する分割部と、
前記ブロックに含まれる各前記下位ビットの小計と、前記ビット列により示されるサブＣＲＣ値との差分を、対応する前記ビット列と前記ブロックのセットごとに算出するセット差分算出部と、を有し、
前記下位ビット反転部は、前記セットの前記ブロックから当該セットに対して算出された前記差分だけ選出した１または複数の前記下位ビットを反転させて、反転後における前記下位ビットの前記小計を前記サブＣＲＣ値と等しくすることにより、前記下位ビット群の総和を前記ＣＲＣ値と等しくし、
前記分割部により分割される前記ＣＲＣ値および前記下位ビット群の分割数は、前記ブロックに含まれる前記下位ビットの数量が前記ビット列の桁数だけ２を累乗した値以上となるように設定されている通信装置。
【請求項７】
請求項１〜６の何れか一項において、
カメラリンク規格に準拠した通信を行う通信部をさらに備える通信装置。
【請求項８】
請求項１〜７の何れか一項の通信装置を有し、被写体を撮像して画像データを記録する撮像装置と、
前記撮像装置の前記通信装置と通信可能に接続され、前記通信装置から送出された前記画像データを取得し、当該画像データと予め記憶している制御プログラムに基づいて電子部品の実装を制御する制御装置と、
を備える電子部品実装機において、
前記制御装置は、
取得した前記画像データのうち前記単位データにおける前記上位ビット群のＣＲＣ値を、前記ＣＲＣ多項式を用いて算出する制御側ＣＲＣ値算出部と、
前記単位データにおける前記下位ビット群の総和と前記ＣＲＣ値との差分を算出する制御側差分算出部と、
算出された前記差分に基づいて通信エラーを検出する通信エラー検出部と、
を有する電子部品実装機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを対象とした通信を行う通信装置、および通信装置を備える電子部品実装機に関するものである。
【背景技術】
【０００２】
通信装置は、通信可能に接続された装置間における情報伝達に用いられている。例えば、特許文献１には、基板に電子部品を実装する電子部品実装機において、撮像装置と制御装置との間で画像データを通信する構成が開示されている。この電子部品実装機は、撮像装置の撮像による画像データに基づいて基板認識を行い、部品を吸着したヘッドの位置決め精度の向上を図っている。【０００３】
ところで、このような通信装置においては、ノイズなどにより通信エラー（通信路における誤り）が発生することがある。伝送された画像データに誤りがあると、この画像データに基づく処理が適正に行われずに、上記の電子部品実装機では基板認識の精度が低下するおそれがある。そこで、通信エラーを検出するために、パリティチェック方式やＣＲＣ（Cyclic Redundancy Check）方式などの誤り検出方法が知られている。例えば、特許文献２には、パリティ方式とＣＲＣ方式を組み合わせて通信エラーを検出する方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−８９５５２号公報
【特許文献２】特開２０１２−３９５５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、ＣＲＣ方式は、予め定められたＣＲＣ多項式を用いてＣＲＣ値（チェックコード）を算出する方式である。そのため、ＣＲＣ方式は、パリティ方式と比較すると、パケット通信の誤りやバースト誤り、ランダム誤りの検出に有効である。しかし、ＣＲＣ方式ではＣＲＣ値を冗長ビットとしてデータに付加するため、データサイズが大きくなり通信に要する時間が長くなる。【０００６】
また、パケット通信ではない通信方式の場合には、伝送されるデータが可変長となる。そのため、受信側が付加されたＣＲＣ値の場所を特定できるように、例えば所定のコマンドをさらに付加したり、固定長の１フレームごとにＣＲＣ値を付加したりする必要がある。ただし、このような対策を施しても、上記のコマンドや１フレームが正しく伝送されたことが前提となる。よって、ＣＲＣ方式は、パケット通信ではない通信方式においては誤り検出方法としては不向きとされることがある。【０００７】
本発明は、このような事情を鑑みてなされたものであり、データサイズを変えることなくＣＲＣ方式による誤り検出が可能な通信装置、および通信装置を備える電子部品実装機を提供することを目的とする。
【課題を解決するための手段】
【０００８】
請求項１に係る通信装置は、画像データを対象とした通信を行う通信装置であって、前記画像データのうち連続する複数の画素を単位データとし、前記単位データにおける各上位ビットにより構成される上位ビット群のＣＲＣ値を、予め設定されているＣＲＣ多項式を用いて算出するＣＲＣ値算出部と、前記単位データにおける各下位ビットにより構成される下位ビット群の総和と前記ＣＲＣ値との差分を算出する差分算出部と、前記下位ビット群から前記差分だけ選出した１または複数の前記下位ビットを反転させて、反転後における前記下位ビット群の総和を前記ＣＲＣ値と等しくする下位ビット反転部と、を備える。【０００９】
このような構成によると、通信装置は、画像データの下位ビット群にＣＲＣ値が含まれるように画像データの変更処理（画像処理）を実行する。つまり、通信装置は、画像データにＣＲＣ値を冗長ビットとして付加しないため、データサイズを変えることなく画像データを伝送することができる。また、画像データの受信側では、下位ビット群の総和からＣＲＣ値を取得できるので、通常のＣＲＣ方式と同様の手順により、上位ビット群のＣＲＣ値と比較して誤り検出を行うことが可能である。このように、パリティ方式と比較してバースト誤りを検出可能な点で有利なＣＲＣ方式を、通信に要する時間を長くすることなく画像データの通信に適用することができる。【００１０】
また、本発明の通信装置による画像データの伝送では、下位ビット群の総和とＣＲＣ値との差分だけ下位ビットが反転されるので、画像データにおける一部の情報が変更されることになる。ここで、画像データは、例えば各画素のビットデータにより輝度または色合いを示される。そして、このビットデータの下位ビットが反転されたとしても、当該画素の輝度または色合いが数段階だけ変化するのみであり、画像データ全体に対する影響は小さい。つまり、通信装置は、ＣＲＣ値を下位ビット群に埋め込むように画像処理することで、受信側での画像データを使用した処理への影響を抑制している。【００１１】
請求項２に係る通信装置において、前記下位ビットは、前記画素における最下位ビットである。
このような構成によると、下位ビット反転部により下位ビットを反転された画素の変化を小さくすることができる。つまり、各画素のビットデータの最下位ビットが反転されたとしても、当該画素の輝度または色合いが１段階だけ変化するのみで、画像データ全体に対する影響を最小にできる。よって、通信装置は、受信側での画像データを使用した処理への影響を最小限に抑えることができる。【００１２】
請求項３に係る通信装置において、前記単位データは、前記画像データにおける１ラインを構成する。
このような構成によると、通信装置は、１ラインを構成する単位データに対してＣＲＣ値を算出して、このＣＲＣ値を下位ビット群に埋め込むように画像処理する。そのため、受信側は、伝送された画像データにおける１ライン分のデータ数に基づいて、ＣＲＣ方式の誤り検出を行うことができる。このように、通信装置は、画像データに区切り記号などを付加することなく誤り検出の処理が可能となるため、画像処理を効率的に行うことができる。【００１３】
請求項４に係る通信装置において、前記下位ビット反転部は、１ラインの両端側に位置する前記下位ビットを優先して選出して反転させる。
このような構成によると、下位ビット反転部により反転する下位ビットは、１ラインの両端側に偏ることになる。通信装置は、下位ビット群にＣＲＣ値を埋め込むように画像処理するため、ＣＲＣ値と下位ビット群の総和の差分が０でない限り、画像データにおける一部の情報は少なからず変更される。しかしながら、受信側においては、被写体が画像データの中央にあるなど、画像データで必要される領域が中央部のみで足りることもある。このような場合には、下位ビット反転部により反転される下位ビットを１ラインの両端側に偏らせることにより、受信側での画像データを使用した処理への影響をさらに抑制することができる。【００１４】
請求項５に係る通信装置において、前記下位ビット反転部は、複数の前記下位ビットから等間隔となるように複数の前記下位ビットを選出して反転する。
このような構成によると、下位ビット反転部により反転される下位ビットは、下位ビット群において分散することになる。よって、連続する下位ビットが共に反転されることを抑制できるので、反転による画像データへの影響を抑制することができる。【００１５】
請求項６に係る通信装置において、前記差分算出部は、二進法で示される前記ＣＲＣ値を複数のビット列に分割するとともに、前記下位ビット群を各前記ビット列に対応させて複数のブロックに分割する分割部と、前記ブロックに含まれる各前記下位ビットの小計と、前記ビット列により示されるサブＣＲＣ値との差分を、対応する前記ビット列と前記ブロックのセットごとに算出するセット差分算出部と、を有し、前記下位ビット反転部は、前記セットの前記ブロックから当該セットに対して算出された前記差分だけ選出した１または複数の前記下位ビットを反転させて、反転後における前記下位ビットの前記小計を前記サブＣＲＣ値と等しくすることにより、前記下位ビット群の総和を前記ＣＲＣ値と等しくし、前記分割部により分割される前記ＣＲＣ値および前記下位ビット群の分割数は、前記ブロックに含まれる前記下位ビットの数量が前記ビット列の桁数だけ２を累乗した値以上となるように設定されている。【００１６】
このような構成によると、通信装置は、ＣＲＣ多項式の次数を増加させた場合においても、当該ＣＲＣ多項式を用いて算出されたＣＲＣ値を下位ビット群に埋め込むように画像処理することができる。ここで、ＣＲＣ方式においては、ＣＲＣ多項式の次数を増加させることにより、誤り検出の精度を向上させることが可能である。このような場合に、ＣＲＣ多項式の次数の増加に伴って、二進法で示されるＣＲＣ値の桁数も増加することになる。ここで、本発明の通信装置では、ＣＲＣ値を下位ビット群に埋め込むため、ＣＲＣ値が下位ビット群に含まれる下位ビットの数量を超えると、その下位ビット群ではＣＲＣ値を表現できないことになる。そこで、上記のような構成とすることで、各ブロックが分割されたＣＲＣ値の各ビット列をそれぞれ表現することが可能となる。よって、通信装置は、下位ビット群にＣＲＣ値を埋め込むように画像処理できるので、ＣＲＣ多項式の次数を増加させてＣＲＣ方式による誤り検出の精度を向上できる。【００１７】
請求項７に係る通信装置は、カメラリンク規格に準拠した通信を行う通信部をさらに備える。
このような構成によると、カメラリンク規格においても、画像データを対象とした通信に対してＣＲＣ方式の誤り検出を行うことができる。カメラリンク規格は、パケット通信ではない通信方式であり、伝送されるデータが可変長となるため、ＣＲＣ方式による誤り検出の適用は不向きとされていた。これに対して、本発明の通信装置では、ＣＲＣ値が下位ビット群に埋め込まれることから、画像データにおけるＣＲＣ値の場所を特定する所定のコマンドの付加などが不要であり、ＣＲＣ値を利用した誤り検出をカメラリンク規格に準拠した通信に適用できるので、特に有用である。【００１８】
請求項８に係る電子部品実装機は、請求項１〜７の何れか一項の通信装置を有し、被写体を撮像して画像データを記録する撮像装置と、前記撮像装置の前記通信装置と通信可能に接続され、前記通信装置から送出された前記画像データを取得し、当該画像データと予め記憶している制御プログラムに基づいて電子部品の実装を制御する制御装置と、を備える電子部品実装機において、前記制御装置は、取得した前記画像データのうち前記単位データにおける前記上位ビット群のＣＲＣ値を、前記ＣＲＣ多項式を用いて算出する制御側ＣＲＣ値算出部と、前記単位データにおける前記下位ビット群の総和と前記ＣＲＣ値との差分を算出する制御側差分算出部と、算出された前記差分に基づいて通信エラーを検出する通信エラー検出部と、を有する。【００１９】
このような構成によると、電子部品実装機は、通信エラー検出部により通信エラーを検出できるので、伝送された画像データにおける誤りの有無を検証することができる。よって、電子部品実装機は、誤りのある画像データに基づいて電子部品の実装が制御されることを防止できる。これにより、制御装置が撮像装置に対して撮像の実行および画像データの伝送を再度要求することで、誤りのない画像データを用いた制御が可能となり、電子部品実装機の実装の精度を向上させることができる。
【図面の簡単な説明】
【００２０】
【図１】第一実施形態における通信装置および電子部品実装機の構成を示すブロック図である。
【図２】通信装置による画像データの転送処理を示すフロー図である。
【図３】画像データの各画素のビットデータを示す図である。
【図４】画像データにＣＲＣ値を埋め込む処理を示す図である。
【図５】通信装置による画像データの誤り検出処理を示すフロー図である。
【図６】第二実施形態における通信装置および電子部品実装機の構成を示すブロック図である。
【図７】画像データの各画素のビットデータを示す図である。
【図８】画像データにＣＲＣ値を埋め込む処理を示す図である。
【発明を実施するための形態】
【００２１】
以下、本発明の通信装置および電子部品実装機を具体化した実施形態について図面を参照して説明する。実施形態では、電子部品実装機において通信可能に接続された制御装置と撮像装置との間における情報伝達に通信装置が用いられた構成を例示している。
【００２２】
＜第一実施形態＞
（電子部品実装機１の全体構成）
電子部品実装機１は、例えば、集積回路の製造工程において、プリント基板に複数の電子部品を実装する装置である。プリント基板は、クリームハンダ印刷機により電子部品の装着位置にハンダを塗布され、複数の実装機を順に搬送されて電子部品を装着される。その後に、電子部品を装着されたプリント基板は、リフロー炉に搬送されてハンダ付けされることにより集積回路を構成する。また、カメラ３は、この電子部品実装機１に組み込まれているＦＡ用の撮像装置としている。
【００２３】
電子部品実装機１は、図１に示すように、実装機制御装置２と、カメラ３とを備えて構成されている。これらの実装機制御装置２とカメラ３は、通信ケーブル４により通信可能に接続され、各種信号の送受信が可能となっている。また、本実施形態において、通信装置は、実装機制御装置２のＣＰＵ１０と、カメラ３のＣＰＵ４０と、通信ケーブル４とを備えて構成される。この通信装置は、カメラ３から実装機制御装置２に伝送された画像データの誤りを検出するために、ＣＲＣ値（チェックコード）を利用してノイズなどによる通信エラーを検出するようにしている。通信エラーの検出の詳細については後述する。
【００２４】
また、通信装置は、画像データを対象としてカメラリンク規格に準拠した通信を行う。ここで、カメラリンク規格とは、ＬＶＤＳ（Low Voltage Differential Signaling:小振幅の差動伝送方式）によって画像データを送信するシリアル通信である。また、カメラリンク規格は、データを一定長のパケットに区切って伝送するパケット通信とは異なり、伝送されるデータが可変長となる。
【００２５】
実装機制御装置２は、種々の制御処理を実行する装置である。この実装機制御装置２は、通信装置の一部を構成するＣＰＵ１０と、記憶装置２０とを備えて構成される。記憶装置２０は、ハードディスク装置などの光学ドライブ装置、またはフラッシュメモリなどにより構成される。この記憶装置２０には、電子部品実装機１を動作させるための制御プログラム、通信ケーブル４を介してカメラ３からＣＰＵ１０に転送された画像データ、画像処理部１５による処理の一時データ、通信エラーの検出に使用されるＣＲＣ多項式などが記憶される。
【００２６】
実装機制御装置２のＣＰＵ１０は、通信部１１と、ＣＲＣ値算出部１２と、差分算出部１３と、通信エラー検出部１４と、画像処理部１５とを有する。このＣＰＵ１０は、電子部品実装機１に複数設けられた各種センサから出力される情報やカメラ３から転送される画像データなどを入力する。そして、ＣＰＵ１０は、記憶装置２０に記憶されている制御プログラム、各種センサによる情報、画像処理部１５による処理結果などに基づいて、プリント基板に電子部品が適切に装着されるように電子部品実装機１の各軸モータや各装置などを制御する。
【００２７】
実装機側の通信部１１は、実装機制御装置２に設定された所定の通信形態により、種々の通信プロトコルや通信規格での通信を制御する。この通信部１１は、本実施形態において、通信ケーブル４などにより形成された有線式の通信路の通信形態において、カメラリンク規格に準拠した通信をカメラ３との間で行う。また、電子部品実装機１の通信装置を構成するＣＰＵ１０は、上述したように、ＣＲＣ値を利用した誤り検出を行う。
【００２８】
実装機側のＣＲＣ値算出部１２は、取得した画像データにおける複数の画素を単位データとし、この単位データの一部のＣＲＣ値を、記憶装置２０に記憶されているＣＲＣ多項式を用いて算出する。差分算出部１３は、単位データのうちＣＲＣ値を算出された部位を除いた部位の総和とＣＲＣ値との差分を算出する。通信エラー検出部１４は、算出された差分に基づいて通信エラーを検出する。なお、上記の「単位データ」、制御側のＣＲＣ値算出部１２、差分算出部１３、および通信エラー検出部１４の詳細については後述する。
【００２９】
画像処理部１５は、カメラ３の撮像による画像データを取得して、用途に応じた画像処理を実行する。この画像処理は、例えば、画像データの二値化、フィルタリング、色相抽出などの加工処理と、加工処理された画像データから特定の形状やマークに基づいて被写体の有無や位置情報などを認識する認識処理が含まれる。また、画像処理部１５の負荷を軽減するために、例えば、画像処理のうち上記の画像データの加工処理についてはカメラ３側で行うようにして、上記の認識処理のみを実装機制御装置２の画像処理部１５で行うようにしてもよい。
【００３０】
カメラ３は、図１に示すように、光学ユニット３０と、ＣＰＵ４０と、記憶装置５０とを備えて構成される。光学ユニット３０は、レンズやレンズ保持部材などにより構成されるレンズ部３１により、被写体光を撮像素子３２に結像する構成となっている。撮像素子３２は、回路基板上にレンズ部３１の光軸に対して直角となるように実装されている。この撮像素子３２は、ＣＣＤ（Charge Coupled Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）などのイメージセンサである。
【００３１】
カメラ３のＣＰＵ４０は、実装機制御装置２から入力される制御信号に基づいて光学ユニット３０を動作させて撮像を行うとともに、当該撮像により取得した画像データを実装機制御装置２に転送する通信装置の一部を構成する制御装置である。より詳細には、ＣＰＵ４０は、外部入力される信号もしくは実装機制御装置２から入力される制御コマンドに基づいて光学ユニット３０を制御して、レンズ部３１により撮像素子３２の撮像面に結像された光の強弱に応じて発生される信号電荷をデジタル信号に変換して被写体を撮像する。そして、ＣＰＵ４０は、上記のデジタル信号に基づいて画像データに変換している。
【００３２】
このＣＰＵ４０は、通信部４１と、ＣＲＣ値算出部４２と、差分算出部４３と、下位ビット反転部４４とを有する。通信部４１は、カメラ３に設定された所定の通信形態により、種々の通信プロトコルや通信規格での通信を制御する。この通信部４１は、本実施形態において、通信ケーブル４を介してカメラリンク規格に準拠した通信を実装機制御装置２との間で行う。また、上述したように、電子部品実装機１ではＣＲＣ値を利用して通信における誤り検出を行うため、通信部４１による画像データの伝送の前に、当該画像データにＣＲＣ値を埋め込むような画像処理を行っている。
【００３３】
カメラ側のＣＲＣ値算出部４２は、画像データのうち連続する複数の画素を単位データとし、この単位データにおける各上位ビットにより構成される上位ビット群のＣＲＣ値を、予め設定されているＣＲＣ多項式を用いて算出する。ここで、画像データは、例えば各画素のビットデータにより輝度または色合いを示される。また、上記の「連続する複数の画素」（単位データ）とは、画像データの横方向のラインで連続する所定数量の画素であって、１ラインを分割されたものでも複数ラインに亘るものでもよい。なお、この単位データと、実装機側のＣＲＣ値算出部１２によりＣＲＣ値を算出される単位データは、画像データにおける同一範囲に含まれる複数の画素により構成されている。
【００３４】
また、ＣＰＵ４０では、各画素のビットデータを上位側と下位側に分けて取り扱うものとしている。例えば、各画素がｎビットからなるデータの場合に、下位ビットを画素における最下位ビットとすると、上位ビットは最上位から（ｎ−１）番目までのビット列であり、下位ビットは最下位のｎ番目の１ビットである。そして、単位データにおける「上位ビット群」とは、この単位データに含まれる各画素の上位ビットの集合体であって、例えば、連続する画素の順番に上位ビットを連結して構成される。
【００３５】
ＣＲＣ値算出部４２の演算に使用されるＣＲＣ多項式は、一般のＣＲＣ方式の誤り検出処理においてＣＲＣ値の算出に用いられる生成多項式である。ＣＲＣ値は、ＣＲＣ方式の誤り検出処理におけるチェックコードであって、通信対象のデータをＣＲＣ多項式で除算した場合の剰余に相当する値である。ここで、一般のＣＲＣ方式では、誤り検出を通信に適用した場合には、通信対象のデータにＣＲＣ値を冗長ビットとして付加したものを送信用データとしている。
【００３６】
カメラ側の差分算出部４３は、単位データにおける各下位ビットにより構成される下位ビット群の総和とＣＲＣ値との差分を算出する。ここで、単位データにおける「下位ビット群」とは、この単位データに含まれる各画素の下位ビットの集合体であって、例えば、連続する画素の順番に下位ビットを連結して構成される。また、「下位ビット群の総和」は、下位ビット群に含まれる複数の下位ビット同士を単に足し合わせた値である。つまり、下位ビット群の総和は、単位データを画像データの１ラインとし、且つ１ラインが１０２４画素の場合には、十進法で０〜１０２４の値を取り得る。
【００３７】
下位ビット反転部４４は、下位ビット群から差分だけ選出した１または複数の下位ビットを反転させる。ここで、画像データにおいてある単位データの上位ビット群のＣＲＣ値が十進法で４０であり、当該単位データの下位ビット群の総和が十進法で３５とすると、差分算出部４３により差分が（５＝４０−３５）と算出される。この場合に、下位ビット反転部４４は、下位ビット群から値が０の下位ビットを５つ選出して、その５つの下位ビットの値が１となるように反転させる。このようにして、下位ビット反転部４４は、反転後における下位ビット群の総和がＣＲＣ値と等しくなるようにしている。
【００３８】
また、下位ビット反転部４４は、差分算出部４３による差分が負の場合には、下位ビット群から値が１の下位ビットを差分だけ選出して、選出された下位ビットの値が０となるように反転させる。さらに、下位ビット反転部４４は、下位ビットの選出に際して、本実施形態において、単位データが画像データの１ラインを構成する場合には、１ラインの両端側に位置する下位ビットを優先して選出して反転させる。つまり、下位ビット反転部４４が下位ビット群から値が０の下位ビットを選出する場合には、１ラインの両端側から順に値が０の下位ビットを検索して、その検索結果に基づいて選出を行う。
【００３９】
カメラ３の記憶装置５０は、不揮発性のＲＯＭ５１と、揮発性のＲＡＭ５２とを有する。ＲＯＭ５１は、ＣＰＵ４０が光学ユニット３０を制御するためのドライバなどのプログラムや初期設定データ、ＣＲＣ値の算出に使用されるＣＲＣ多項式などを記憶する。ＲＡＭ５２は、ＣＲＣ値算出部４２により算出されたＣＲＣ値や差分算出部４３により算出された差分、画像データの上位ビットおよび下位ビットを一時的に記憶する。
【００４０】
（通信装置による画像データの転送処理）
続いて、電子部品実装機１の通信装置による画像データの転送処理について、図２〜図４を参照して説明する。カメラ３において通信装置を構成するＣＰＵ４０は、図２に示すように、実装機制御装置２による指令に基づいて撮像を行い、当該撮像により画像データ５を取得する（Ｓ１１）。ここで、本実施形態において、カメラ３により取得された画像データ５は、図３に示すように、１ラインが１０２４画素で構成されているものとする。また、各画素は、８ビットからなるビットデータにより輝度を２５６段階（２５６＝２＾８）で示されているものとする。
【００４１】
そして、通信装置は、この画像データ５に誤り検出のためのＣＲＣ値を埋め込む画像処理を行って、実装機側のＣＰＵ１０に転送する。このとき、誤り検出においては、所定数量の連続した複数の画素を単位データＬｎとしてＣＲＣ値が算出される。つまり、単位データＬｎは、通信装置が誤り検出の対象とする最小単位の画素である。また、この単位データＬｎに含まれる画素数は、適宜設定することが可能であるが、本実施形態においては１ラインを構成する１０２４画素としている。
【００４２】
次に、ＣＲＣ値算出部４２は、単位データＬｎにおける上位ビット群ＳｈのＣＲＣ値Ｒ（ｘ）を、ＣＲＣ多項式Ｇ（ｘ）を用いて算出する（Ｓ１２）。ここで、図３では、単位データＬｎにおける各画素をビットデータに展開した状態を模式的に示している。そして、単位データＬｎの上位ビット群Ｓｈは、各画素の上位側７ビットを連続する順番に連結した集合体であって、桁数が７１６８のビットデータである。一方で、単位データＬｎの下位ビット群Ｓｒは、各画素の最下位の１ビットを連続する順番に連結した集合体であり、桁数が１０２４のビットデータである。
【００４３】
そして、ＣＲＣ値算出部４２は、上位ビット群ＳｈをＣＲＣ多項式Ｇ（ｘ）で除算し、当該除算の剰余をＣＲＣ値Ｒ（ｘ）として算出する。ＣＰＵ４０は、上位ビット群Ｓｈに算出されたＣＲＣ値Ｒ（ｘ）を関連付けて、記憶装置５０のＲＡＭ５２に記憶する。続いて、差分算出部４３は、単位データＬｎの下位ビット群Ｓｒの総和Ｍ１を算出する（Ｓ１３）。この下位ビット群Ｓｒの総和Ｍ１は、下位ビット群のうち値が１である下位ビットの数量に相当する。そして、差分算出部４３は、ＣＲＣ値Ｒ（ｘ）から下位ビット群Ｓｒの総和Ｍ１を減算して、差分（Δ１＝Ｒ（ｘ）−Ｍ１）を算出する（Ｓ１４）。
【００４４】
下位ビット反転部４４は、算出された差分Δ１に基づいて、下位ビット群Ｓｒから反転する下位ビットを選出する（Ｓ１５）。このとき、下位ビット反転部４４は、差分Δ１が正数の場合には（Δ１＞０）、下位ビット群Ｓｒの総和Ｍ１がＣＲＣ値Ｒ（ｘ）よりも小さいので（Ｍ１＜Ｒ（ｘ））、下位ビット群Ｓｒから値が０の下位ビットを差分Δ１だけ選出する。また、下位ビット反転部４４は、差分Δ１が負数の場合には（Δ１＜０）、下位ビット群Ｓｒの総和Ｍ１がＣＲＣ値Ｒ（ｘ）よりも大きいので（Ｍ１＞Ｒ（ｘ））、下位ビット群Ｓｒから値が１の下位ビットを差分Δ１だけ選出する。
【００４５】
また、下位ビット反転部４４は、下位ビット群Ｓｒから値が０または１の下位ビットを選出する際に、図４に示すように、１ラインの両端側に位置する下位ビットを優先して選出するようにしている。つまり、選出される下位ビットは、単位データＬｎにおける先頭側および末尾側に偏ることになる。
【００４６】
そして、下位ビット反転部４４は、選出された１または複数の下位ビットの値を０から１に、または１から０に反転させる（Ｓ１６）。これにより、下位ビット反転部４４は、反転後の下位ビット群Ｓｒの総和Ｍ２がＣＲＣ値Ｒ（ｘ）と等しくなるようにしている。このような画像処理により、反転した１または複数の下位ビットを有する画素の輝度は、１段階だけ変化することになる。しかしながら、通信装置は、一般のＣＲＣ方式のようにＣＲＣ値を冗長ビットとして付加することなく、単位データＬｎの下位ビット群にＣＲＣ値Ｒ（ｘ）を埋め込んでデータサイズが変化しないようにしている。ＣＰＵ４０は、反転後の下位ビット群Ｓｒを記憶装置５０のＲＡＭ５２に記憶する。
【００４７】
通信部４１は、カメラリンク規格に準拠した通信により、単位データＬｎを実装機制御装置２に転送する（Ｓ１７）。より具体的には、通信部４１は、ＲＡＭ５２に記憶されている上位ビット群Ｓｈと下位ビット群Ｓｒから、対応する上位ビットと下位ビットを合成して単位データＬｎを生成する。そして、通信部４１は、必要に応じて単位データＬｎの末尾にストップビットを付加するなどして単位データＬｎを転送している。
【００４８】
通信装置は、画像データ５における全てのラインについて、実装機制御装置２への転送が終了したか否かを判定する（Ｓ１８）。転送が終了していない場合には（Ｓ１８：Ｎｏ）、画像データ５における次のラインに移行して、当該ラインにおけるＣＲＣ値Ｒ（ｘ）の埋め込み、および実装機制御装置２への転送を実行する。このように、通信装置は、Ｓ１２〜Ｓ１７を繰り返すことにより、画像データ５の各ラインにＣＲＣ値Ｒ（ｘ）を埋め込み、実装機制御装置２から画像データの転送要求が継続していることを条件として、画像データ５を順次転送する。そして、画像データ５における全てのラインについて転送が終了した場合には（Ｓ１８：Ｙｅｓ）、通信装置による画像データ５の転送処理を終了する。
【００４９】
（通信装置による画像データの誤り検出処理）
続いて、電子部品実装機１の通信装置による画像データの誤り検出処理について、図５を参照して説明する。実装機制御装置２において通信装置を構成するＣＰＵ１０は、図５に示すように、カメラ３から伝送された画像データ５を取得する（Ｓ２１）。通信装置は、上述したように、画像データ５の１ラインを構成する複数の画素を単位データＬｎとし、この単位データＬｎごとに通信における誤り検出処理を実行する。
【００５０】
ＣＰＵ１０は、伝送された画像データ５における単位データＬｎを上位ビット群Ｓｈと下位ビット群Ｓｒに分割する。そして、制御側のＣＲＣ値算出部１２は、上位ビット群ＳｈのＣＲＣ値Ｒ（ｘ）を、ＣＲＣ多項式Ｇ（ｘ）を用いて算出する（Ｓ２２）。ＣＲＣ値算出部１２によるＳ２２の処理については、カメラ３側のＣＲＣ値算出部４２によるＳ１２の処理と実質的に同一であるため、詳細な説明を省略する。また、ＣＲＣ多項式Ｇ（ｘ）は、実装機制御装置２の記憶装置２０に予め記憶されているものであり、カメラ３の記憶装置５０に記憶されているものと同一である。
【００５１】
次に、制御側の差分算出部１３は、下位ビット群Ｓｒの総和Ｍ３を算出する（Ｓ２３）。さらに、差分算出部１３は、ＣＲＣ値Ｒ（ｘ）から下位ビット群Ｓｒの総和Ｍ３を減算して、差分（Δ２＝Ｒ（ｘ）−Ｍ３）を算出する（Ｓ２４）。差分算出部１３によるＳ２３，Ｓ２４の処理については、カメラ３側の差分算出部４３によるＳ１３，Ｓ１４の処理と実質的に同一であるため、詳細な説明を省略する。
【００５２】
通信エラー検出部１４は、算出された差分に基づいて通信エラーを検出する（Ｓ２５）。ここで、画像データ５の通信においてノイズなどの影響がなかった場合には、Ｓ２２において算出されたＣＲＣ値Ｒ（ｘ）は、画像データ５の転送前にカメラ３側で算出されたＣＲＣ値Ｒ（ｘ）と同値となる。同様に、Ｓ２３において算出された下位ビット群Ｓｒの総和Ｍ３は、画像データ５の転送前において一部の下位ビットが反転された下位ビット群Ｓｒの総和Ｍ２と同値となる。よって、通信エラー検出部１４は、Ｓ２５において算出された差分が０以外、即ち総和Ｍ３と差分Δ２が不等（Ｍ３≠Δ２）であることをもって通信エラーを検出する。
【００５３】
続いて、通信装置は、Ｓ２５で通信エラーが検出されたか否かを判定する（Ｓ２６）。通信エラーが検出されなかった場合には（Ｓ２６：Ｙｅｓ）、画像データ５における全てのラインについて、誤り検出が終了したか否かを判定する（Ｓ２６）。全てのラインの誤り検出が終了していない場合には（Ｓ２６：Ｎｏ）、画像データ５における次のラインに移行して、Ｓ２２に戻る。このように、通信装置は、Ｓ２２〜Ｓ２６を繰り返すことにより、画像データ５の各ラインに対して順次誤り検出を実行する。
【００５４】
通信装置は、画像データ５における全てのラインの誤り検出が終了した場合には（Ｓ２７：Ｙｅｓ）、画像データ５の誤り検出処理を終了する。そして、実装機制御装置２は、例えば、画像処理部１５が取得した画像データ５に対して、用途に応じた画像処理を実行する。また、Ｓ２５で通信エラーが検出された場合には（Ｓ２６：Ｎｏ）、通信装置は、実装機制御装置２に通信エラーが発生したことを通知し（Ｓ２８）、画像データ５の誤り検出処理を中断して終了する。そして、実装機制御装置２は、例えば、カメラ３に対して撮像を行うように制御信号を送出して、再び取得した画像データを転送するようにカメラ３に要求する。
【００５５】
ここで、説明を簡易にするために、通信装置は、実装機制御装置２とカメラ３の通信が終了した後に、取得した画像データ５について誤り検出処理を行うものとした。これに対して、通信装置は、通信中において、制御側の通信部１１が画像データ５のうち単位データＬｎを取得するごとに順次、その単位データＬｎに対して誤り検出処理を実行するようにしてもよい。このようにすることで、通信エラーの検出および対処の早期化を図ることができる。
【００５６】
（本実施形態の構成による効果）
上述した構成からなる通信装置は、ＣＲＣ値Ｒ（ｘ）を利用した誤り検出処理を行うが、ＣＲＣ値Ｒ（ｘ）を送信する画像データ５の下位ビット群Ｓｒに埋め込むように画像処理するものとした。つまり、通信装置は、画像データ５にＣＲＣ値Ｒ（ｘ）を冗長ビットとして付加しないため、データサイズを変えることなく画像データ５を伝送することができる。また、画像データ５の受信側である実装機制御装置２は、下位ビット群Ｓｒの総和Ｍ３からＣＲＣ値Ｒ（ｘ）を取得できるので、通常のＣＲＣ方式と同様の手順により、上位ビット群のＣＲＣ値Ｒ（ｘ）と比較して誤り検出を行うことが可能である。このように、パリティ方式と比較してバースト誤りを検出可能な点で有利なＣＲＣ方式を、通信に要する時間を長くすることなく画像データの通信に適用することができる。
【００５７】
また、本実施形態の通信装置による画像データの伝送では、下位ビット群Ｓｒの総和Ｍ１とＣＲＣ値Ｒ（ｘ）との差分Δ１だけ下位ビットが反転されるので、画像データ５における一部の情報が変更されることになる。ここで、画像データ５は、各画素の８ビットからなるビットデータにより輝度を示されるものとした。そして、このビットデータの下位ビットが反転されたとしても、当該画素の輝度が数段階だけ変化するのみであり、画像データ５全体に対する影響は小さい。つまり、通信装置は、ＣＲＣ値Ｒ（ｘ）を下位ビット群Ｓｒに埋め込むように画像処理することで、受信側での画像データ５を使用した処理への影響を抑制している。
【００５８】
さらに、本実施形態においては、下位ビット反転部４４により反転され得る下位ビットを、画像データ５における最下位ビットとした。これにより、下位ビット反転部４４が下位ビットを反転したとしても、画素における輝度の変化を小さくすることができる。つまり、各画素のビットデータの最下位ビットが反転されたとしても、当該画素の輝度が１段階だけ変化するのみで、画像データ５全体に対する影響を最小にできる。よって、通信装置は、受信側での画像データ５を使用した処理への影響を最小限に抑えることができる。
【００５９】
通信装置は、誤り検出の最小単位である単位データＬｎを、画像データ５における１ラインを構成する複数の画素とした。これにより、通信装置は、単位データＬｎに対してＣＲＣ値Ｒ（ｘ）を算出して、このＣＲＣ値Ｒ（ｘ）を下位ビット群Ｓｒに埋め込むように画像処理する。そのため、受信側である実装機制御装置２は、伝送された画像データ５における１ライン分のデータ数に基づいて、ＣＲＣ方式の誤り検出を行うことができる。このように、通信装置は、画像データ５に区切り記号などを付加することなく誤り検出の処理が可能となるため、画像処理を効率的に行うことができる。
【００６０】
また、下位ビット反転部４４は、反転する下位ビットを選出する際に、１ラインの両端側に位置する下位ビットを優先して選出するものとした。これにより、下位ビット反転部４４により反転する下位ビットは、１ラインの両端側に偏ることになる。通信装置は、下位ビット群ＳｒにＣＲＣ値Ｒ（ｘ）を埋め込むように画像処理するため、ＣＲＣ値Ｒ（ｘ）と下位ビット群Ｓｒの総和Ｍ１の差分Δ１が０でない限り、画像データ５における一部の情報は少なからず変更される。しかしながら、実装機制御装置２の画像処理部１５においては、被写体が画像データ５の中央にあるなど、画像データ５で必要される領域が中央部のみで足りることもある。このような場合には、下位ビット反転部４４により反転される下位ビットを１ラインの両端側に偏らせることにより、画像処理部１５による処理への影響をさらに抑制することができる。
【００６１】
通信装置を構成するカメラ３の通信部４１および実装機制御装置２の通信部１１は、カメラリンク規格に準拠した通信を行うものとした。本実施形態の通信装置では、ＣＲＣ値Ｒ（ｘ）が下位ビット群Ｓｒに埋め込まれることから、画像データ５におけるＣＲＣ値Ｒ（ｘ）の場所を特定する所定のコマンドの付加などが不要であり、ＣＲＣ方式による誤り検出を好適に適用できる。つまり、例示した誤り検出処理は、伝送されるデータが可変長となるカメラリンク規格であっても、バースト誤りの検出などに有効なＣＲＣ値Ｒ（ｘ）を利用した誤り検出を行うことができるので、特に有用である。
【００６２】
電子部品実装機１は、実装機制御装置２の通信エラー検出部１４により通信エラーを検出できるので、伝送された画像データ５における誤りの有無を検証することができる。よって、電子部品実装機１は、誤りのある画像データ５に基づいて電子部品の実装が制御されることを防止できる。これにより、制御装置が撮像装置に対して撮像の実行および画像データ５の伝送を再度要求することで、誤りのない画像データ５を用いた制御が可能となり、電子部品実装機１の実装の精度を向上させることができる。
【００６３】
＜第二実施形態＞
第二実施形態の通信装置および電子部品実装機１０１について、図６〜図８を参照して説明する。本実施形態の通信装置は、主として、第一実施形態とＣＲＣ値Ｒ（ｘ）の埋め込み処理が相違する。その他の共通する構成については、第一実施形態と実質的に同一であるため、詳細な説明を省略する。以下、相違点のみについて説明する。
【００６４】
（ＣＲＣ値と画像処理について）
ここで、通信装置は、ＣＲＣ値Ｒ（ｘ）を利用して通信の誤り検出処理を行う機能を有する。そして、上述したように、このＣＲＣ値Ｒ（ｘ）は、画像データ５のデータサイズが変化しないように、画像データ５の一部（下位ビット群Ｓｒ）に埋め込まれるものとした。そのため、第一実施形態で例示した画像処理では、単位データＬｎにより表現可能な範囲を超えたＣＲＣ値Ｒ（ｘ）を、下位ビット群Ｓｒに埋め込むことができないことがある。
【００６５】
より具体的には、第一実施形態のように、単位データＬｎを画像データ５における１ラインとし、且つ下位ビットを各画素のビットデータの最下位ビットとすると、画像データ５における１ラインが１０２４画素であれば、単位データＬｎにより表現可能な範囲は、０〜１０２４となる。つまり、ＣＲＣ値Ｒ（ｘ）が１０２４を超える場合には、即ち二進法で示されるＣＲＣ値Ｒ（ｘ）の桁数が１０桁を超える場合には、下位ビット群ＳｒにＣＲＣ値Ｒ（ｘ）を埋め込むことができない。
【００６６】
一方で、ＣＲＣ方式による誤り検出では、検出精度を向上させるためにＣＲＣ多項式Ｇ（ｘ）の次数を増加させることが知られている。また、８ビットデータの通信には、ビット長さが１７ビットのＣＲＣ多項式Ｇ（ｘ）が用いられることがある。そのため、算出されるＣＲＣ値Ｒ（ｘ）を二進法で示した場合には、その桁数が１６桁を取り得ることになり、単位データＬｎにより表現可能な範囲を超えてしまう。
【００６７】
また、単位データＬｎにより表現可能な範囲を大きくするために、下位ビットを各画素のビットデータの下位側から複数ビットに設定したり、単位データＬｎに含む画素数を増加させたりすることが考えられる。しかし、前者の場合には、下位ビットの反転に伴う影響も大きくなってしまう。また、後者の場合には、単位データＬｎのデータサイズが大きくなり、転送前におけるＣＲＣ値Ｒ（ｘ）の埋め込み処理の負荷が大きくなるおそれがある。
【００６８】
そこで、本実施形態では、単位データＬｎのデータサイズを増やすことなく、桁数の増大させたＣＲＣ値Ｒ（ｘ）に対応した誤り検出処理について説明する。ここで、以下の説明では、カメラ３により取得された画像データ５は、１ラインが１０２４画素で構成されているものとする。また、通信装置が対象とする誤り検出の単位データＬｎは、画像データ５の１ラインを構成する１０２４画素により構成されているものとする。さらに、ＣＲＣ多項式Ｇ（ｘ）は、そのビット長が３３ビットに設定されているものとする。
【００６９】
（通信装置の構成）
本実施形態において、通信装置は、図６に示すように、実装機制御装置２のＣＰＵ１００と、カメラ３のＣＰＵ１４０と、通信ケーブル４とを備えて構成される。画像データ５の通信における送信側となるカメラ３のＣＰＵ１４０は、通信部４１と、ＣＲＣ値算出部４２と、差分算出部１４３と、下位ビット反転部４４とを有する。ここで、通信部４１およびＣＲＣ値算出部４２は、第一実施形態と同一の構成であるため、詳細な説明を省略する。差分算出部１４３は、ＣＲＣ値Ｒ（ｘ）および下位ビット群Ｓｒを分割する分割部１４３ａと、分割されたセットごとに差分を算出するセット差分算出部１４３ｂとを有する。
【００７０】
分割部１４３ａは、二進法で示されるＣＲＣ値Ｒ（ｘ）を所定の分割数Ｐで複数のビット列Ｌ１〜Ｌ４に分割する。ここで、ＣＲＣ値算出部４２により算出されたＣＲＣ値Ｒ（ｘ）は、ＣＲＣ多項式Ｇ（ｘ）のビット長が３３ビットであることから、二進法で示された場合には桁数が３２桁となる。また、本実施形態において、分割数Ｐは、４に設定されている（分割数Ｐの設定方法については後述する）。つまり、３２桁のＣＲＣ値Ｒ（ｘ）は、図７に示すように、上位側から各８ビットのビット列Ｌ１〜Ｌ４に分割される。ここで、各ビット列Ｌ１〜Ｌ４により示される８桁の部分的なＣＲＣ値を、サブＣＲＣ値Ｒ１〜Ｒ４とする。
【００７１】
また、分割部１４３ａは、下位ビット群Ｓｒを、各ビット列Ｌ１〜Ｌ４に対応させて分割数Ｐで複数のブロックＢ１〜Ｂ４に分割する。つまり、１０２４画素の最下位ビットからなる下位ビット群Ｓｒは、上位側から２５６個ずつの下位ビットにより構成されるブロックＢ１〜Ｂ４に分割される。ここで、３２桁のＣＲＣ値Ｒ（ｘ）は、十進数で示した場合には、｛０〜（２＾３２）｝の範囲の値を取り得る。しかし、各ビット列Ｌ１〜Ｌ４がそれぞれ８ビットからなるため、サブＣＲＣ値Ｒ１〜Ｒ４は、取り得る値の範囲が｛０〜（２＾８）｝となる。よって、各ブロックＢ１〜Ｂ４は、（２５６＝２＾８）個の下位ビットを有することから、対応する各ビット列Ｌ１〜Ｌ４により示されるサブＣＲＣ値Ｒ１〜Ｒ４の取り得る値の範囲を表現可能となる。
【００７２】
セット差分算出部１３４ｂは、ブロックＢ１〜Ｂ４に含まれる各下位ビットの小計Ｎ１〜Ｎ４を算出する。この小計Ｎ１〜Ｎ４は、各ブロックＢ１〜Ｂ４において値が１である下位ビットの数量に相当する。また、セット差分算出部１３４ｂは、小計Ｎ１〜Ｎ４とＣＲＣ値Ｒ１〜Ｒ４との差分δ１〜δ４を、対応するビット列Ｌ１〜Ｌ４とブロックＢ１〜Ｂ４のセットＳ１〜Ｓ４ごとに算出する（δ１＝Ｒ１−Ｎ１、δ２〜δ４も同様）。
【００７３】
続いて、下位ビット反転部４４は、セットＳ１のブロックＢ１から、セット差分算出部１３４ｂによりセットＳ１に対して算出された差分δ１だけ下位ビットを選出する。このとき、下位ビット反転部４４により選出される下位ビットは、差分δ１が正数の場合（Ｒ１＞Ｎ１）には値が０のものであり、差分δ１が負数の場合（Ｒ１＜Ｎ１）には値が１のものである。また、下位ビット反転部４４は、ブロックＢ１から値が０または１の下位ビットを選出する際に、図８に示すように、等間隔となるように複数の下位ビットを選出する。つまり、下位ビット反転部４４は、選出される複数の下位ビットがブロック１内において、なるべく分散するように選出する。
【００７４】
そして、下位ビット反転部４４は、選出された１または複数の下位ビットの値を０から１に、または１から０に反転させる。下位ビット反転部４４は、他のセットＳ２〜Ｓ４についても同様に、差分δ２〜δ４だけ下位ビットを各ブロックＢ２〜Ｂ４から選出するとともに値を反転させる。これにより、反転後の各ブロックＢ１〜Ｂ４の小計Ｎ１'〜Ｎ４'は、サブＣＲＣ値Ｒ１〜Ｒ４とそれぞれ等しくなる。このように、下位ビット反転部４４は、反転後の下位ビット群Ｓｒの総和Ｍ２｛Ｍ２＝（Ｎ１'＋Ｎ２'＋Ｎ３'＋Ｎ４'）｝を、ＣＲＣ値Ｒ（ｘ）｛Ｒ（ｘ）＝（Ｒ１，Ｒ２，Ｒ３，Ｒ４）｝と等しくしている。
【００７５】
画像データ５の通信における受信側となる実装機制御装置２のＣＰＵ１１０は、通信部１１と、ＣＲＣ値算出部１２と、差分算出部１１３と、通信エラー検出部１４と、画像処理部１５とを有する。ここで、実装機制御装置２の差分算出部１１３は、分割部１１３ａと、セット差分算出部１１３ｂとを有し、カメラ３の差分算出部１４３と実質的に同一の処理を行うものである。よって、差分算出部１１３の詳細な説明を省略する。
【００７６】
また、通信エラー検出部１４は、実装機制御装置２における差分算出部１１３のセット差分算出部１１３ｂにより算出された差分δ１'〜δ４'に基づいて通信エラーを検出する。より具体的には、通信エラー検出部１４は、差分δ１'〜δ４'のうち何れかが０以外である場合に、画像データ５の通信においてノイズなどの影響があったものとして通信エラーを検出する。一方で、何れの差分δ１'〜δ４'も０である場合には、下位ビット群Ｓｒの総和Ｍ３がＣＲＣ値Ｒ（ｘ）と等しい｛Ｍ３＝（Ｒ１，Ｒ２，Ｒ３，Ｒ４）｝。従って、通信装置は、このような場合には、正常に通信が行われたものと判定することができる。
【００７７】
このように、通信装置は、単位データＬｎのデータサイズを増やすことなく、桁数が３２桁のＣＲＣ値Ｒ（ｘ）を画像データ５に埋め込む画像処理、およびこのＣＲＣ値Ｒ（ｘ）を利用した誤り検出処理を可能としている。これは、分割部１４３ａ，１１３ａにより、適正な分割数ＰでＣＲＣ値Ｒ（ｘ）および下位ビット群Ｓｒを分割したことによるものである。ここで、分割数Ｐは、ＣＲＣ値Ｒ（ｘ）の桁数、単位データＬｎのデータサイズ、および下位ビットのビット数を勘案して設定される必要がある。
【００７８】
ここで、分割部１４３ａ，１１３ａにより分割されるＣＲＣ値Ｒ（ｘ）および下位ビット群Ｓｒの分割数Ｐは、本実施形態において、４に設定されるものとした（Ｐ＝４）。この分割数Ｐは、ブロックＢ１に含まれる下位ビットの数量Ｔ１がビット列Ｌ１の桁数Ｕ１だけ２を累乗した値以上（Ｔ１≧２＾Ｕ１）となるように設定されている。
【００７９】
より具体的には、ブロックＢ１に含まれる下位ビットの数量Ｔ１は、単位データＬｎが１０２４画素であり、下位ビットが最下位ビットのみであることから、Ｔ１＝１０２４／Ｐで表される。また、ビット列Ｌ１の桁数Ｕ１は、ＣＲＣ値Ｒ（ｘ）が３２桁であることから、Ｕ１＝３２／Ｐで表される。よって、分割数Ｐは、上記の条件｛１０２４／Ｐ≧２＾（３２／Ｐ）｝を満たすことから、Ｐ≧４の整数に設定される。また、分割数Ｐは、他のセットＳ２〜Ｓ４においても同様の条件を満たすように設定される。
【００８０】
（本実施形態の構成による効果）
上述した構成からなる通信装置は、ＣＲＣ値Ｒ（ｘ）および下位ビット群Ｓｒをそれぞれ分割し、各ブロックＢ１〜Ｂ４の下位ビットを各ビット列Ｌ１〜Ｌ４に対応して反転させるものとした。これにより、通信装置は、ＣＲＣ多項式Ｇ（ｘ）の次数を増加させた場合においても、当該ＣＲＣ多項式Ｇ（ｘ）を用いて算出されたＣＲＣ値Ｒ（ｘ）を下位ビット群Ｓｒに埋め込むように画像処理することができる。よって、ＣＲＣ値Ｒ（ｘ）を利用した誤り検出における精度を向上できる。
【００８１】
また、下位ビット反転部４４は、各ブロックＢ１〜Ｂ４から反転させる下位ビットを選出する際に、ブロックＢ１〜Ｂ４内において選出された下位ビット同士が等間隔となるように選出するものとした。これにより、下位ビット反転部４４により反転される下位ビットは、下位ビット群Ｓｒにおいて分散することになる。よって、連続する下位ビットが共に反転されることを抑制できるので、反転による画像データ５への影響を抑制することができる。
【００８２】
＜第一、第二実施形態の変形態様＞
実施形態（第一、第二実施形態）において、下位ビットは、画像データ５の各画素における最下位ビットとした。これに対して、下位ビットは、各画素のビットデータの下位側から複数ビットに設定してもよい。これにより、下位ビット群のビット数が増加するため、下位ビット群が表現可能な範囲を大きくして、桁数を増やしたＣＲＣ値Ｒ（ｘ）に対応することができる。但し、下位ビットの反転による画像データ５への影響を抑制するという観点からは、実施形態で例示したように、下位ビットを各画素における最下位ビットに設定することが好ましい。
【００８３】
また、通信装置が対象とする誤り検出の最小単位である単位データＬｎは、画像データ５における１ラインを構成するものとした。これに対して、単位データＬｎは、連続した複数の画素であればよく、１ライン未満の画素、複数ラインを含む画素、または画像データ５に含まれる全ての画素としてもよい。通信装置は、画像データ５の１ラインの画素数や処理負荷などを勘案して、単位データＬｎのデータサイズを適宜設定してもよい。
【００８４】
通信装置は、カメラリンク規格に準拠した通信を行うものとした。本実施形態で例示した誤り検出処理は、伝送されるデータが可変長となるカメラリンク規格に対応し、ＣＲＣ値Ｒ（ｘ）を利用して高精度に通信エラーを検出できるので特に有用である。しかし、当該誤り検出処理は、パケット通信など、その他の通信規格に準拠した通信にも適用することができる。このような場合においても、伝送する画像データ５のデータサイズを付加することなくＣＲＣ値Ｒ（ｘ）を利用した誤り検出処理が可能である。よって、通信に要する時間を増加することなく、通信エラーを高精度に検出することができる。
【００８５】
本実施形態では、通信装置は、電子部品実装機１，１０１に適用され、カメラ３から実装機制御装置２への画像データ５の伝送における誤り検出処理を行う構成を例示して説明した。これに対して、通信装置は、実装機制御装置２やカメラ３以外に、種々の装置や集積回路との間に用いられる通信を行う構成にも適用することが可能である。
【符号の説明】
【００８６】
１，１０１：電子部品実装機
２：実装機制御装置
１０，１１０：ＣＰＵ（通信装置）
１１：通信部、  １２：ＣＲＣ値算出部
１３，１１３：差分算出部
１１３ａ：分割部、  １１３ｂ：セット差分算出部
１４：通信エラー検出部、  １５：画像処理部
２０：記憶装置
３：カメラ（撮像装置）
３０：光学ユニット、  ３１：レンズ部、  ３２：撮像素子
４０，１４０：ＣＰＵ（通信装置）
４１：通信部、  ４２：ＣＲＣ値算出部
４３，１４３：差分算出部
１４３ａ：分割部、  １４３ｂ：セット差分算出部
４４：下位ビット反転部
５０：記憶装置、  ５１：ＲＯＭ、  ５２：ＲＡＭ
４：通信ケーブル
５：画像データ
Ｇ（ｘ）：ＣＲＣ多項式、  Ｒ（ｘ）：ＣＲＣ値
Ｌ１〜Ｌ４：ビット列、  Ｒ１〜Ｒ４：サブＣＲＣ値
Ｌｎ：単位データ、  Ｓｈ：上位ビット群、  Ｓｒ：下位ビット群
Ｍ１〜Ｍ３：下位ビット群の総和
Ｂ１〜Ｂ４：ブロック、  Ｎ１〜Ｎ４，Ｎ１'〜Ｎ４'：小計
Δ１，Δ２：差分、  δ１〜δ４，δ１'〜δ４'：セットの差分
Ｓ１〜Ｓ４：セット、  Ｐ：分割数
Ｔ１：ブロックＢ１の下位ビットの数量、  Ｕ１：ビット列Ｌ１の桁数
【図１】
2014049796.tif 000003
【図２】
2014049796.tif 000004
【図３】
2014049796.tif 000005
【図４】
2014049796.tif 000006
【図５】
2014049796.tif 000007
【図６】
2014049796.tif 000008
【図７】
2014049796.tif 000009
【図８】
2014049796.tif 000010
【国際調査報告】
2014049796.tif 000011
2014049796.tif 000012