(57)【特許請求の範囲】
【請求項１】
アドレス空間内にマッピングされた回路が実装されている被検査基板と、この被検査基板に対して検査コマンドを発行する検査装置とからなる回路基板検査システムであって、
前記検査装置は、前記アドレス空間中のアドレス，書込対象データ，及び、前記アドレスが示す位置に前記書込対象データを書き込むこと又は前記アドレスが示す位置からデータを読み出すことを指定するデータ操作の種類を含む検査コマンドを生成するコマンド生成部と、このコマンド生成部によって生成された検査コマンドを前記被検査基板へ送信するコマンド送信部とを有し、
前記被検査基板は、前記検査コマンドを受信するコマンド受信部と、制御部と、前記コマンド受信部を介して受信された検査コマンドにおける前記データ操作の種類が前記書込対象データを書き込むことであった場合には前記アドレスが示す位置に前記書込対象データを書き込ませ、前記データ操作の種類がデータを読み出すことであった場合には前記アドレスが示す位置のデータを読み出させることを、前記制御部に実行させるプログラムを格納した記憶部とを有する
ことを特徴とする回路基板検査システム。
【請求項２】
前記プログラムは、前記制御部に対して、前記検査コマンドによって指定されたデータ操作の種類が、前記書込対象データを書き込こむことである場合には、前記書込対象データを前記アドレスが指定する位置へ書き込んだ後に、当該アドレスが示す位置からデータを読み出す
ことを特徴とする請求項１記載の回路基板検査システム。
【請求項３】
前記プログラムは、前記制御部に対して、読み出したデータを前記検査装置へ送信させる
ことを特徴とする請求項１又は２記載の回路基板検査システム。
【請求項４】
アドレス空間内にマッピングされた回路が実装されている回路基板であって、前記回路は、
前記アドレス空間内のアドレス，書込対象データ，及び、前記アドレスが示す位置に前記書込対象データを書き込むこと又は前記アドレスが示す位置からデータを読み出すことを指定するデータ操作の種類を含む検査コマンドを、受信するコマンド受信部と、制御部と、
前記コマンド受信部を介して受信された検査コマンドにおける前記データ操作の種類が前記書込対象データを書き込むことであった場合には前記アドレスが示す位置に前記書込対象データを書き込ませ、前記データ操作の種類がデータを読み出すことであった場合には前記アドレスが示す位置のデータを読み出させることを、前記制御部に実行させるプログラムを格納した記憶部と
を有することを特徴とする回路基板。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、回路基板の動作チェック等の検査を行うための回路基板検査システム及びこのような回路基板検査システムを構成できる回路基板に関する。
【０００２】
【従来の技術】
回路基板上の配線が設計図通りになっているか否か，回路基板上に実装されている回路素子が仕様通りに動作するか否かは、所定のポートから所定の出力を生じさせるために必要な動作を行った時に、当該所定のポートから当該所定の出力が生じるか否かによって、確認することができる。このような検査を行うために、検査対象回路基板にＣＰＵを追加実装するか、検査対象基板の本来の機能実行のために実装されているＣＰＵを流用し、このようなＣＰＵに検査プログラムを実行させる回路基板検査システムが、従来、用いられている。このような検査プログラムは、被検査基板上に実装されているＲＯＭに予め格納されているとともに、回路基板上の各リソースに対応付けられた論理アドレスに、順次、データ（Ｌｏｗレベルが出力されるデータ，又は、Ｈｉｇｈレベルが出力されるデータ）を書き込む処理を、ＣＰＵに実行させる。このようにして書き込まれたデータが、その論理アドレスにマッピングされたリソースに実際に現れたか否かを識別することによって、回路基板が正常に動作しているか否かを確認することができる。例えば、そのリソースがメモリであれば、その論理アドレスからデータを読み出し、書き込みを行ったはずであるデータが読みされた場合に、その回路基板が正常に動作していると判断することができる。また、そのリソースが出力ポートであれば、その出力ポートから書き込みを行ったはずのデータが出力された場合に、その回路基板が正常に動作していると判断することができる。
【０００３】
従来、このような検査プログラムは、特定の論理アドレスに対して特定のデータを書き込むことを内容とするとともに個別のコマンドが割り付けられた多数の処理モジュールを、個々の論理アドレス毎に、有していた。図１１は、このような従来の検査プログラムの概略を示すフローチャートである。図１１に示すように、検査プログラムは、起動後最初のＳ５０１において、被検査基板に接続された検査装置からコマンドを受信するのを、待つ。そして、コマンドを受信すると、Ｓ５０２においてそのコマンドを解析し、そのコマンドに対して予め対応付けられていた何れかの処理（処理１〜処理Ｚ）を、Ｓ５０３−１〜Ｚにおいて実行する。何れの場合においても、検査プログラムは、次のＳ５０４において、検査装置に対して処理結果を含む応答を送信した後に、処理をＳ５０１に戻す。
【０００４】
図１２は、従来の検査プログラムに対して何れかの処理実行を命じるための検査コマンドのフォーマット図（同図Ａ），及び、応答データのフォーマット図（同図Ｂ）である。同図Ａに示されるように、検査コマンドは、１バイトのCommand Code（ＣＣ）のみから構成されている。また、同図Ｂに示されるように、検査コマンドに対する応答データは、成功，失敗等を示すResponce Data（ＲＤ）から、構成されている。
【０００５】
例えば、論理アドレス＝0x10000000にデータ＝0x01を書き込む処理にＣＣ＝Ａが対応付けられているとする。この場合、図１３のタイムアロー図に示されるように、検査者が、論理アドレス＝0x10000000に関する検査を行うために、検査装置から被検査基板に対してＣＣ＝Ａからなる検査コマンドを送信すると、被検査基板上で検査プログラムを読み込んでいるＣＰＵは、論理アドレス＝0x10000000にデータ＝0x01を書き込む処理を実行する（Ｓ５０３）。そして、この処理を終了すると、現在の状態を示すＲＤからなる応答データを、検査装置に送信する。検査装置のオペレータ（検査者）は、成功を示すＲＤ＝Ｓを受信しており、且つ、論理アドレス＝0x10000000にマッピングされているリソースにデータ＝0x01が現れていることを確認することにより、そのリソースに関しては回路基板が正常に動作していることを、認識するのである。
【０００６】
また、被検査基板に実装されているＲＯＭのチェックサムを読み出す処理にＣＣ＝Ｂが対応付けられているとする。この場合、検査者が、検査装置から被検査基板に対してＣＣ＝Ｂからなる検査コマンドを送信すると、被検査基板上で検査プログラムを読み込んでいるＣＰＵは、当該ＲＯＭのチェックサムの計算結果が格納されている論理アドレスからチェックサムを読み出す処理を実行する（Ｓ５０３）。そして、この処理を正常に終了すると、読み出したチェックサムを示すＲＤからなる応答データを、検査装置に送信する。
【０００７】
【発明が解決しようとする課題】
しかしながら、上述した従来の回路基板検査システムによると、以下のような問題がある。即ち、個々の回路基板の種類毎に、アドレス空間にマッピングされているリソースは異なるので、被検査基板のハードウェア構成毎に、検査プログラムのプログラムコードが組み替えられていなければならなかった。また、このように被検査基板毎に内容の異なる検査プログラムは、通常、被検査基板に実装されているマスクＲＯＭに格納されているので、被検査基板を完成させた後に検査項目を追加する等の内容変更ができなかった。さらに、各被検査基板における検査項目が多岐にわたる場合には多数の処理モジュールが用意されていなければならないので、検査プログラム全体のボリュームが莫大となっていた。
【０００８】
そこで、本発明の課題は、被検査基板に搭載される検査プログラムの内容を、被検査基板のハードウェア構成に依存しない一般的内容とし、これによって、検査プログラムのサイズを小さくできるとともに検査項目の変更に対して柔軟に対応することができる回路基板検査システム，及び、このような回路基板検査システムを構成できる回路基板を、提供することである。
【０００９】
【課題を解決するための手段】
上記課題を解決するためになされた本発明による回路基板検査システムは、アドレス空間内にマッピングされた回路が実装されている被検査基板と、この被検査基板に対して検査コマンドを発行する検査装置とからなる回路基板検査システムであって、前記検査装置は、前記アドレス空間中のアドレス，書込対象データ，及び、前記アドレスが示す位置に前記書込対象データを書き込むこと又は前記アドレスが示す位置からデータを読み出すことを指定するデータ操作の種類を含む検査コマンドを生成するコマンド生成部と、このコマンド生成部によって生成された検査コマンドを前記被検査基板へ送信するコマンド送信部とを有し、前記被検査基板は、前記検査コマンドを受信するコマンド受信部と、制御部と、前記コマンド受信部を介して受信された検査コマンドにおける前記データ操作の種類が前記書込対象データを書き込むことであった場合には前記アドレスが示す位置に前記書込対象データを書き込ませ、前記データ操作の種類がデータを読み出すことであった場合には前記アドレスが示す位置のデータを読み出させることを、前記制御部に実行させるプログラムを格納した記憶部とを有することを、特徴とする。
【００１０】
このように構成されると、被検査基板の記憶部に格納されているプログラムコードが何ら修正されなくても、検査装置からこの被検査基板へ送信される検査コマンドの内容如何に依り、被検査基板の制御部は、様々なアドレスにおいてデータの操作をすることができる。従って、被検査基板における検査項目が多岐にわたる場合においても、プログラムコードのボリュームは常に一定である。また、プログラムコードは、被検査基板の仕様に合わせられる必要もないので、被検査基板の種類が増えたり、検査項目が増加したり、被検査基板のハードウェア構成が変わった場合においても、プログラムコードが修正される必要はない。
【００１１】
本発明において、データ操作の種類とは、指定されたアドレスが示す位置に書込対象データを書き込むことや、指定されたアドレスからデータを読み出すことである。前者の場合、書き込まれる書込対象データは、一定内容のものであっても良いし、検査コマンドに含まれるものであっても良い。また、書込対象データが書き込まれる場合においては、書き込み後において、書き込まれたアドレスのデータが読み出されても良い。何れの場合においても、読み出されたデータは、検査装置へ返送されることが望ましい。
【００１２】
本発明による回路基板は、アドレス空間内にマッピングされた回路が実装されている回路基板であって、前記回路は、前記アドレス空間内のアドレス，書込対象データ，及び、前記アドレスが示す位置に前記書込対象データを書き込むこと又は前記アドレスが示す位置からデータを読み出すことを指定するデータ操作の種類を含む検査コマンドを、受信するコマンド受信部と、制御部と、前記コマンド受信部を介して受信された検査コマンドにおける前記データ操作の種類が前記書込対象データを書き込むことであった場合には前記アドレスが示す位置に前記書込対象データを書き込ませ、前記データ操作の種類がデータを読み出すことであった場合には前記アドレスが示す位置のデータを読み出させることを、前記制御部に実行させるプログラムを格納した記憶部とを、有することを特徴とする。
【００１３】
【発明の実施の形態】
以下、図面に基づいて、本発明の実施の形態を説明する。
（回路基板検査システムの構成）
図２は、本発明による回路基板検査システムを構成する検査装置１及び被検査基板２の外観を示す斜視図であり、図１は、その回路図である。図２に示すように、被検査基板２は、フラットケーブル３を介して、検査装置１に接続されている。このフラットケーブル３を介しての接続のために、検査装置１及び被検査基板２は、図１に示すように、夫々、シリアルインターフェース１１，２１を備えている。
【００１４】
被検査基板２内においては、シリアルインタフェース２１は、データバス２６及びアドレスバス２７を介して、ＣＰＵ２０に接続されている。ＣＰＵ２０は、さらに、このデータバス２６及びアドレスバス２７を介して、ＲＯＭ２２，ＲＡＭ２３，入出力ポート２４等の各回路ブロックに、接続されている。
【００１５】
コマンド受信部としてのシリアルインタフェース２１は、検査装置１からの検査コマンドを受信し、また、検査装置１へ検査結果としての応答データを送信する。
【００１６】
記憶部としてのＲＯＭ２２は、ＣＰＵ２０に読み出されることによってこのＣＰＵ２０に図７に示す制御を実行させる検査プログラム及びその他のプログラムを、格納している。
【００１７】
ＣＰＵ２０は、ＲＯＭ２２に格納されている各種プログラムを読み出して実行する制御部としての制御装置である。本実施形態においては、このＣＰＵ２０として、この被検査基板の本来の機能（仕様）の実現のために備えられたものが検査用に兼用されるが、本来の機能を実現するＣＰＵとは別の検査専用のＣＰＵ２０が備えられても良い。前者の場合には、ＣＰＵ２０は、ＲＯＭ２２から上記検査プログラム及びその他のプログラムを読み出して実行する。後者の場合には、検査専用のＣＰＵ２０は、ＲＯＭ２２から上記検査プログラムのみを読み出して実行する。
【００１８】
ＲＡＭ２３は、ＣＰＵ２２の作業領域が展開される主記憶装置であり、ＣＰＵ２２によって生成された一時的なデータを保存する。
【００１９】
タイマー２５は、ＣＰＵ２０が本来の機能を実現する際に使用される時間を測定したり、インターバルを発生させるハードウェアタイマーである。
【００２０】
入出力ポート２４は、外部のセンサの信号を取り込んだり、外部のＬＥＤ等を制御するための信号を出力するインターフェースである。
【００２１】
被検査基板における各回路ブロックには、夫々、物理アドレスが割り当てられているが、各物理アドレスに対しては、ＣＰＵ２０によって、アドレス空間中の論理アドレスが対応付けられている。即ち、被検査基板における各回路ブロックは、図３のメモリマップに示されるように、アドレス空間内にマッピングされている。従って、ＣＰＵ２０は、各種プログラムを実行する際には、被検査基板における各回路ブロックをアドレス空間内のものとして認識し、これら各回路ブロックに対するデータアクセスを論理アドレスに基づいて処理する。但し、この論理アドレスは、ＣＰＵ２０自身によって物理アドレスに変換されて、各回路ブロックに指示される。従って、以下においては、説明の簡略化のために、ＣＰＵ２０が各回路ブロックに対して直接論理アドレスを指示するものと扱うこととし、この論理アドレスの事を単に「アドレス」と称する。
【００２２】
ＣＰＵ２０は、各回路ブロックにデータを書き込む際には、書込対象データをデータバス２６へ送出すると同時に、書込対象回路ブロックにおける書込対象位置を示すアドレスをアドレスバス２７へ送出する。すると、このアドレスが割り当てられている回路ブロックにおける当該アドレスが示す位置に、書込対象データが書き込まれるのである。同様に、ＣＰＵ２０は、各回路ブロックからデータを読み出す際には、データの格納位置を示すアドレスをアドレスバス２７へ送出する。すると、このアドレスが割り当てられている回路ブロックにおける当該アドレスが示す位置から、読出対象データが読み出される。
【００２３】
一方、検査装置１内においては、シリアルインタフェース１１は、データバス１６及びアドレスバス１７を介して、ＣＰＵ１０に接続されている。ＣＰＵ１０は、さらに、このデータバス１６及びアドレスバス１７を介して、ＲＡＭ１２，フラッシュメモリ１３等の各回路ブロックに、接続されている。
【００２４】
コマンド送信部としてのシリアルインタフェース１１は、被検査基板２へ検査コマンドを送信し、また、被検査基板２から検査結果としての応答データを受信する。
【００２５】
フラッシュメモリ１３は、ＣＰＵ１０に読み出されることによってこのＣＰＵ１０に図４乃至図６に示す制御を実行させる検査プログラム，及び、この検査プログラムを実行しているＣＰＵ１０によって参照される図８に示す参照テーブルを、書き換え可能な形態で、格納している。
【００２６】
ＣＰＵ１０は、フラッシュメモリ１３に格納されている検査プログラムを読み出して実行するコマンド生成部としての制御装置である。
【００２７】
ＲＡＭ１２は、ＣＰＵ１０の作業領域が展開される主記憶装置であり、ＣＰＵ１０によって生成された一時的なデータを保存する。
（検査の概略）
次に、上述したハードウェア構成を有する検査装置１及び被検査基板２との間でなされる検査手順の概要を、説明する。本実施形態においては、被検査基板２側に用意されている検査プログラム（ＲＯＭ２２に格納されている検査プログラム）は、従来のものとは異なり、或るアドレスによって示される位置に或るデータを書き込むか、若しくは、或るアドレスによって示される位置に存在するデータを読み出すといった各検査ステップに対して共通化された内容のものとなっている。従って、検査装置１から被検査基板２に対して与えられる検査コマンドの内容は、データ操作の種類（読出又は書込）の指定の他、データ書込又はデータ読出が行われる位置を示すアドレスの指定，及び、データの操作が書き込みである場合における書込対象データ（特定データ）を、含むものとなっている必要がある。
【００２８】
図９（ａ）は、この検査コマンドを示すフォーマット図である。この図９（ａ）に示すように、検査コマンドは、先頭バイトから順に、データの操作種類を指定するCommand Code（ＣＣ），データ書込又はデータ読出が行われるアドレスを指定する４バイトのData Adress（ＤＡ０〜ＤＡ３），検査用に着込まれるデータ又は読み出されるデータのサイズを指定するData Size（ＤＳ），及び、ＣＣにて書込が指定された場合にＤＳにて指定されたサイズの検査用書込対象データを格納する１，２又は４バイトのWrite Data（ＷＤ０〜ＷＤ３）から、構成される。ＣＣは、書込を指定する場合には値“Ｗ”をとり、読出を指定する場合には値“Ｒ”をとる。また、ＤＳは、データのサイズが１バイトであれば値“Ｂ”をとり、２バイトであれば値“Ｗ”をとり、４バイトであれば値“Ｌ”をとる。また、ＷＤ０〜ＷＤ３は、ＣＣにて読出が指定された場合には無視される。
【００２９】
このような検査コマンドを検査装置１から受け取った被検査基板２のＣＰＵ２０は、検査コマンドのＣＣの値が“Ｗ”であれば、ＤＳの値が示す大きさのデータをＷＤ０〜ＷＤ３から読み出して、ＤＡ０〜ＤＡ３が示す位置に書き込む。このようにして各回路ブロックに書き込まれたデータは、その回路ブロックが入出力ポート２４であれば、入出力ポート２４からの出力に従って動作する出力装置（ＬＥＤ等）の動作として現れるので、検査者（検査装置のオペレータ）は、この出力装置の動作が検査コマンドに含めたデータに従っているか否かに基づいて、被検査基板２が正常に動作しているか否かを確認することができる。また、ＣＰＵ２０は、一旦書き込んだデータを改めて読み出して、応答データとして検査装置１へ送信するので、検査者は、この応答データに含まれているデータが検査コマンドに含めたものと同一であるか否かに基づいて、この被検査基板２が正常に動作しているか否かを確認することができる。また、検査コマンドのＣＣの値が“Ｒ”であれば、ＣＰＵ２０は、ＤＳの値が示す大きさのデータをＤＡ０〜ＤＡ３が示す位置から読み出して、応答データとして検査装置１へ送信する。従って、検査者は、予め計算されているＲＯＭ２２のチェックサムが保存されている位置を検査コマンドのＤＡ０〜ＤＡ３に指定することにより、このチェックサムを得ることができ、このチェックサムに基づいて、被検査基板２が正常に動作しているか否かを確認することができる。
【００３０】
図９（ｂ）は、この応答データを示すフォーマット図である。この図９（ｂ）に示すように、応答データは、先頭バイトから順に、検査コマンドのＣＣと同じ値が格納されるコマンド確認用のCommand Code Echo（ＣＣＥ），検査コマンドのＤＡ１〜ＤＡ３と同じ値が格納されるアドレス確認用のData Adress Echo（ＤＡ０Ｅ〜ＤＡ３Ｅ），検査コマンドのＤＳと同じ値が格納されるデータサイズ確認用のData Size Echo（ＤＳＥ），及び、検査コマンドのＤＡ０〜ＤＡ３及びＤＳにて指定された検査用読出対象データを格納するRead Data（ＲＤ０〜ＲＤ３）から、構成される。
【００３１】
以上のようにして、被検査基板２のＣＰＵ２０は、検査装置１が送信して来た検査コマンドに含まれるＤＡ０〜ＤＡ３に従って検査対象位置を特定して、検査を実行し、応答データを検査装置１へ返答する。そのため、被検査基板２のＲＯＭ２２に格納されている検査プログラムは、ＣＰＵ２０に対して、様々な回路ブロックに対する検査を実行することができる。従って、検査プログラムは、様々な構成を有する複数種類の被検査基板２に対して一つのみ用意されていれば足り、被検査基板２の構成が変更された場合にあっても、改変される必要はない。
【００３２】
一方、検査装置１のＣＰＵ１０は、被検査基板２の構成に応じた内容の検査コマンドを生成しなければならない。そのためにフラッシュメモリ１３内に用意されているのが、図８に示す参照テーブルである。図８に示すように、この参照テーブルは、検査対象として予定されている各被検査基板２毎に、その被検査基板２を検査するための一連の検査ステップにおける操作の種類（検査コマンドにおけるＣＣに相当），アドレス（検査コマンドにおけるＤＡ０〜ＤＡ３に相当），書込対象データ（検査コマンドにおけるＷＤ０〜ＷＤ３に相当）を列挙した表である。検査装置１のＣＰＵ１０は、フラットケーブル３を介して接続されている被検査基板２の基板名に対応した欄における検査ステップの順に、各検査ステップの操作種類及びアドレスを順番に読み出して、それに基づいて生成した検査コマンドを、被検査基板２に送信する。従って、検査対象の被検査基板２が追加された場合には、追加された被検査基板２に対応した情報が、この参照テーブルに追加登録されれば良い。また、参照テーブルに既に登録されている被検査基板２に対する検査内容が変更又は追加される場合や被検査基板２のハードウェア構成が変更された場合でも、この参照テーブル上において、登録されている情報の内容が修正されるだけで足りる。
（処理内容）
次に、検査装置１のＣＰＵ１０によって実行される検査プログラムの内容，及び、被検査基板２のＣＰＵ２０によって実行される検査プログラムの内容を、具体的に説明する。
【００３３】
検査装置１のＣＰＵ１０は、主電源が投入されると、検査プログラムにおける図４に示すメインルーチンをスタートする。そして、スタート後最初のＳ００１において、ＣＰＵ１０は、シリアルインタフェース１１の先にフラットケーブル３を介して被検査基板２が接続されるのを待つ。そして、被検査基板２が接続されると、ＣＰＵ１０は、Ｓ００２において、被検査基板２に対して、フラットケーブル３を介して電源を供給する。
【００３４】
次のＳ００３では、ＣＰＵ１０は、被検査基板２に対する検査を実行する。図５は、このＳ００３にて実行される検査サブルーチンを示すフロチャートである。このサブルーチンに入って最初のＳ１０１では、ＣＰＵ１０は、参照テーブルから当該検査対象基板２に関する情報を全て読み出す。
【００３５】
次のＳ１０２では、ＣＰＵ１０は、検査実行ステップを示す変数Ｘに、初期値“１”を設定する。次に、ＣＰＵ１０は、参照テーブルから読み出した当該検査対象基板２に関する情報に基づいて、各検査ステップを順次実行するために、Ｓ１０３〜Ｓ１０５のループ処理を実行する。このループに入って最初のＳ１０３では、ＣＰＵ１０は、ステップＸの検査を実行する。図６は、このＳ１０３にて実行されるステップＸの検査処理サブルーチンである。このサブルーチンに入って最初のＳ２０１では、ＣＰＵ１０は、参照テーブルから読み出した当該検査対象基板２に関する情報から、検査ステップＸに関する操作種類及びアドレスを抽出する。そして、抽出した操作種類及びアドレスに基づいて検査コマンドを生成して、被検査基板２へ送信する。
【００３６】
次のＳ２０２では、ＣＰＵ１０は、Ｓ２０１にて送信した検査コマンドに応じて被検査基板２が送信して来る応答データを待つ。そして、被検査基板２からの応答データを受信すると、処理をＳ２０３へ進める。
【００３７】
Ｓ２０３では、ＣＰＵ１０は、Ｓ２０２にて被検査基板２から受信した信号を、上述した通りに検査する。ＣＰＵ１０は、この検査を終了すると、検査結果をＲＡＭ１２に一時格納した後に、このステップＸの検査処理サブルーチンを終了して、処理を図５のルーチンに戻す。
【００３８】
図５のルーチンでは、ＣＰＵ１０は、処理をＳ１０３からＳ１０４へ進める。このＳ１０４では、ＣＰＵ１０は、参照テーブルから読み出した当該被検査基板２に対する検査ステップの最大値Ｚに変数Ｘが達したか否かを、チェックする。そして、未だ変数Ｘが最大値Ｚに達していなければ、ＣＰＵ１０は、Ｓ１０５にて変数Ｘを一つインクリメントした後に、処理をＳ１０３に戻し、次の検査ステップを実行する。以上のＳ１０３〜Ｓ１０５のループ処理を繰り返し実行した結果、変数Ｘが最大値Ｚに達した場合には、ＣＰＵ１０は、この検査サブルーチンを終了して、処理を図４のメインルーチンに戻す。
【００３９】
図４のメインルーチンでは、ＣＰＵ１０は、処理をＳ００３からＳ００４に進める。このＳ００４では、ＣＰＵ１０は、全ての検査ステップが終了したものとして、被検査基板２への電源供給を断つ。その後、ＣＰＵ１０は、処理をＳ００１に戻し、新たな被検査基板１０がシリアルインタフェース１１の先に接続されるのを待つ。
【００４０】
一方、Ｓ００２にて電源が投入された被検査基板２のＣＰＵ２０は、検査プログラムに従って、図７に示す処理をスタートする。スタート後最初のＳ３０１では、ＣＰＵ１０は、ＲＡＭ２３内に、通信用バッファとして１０バイト確保する。
【００４１】
次のＳ３０２では、ＣＰＵ１０は、検査装置１から検査コマンドが送信されて来るのを待つ。そして、検査コマンドが送信されてくると、ＣＰＵ１０は、次のＳ３０３において、送信されて来た検索コマンドを受信完了したか否かをチェックし、未だであれば処理をＳ３０２に戻し、受信完了すれば処理をＳ３０４へ進める。
【００４２】
Ｓ３０４では、ＣＰＵ１０は、受信した検査コマンドの第２〜第５バイト（ＤＡ０〜ＤＡ３）の値から、指定されたアドレスを計算する。
【００４３】
次のＳ３０５では、ＣＰＵ１０は、受信した検査コマンドの第６バイト（ＤＳ）の値から、処理すべきデータのサイズを判断する。
【００４４】
次のＳ３０６では、ＣＰＵ１０は、受信した検査コマンドの第１バイト（ＣＣ）の値から、指定された操作の種類がデータ書込であるかデータ読出であるかを判断する。そして、ＣＰＵ１０は、操作の種類がデータ書込である場合には処理をＳ３０７へ進め、データ読出である場合には処理をＳ３０９へ進める。
【００４５】
Ｓ３０７では、ＣＰＵ１０は、受信した検査コマンドの第７〜第１０バイト（ＷＤ０〜ＷＤ３）から、Ｓ３０５にて判断したサイズのデータを抽出し、抽出したデータを、Ｓ３０４にて計算したアドレスが示す位置へ書き込む。
【００４６】
次のＳ３０８では、ＣＰＵ１０は、Ｓ３０４にて計算した計算したアドレスが示す位置から、Ｓ３０５にて判断したサイズ分のデータを読み出す。このＳ３０８が完了すると、ＣＰＵ１０は、処理をＳ３１０へ進める。
【００４７】
一方、Ｓ３０９では、ＣＰＵ１０は、Ｓ３０４にて計算した計算したアドレスが示す位置から、Ｓ３０５にて判断したサイズ分のデータを読み出す。このＳ３０８が完了すると、ＣＰＵ１０は、処理をＳ３１０へ進める。
【００４８】
Ｓ３１０では、ＣＰＵ１０は、Ｓ３０８又はＳ３０９にて読み出したデータを、Ｓ３０１にて確保した通信バッファの第７〜第１０バイトにセットする。なお、この通信バッファの第１バイト〜第６バイトには、受信した検査コマンドの内容がそのままセットされている。
【００４９】
次のＳ３１１では、ＣＰＵ１０は、受信した検査コマンドに対する応答データとして、通信バッファの内容を、第１バイトから順に、検査装置１に向けて送信する。このようにして、応答データの第１０バイトまでの送信が終了すると、ＣＰＵ１０は、処理をＳ３１２からＳ３０２に戻し、次の検査コマンドが検査装置１から送られて来るのを待つ。
【００５０】
被検査基板２のＣＰＵ２０は、以上のＳ３０２〜Ｓ３１２のループ処理を、Ｓ００４にて主電源が切られるまで、繰り返し実行する。
（実施形態による作用）
上述した構成を有する本実施形態の回路基板検査システムを用いた被検査基板２に対する検査例を、図１０のタイムアロー図を参照して、以下に説明する。
【００５１】
いま、特定被検査基板２についての検査ステップ１の検査が、図３に示すメモリマップにおける0x10000000番地にマッピングされた入出力ポート２４のbit0から５Ｖレベルの出力を生じさせるものであったとする。この場合、検査装置１のＣＰＵ１０は、参照テーブルにおける当該被検査基板２についての検査ステップ１に対応した情報，即ち、操作種類＝書込，アドレス＝0x10000000番地，データ＝0x1（５Ｖレベルの信号に対応したデータ）を、読み出す。そして、読み出したこれら情報に基づいて検査コマンドを生成して、被検査基板２へ送信する（Step１）。すると、被検査基板２のＣＰＵ２０は、ＣＣ＝“Ｗ”であるために、0x10000000番地に0x1を書き込むことが命じられたものと解釈し、当該データ0x1を0x10000000番地に書き込む（Step２）。続いて、ＣＰＵ２０は、同じアドレス0x10000000番地からデータを読み出し、応答データとして検査装置１へ送信する（Step３）。検査装置１のＣＰＵ１０は、受信した応答データ及び入出力ポートの０bitからの出力を、検査コマンドに格納して送信したデータ0x1と比較し、前者が後者と一致しているか否かをチェックする（Step４）。これにより、前者が後者と一致していれば、被検査基板２が正常に動作していると判断することができる。
【００５２】
また、当該被検査基板２についての検査ステップ２の検査が、ＲＯＭ２２の特定位置に格納されているチェックサムの計算結果を読み出すことであったとする。この場合、検査装置１のＣＰＵ１０は、参照テーブルにおける当該被検査基板２についての検査ステップ２に対応した情報を，即ち、操作種別＝読み出し，アドレス＝当該特定位置の番地を、読み出す。そして、読み出したこれら情報に基づいて検査コマンドを生成して、被検査基板２へ送信する。すると、被検査基板２のＣＰＵ２０は、ＣＣ＝“Ｒ”であるために、指定された番地からデータを読み出すことが命じられたものと解釈し、当該番地からデータを読み出し、応答データとして検査装置１へ送信する。検査装置１のＣＰＵ１０は、受信した応答データが所定値であるか否かに基づいて、被検査基板２が正常に動作しているかどうかを判断する。
【００５３】
以上説明したように、本実施形態の回路基板検査システムによれば、検査の具体的な内容に応じた多数の処理モジュールを被検査基板２側に持たせる必要はなく、指定されたアドレスにおいて指定された内容でのデータ操作を実行することを内容とする一本の検査プログラムのみが、被検査基板２に用意されていれば良い。そして、検査装置は、参照テーブルの登録内容に従って、操作種別，操作対象アドレス及び操作対象データを指定する検査コマンドを送信すれば、検査プログラムコードを実行している被検査基板２のＣＰＵ２０に対して、所望の検査を実行させることができる。従って、被検査基板２のハードウェア構成の変更等に対しても、柔軟に対応することができる。
【００５４】
【発明の効果】
以上のように構成した本発明の回路基板検査システムによると、検査プログラムのサイズを小さくできるとともに、検査項目の変更に対して柔軟に対応することが出来る。
【図面の簡単な説明】
【図１】  本発明の実施形態による回路基板検査システムを構成する検査装置及び被検査基板の回路図
【図２】  検査装置及び被検査基板の接続状態を示す斜視図
【図３】  被検査基板におけるメモリマップ
【図４】  検査装置のＣＰＵが実行する検査プログラムのメインルーチンを示すフローチャート
【図５】  図４のＳ００３にて実行される検査処理サブルーチンを示すフローチャート
【図６】  図５のＳ１０３にて実行されるステップＸの検査処理サブルーチンを示すフローチャート
【図７】  被検査基板のＣＰＵが実行する検査プログラムコードを示すフローチャート
【図８】  参照テーブルの構造を示す表
【図９】  検査コマンド及び応答データのフォーマット図
【図１０】  検査装置と被検査基板との間での情報の流れを示すタイムアロー図
【図１１】  従来の回路基板検査システムにおいて被検査基板のＣＰＵが実行する検査プログラムコードを示すフローチャート
【図１２】  従来の回路基板検査システムにおける検査コマンド及び応答データのフォーマット図
【図１３】  従来の回と検査システムにおける検査装置と被検査基板との間での情報の流れを示すタイムアロー図
【符号の説明】
１    検査装置
２    被検査基板
３    フラットケーブル
１０    ＣＰＵ
１３    フラッシュメモリ
２０    ＣＰＵ
２２    ＲＯＭ
【図１】
0003670932.tif 000002
【図２】
0003670932.tif 000003
【図３】
0003670932.tif 000004
【図４】
0003670932.tif 000005
【図５】
0003670932.tif 000006
【図６】
0003670932.tif 000007
【図７】
0003670932.tif 000008
【図８】
0003670932.tif 000009
【図９】
0003670932.tif 000010
【図１０】
0003670932.tif 000011
【図１１】
0003670932.tif 000012
【図１２】
0003670932.tif 000013
【図１３】
0003670932.tif 000014