JTAG情報サイト

 

特殊電子回路

MITOUJTAGとはサービス/サポート事例、Q&A導入のメリットJTAG技術情報

[端子の観察
[端子の操作
[波形を観察
[FPGAに書く
[フラッシュROMライタ
[JTAG-ICE
[基板検査] 
[プロトタイピング
[他社ツールとの違い
[対応デバイス] 

 

プリント基板検査の原理

 

 MITOUJTAG Proによる基板検査は、あらかじめ記述した手順に従ってバウンダリスキャンを実行してJTAGデバイスから信号を出力し、JTAGデバイスが入力した信号の状態が予期した値か否かを判断することによって行われます。基板検査では、信号線のオープン、ショートなどが発見できます。

 

 

 MITOUJTAGでは、この手順を記述するのに次の2通りの方法があります。

 

スクリプトによる記述

テストベクタによる記述

 

    スクリプトによる記述

     スクリプトによる記述では、信号の操作手順をC言語で記述し、手順を作成します。複雑な制御構文や、条件分岐、ループに適しています。

     例えば、数百回のループを行う処理であっても、1行のfor文で記述することができます。

     スクリプトは通常のC++言語であり、汎用のコンパイラを使ってコンパイルされ、WindowsのDLLとして出力されます。スクリプトではWindowsAPIやその他のライブラリを呼び出すこともでき、ユーザプログラムとの連携も可能です。

     

    テストベクタによる記述

     テストベクタによる記述では、操作したい信号のHやLへの遷移を表形式で記述します。動作が直感的でわかりやすく、C言語の知識さえ不要です。また、入力信号が表で記述したとおりになっているか否かで基板の合否判定も行えます。

     この表は標準的なCSVファイルで記録されるため、Excelなどの表計算ソフトを用いて編集することもできます。

アルゴリズム再利用可能な基板検査

 従来からよくあるJTAGを用いた基板検査ソフトウェアでは、表形式でデータを入力し表形式でデータを結果を確認するという方式がよく採用されていました。

 

従来からよくあるJTAG基板検査ソフトウェア例

 

 このような従来型の基板検査ソフトウェアは、データの入力は面倒であるうえ、作成したデータを別のプロジェクトで使うことが難しいという欠点がありました。 また、同じ処理を何度も繰り返すような場合(例えばメモリの1MBytesのデータを書き込むような場合)、表のサイズは巨大になってしまうのは明らかです。表形式では条件判断も苦手なので同じような処理を何度も書かなければなりません。ユーザー入力を促したり通信したりという処理を独自に追加するのはほぼ不可能でしょう。

 つまり、従来型の基板検査ソフトウェアでは、アルゴリズムの再利用は難しく、ユーザが言語仕様を拡張することはほぼ絶望的でした。

 

 MITOUJTAG Proは違います。まず、やりたい動作を普通のC++言語で書きます。例えば、2つのICのデータバス同士が正しく接続されているかどうかを調べるには、以下のようにすればよいのです。変数や条件判断、ループが自由自在に使えるため、従来のJTAG検査ソフトウェアような表記述に比べると再利用が容易であり、保守性も高まります。

 

 MITOUJTAG Proでは表(ベクタ)形式での入出力も可能です。

 


 

このベクタは、C言語のプログラム中から容易に呼び出すことができます。

検査したい項目ごとに小さな表を作成すれば、検査アルゴリズムの再利用は容易になります。

 

 アドバンスド・JTAG・ファンクションジェネレータでは表(ベクタ)形式も扱える

 

WindwosAPIや他のプログラムとの連携も容易

 JTAGスクリプトは通常のC++のプログラムです。スクリプトからWindowsAPIや他のプログラムをコールしたり、他のプログラムやコンピュータとの通信、ユーザ入力待ちなども自由にできます。まさにWindowsのプログラムと基板検査のスクリプトが融合したといえます。

 

bool check_connect()
{
    unsigned long val;
    DEV2_DATA <= "Z"; // 2つ目のデバイスを入力状態に
    for(int i=0 ; i < 32 ; i++ )
    {
        val = ( 1 << i ) ; // データバスに1ビットづつ'1'を出力
        DEV1_DATA <= val;  // 1つ目のデバイスから出力
        if(DEV2_DATA != val)
{
// ダイアログを表示(Win32API)
MessageBoxA(NULL,"エラーがあります","",
MB_OK);
fprintf(fp,"error at %d\n",i); // ファイルに記録
return false ;// 2つ目のデバイスから入力し、比較
} } return true; }

 

 

 

スクリプトとテストベクタの連携

 MITOUJTAGではスクリプトとテストベクタの良いところを組みあわせ、連携させたテストができます。

 スクリプトとテストベクタの長所・短所を次の表にまとめます。

 

  スクリプト テストベクタ
ループ/条件分岐

×

記述の手軽さ

手順の可視化

手順のライブラリ化

×

WindowsAPIや他のライブラリの呼び出し

×

 

 スクリプトの長所は、複雑な出力パターンが楽に作成できる点です。一方、テストベクタは信号の遷移が直感的にわかりやすいというメリットがありますが、パターンの作りこみが面倒であるという欠点があります。

 また、スクリプトでは、定型的な操作をライブラリとして再利用することが容易にできます。

 

 これらの長所を組み合わせたMITOUJTAGならではの基板検査方法は次の図に示したフローのようになります。

 

@

スクリプトで検査手順(出力部分)作成

 

          ↓

A

正常な実機で動作させ、各種信号の入力値を調べ、保存する

 

          

B

検査対象のボードで動作させ、Aの実行結果と比較する

 

          

C

異常のある信号がピックアップされる

 

 すなわち、最初にターゲットボードには正常に動作する基板を装着します。スクリプトを用いて出力パターンを生成し、正常時の基板上の信号パターンをテストベクタの形式で記録します。

 次にターゲットボードを検査対象のボードに取り替え、先のテストベクタと比較することによって、正常なターゲットボードと検査対象ボードの違いを抽出し、ターゲットボードの不良を発見します。

 

 

 

テストプログラム方式との比較

 プリント基板の検査においては、基板上のCPUにテストプログラムを走らせ、ソフトウェアから各種ICへアクセスすることで実装検査を行う場合もあります。この方法はテストプログラム方式などと呼ばれます。

 テストプログラム方式では、CPUと各種ICの間の接続を確認するだけではなく、不揮発性メモリへの書き込みや表示の確認など、様々なファンクションテストも一緒に行われるのが通常です。また、専用の治具が不要なので検査コストが安く導入しやすいといったメリットがあります。

 

 このような従来のテストプログラム方式では、ROMやRAMなどCPUの動作に必須のコンポーネントの接続に異常がある場合には、テストプログラムが走らないため全く検査ができないという問題点がありますした。

 また、テストプログラム方式では基板の良/不良の判別はできますが、不良の発生箇所を特定するのは簡単ではありません。不良基板は解析せずに廃棄するのが一般的で、製造コストを低く抑えた民生品などによく用いられてきました。

 

 MITOUJTAGの基板検査は、テストプログラムが走らないような状況(CPU周りの不具合)でも、各種の機能(ファンクション)テストが可能です。また、JTAGバウンダリスキャンによって端子を操作することで、従来は  テストプログラムで行っていたような処理を一緒に行うことができ、テストプログラム作成工数が低減できます。

 

 JTAGによる基板検査のメリット(テストプログラム方式と比較)

1. フラッシュROMの書き込みなどの工程を統合

2. CPU周りのクリティカルな領域も検査可能になる

3. 故障箇所がわかるので「捨てる」しかなかった高価な基板が無駄にならない

 

テストプログラム方式との融合

 JTAGを用いた基板検査では、原則としてJTAGデバイスに直接つながっている範囲しか検査することができません。(カバレッジが狭い)

 また、テストプログラムと違い、CPUは本来の動作速度で動作するわけではないので、通信系のLSIなどタイミングが規定されている部分は検査できません。

  しかしながら、上述のようなテストプログラムにはないメリットもあるため、テストプログラムと組みあわせて検査を行うことで、従来にない効果を発揮する場合があります。

 

 すなわち、テストプログラムでは発見できないCPUに近い範囲(RAMやROMなど)の異常はJTAGで発見し、CPUから遠い範囲はテストプログラムで検査するという方法が有効です。

 このように組み合わせることで、不良基板の故障箇所が解析でき、なおかつテストプログラミングによるコストを抑えた検査が可能になります。

 

 

インサーキットテスタ方式との融合

 インサーキットテスタを用いた基板検査は、プリント基板上にテストパッドを設け、そのテストパッドに無数の針を立てることでテスト信号を注入して検査を行う方法です。社会インフラ系などの比較的高価な基板では良く用いられています。

 インサーキットテスタ方式では、専用の検査装置(数百万円から数千万円)を導入する必要があり、検査の初期コストが高くなりります。また、プリント基板上にはテストパッドを設けなければならず、基板の面積を消費するというデメリットもあります。

 

 JTAGによる方法とインサーキットテスタを組み合わせると、JTAGバウンダリスキャンによって出力した信号をインサーキットテスタから入力できるかを調べることによって、検査が容易になります。

 

  MITOUJTAGの基板検査スクリプトはC言語をベースとしており、DLLとしてWindowsのネイティブコードで出力されます。このスクリプトからはWindowsAPIや様々なライブラリを呼び出すことができるため、既存の他社製インサーキットテスタと組み合わせて、一つの基板検査システムを作り上げることが容易にできます。

 

 

様々な基板検査方式の比較

 より確実な検査を行うためには、複数の手段を組み合わせることが重要です。

 MITOUJTAGによるJTAG方式とテストプログラム方式を組み合わせ、さらにX線検査を併用すると、基板上の広い範囲をくまなく検査でき、さらにファンクションテストも併せて行うことができ、非常に柔軟で強力な基板検査を行うことができます。

 

 

検査範囲

(カバレッジ)

通電検査

問題点

JTAG

×

カバレッジが狭い

アナログ回路の検査ができない

X線検査

×

通電試験ではない

不良を見逃すことがある

画像検査

×

部品の裏側はわからない

フライングチェッカー

×

基板自体の製造検査であるため、 実装後の不良はわからない

インサーキットテスタ

検査装置自体が非常に高価

テストパッドが必要

テストプログラム

プログラム作成工数がかかる

プログラムが動かなければ検査できない

 

Copyright(C) 2008 TokushuDenshiKairo Inc. All rights reserved.
info@tokudenkairo.co.jp