JTAGって、そもそもナニ?

はじめに
みなさんは「JTAG(ジェイタグ)」という言葉を聞いたことがありますか?電子工作やマイコン開発をしていると、回路図やチップのデータシートに出てくるあの4本(または5本)ピン ―― TDI / TDO / TCK / TMS /(TRST)。
でも、「なんかデバッグ用のやつでしょ?」くらいで止まっている人も多いかもしれません。
今日はそんな JTAG の正体を、なるべくわかりやすく覗いてみましょう。
JTAGは「テスト」が出発点
JTAGは「Joint Test Action Group」の略です。これは1980年代に、各国の企業や団体が「電子基板のテストをもっと簡単にしよう!」と作ったグループの名前でした。やがて、そのグループが作った仕組みそのものが「JTAG」と呼ばれるようになったのです。
では、何を“テスト”するのか?
それは 基板に載っているIC同士がちゃんとつながっているか? ということ。
昔は、プローブをピンに押し当てて通電を調べていましたが、集積度が上がるとそんな方法では手が届きません。そこで登場したのが、「チップの中にテスト回路を仕込んでおく」というアイデアです。
チップの中に「自己診断用の通路」がある
JTAG対応のICには、「バウンダリスキャンチェイン」という特殊な回路が埋め込まれています。
簡単に言えば、各ピンの入出力状態をずらっと鎖のようにつないで、外部から1ビットずつ読み書きできる仕組みです。
この“鎖”にデータを送り込むための入口と出口が、冒頭に出てきた4本ピン:
| ピン名 | 意味(ざっくり) |
| TDI | テストデータの入口(Test Data In) |
| TDO | テストデータの出口(Test Data Out) |
| TCK | テスト用クロック(Test Clock) |
| TMS | モード選択信号(Test Mode Select) |
| TRST | (オプション)リセット信号(Test Reset) |
これらを専用ツールで制御することで、ピンの状態を読んだり、擬似的に信号を出したりできます。
つまり、外から基板を触らなくても“中身を診断”できるわけですね。
合わせて読みたい
いつのまにか「デバッグ用」にも使われるように
当初は“テスト用”だったJTAGですが、マイコンやFPGAなどの高度なICが登場するにつれ、「これ、CPUの中身(レジスタやメモリ)にもアクセスできるようにしたら便利じゃない?」という流れに。
こうしてJTAGは、開発者が「プログラムの書き込み」や「ステップ実行(デバッグ)」を行うための標準インタフェースとしても広まりました。
たとえば、ARMコアを使ったマイコンでは、JTAG(あるいはその派生のSWD)を使って、PCからプログラムを転送したり、ブレークポイントを設定したりできます。
つまりJTAGは・・・
- 製造現場では → 回路検査のための“テストポート”
- 開発現場では → ソフト開発のための“デバッグポート”
という、まさに“両刀使い”の仕組みなのです。
まとめ:JTAGは「中を覗くための窓」
JTAGをひとことで言うなら、
電子機器の中をのぞいたり操作したりするための共通の“窓口”
と言うことができます。
実際に扱うには専用アダプター(JTAGデバッガ)やツールが必要ですが、仕組みを理解しておくと、開発中のトラブル解析やハードの理解にとても役立ちます。
最近ではJTAGをベースにした簡易化プロトコル「SWD(Serial Wire Debug)」も一般的です。
基本の考え方は同じですが、ピン数を減らして省スペースにした進化形と捉えるといいでしょう。
最後に
JTAGは、普段は地味な存在ですが、ハードウェアを開発・テスト・修理する上では欠かせない「裏方ヒーロー」です。 もしマイコンボードに“JTAG”と書かれたピンが並んでいたら、
「これは中をのぞくための秘密の扉なんだな」と思い出してみてください。

